/* Конфигуратор оплётки TEXPLET — стили страницы /catalog/konfigurator/.
   Используются общие переменные и кнопки сайта (texplet.css); все свои классы — с префиксом kf-. */
.kf{--kf-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace}
.kf-intro{padding-block:28px 24px}
.kf-intro h1{font-size:clamp(28px,3.4vw,44px);margin-bottom:14px}
.kf-intro h1 em{font-style:normal;color:var(--cu)}
.kf-intro .lead{margin-top:0}

.kf-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:32px;align-items:start;padding-bottom:72px}
@media (max-width:980px){.kf-grid{grid-template-columns:minmax(0,1fr)}}
.kf-stage{position:sticky;top:96px;display:flex;flex-direction:column;gap:16px;min-width:0}

.kf-viewer{background:var(--s1);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.kf-viewer-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.kf-tag{font-family:var(--kf-mono);font-size:13px;color:var(--muted)}
.kf-tag b{color:var(--fg);font-weight:700}
.kf-canvas{position:relative;background:radial-gradient(80% 90% at 50% 45%,#232323,#121212 75%)}
#kfSleeve{display:block;width:100%;height:auto;aspect-ratio:10/3.4}
.kf-toggles{display:flex;gap:8px}
.kf-chip{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line2);background:transparent;font:700 13px Manrope,sans-serif;color:var(--muted);cursor:pointer}
.kf-chip[aria-pressed="true"]{border-color:var(--cu-line);color:var(--fg);background:var(--cu-soft)}
.kf-chip:hover{color:var(--fg)}

.kf-carriers{background:var(--s1);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px}
.kf-carriers-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.kf-carriers-head h3,.kf-carriers-head h2{font-size:15px;margin:0}
.kf-carriers-head p{margin:0;font-size:13px;color:var(--muted)}
.kf-brush{display:flex;align-items:center;gap:8px;margin:12px 0 14px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.kf-brush button{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px 0 6px;border-radius:999px;border:1px solid var(--line2);background:var(--s2);cursor:pointer;font:700 13px Manrope,sans-serif;color:var(--fg)}
.kf-brush button i{width:20px;height:20px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.kf-brush button[aria-pressed="true"]{border-color:var(--cu);box-shadow:0 0 0 1px var(--cu)}
.kf-crow{display:grid;grid-template-columns:72px repeat(12,minmax(0,1fr));gap:6px;align-items:center}
.kf-crow + .kf-crow{margin-top:8px}
.kf-lbl{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--muted);line-height:1.2}
.kf-lbl small{display:block;font-weight:600;letter-spacing:0;color:var(--muted2);font-size:11px}
.kf-cb{aspect-ratio:1;max-width:100%;border-radius:50%;border:0;cursor:pointer;position:relative;padding:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22),0 0 0 2px var(--s1);transition:transform .1s}
.kf-cb:hover{transform:scale(1.12)}
.kf-cb span{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--kf-mono);font-size:10px;font-weight:700;mix-blend-mode:difference;color:#fff;opacity:.75}
@media (max-width:520px){.kf-crow{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px 12px}.kf-lbl{grid-column:1/-1}.kf-cb{width:100%;max-width:46px;justify-self:center}.kf-cb span{font-size:11px}.kf-crow + .kf-crow{margin-top:14px}}

.kf-steps{display:grid;gap:16px;min-width:0}
.kf-step{background:var(--s1);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px}
.kf-step-h{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.kf-step-h b{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--cu-soft);color:var(--cu);font-family:var(--kf-mono);font-size:13px;border:1px solid var(--cu-line)}
.kf-step-h h2{font-size:17px;margin:0}
.kf-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:460px){.kf-fields{grid-template-columns:1fr}}
.kf-fld label{display:block;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.kf-fld select,.kf-fld input{width:100%;height:46px;padding:0 12px;border-radius:var(--r);border:1px solid var(--line2);background:var(--s2);font:600 15px Manrope,sans-serif;color:var(--fg)}
.kf-hint{margin:6px 0 0;font-size:13px;color:var(--muted2)}

.kf-seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kf-seg button{height:46px;border-radius:var(--r);border:1px solid var(--line2);background:var(--s2);font:700 14px Manrope,sans-serif;color:var(--fg);cursor:pointer}
.kf-seg button small{font-family:var(--kf-mono);color:var(--muted);font-weight:500;margin-left:6px}
.kf-seg button[aria-pressed="true"]{border-color:var(--cu);background:var(--cu-soft)}

.kf-schemes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.kf-sch[data-id="KX"]{grid-column:1/-1;grid-template-columns:minmax(0,200px) 1fr;grid-template-rows:auto auto;align-content:center;column-gap:14px;row-gap:2px}
.kf-sch[data-id="KX"] canvas{grid-row:1/3;grid-column:1}
.kf-sch[data-id="KX"] b{align-self:end;grid-column:2}
.kf-sch[data-id="KX"] small{align-self:start;grid-column:2}
@media (max-width:520px){.kf-schemes{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kf-sch{display:grid;gap:6px;text-align:left;padding:8px 8px 10px;border-radius:var(--r);border:1px solid var(--line2);background:var(--s2);cursor:pointer;color:var(--fg);font-family:Manrope,sans-serif}
.kf-sch canvas{width:100%;height:auto;aspect-ratio:160/56;display:block;border-radius:4px;background:#141414}
.kf-sch b{font-size:13.5px;line-height:1.25;padding-inline:2px}
.kf-sch small{font-family:var(--kf-mono);font-size:11px;color:var(--muted);padding-inline:2px}
.kf-sch[aria-pressed="true"]{border-color:var(--cu);box-shadow:0 0 0 1px var(--cu);background:var(--cu-soft)}
.kf-sch-note{margin:12px 0 0;font-size:14px;color:var(--muted)}

.kf-slots{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.kf-slot{display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border-radius:999px;border:1px solid var(--line2);background:var(--s2);cursor:pointer;min-width:0;color:var(--fg);font-family:Manrope,sans-serif}
.kf-slot i{flex:none;width:28px;height:28px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.kf-slot span{display:grid;line-height:1.2;text-align:left}
.kf-slot span small{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.kf-slot span b{font-size:13.5px;font-weight:700}
.kf-slot[aria-pressed="true"]{border-color:var(--cu);box-shadow:0 0 0 1px var(--cu)}
.kf-pal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px 8px}
.kf-sw{display:grid;justify-items:center;gap:4px;border:0;background:none;padding:0;cursor:pointer;color:var(--fg)}
.kf-sw i{width:100%;max-width:42px;aspect-ratio:1;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);transition:transform .1s}
.kf-sw:hover i{transform:scale(1.08)}
.kf-sw small{font-family:var(--kf-mono);font-size:11px;color:var(--muted)}
.kf-sw[aria-checked="true"] i{box-shadow:0 0 0 2px var(--s1),0 0 0 4px var(--cu)}
.kf-sw[aria-checked="true"] small{color:var(--cu)}
.kf-swname{margin:14px 0 0;font-size:14px;color:var(--muted)}
.kf-swname b{color:var(--fg)}

.kf-order{border-color:var(--cu-line);background:linear-gradient(var(--cu-soft),transparent 60%),var(--s1)}
.kf-codebox{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap}
.kf-code{flex:1 1 260px;min-width:0;font-family:var(--kf-mono);font-size:clamp(15px,1.7vw,19px);font-weight:700;padding:14px 16px;border-radius:var(--r);background:#0b0b0b;border:1px solid var(--line2);overflow-wrap:anywhere;user-select:all;letter-spacing:.02em}
.kf-p-mat{color:var(--fg)}.kf-p-dim{color:var(--muted2)}.kf-p-cu{color:var(--cu-2)}
.kf-codebox .btn,.kf-actions .btn{height:48px;padding:0 20px;font-size:13px}
.kf-toast{min-height:20px;margin:8px 0 0;font-size:13px;color:var(--ok)}
.kf-spec{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 18px;margin:16px 0 0;font-size:14.5px}
.kf-spec dt{color:var(--muted)}
.kf-spec dd{margin:0;font-weight:600;min-width:0;overflow-wrap:anywhere}
.kf-dots{display:inline-flex;gap:4px;vertical-align:-3px;margin-right:6px}
.kf-dots i{width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.kf-mono{font-family:var(--kf-mono);font-size:13px;font-weight:500}
.kf-avail{display:inline-flex;align-items:center;gap:8px}
.kf-avail::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--st,var(--ok))}
.kf-qty{display:flex;align-items:end;gap:14px;margin-top:18px;flex-wrap:wrap}
.kf-qty .kf-fld{flex:0 1 160px}
.kf-qty .kf-hint{margin:0 0 12px}
.kf-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.kf-contact{margin:16px 0 0;font-size:14px;color:var(--muted)}
.kf-contact b{color:var(--fg);white-space:nowrap}

.kf-dec-help{margin:0 0 12px;font-size:14px;color:var(--muted)}
.kf-row{display:flex;gap:8px;flex-wrap:wrap;align-items:stretch}
.kf-decode textarea{flex:1 1 240px;min-width:0;min-height:48px;padding:12px;border-radius:var(--r);border:1px solid var(--line2);background:var(--s2);font-family:var(--kf-mono);font-size:14px;color:var(--fg);resize:vertical}
.kf-row .btn{height:48px;padding:0 20px;font-size:13px}
.kf-dec-ex{margin:10px 0 0;font-size:13px;color:var(--muted2)}
.kf-ex{border:0;background:none;padding:0;font-family:var(--kf-mono);font-size:12.5px;color:var(--cu-2);cursor:pointer;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere;text-align:left}
.kf-err{margin:10px 0 0;font-size:14px;min-height:20px;color:var(--bad)}
.kf-err.kf-ok{color:var(--ok)}
.kf-legend{margin:18px 0 0;font-size:13px;color:var(--muted2);line-height:1.6}
.kf-legend code{font-family:var(--kf-mono);color:var(--muted);font-size:12.5px}
@media (prefers-reduced-motion:reduce){.kf-cb,.kf-sw i{transition:none}}

/* мобильная версия: рукав прилипает к верху, блоки идут по порядку работы */
@media (max-width:980px){
  .kf-grid{display:flex;flex-direction:column;align-items:stretch;gap:16px}
  .kf-stage,.kf-steps{display:contents}
  .kf-viewer{position:sticky;top:73px;z-index:5;order:1}
  .kf-viewer-top{padding:8px 14px}
  .kf-s-mat{order:2}
  .kf-s-sch{order:3}
  .kf-carriers{order:4}
  .kf-colors{order:5}
  .kf-order{order:6}
  .kf-s-dec{order:7}
}

/* низкие экраны (телефон в горизонтальном положении, небольшое окно): ничего не прилипает */
@media (max-width:980px) and (max-height:620px){.kf-viewer{position:static}}
@media (min-width:981px) and (max-height:720px){.kf-stage{position:static}}

/* ссылки на стандартную оплётку */
.kf-std{margin:14px 0 0;font-size:15px;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.kf-std-links{display:inline-flex;flex-wrap:wrap;gap:8px}
.kf-std-links a{display:inline-flex;align-items:center;height:32px;padding:0 13px;border:1px solid var(--line2);border-radius:999px;font-weight:700;font-size:13px;color:var(--fg);text-decoration:none;transition:border-color .15s,color .15s}
.kf-std-links a:hover{border-color:var(--cu);color:var(--cu)}
.kf-back{margin-top:12px;padding:0;border:0;background:none;font:700 14px Manrope,sans-serif;color:var(--cu);cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:3px}
.kf-back:hover{color:var(--cu2,var(--cu))}
.kf-back[hidden],.kf-catlink[hidden]{display:none}
.kf-catlink{margin:12px 0 0;font-size:14px;color:var(--muted)}
.kf-catlink a{color:var(--cu);text-underline-offset:3px}
