/* =====================================================================
   늘해랑리조트 KEYCARD — 리조트 키카드 문법 (Claude Design 시안 기준)
   카드 재질 = 멤버십 등급(프렌즈 흰색 · 실버 은색 · 골드 금색 · 플래티넘 검정) · 도어 태그 = 객실 상태 · 채널 글자 = 예약 채널 · ◆ = 회원권
   본문 = Pretendard · 큰 숫자·제목 = DM Serif Display · 번호 = IBM Plex Mono
   ===================================================================== */
:root{--bg:#EEEBE5;--panel:#FFFFFF;--panel2:#F6F4F0;--ink:#1A1A1C;--ink2:#66625C;--ink3:#ADA79F;--line:#E1DCD3;--accent:#0F6E6A;--accentSoft:#DCEEEC;--accentText:#FFFFFF;--btn:#1A1A1C;--btnText:#FFFFFF;--onFill:#FFFFFF;--ok:#2B8550;--okSoft:#DFF0E5;--warn:#B07A0C;--warnSoft:#F6EBCF;--risk:#C8302A;--riskSoft:#F8DEDB;--stop:#6E7079;--stopSoft:#E7E7EA;--r1:#2F5DA8;--r2:#7A52AA;--r3:#C98A12;--r4:#1C8792;--r5:#2E8B57;--r6:#C2362B;--c1:#0F6E6A;--c2:#4E6E9E;--c3:#9A6A1E;--c4:#B4436A;--c5:#5E6B2A;--rad:16px}
html.t-kc,html.t-kc body{--font:'Pretendard Variable',Pretendard,system-ui,sans-serif;--cond:'DM Serif Display',Georgia,serif;--mono:'IBM Plex Mono',ui-monospace,monospace;
  --text:var(--ink);--surface:var(--panel);--surface-2:var(--panel2);--border:var(--line);--border-strong:var(--ink3);--muted:var(--ink2);--primary:var(--btn);--primary-ink:var(--btnText);
  --primary-soft:var(--accentSoft);--danger:var(--risk);--radius:var(--rad);--radius-sm:8px;--shadow:none;--th-bg:var(--panel);--th-color:var(--ink2);
  --tone-green:var(--ok);--tone-green-bg:var(--okSoft);--tone-red:var(--risk);--tone-red-bg:var(--riskSoft);--tone-amber:var(--warn);--tone-amber-bg:var(--warnSoft);
  --tone-blue:var(--accent);--tone-blue-bg:var(--accentSoft);--tone-gray:var(--stop);--tone-gray-bg:var(--stopSoft);--tone-violet:var(--r2);--tone-violet-bg:var(--panel2);
  --tone-teal:var(--r4);--tone-teal-bg:var(--panel2);--tone-rose:var(--c4);--tone-rose-bg:var(--panel2)}
html.t-kc body{margin:0;line-height:normal;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:13px;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
.t-kc *{box-sizing:border-box}
.t-kc a{color:var(--accent);text-decoration:none}.t-kc a:hover{color:var(--ink)}
.t-kc button,.t-kc input,.t-kc select,.t-kc textarea{font-family:inherit;color:inherit}
.t-kc input::placeholder,.t-kc textarea::placeholder{color:var(--ink3)}
.t-kc input[type=range]{accent-color:var(--accent)}
.t-kc button{cursor:pointer}.t-kc button:disabled{cursor:not-allowed;opacity:.45}
.t-kc input:focus,.t-kc select:focus,.t-kc textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}
.t-kc [data-href],.t-kc [data-g],.t-kc [data-post]{cursor:pointer}
.t-kc button[data-href]:hover,.t-kc button[data-g]:hover,.t-kc button[data-post]:hover,.t-kc tr[data-href]:hover td{filter:brightness(.97)}
.mono{font-family:var(--mono)}.dim{color:var(--ink2)}.cond{font-family:var(--cond)}

/* ---------- 틀 : 머리띠 · 계기판 띠 · 왼쪽 화면 목록 */
.kc-app{min-height:100vh;display:grid;grid-template-columns:200px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);background:var(--bg);color:var(--ink)}
.kc-hd{grid-column:1/-1;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.kc-top{display:flex;align-items:center;gap:14px;padding:9px 16px;flex-wrap:wrap}
.kc-logo{display:flex;align-items:center;gap:10px;padding-right:14px;border-right:1px solid var(--line);color:var(--ink)!important}
.kc-logo .dial{width:30px;height:30px;border-radius:50%;border:2px solid var(--ink);position:relative;flex:none}
.kc-logo .dial i{position:absolute;left:50%;top:50%;width:2px;height:11px;margin-left:-1px;margin-top:-11px;background:var(--accent);transform-origin:50% 100%;transform:rotate(48deg)}
.kc-logo .dial b{position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--ink)}
.kc-logo>span:last-child{display:flex;flex-direction:column}.kc-logo>span:last-child>b{font-family:var(--cond);font-weight:700;font-size:17px;letter-spacing:.14em;line-height:1}
.kc-logo em{font-kcyle:normal;color:var(--accent)}.kc-logo small{font-size:10.5px;color:var(--ink2);margin-top:2px}
.kc-grp{display:flex;align-items:center;gap:6px}.kc-grp .lb{font-family:var(--cond);font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--ink2)}
.kc-sel{height:28px;border:1px solid var(--line);background:var(--panel2);font-size:12px;padding:0 6px;border-radius:8px;max-width:200px;color:var(--ink)}
.kc-ob{height:28px;padding:0 10px;border:1px solid var(--line);border-radius:8px;color:var(--ink)!important;font-size:11.5px;font-weight:700;display:inline-flex;align-items:center;white-space:nowrap}
.kc-sites{display:flex;align-items:center;gap:3px;padding:3px;border-radius:10px;background:var(--panel2);border:1px solid var(--line);flex-wrap:wrap}
.kc-sites a{height:24px;padding:0 8px;border-radius:7px;font-size:11px;font-weight:700;white-space:nowrap;display:flex;align-items:center;gap:4px}
.kc-sites a span{font-family:var(--cond);font-size:11.5px;letter-spacing:.04em}
.kc-sp{flex:1}
.kc-goto{display:flex;align-items:center;height:28px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel2);margin:0}
.kc-goto span{padding:0 8px;font-size:11px;font-weight:700;color:var(--ink2);border-right:1px solid var(--line);height:100%;display:flex;align-items:center;white-space:nowrap}
.kc-goto input{width:100px;border:0;background:transparent;padding:0 8px;font-family:var(--mono);font-size:12px;outline:none;color:var(--ink)}
.kc-q{margin:0}.kc-q input{height:28px;width:210px;border:1px solid var(--line);background:var(--panel2);padding:0 10px;font-size:12px;outline:none;border-radius:8px;color:var(--ink)}
.kc-chips{display:flex;align-items:center;gap:4px}
.kc-chips .db-chip{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);padding:0;position:relative;overflow:hidden}
.kc-chips .db-chip span{position:absolute;left:3px;right:3px;bottom:3px;height:5px;border-radius:3px}
.kc-chips .db-chip.on{border-color:var(--accent)}
.kc-user{position:relative;display:flex;align-items:center}.kc-user>button{display:flex;align-items:center;border:0;background:transparent;padding:0}
.kc-user .av{width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--panel);display:grid;place-items:center;font-size:11px;font-weight:800}
.a-pop{display:none;position:absolute;right:0;top:36px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 30px rgba(0,0,0,.18);padding:6px;z-index:40;min-width:180px;color:var(--ink)}
.a-pop.open{display:block}.a-pop button{width:100%;height:30px;border:0;background:transparent;color:var(--ink);text-align:left;padding:0 10px;font-weight:700;border-radius:8px}
.a-pop .more{max-height:60vh;overflow:auto;border-top:1px solid var(--line);margin-top:4px;padding-top:4px;min-width:200px}
.a-pop .more b{display:block;padding:8px 10px 2px;font:700 11px/1 var(--cond);letter-spacing:.1em;color:var(--ink3)}
.a-pop .more a{display:block;padding:5px 12px;font-size:12.5px;font-weight:600;color:var(--ink)!important;border-radius:6px}.a-pop .more a.on,.a-pop .more a:hover{background:var(--accentSoft)}
.kc-strip{display:flex;align-items:center;gap:16px;padding:6px 16px;border-top:1px solid var(--line);background:var(--panel2);font-size:11.5px;flex-wrap:wrap}
.kc-strip .tm{font-family:var(--cond);font-weight:700;font-size:14px;letter-spacing:.08em}.kc-strip b{color:var(--ink)}
.kc-strip .lps{display:flex;gap:4px}.kc-strip .r{margin-left:auto}
.kc-strip .cur{font-family:var(--cond);font-weight:700;font-size:13px;letter-spacing:.06em;color:var(--accent)}
.lp{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px 0 6px;border-radius:5px;font-size:10.5px;font-weight:700;border:1px solid}
.lp i{width:7px;height:7px;border-radius:50%}
.lp.risk{background:var(--riskSoft);color:var(--risk);border-color:var(--risk)}.lp.risk i{background:var(--risk);box-shadow:0 0 6px var(--risk)}
.lp.warn{background:var(--warnSoft);color:var(--warn);border-color:var(--warn)}.lp.warn i{background:var(--warn);box-shadow:0 0 6px var(--warn)}
.lp.ok{background:var(--okSoft);color:var(--ok);border-color:var(--ok)}.lp.ok i{background:var(--ok);box-shadow:0 0 6px var(--ok)}
.kc-nav{background:var(--panel);border-right:1px solid var(--line);padding:8px 10px 20px;align-self:stretch}
.kc-nav .gh{padding:14px 8px 6px;font-family:var(--cond);font-size:11px;color:var(--ink3);font-weight:700;letter-spacing:.14em}
.kc-nav a{display:flex;align-items:center;gap:9px;width:100%;border-radius:9px;padding:7px 8px;text-align:left;color:var(--ink)!important;margin-bottom:2px}
.kc-nav a .cd{min-width:30px;height:22px;border-radius:5px;border:1px solid;font-family:var(--cond);font-weight:700;font-size:12.5px;letter-spacing:.04em;display:flex;align-items:center;justify-content:center}
.kc-nav a .nm{font-size:12.5px;line-height:1.25}.kc-nav a:hover{background:var(--panel2)!important}
.kc-legend{margin:18px 6px 0;padding:10px;border-radius:10px;background:var(--panel2);font-size:10.5px;line-height:1.7;color:var(--ink2)}
.kc-legend b{display:block;font-family:var(--cond);font-weight:700;letter-spacing:.1em;color:var(--ink);margin-bottom:2px}
.kc-main{padding:20px 24px 48px;min-width:0}

/* ---------- 칠하는 입력 (라디오 · 체크박스 → 칩) */
label.kc-mark{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--ink);white-space:nowrap;user-select:none}
label.kc-mark input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
label.kc-mark.on{background:var(--ink);color:var(--panel);border-color:var(--ink)}
label.kc-mark.acc.on{background:var(--accent);border-color:var(--accent);color:var(--accentText)}
label.kc-mark:focus-within{outline:2px solid var(--accent);outline-offset:1px}

/* ---------- 알림 띠 (오른쪽 아래 · 시안 toast) */
.a-toasts{position:fixed;right:24px;bottom:24px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:80;max-width:calc(100vw - 32px)}
.a-toast{display:flex;gap:10px;align-items:center;background:var(--ink);color:var(--panel);padding:12px 16px;border-radius:10px;font-size:13px;font-weight:600;box-shadow:0 12px 30px rgba(0,0,0,.3);transition:opacity .3s,transform .3s}
.a-toast>i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok);flex:none}
.a-toast.error>i{background:var(--risk);box-shadow:0 0 8px var(--risk)}.a-toast.warning>i{background:var(--warn);box-shadow:0 0 8px var(--warn)}
.a-toast .k{font-family:var(--cond);font-size:11.5px;letter-spacing:.1em;opacity:.7;flex:none}
.a-toast button{border:0;background:transparent;color:var(--panel);opacity:.7;font-size:16px}.a-toast.out{opacity:0;transform:translateY(8px);pointer-events:none}

/* ---------- 처리 팝업 (시안 modal) */
dialog.a-modal{border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--ink);padding:0;width:min(480px,calc(100vw - 32px));box-shadow:0 30px 70px rgba(0,0,0,.35);max-height:90vh;overflow:auto}
dialog.a-modal::backdrop{background:rgba(6,8,12,.5)}
.a-modal .bar{height:4px;background:var(--accent)}.a-modal.rsn .bar{background:var(--warn)}.a-modal.danger .bar{background:var(--risk)}
.a-modal-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px 4px}
.a-modal-h b{font-size:15px;font-weight:800}.a-modal-h small{font-family:var(--cond);font-size:11.5px;letter-spacing:.12em;color:var(--ink2)}
.a-modal-b{padding:6px 18px 4px;display:flex;flex-direction:column;gap:10px;font-size:13px;line-height:1.65}
.a-modal-b .sub{font-family:var(--cond);font-size:11.5px;letter-spacing:.1em;color:var(--ink2);display:none}
.a-modal-b .desc{color:var(--ink2);text-wrap:pretty}
.a-modal-b .box{padding:8px 10px;background:var(--panel2);border-radius:8px;font-weight:700;color:var(--ink)}
.a-modal-b .lns,.a-modal-b .flds{display:flex;flex-direction:column;gap:8px}.a-modal-b .flds:empty{display:none}
.a-modal-b .ln{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.a-modal-b .ln span{color:var(--ink2)}.a-modal-b .ln b{text-align:right}
.a-modal-b .fld,.a-modal-b .rsn{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;color:var(--ink)}.a-modal-b .rsn em{font-kcyle:normal;color:var(--risk)}
.a-modal-b textarea,.a-modal-b input:not([type=hidden]):not([type=checkbox]),.a-modal-b select{width:100%;border:1px solid var(--line);background:var(--panel2);color:var(--ink);padding:9px;font-size:12.5px;border-radius:8px}
.a-modal-b input:not([type=hidden]),.a-modal-b select{height:34px;padding:0 10px}.a-modal-b textarea{resize:vertical}
.a-modal-b .err input,.a-modal-b .err select,.a-modal-b .err textarea{border:1.5px solid var(--risk);background:var(--riskSoft)}
.a-lbl{font-size:11px;font-weight:700;color:var(--ink)}
.a-err{display:none;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;background:var(--riskSoft);border:1px solid var(--risk);color:var(--risk);font-size:12.5px;font-weight:700}
.a-err::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--risk);box-shadow:0 0 6px var(--risk);flex-shrink:0}
#a-modal-err{display:none}
.a-chiprow{display:flex;gap:4px;flex-wrap:wrap}.a-chiprow:empty{display:none}
.a-chiprow button{height:24px;padding:0 9px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);color:var(--ink);font-size:11px;font-weight:700}
.a-chiprow button:hover{background:var(--ink);border-color:var(--ink);color:var(--panel)}
.a-modal-f{display:flex;gap:6px;justify-content:flex-end;padding:16px 18px 18px}
.a-btn{height:32px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--ink);font-size:12px;font-weight:700}
.a-btn-ac{background:var(--btn);border-color:var(--btn);color:var(--btnText)}.a-btn-danger{background:var(--risk);border-color:var(--risk);color:var(--onFill)}

/* ---------- 공통 틀 (목록 · 상세 · 등록) */
.bp-sec{display:flex;flex-direction:column;gap:16px;max-width:1500px}
.bp-sec.narrow{max-width:1100px}
.bp-ph{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.bp-ph .kick{font-family:var(--cond);font-size:12px;font-weight:700;color:var(--accent);letter-spacing:.1em}
.bp-ph h1{margin:4px 0 0;font-size:22px;font-weight:800}
.bp-ph .acts,.acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.box{background:var(--panel);border:1px solid var(--line);border-radius:var(--rad);overflow:hidden}
.bb{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--ink)!important;font-size:12px;font-weight:700;white-space:nowrap;text-decoration:none}
.bb:hover:not(:disabled){filter:brightness(.97)}
.bb.p{background:var(--btn);color:var(--btnText)!important;border-color:var(--btn)}
.bb.r,.bb.ro{border-color:var(--risk);color:var(--risk)!important;background:transparent}
.bp-hl{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));background:var(--panel);border:1px solid var(--line);border-radius:var(--rad);overflow:hidden}
.bp-hl>*{padding:10px 14px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:2px;color:var(--ink)!important}.bp-hl>a:hover{background:var(--panel2)}
.bp-hl span{font-size:10.5px;color:var(--ink2)}.bp-hl b{font-family:var(--cond);font-size:28px;font-weight:700}.bp-hl small{font-size:11px;color:var(--ink2)}
.bp-hl .red b{color:var(--risk)}.bp-hl .amber b{color:var(--warn)}
.lhd{display:flex;gap:10px;padding:12px 16px 8px;align-items:center;font-size:12.5px;font-weight:700}.lhd .r{font-family:var(--cond);font-size:12px;letter-spacing:.06em;color:var(--ink2)}
.ltabs{display:flex;gap:3px;overflow-x:auto;flex:1;min-width:0;padding:3px;border-radius:10px;background:var(--panel2);border:1px solid var(--line)}
.ltabs a{flex:none;height:24px;padding:0 9px;display:flex;align-items:center;gap:5px;border-radius:7px;font-size:11px;font-weight:700;color:var(--ink)!important;white-space:nowrap}
.ltabs a.on{background:var(--ink);color:var(--panel)!important}.ltabs small{font-family:var(--cond);font-size:12px}
.a-filter{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel)}
.a-filter-l{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.a-in,.a-sel{height:30px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--ink);font-size:12px}
.a-in.q{min-width:220px}.a-chip{font-size:11px;padding:2px 8px;border:1px solid var(--line);border-radius:9px;font-weight:700}
.a-reset{font-size:11.5px;color:var(--accent)!important}
.a-period{display:flex;gap:4px}.a-period a{height:26px;padding:0 9px;display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:7px;font-size:11px;font-weight:700;color:var(--ink)!important}
.a-period a.on{background:var(--ink);color:var(--panel)!important;border-color:var(--ink)}
.a-bulk{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 16px;border-bottom:1px solid var(--line);font-size:12px;color:var(--ink2);flex-wrap:wrap;background:var(--panel)}
.a-bulk.on{background:var(--accentSoft);color:var(--ink)}
.a-bulk-acts{display:flex;gap:6px}.a-bulk-acts button{height:26px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:var(--panel2);font-size:11.5px;font-weight:700}
.a-bulk-acts button.danger{color:var(--risk);border-color:var(--risk)}
.scroll{overflow-x:auto;background:var(--panel)}
.a-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.a-tbl th{background:var(--panel);color:var(--ink2);font-size:10.5px;font-weight:600;text-align:left;padding:6px 10px;white-space:nowrap;border-bottom:1px solid var(--line)}
.a-tbl th a{color:var(--ink2)!important}.a-tbl td{padding:9px 10px;border-bottom:1px solid var(--line)}
.a-tbl .num{text-align:right}.a-tbl .a-no{font-weight:700;color:var(--ink)!important}
.a-tbl tr:hover td{background:var(--panel2)}.a-chk{accent-color:var(--accent)}
.a-tfoot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;font-size:11.5px;color:var(--ink2);flex-wrap:wrap;background:var(--panel)}
.a-pages{display:flex;gap:3px;align-items:center}
.a-pages a,.a-pages span{min-width:28px;height:28px;display:inline-grid;place-items:center;border-radius:7px;border:1px solid var(--line);font-family:var(--cond);font-size:13px;font-weight:700;color:var(--ink)!important}
.a-pages .cur{background:var(--ink);color:var(--panel)!important;border-color:var(--ink)}.a-pages .dis{opacity:.4}
.a-pages select{height:28px;margin-left:6px;border:1px solid var(--line);border-radius:7px;background:var(--panel2);color:var(--ink)}
.empty0{display:flex;flex-direction:column;align-items:center;gap:8px;padding:30px 16px;border:1px dashed var(--line);border-radius:var(--rad);background:var(--panel);color:var(--ink2);font-size:12px;text-align:center}
.empty0 .lamp3{display:flex;gap:6px}.empty0 .lamp3 i{width:12px;height:12px;border-radius:50%;background:var(--ink3)}.empty0 b{color:var(--ink);font-size:13px}
.t-kc .stack{display:flex;flex-direction:column;gap:16px}
.t-kc .card{background:var(--panel);border:1px solid var(--line);border-radius:var(--rad);box-shadow:none;overflow:hidden}
.t-kc .card-head{padding:12px 16px 8px;display:flex;justify-content:space-between;align-items:center}
.t-kc .card-title{font-size:12.5px;font-weight:700}.t-kc .card-body{padding:4px 16px 14px}
.t-kc .kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0}
.t-kc .kv-item{padding:8px 16px;display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;align-items:baseline;border-top:1px solid var(--line)}.t-kc .kv-item.full{grid-column:1/-1}
.t-kc .kv-label{font-size:10.5px;color:var(--ink2);margin:0}.t-kc .kv-value{font-size:13px;font-weight:600}
.t-kc .tbl-wrap{overflow-x:auto}
.t-kc .tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.t-kc .tbl th{background:var(--panel);color:var(--ink2);font-size:10.5px;font-weight:600;text-align:left;padding:6px 10px;height:auto;border:0;border-bottom:1px solid var(--line)}
.t-kc .tbl td{padding:8px 10px;height:auto;border-bottom:1px solid var(--line);border-top:0}.t-kc .tbl .num{text-align:right}
.t-kc .tbl a{color:var(--ink)!important;font-weight:700}
.t-kc .form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.t-kc .field{display:flex;flex-direction:column;gap:4px}.t-kc .field.full{grid-column:1/-1}
.t-kc .field-label{font-size:11px;font-weight:700}.t-kc .req{color:var(--risk);margin-left:2px}
.t-kc .field input:not([type=checkbox]),.t-kc .field select,.t-kc .field textarea{height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--ink);width:100%}
.t-kc .field textarea{height:auto;min-height:90px;padding:8px 10px}
.t-kc .field-err{color:var(--risk);font-size:11.5px;font-weight:700}.t-kc .help{color:var(--ink2);font-size:11px}
.t-kc .alert{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.t-kc .alert-error{border-color:var(--risk);color:var(--risk);background:var(--riskSoft)}
.t-kc .badge{border-radius:5px;font-weight:700;padding:0 7px;font-size:10.5px;height:20px;display:inline-flex;align-items:center}
.t-kc .muted{color:var(--ink2)}.t-kc .small{font-size:11.5px}.t-kc .strong{font-weight:800}.t-kc .empty{padding:20px;text-align:center;color:var(--ink2)}
.t-kc .act-bar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:10px 16px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--rad)}
.t-kc .act-bar form{display:contents}.t-kc .act-cap{font-family:var(--cond);font-size:12px;letter-spacing:.1em;color:var(--ink2);margin-right:6px}
.t-kc .stage-path{display:flex;gap:3px}.t-kc .stage-step{flex:1;padding:5px 6px;border-radius:7px;color:var(--ink3);font-size:11px;font-weight:700;text-align:center}
.t-kc .stage-step.done{color:var(--ink)}.t-kc .stage-step.current{background:var(--accent);color:var(--accentText)}
.t-kc .btn{height:32px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--ink)!important;font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:6px}
.t-kc .btn-primary{background:var(--btn);border-color:var(--btn);color:var(--btnText)!important}.t-kc .btn-danger{border-color:var(--risk);color:var(--risk)!important;background:transparent}
.t-kc .btn-sm{height:26px;padding:0 9px;font-size:11.5px}.t-kc .btn svg{width:13px;height:13px}
.t-kc .page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.t-kc .page-title{margin:4px 0 0;font-size:22px;font-weight:800}.t-kc .page-sub{color:var(--ink2);font-size:12px;margin:2px 0 0}
.t-kc .crumbs{display:flex;gap:6px;font-size:11.5px;color:var(--ink2)}.t-kc .crumbs a{color:var(--accent)!important}
.t-kc .page-actions{display:flex;gap:6px;flex-wrap:wrap}
.pcard{cursor:pointer}.pcard .on-t{display:none}.pcard.on .on-t{display:inline}.pcard.on .off-t{display:none}

/* ---------- 반응형 (태블릿 · 휴대폰 390px) */
.kc-main section[data-screen-label] td,.kc-main section[data-screen-label] th{white-space:nowrap}
.kc-main section[data-screen-label] td.wrap{white-space:normal}
@media (max-width:1100px){
  .kc-app{grid-template-columns:minmax(0,1fr)}
  .kc-nav{display:flex;overflow-x:auto;padding:4px 8px;border-right:0;border-bottom:1px solid var(--line);gap:2px;align-items:center}
  .kc-nav .gh,.kc-legend{display:none}
  .kc-nav a{width:auto;flex:none;padding:5px 8px;gap:5px;margin:0}
  .kc-hd{position:static}
}
@media (max-width:860px){
  .kc-top{gap:8px;padding:8px 12px}.kc-logo{border-right:0;padding-right:0}.kc-sp{display:none}
  .kc-goto,.kc-q{flex:1 1 100%;min-width:0}.kc-goto input{width:100%;min-width:0;flex:1}.kc-q input{width:100%}
  .kc-sites{width:100%;overflow-x:auto;flex-wrap:nowrap}.kc-sites a{flex:none}
  .kc-strip{gap:10px;padding:6px 12px}.kc-strip .r{margin-left:0}
  .kc-main{padding:12px 12px 32px}
  .kc-main section[data-screen-label]{grid-template-columns:minmax(0,1fr)!important}
  .kc-main section[data-screen-label] [style*="grid-template-columns:repeat(auto-fit,minmax(5"],
  .kc-main section[data-screen-label] [style*="grid-template-columns:repeat(auto-fit,minmax(4"],
  .kc-main section[data-screen-label] [style*="grid-template-columns:repeat(auto-fit,minmax(3"],
  .kc-main section[data-screen-label] [style*="grid-template-columns:repeat(auto-fit,minmax(2"],
  .kc-main section[data-screen-label] [style*="grid-template-columns:minmax(3"],
  .kc-main section[data-screen-label] [style*="grid-template-columns:minmax(2"],
  .kc-main section[data-screen-label] [style*="grid-template-columns:minmax(0,1."],
  .kc-main section[data-screen-label] [style*="grid-template-columns:minmax(0,2"],
  .kc-main section[data-screen-label] .kc-col2{grid-template-columns:minmax(0,1fr)!important}
  .kc-main section[data-screen-label] [style*="margin-left:auto"]{margin-left:0!important}
  .kc-main section[data-screen-label] [style*="position:sticky"]{position:static!important}
  .kc-main section[data-screen-label] [style*="display:flex"][style*="align-items:flex-end"]{flex-wrap:wrap}
  .bp-ph .acts{width:100%}.a-in.q{min-width:0;width:100%}
}
@media (max-width:860px){
  .kc-main section[data-screen-label] [style*="display:flex;gap:16px;align-items:center"],
  .kc-main section[data-screen-label] [style*="display:flex;gap:24px"],
  .kc-main section[data-screen-label] [style*="border-radius:28px"]{flex-wrap:wrap;justify-content:center}
  .kc-main section[data-screen-label] [style*="border-radius:28px"]{padding:14px!important}
}


/* ---------- KEYCARD 머리띠 · 메뉴 */
.kc-hd{border-bottom:1px solid var(--line)}.kc-hd .band{height:5px;background:var(--ink)}
.kc-logo{border-right:0;padding-right:4px}
.kc-logo .card{width:38px;height:24px;border-radius:5px;background:linear-gradient(135deg,#2A2B2E,#0F1012);position:relative;overflow:hidden;flex:none}
.kc-logo .card::after{content:"";position:absolute;left:0;right:0;top:6px;height:4px;background:#D8B46A}
.kc-logo>span:last-child>b{font-family:var(--cond);font-weight:400;font-size:18px;letter-spacing:0;line-height:1}.kc-logo em{color:var(--accent)}
.kc-logo small{font-size:10px;letter-spacing:.06em}
.kc-ob{height:32px;padding:0 12px;border:1px solid var(--ink);border-radius:16px;font-weight:700;font-size:12px}
.kc-sites{padding:3px;border-radius:18px;background:var(--panel2);border:0;gap:3px}
.kc-sites a{height:26px;padding:0 11px;border-radius:13px;font-size:11.5px;color:var(--ink)!important}.kc-sites a.on{background:var(--ink);color:var(--panel)!important}
.kc-goto{height:32px;border-radius:16px}.kc-goto span{border-right:0}.kc-goto input{width:120px}
.kc-q input{height:32px;width:180px;border-radius:16px}
.kc-chips .db-chip{border-width:2px}.kc-chips .db-chip span{left:50%;top:50%;right:auto;bottom:auto;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%)}
.kc-chips .db-chip.on{border-color:var(--ink)}
.kc-sel{height:32px;border-radius:16px}
.kc-strip .dt{font-family:var(--mono);font-weight:600;font-size:12px;letter-spacing:.06em}
.kc-nav{padding:12px 10px 20px}
.kc-nav .gh{font-family:var(--font);font-size:10.5px;letter-spacing:.06em;font-weight:800;color:var(--ink3)}
.kc-nav a{gap:10px;border-radius:10px;padding:8px 10px}
.kc-nav a .kcard{width:20px;height:13px;border-radius:3px;background:var(--panel2);position:relative;overflow:hidden;flex-shrink:0;border:1px solid var(--line)}
.kc-nav a .kcard::after{content:"";position:absolute;left:0;right:0;top:3px;height:2px;background:var(--ink3)}
.kc-nav a.on{background:var(--ink)!important;color:var(--panel)!important}.kc-nav a.on .nm{font-weight:700}
.kc-nav a.on .kcard{background:#D8B46A}.kc-nav a.on .kcard::after{background:#1A1A1C}
.kc-nav .today{margin:16px 6px 0;padding:12px;border-radius:12px;background:var(--panel2);font-size:11px;line-height:1.75;color:var(--ink2)}.kc-nav .today b{color:var(--ink)}
@media (min-width:1101px){.kc-app{grid-template-columns:214px minmax(0,1fr)}}
@media (max-width:1100px){.kc-nav .today{display:none}}
/* 오늘 화면 키카드 부채 — 넓은 화면만 겹쳐 펼침 */
.kc-fan-m{display:none!important}
@media (min-width:1280px){.kc-hero{grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr)!important}}
@media (max-width:1279px){.kc-fan-d{display:none!important}.kc-fan-m{display:grid!important}}
/* 칩 입력 (등록 · 고객 묶음) */
label.kc-mark{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--ink);white-space:nowrap;user-select:none;border-radius:16px}
label.kc-mark input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
label.kc-mark.on{background:var(--ink);color:var(--panel);border-color:var(--ink)}
label.kc-mark:focus-within{outline:2px solid var(--accent);outline-offset:1px}
label.kc-mark.kc-chk,label.kc-mark.kc-chk.on{background:transparent;color:var(--ink);border:0;justify-content:flex-start}
label.kc-mark.kc-chk .ck{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--ink);background:var(--panel);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--panel);font-weight:800;font-size:12px}
label.kc-mark.kc-chk.on .ck{background:var(--ink)}
label.kc-mark.kc-chk.on .ck::after{content:"✓"}
.kc-main [style*="display:grid"]>*{min-width:0}
.kc-cell{cursor:pointer}.kc-cell.on{outline:2px solid var(--ink);outline-offset:1px}
