:root{
  --ink:#23202b; --muted:#6f6a80; --line:#e4e1ee; --bg:#fbfaff; --card:#fff;
  --accent:#e20074; --accent-ink:#b0005c; --ok:#177245; --warn:#9a6a00; --bad:#b3261e;
  --chip:#f1eefc;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans KR",sans-serif;background:var(--bg);color:var(--ink)}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1rem;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}
.brand-mark{background:var(--accent);color:#fff;font-weight:800;border-radius:.45rem;padding:.15rem .5rem;letter-spacing:.04em}
.brand-name{font-weight:700}
.brand-sub{color:var(--muted);font-size:.9rem}
.top-actions{display:flex;align-items:center;gap:.6rem}
.whoami{color:var(--muted);font-size:.9rem}
main{max-width:1060px;margin:0 auto;padding:1rem}
.foot{max-width:1060px;margin:0 auto;padding:1rem;color:var(--muted);font-size:.85rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:.8rem;padding:1rem;margin-bottom:1rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.stat{font-size:1.7rem;font-weight:800}
.stat-label{color:var(--muted);font-size:.88rem}
label{display:block;font-size:.88rem;font-weight:600;margin:.55rem 0 .25rem}
input,select,textarea{width:100%;padding:.55rem .6rem;border:1px solid var(--line);border-radius:.5rem;font:inherit;background:#fff}
textarea{resize:vertical}
.btn{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:.55rem;padding:.55rem .95rem;font:inherit;font-weight:600;cursor:pointer}
.btn.ghost{background:transparent;color:var(--accent-ink);border-color:var(--line)}
.btn.small{padding:.35rem .6rem;font-size:.88rem}
.btn:disabled{opacity:.5;cursor:default}
.hidden{display:none !important}
.muted{color:var(--muted)}
.error{background:#fdecea;color:var(--bad);border:1px solid #f5c6c2;border-radius:.55rem;padding:.6rem .8rem;margin:.6rem 0}
.success{background:#e8f5ee;color:var(--ok);border:1px solid #bfe6cf;border-radius:.55rem;padding:.6rem .8rem;margin:.6rem 0}
.warnbox{background:#fff7e0;border:1px solid #eed9a0;border-radius:.55rem;padding:.6rem .8rem;margin:.6rem 0;font-size:.92rem}
.guidebox{background:var(--chip);border:1px solid var(--line);border-radius:.55rem;padding:.7rem .9rem;margin:.7rem 0;font-size:.94rem}
.guidebox h4{margin:.1rem 0 .4rem}
.tabs{display:flex;gap:.4rem;margin-bottom:1rem;flex-wrap:wrap}
.tab{border:1px solid var(--line);background:var(--card);border-radius:2rem;padding:.45rem .95rem;cursor:pointer;font:inherit;font-weight:600}
.tab.active{background:var(--accent);border-color:var(--accent);color:#fff}
table{width:100%;border-collapse:collapse;font-size:.93rem}
th,td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}
.chip{display:inline-block;background:var(--chip);border-radius:2rem;padding:.1rem .55rem;font-size:.8rem;font-weight:700}
.st-Received{background:#eef}.st-Processing{background:#fff3cd}.st-Activated{background:#d9f0e2}.st-Cancelled{background:#f3d9d7}
.st-Hold{background:#ffe0b2}.st-Invalid{background:#e8ddf7}
.st-Pending{background:#fff3cd}.st-Approved{background:#d9f0e2}.st-Rejected{background:#f3d9d7}
.typechip{background:var(--ink);color:#fff;letter-spacing:.03em}
.stat-pending{border:2px solid var(--accent);background:#fff0f7}
.stat-pending .stat{color:var(--accent-ink)}
.filterbar{display:flex;gap:.6rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:.6rem}
.filterbar .grow{flex:1;min-width:200px}
.filterbar label{margin-top:0}
.noteline{background:#fff7e0;border:1px solid #eed9a0;border-radius:.55rem;padding:.45rem .7rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
@media (max-width:640px){.row2{grid-template-columns:1fr}}
.linebox{border:1px solid var(--line);border-radius:.7rem;padding:.8rem;margin:.7rem 0;background:#fff}
.flex{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.right{margin-left:auto}
h2{margin:.2rem 0 .7rem} h3{margin:.4rem 0 .5rem}
.small{font-size:.86rem}
.mono{font-family:ui-monospace,Menlo,monospace;font-size:.9em}

/* ---------- Phase B: operator console (full width, dark theme) ----------
   Applied only when an operator is signed in (body.ops). Dealer pages keep
   the light theme and comfortable width above. */
body.ops{background:#14131b;color:#eceaf4}
body.ops main{max-width:none}
body.ops .foot{max-width:none;color:#a49ec0}
body.ops .topbar{background:#1a1826;border-bottom-color:#35324a}
body.ops .whoami{color:#a49ec0}
body.ops .card{background:#1d1b28;border-color:#35324a;color:#eceaf4}
body.ops input,body.ops select,body.ops textarea{background:#12111a;color:#eceaf4;border-color:#3a3752}
body.ops .tab{background:#1d1b28;color:#eceaf4;border-color:#35324a}
body.ops .tab.active{background:var(--accent);border-color:var(--accent);color:#fff}
body.ops .muted{color:#a49ec0}
body.ops .linebox{background:#221f31;border-color:#35324a}
body.ops .btn.ghost{color:#f0a8cd;border-color:#3a3752}
body.ops .chip{color:#23202b}
body.ops .typechip{background:var(--accent);color:#fff}
body.ops .stat-pending{border:2px solid var(--accent);background:#2b1523}
body.ops .stat-pending .stat{color:#ff5da2}
body.ops .guidebox{background:#262338}
body.ops th,body.ops td{border-bottom-color:#35324a}

/* Dense work table: one row per line, sticky header, horizontal scroll. */
.tablewrap{overflow:auto;max-height:78vh;border:1px solid var(--line);border-radius:.6rem}
body.ops .tablewrap{border-color:#35324a}
table.worktable{font-size:.82rem;min-width:1180px}
.worktable th,.worktable td{padding:.32rem .45rem;vertical-align:middle;white-space:nowrap}
.worktable thead th{position:sticky;top:0;background:#fff;z-index:2;text-align:left}
body.ops .worktable thead th{background:#262338;color:#eceaf4}
.worktable .cellin{width:auto;padding:.3rem .4rem;font-size:.85rem}
.worktable .mdnin{width:132px}
.worktable .trackin{width:320px}
.worktable .memoin{width:340px}
.worktable input[type="checkbox"]{width:auto}
.tasklink{background:none;border:none;padding:0;color:inherit;font:inherit;font-weight:700;cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.worktable tr.detailrow td{background:#f6f4ff;white-space:normal}
body.ops .worktable tr.detailrow td{background:#262338}
.detailgrid{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end}
.detailgrid .grow{flex:1;min-width:220px}
.detailgrid label{margin-top:0}
.detailmeta{align-self:center;padding-bottom:.45rem}
