/* 색상 온도 변환기(color-temp) — 조명 부스. 작업면 컨테이너 ktw: 760 이하 한 열(무대 → 입력 → 결과), 680 이하 그림 두 개를 쌓음, 620 이하 LED 칸 4열.
   무대·uv 지도는 실제 빛 색 위라 글자·선은 테마와 상관없이 고정 잉크(#1d1b18) + 흰 테두리. */
.kt-work{container:ktw / inline-size}
.kt-work [data-for]{min-width:0}
.kt-work[data-mode="k"] [data-for="c"],.kt-work[data-mode="c"] [data-for="k"]{display:none!important}
.kt-head{align-items:center}
.kt-ref{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

.kt-main{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(0,1fr)}
.kt-left{display:flex;flex-direction:column;gap:12px;padding:16px 18px;min-width:0}
.kt-res{display:flex;flex-direction:column;gap:12px;padding:16px 18px;border-left:1px solid var(--soft);min-width:0}

/* ---------- 빛 무대 ---------- */
.kt-stage{position:relative;flex:1 0 auto;min-height:204px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--wash);color:#1d1b18}
.kt-lamp,.kt-src{position:absolute;top:0;bottom:0;transition:background-color .26s ease}
.kt-lamp{left:0;right:0}
.kt-lamp::after{content:"";position:absolute;inset:0;background:radial-gradient(115% 100% at 50% -12%,rgba(0,0,0,0) 42%,rgba(0,0,0,.2) 100%);pointer-events:none}
.kt-src{left:0;right:50%;display:none}
.kt-work[data-mode="c"] .kt-src{display:block}
.kt-work[data-mode="c"] .kt-lamp{left:50%}
.kt-work[data-mode="c"] .kt-lamp::after{background:linear-gradient(90deg,rgba(0,0,0,.08),rgba(0,0,0,0) 18%)}
.kt-work.is-empty .kt-lamp,.kt-work.is-empty .kt-src{background:var(--wash)!important}
.kt-work.is-empty .kt-stage{color:var(--muted)}
.kt-work.is-empty .kt-white{display:none}
.kt-stage.is-light .kt-read,.kt-src.is-light .kt-tag{color:#fff}
.kt-lamp:not([style*="background"]){background:repeating-linear-gradient(135deg,var(--wash) 0 8px,var(--paper) 8px 16px)}
.kt-tag{display:inline-block;font-family:var(--sans);font-size:11.5px;font-weight:650;letter-spacing:.02em;color:currentColor;opacity:.78}
.kt-src .kt-tag{position:absolute;left:14px;top:12px}
.kt-read{position:absolute;left:16px;right:16px;bottom:14px}
.kt-work[data-mode="c"] .kt-read{left:calc(50% + 14px)}
.kt-bigk{margin:2px 0 0;display:flex;align-items:baseline;gap:4px;font-family:var(--sans);font-variant-numeric:tabular-nums lining-nums;line-height:1}
.kt-bigk b{font-size:46px;font-weight:800;letter-spacing:-.02em}
.kt-bigk span{font-size:20px;font-weight:700}
.kt-sub{margin:6px 0 0;font-family:var(--mono);font-size:12.5px;opacity:.82;overflow-wrap:anywhere}
.kt-white{position:absolute;right:12px;top:12px;display:inline-flex;align-items:center;gap:6px;padding:3px 8px 3px 4px;border-radius:999px;background:rgba(255,255,255,.55);font-family:var(--sans);font-size:11.5px;font-weight:600}
.kt-white i{width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px rgba(29,27,24,.35)}

/* ---------- 입력 ---------- */
.kt-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.kt-kf .v2-input input{font-size:17px}
.kt-cin input[type=color]{flex:0 0 42px;width:42px;height:auto;padding:4px;border:0;border-left:1px solid var(--soft);background:none;cursor:pointer}
.kt-cin input:not([type=color]){text-align:left;font-family:var(--mono);font-size:14px}
.kt-acts{display:flex;flex-direction:column;gap:6px}
.kt-acts>div{display:flex;gap:6px}
.kt-acts .v2-btn{height:var(--v2-ctl,42px)}
.kt-strip{position:relative;padding-bottom:18px}
.kt-strip input[type=range]{-webkit-appearance:none;appearance:none;display:block;width:100%;height:30px;margin:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--kt-grad,var(--wash));cursor:pointer}
.kt-strip input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:38px;border:2px solid #1d1b18;border-radius:5px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.kt-strip input[type=range]::-moz-range-thumb{width:10px;height:34px;border:2px solid #1d1b18;border-radius:5px;background:#fff}
.kt-strip input[type=range]:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.kt-ticks{position:absolute;left:7px;right:7px;bottom:0;height:16px}
.kt-ticks span{position:absolute;top:2px;transform:translateX(-50%);font-family:var(--mono);font-size:10.5px;color:var(--muted);white-space:nowrap}
.kt-ticks span:first-child{transform:none}
.kt-ticks span:last-child{transform:translateX(-100%)}
.kt-quick{display:flex;flex-direction:column;gap:8px}
.kt-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.kt-chips .v2-label{flex:0 0 100%}
.kt-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px 0 8px;border:1px solid var(--soft);border-radius:var(--radius);background:var(--paper);font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;transition:background var(--ease),border-color var(--ease)}
.kt-chip:hover{background:var(--btn);border-color:var(--line)}
.kt-chip i{width:13px;height:13px;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}
.kt-cv{font-family:var(--mono);font-size:11.5px;font-weight:500;color:var(--muted)}
.kt-help{margin:0;font-family:var(--sans);font-size:12px;line-height:1.55;color:var(--muted)}

/* ---------- 결과 ---------- */
.kt-head2 .v2-label{display:block}
.kt-big{margin:4px 0 0;font-family:var(--sans);font-size:34px;font-weight:800;letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums lining-nums;line-height:1.1;white-space:nowrap}
.kt-verdict{margin:6px 0 0;font-family:var(--sans);font-size:13px;line-height:1.55;color:var(--ink)}
.kt-vals{margin:0;display:grid;grid-template-columns:max-content minmax(0,1fr)}
.kt-vals>div{display:grid;grid-template-columns:subgrid;grid-column:1/-1;align-items:center;gap:10px;min-height:34px;border-top:1px solid var(--soft)}
.kt-vals dt{font-family:var(--sans);font-size:12px;font-weight:600;color:var(--muted)}
.kt-vals dd{margin:0;display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.kt-vals code{font-family:var(--mono);font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kt-cp{flex:0 0 auto;display:inline-grid;place-items:center;width:26px;height:24px;padding:0;border:1px solid var(--soft);border-radius:var(--radius);background:var(--paper);font-family:var(--sans);font-size:11.5px;font-weight:600;color:var(--muted);cursor:pointer}
.kt-cp:hover{color:var(--ink);background:var(--btn)}
.kt-cp .i{width:13px;height:13px}
.kt-shift .v2-label{display:block;margin-bottom:4px}
.kt-shift ul{margin:0;padding:0;list-style:none}
.kt-shift li{display:grid;grid-template-columns:max-content max-content minmax(0,1fr);gap:10px;align-items:baseline;padding:4px 0;font-family:var(--sans);font-size:12.5px}
.kt-shift li span{font-family:var(--mono);color:var(--muted)}
.kt-shift li b{font-family:var(--mono);font-weight:700;color:var(--ink)}
.kt-shift li small{font-size:12px;color:var(--muted)}
.kt-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
.kt-btns .v2-btn:disabled{opacity:.45;cursor:default}

/* ---------- LED 공칭 색온도 ---------- */
.kt-bins{padding:14px 18px 16px;border-top:1px solid var(--soft)}
.kt-bh{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;margin:0 0 8px}
.kt-bn{font-family:var(--sans);font-size:12px;color:var(--muted)}
.kt-bl{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}
.kt-bl button{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;height:100%;padding:0 8px 7px;border:1px solid var(--soft);border-radius:var(--radius);background:var(--paper);text-align:left;cursor:pointer;overflow:hidden;transition:border-color var(--ease),background var(--ease)}
.kt-bl button:hover{border-color:var(--line)}
.kt-bl i{display:block;align-self:stretch;height:14px;margin:0 -8px 4px}
.kt-bl b{font-family:var(--sans);font-size:13.5px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.kt-bl small{font-family:var(--mono);font-size:10.5px;color:var(--muted);white-space:nowrap}
.kt-bl em{font-style:normal;font-family:var(--sans);font-size:11.5px;font-weight:600;color:var(--muted)}
.kt-mk{position:absolute;right:6px;top:0;font-family:var(--sans);font-size:11px;line-height:14px;font-weight:800;color:#1d1b18}
.kt-bl li.is-on button{border-color:var(--fill);box-shadow:inset 0 0 0 1px var(--fill);background:color-mix(in srgb,var(--wash) 70%,var(--paper))}
.kt-bl li.is-bad .kt-mk{color:#b3261e}

/* ---------- 그림 ---------- */
.kt-charts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-top:1px solid var(--soft)}
.kt-box{margin:0;padding:14px 18px 16px;min-width:0;display:flex;flex-direction:column;gap:8px}
.kt-box+.kt-box{border-left:1px solid var(--soft)}
.kt-box figcaption{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px}
.kt-leg{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:11.5px;color:var(--muted)}
.kt-leg i{display:inline-block;width:16px;height:0;border-top:2px solid var(--ink)}
.kt-leg i.d{border-top-style:dashed;margin-left:6px}
.kt-spec{min-height:170px}
.kt-spec svg{display:block;width:100%;height:auto}
.kt-spec .g{stroke:var(--soft)}
.kt-spec .base{stroke:var(--line)}
.kt-spec .ax{fill:var(--muted);font:11px var(--sans)}
.kt-spec .fill{opacity:.92}
.kt-spec .ln{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linejoin:round}
.kt-spec .ln2{fill:none;stroke:var(--ink);stroke-width:1.3;stroke-dasharray:4 3;opacity:.75}
.kt-spec .pk{stroke:var(--ink);stroke-width:1;stroke-dasharray:3 3}
.kt-spec .pkt{fill:var(--ink);font:600 11.5px var(--sans)}
.kt-map{position:relative;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;cursor:crosshair;line-height:0}
.kt-map canvas{display:block;width:100%;height:auto}
.kt-map svg{position:absolute;inset:0;width:100%;height:100%}
.kt-map .loc{fill:none;stroke:#1d1b18;stroke-width:1.8;stroke-linejoin:round}
.kt-map .day{fill:none;stroke:#1d1b18;stroke-width:1.2;stroke-dasharray:5 4}
.kt-map .band{fill:none;stroke:rgba(29,27,24,.5);stroke-width:1;stroke-dasharray:2 3}
.kt-map .iso{stroke:rgba(29,27,24,.35);stroke-width:1}
.kt-map .isot,.kt-map .side{fill:#1d1b18;font:600 10.5px var(--sans);paint-order:stroke;stroke:rgba(255,255,255,.8);stroke-width:3px;stroke-linejoin:round}
.kt-map .side{font-weight:500;text-anchor:middle}
.kt-map .pt{stroke:#1d1b18;stroke-width:2.2}
.kt-map .foot{fill:#1d1b18}
.kt-map .duv{stroke:#1d1b18;stroke-width:1.5;stroke-dasharray:3 2}

@container ktw (max-width:760px){
  .kt-main{grid-template-columns:minmax(0,1fr)}
  .kt-res{border-left:0;border-top:1px solid var(--soft)}
}
@container ktw (max-width:680px){
  .kt-charts{grid-template-columns:minmax(0,1fr)}
  .kt-box+.kt-box{border-left:0;border-top:1px solid var(--soft)}
}
@container ktw (max-width:720px){
  .kt-bl{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@container ktw (max-width:620px){
  .kt-ticks .mn{display:none}
}
@container ktw (max-width:420px){
  .kt-left,.kt-res,.kt-bins,.kt-box{padding-left:14px;padding-right:14px}
  .kt-stage{min-height:188px}
  .kt-bigk b{font-size:38px}
  .kt-big{font-size:28px}
}
@container v2in (max-width:330px){
  .kt-form{grid-template-columns:minmax(0,1fr)}
  .kt-acts>.v2-label{display:none}
}
@media (prefers-reduced-motion:reduce){.kt-lamp,.kt-src{transition:none}}
/* 본문 표 견본 */
.v2-article .kt-sw{display:inline-block;width:14px;height:14px;margin-right:6px;border-radius:3px;vertical-align:-2px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.22)}
