/* ============================================================
   デリヘル業務効率化ツール — styles.css（モック v17 全面移植 + 認証UI）
   ============================================================ */
:root{
  --bg:#f5f7f8;--surface:#fff;--surface-2:#eef2f4;--surface-3:#e5ebee;
  --ink:#171d23;--ink-2:#51606c;--ink-3:#8593a0;--line:#d8e0e5;--line-strong:#c2ccd3;
  --accent:#0c8a8f;--accent-ink:#0a6f73;--accent-soft:#d7edee;--blue:#2f7fe0;--blue-soft:#dde9fb;
  --good:#2c9c5b;--good-soft:#daf0e4;--warn:#c98416;--warn-soft:#f8ecd4;--crit:#d24444;--crit-soft:#f8dede;
  --shadow:0 1px 2px rgba(23,29,35,.06),0 6px 20px rgba(23,29,35,.07);
  --mono:ui-monospace,"SFMono-Regular",Consolas,Menlo,monospace;
  --jp:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","YuGothic","Meiryo",system-ui,sans-serif;
}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0e1318;--surface:#161d24;--surface-2:#1d262e;--surface-3:#243039;--ink:#e7edf1;--ink-2:#9aa8b4;--ink-3:#6c7c88;--line:#28333c;--line-strong:#35434e;
  --accent:#2cb7bb;--accent-ink:#7fd6d8;--accent-soft:#16323a;--blue:#5b9bf0;--blue-soft:#132539;--good:#43b673;--good-soft:#17322a;--warn:#e0a838;--warn-soft:#332a13;--crit:#e26060;--crit-soft:#3a2020;--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.4);
}}
:root[data-theme="dark"]{
  --bg:#0e1318;--surface:#161d24;--surface-2:#1d262e;--surface-3:#243039;--ink:#e7edf1;--ink-2:#9aa8b4;--ink-3:#6c7c88;--line:#28333c;--line-strong:#35434e;
  --accent:#2cb7bb;--accent-ink:#7fd6d8;--accent-soft:#16323a;--blue:#5b9bf0;--blue-soft:#132539;--good:#43b673;--good-soft:#17322a;--warn:#e0a838;--warn-soft:#332a13;--crit:#e26060;--crit-soft:#3a2020;--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.4);
}
*{box-sizing:border-box}html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--jp);line-height:1.6;-webkit-font-smoothing:antialiased;font-size:15px}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
button{font-family:inherit;cursor:pointer}h1,h2,h3,h4{margin:0;line-height:1.3}
.hidden{display:none!important}

/* login */
.login{min-height:100vh;display:grid;place-items:center;padding:24px}
.loginbox{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:28px;max-width:420px;width:100%}
.loginbox h1{font-size:22px;font-weight:800;display:flex;align-items:center;gap:10px;margin-bottom:4px}
.loginbox .mk{width:34px;height:34px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:18px}
.loginbox p.sub{color:var(--ink-2);font-size:13px;margin:0 0 18px}

/* appbar / subnav */
.appbar{position:sticky;top:0;z-index:50;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:10px 18px;box-shadow:var(--shadow)}
.brand{display:flex;align-items:center;gap:9px;font-weight:800;white-space:nowrap}
.brand .mk{width:26px;height:26px;border-radius:7px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:14px}
.brand small{font-weight:600;color:var(--ink-3);font-size:11px;font-family:var(--mono);letter-spacing:.1em}
.clock{font-family:var(--mono);font-weight:700;font-size:14px;color:var(--ink-2);margin-left:4px}
.spacer{flex:1}.who{font-size:13px;color:var(--ink-2);font-weight:600}
.roleswitch{display:flex;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:3px;gap:2px}
.roleswitch button{border:0;background:transparent;color:var(--ink-2);font-size:13px;font-weight:600;padding:6px 12px;border-radius:6px;display:flex;align-items:center;gap:6px}
.roleswitch button.on{background:var(--surface);color:var(--accent-ink);box-shadow:var(--shadow)}
.iconbtn{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-size:15px}
@media(max-width:760px){.brand small{display:none}.roleswitch button span{display:none}.who{display:none}}
.subnav{position:sticky;top:55px;z-index:40;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;gap:2px;padding:6px 14px;overflow-x:auto}
.subnav button{border:0;background:transparent;color:var(--ink-2);font-weight:600;font-size:13px;padding:8px 12px;border-radius:8px;white-space:nowrap}
.subnav button.on{background:var(--surface-2);color:var(--ink)}

main{max-width:1280px;margin:0 auto;padding:20px 18px 60px}
.page-h{display:flex;align-items:baseline;gap:12px;margin-bottom:4px}.page-h h2{font-size:20px;font-weight:800}
.page-sub{color:var(--ink-2);font-size:13.5px;margin:0 0 18px}
.grid{display:grid;gap:14px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}@media(max-width:820px){.g2,.g3{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:var(--shadow)}
.card h3{font-size:15px;font-weight:800;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.hint{font-size:11.5px;color:var(--ink-3);font-weight:600;background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:2px 7px;margin-left:auto}
.note{font-size:12px;color:var(--ink-3);margin-top:6px}
.placeholder{color:var(--ink-3);text-align:center;padding:40px 16px;border:1px dashed var(--line);border-radius:12px;font-size:14px}

/* availability */
.availbar{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:9px}
.availrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.alab{font-size:11.5px;font-weight:800;color:var(--ink-2);white-space:nowrap;min-width:120px}
.wchip{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;padding:4px 11px;border-radius:20px;border:1px solid transparent}
.wc-free{background:var(--good-soft);color:var(--good)}.wc-drv{background:var(--accent-soft);color:var(--accent-ink)}
.wc-past{background:var(--crit-soft);color:var(--crit)}.wc-ng{background:var(--crit);color:#fff}

/* board */
.board-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-2)}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:5px;vertical-align:middle}
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:820px){.cols{grid-template-columns:1fr}}
.col{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:12px;min-width:0}
.col-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.col-h .drv{font-weight:800;font-size:14px;display:flex;align-items:center;gap:7px}
.col-h .plate{font-family:var(--mono);font-size:11px;color:var(--ink-2);background:var(--surface);padding:2px 7px;border-radius:5px;border:1px solid var(--line)}
.ord{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:11px 12px 12px 14px;margin-bottom:9px;position:relative;overflow:hidden;cursor:pointer;transition:transform .08s}
.ord:hover{transform:translateY(-1px)}.ord::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}
.ord.good::before{background:var(--good)}.ord.warn::before{background:var(--warn)}.ord.crit::before{background:var(--crit)}.ord.idle::before{background:var(--line-strong)}.ord.done::before{background:var(--accent)}
.ord .r1{display:flex;align-items:center;justify-content:space-between;gap:8px}.ord .who2{font-weight:700;font-size:14px}
.ord .cd{font-family:var(--mono);font-weight:800;font-size:15px}
.ord.good .cd{color:var(--good)}.ord.warn .cd{color:var(--warn)}.ord.crit .cd{color:var(--crit)}.ord.idle .cd{color:var(--ink-3)}.ord.done .cd{color:var(--accent-ink)}
.ord .meta{font-size:12px;color:var(--ink-2);margin-top:3px;display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.ptag{font-size:10.5px;font-weight:800;color:#fff;padding:1px 7px;border-radius:4px}
.ord .st{font-size:12px;font-weight:700;margin-top:7px;display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:6px}
.s-good{background:var(--good-soft);color:var(--good)}.s-warn{background:var(--warn-soft);color:var(--warn)}.s-crit{background:var(--crit-soft);color:var(--crit)}.s-done{background:var(--accent-soft);color:var(--accent-ink)}.s-idle{background:var(--surface-2);color:var(--ink-2)}
.pulse{animation:pl 1.5s ease-in-out infinite}@keyframes pl{0%,100%{opacity:1}50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.pulse{animation:none}}
.empty{color:var(--ink-3);font-size:13px;text-align:center;padding:14px;border:1px dashed var(--line);border-radius:9px}

/* tasks */
.task{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:12px 14px;margin-bottom:9px;display:flex;align-items:flex-start;gap:12px}.task.tdone{opacity:.5}
.tbadge{font-size:11px;font-weight:800;padding:3px 9px;border-radius:6px;white-space:nowrap;margin-top:1px}
.tb-catch{background:var(--crit-soft);color:var(--crit)}.tb-in{background:var(--accent-soft);color:var(--accent-ink)}.tb-pay{background:var(--warn-soft);color:var(--warn)}.tb-send{background:var(--good-soft);color:var(--good)}
.task .tmain{flex:1;min-width:0}.task .tt{font-weight:700;font-size:14px}.task .td{font-size:12px;color:var(--ink-2)}
.task .cbtn{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);font-weight:700;font-size:12.5px;padding:7px 12px;border-radius:8px;white-space:nowrap}.task .cbtn.d{background:var(--good);border-color:var(--good);color:#fff}
.waitflag{font-size:10.5px;font-weight:800;color:var(--warn);background:var(--warn-soft);padding:1px 6px;border-radius:4px;margin-left:6px}
.shita{background:var(--crit);color:#fff;font-weight:800;font-size:12.5px;padding:5px 9px;border-radius:6px;display:inline-block;margin:7px 0 4px}
.callbtn{background:var(--good);color:#fff;font-weight:800;font-size:13px;padding:8px 13px;border-radius:9px;text-decoration:none;display:inline-flex;gap:6px;align-items:center;margin-top:4px}
.drvnote{background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 40%,transparent);border-radius:10px;padding:10px 12px;font-size:12px;color:var(--ink);margin-bottom:12px}

/* forms */
.field{margin-bottom:13px}label.lb{display:block;font-size:12px;font-weight:700;color:var(--ink-2);margin-bottom:5px}label.lb .req{color:var(--crit);margin-left:3px}
input,select,textarea{width:100%;font-family:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;padding:9px 11px}textarea{min-height:60px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}input[type=color]{padding:2px;height:38px;width:46px}
.seg{display:flex;gap:6px;flex-wrap:wrap}.seg button{flex:1;min-width:52px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);font-weight:700;font-size:13px;padding:9px;border-radius:8px}.seg button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.addrow{display:flex;gap:8px}.addrow input{flex:1}
.opts{display:flex;flex-wrap:wrap;gap:7px}.opt{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);border-radius:20px;padding:6px 12px;font-size:13px;font-weight:600}.opt.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
.stepper{display:flex;align-items:stretch}.stepper button{width:44px;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--ink);font-size:18px;font-weight:800}.stepper button:first-child{border-radius:8px 0 0 8px}.stepper button:last-child{border-radius:0 8px 8px 0}
.stepper .val{flex:1;text-align:center;border:1px solid var(--line-strong);border-left:0;border-right:0;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:800;font-size:17px;background:var(--surface)}
.presets{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.presets button{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);font-size:12px;font-weight:700;padding:5px 10px;border-radius:7px;font-family:var(--mono)}.presets button:hover{border-color:var(--accent);color:var(--accent-ink)}
.yenwrap{position:relative}.yenwrap::before{content:"¥";position:absolute;left:11px;top:9px;color:var(--ink-3);font-weight:700}.yenwrap input{padding-left:24px;font-family:var(--mono);font-weight:700;font-size:16px}
.autobadge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:800;padding:3px 10px;border-radius:20px;margin-left:8px}.ab-new{background:var(--surface-2);color:var(--ink-2)}.ab-rep{background:var(--accent-soft);color:var(--accent-ink)}.ab-ng{background:var(--crit);color:#fff}
.storedot{width:12px;height:12px;border-radius:4px;display:inline-block;vertical-align:middle;margin-right:5px;border:1px solid rgba(0,0,0,.15)}
.btn{border:0;background:var(--accent);color:#fff;font-weight:800;font-size:14px;padding:11px 16px;border-radius:9px;width:100%}.btn:active{transform:translateY(1px)}.btn.sm{width:auto;padding:8px 14px;font-size:13px}.btn.ghost{background:var(--surface);color:var(--ink-2);border:1px solid var(--line-strong)}
.minibtn{border:1px solid var(--line-strong);background:var(--surface);color:var(--crit);border-radius:6px;padding:3px 8px;font-size:12px;font-weight:700}
.inputyen{position:relative}.inputyen::before{content:"¥";position:absolute;left:9px;top:9px;color:var(--ink-3);font-size:12px}.inputyen input{padding-left:20px}
.rulerow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.rulerow:last-child{border-bottom:none}.rulerow .rl{font-size:13.5px;font-weight:600}.rulerow .ri{width:130px}.rulerow .ri input{text-align:right;font-family:var(--mono);font-weight:700}

/* intake */
.intake3{display:grid;grid-template-columns:1fr 1.05fr 0.95fr;gap:14px}@media(max-width:980px){.intake3{grid-template-columns:1fr}}
.histline{font-size:12px;color:var(--ink-2);padding:3px 0}.histline.m{color:var(--good);font-weight:700}
.cands{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.cand{border:1.5px solid var(--line-strong);background:var(--surface);border-radius:9px;padding:7px 12px;font-size:13.5px;font-weight:800;cursor:pointer;display:flex;flex-direction:column;line-height:1.25;min-width:82px}
.cand .av{font-size:10.5px;font-weight:600;color:var(--ink-3)}
.cand.sel{background:var(--accent);border-color:var(--accent);color:#fff}.cand.sel .av{color:rgba(255,255,255,.85)}
.cand.blue{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}
.cand.yellow{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}
.cand.past{border-color:var(--crit);color:var(--crit);background:var(--crit-soft)}
.cand.gray{border-color:var(--line-strong);background:var(--surface-2);color:var(--ink-3);cursor:not-allowed;opacity:.7;text-decoration:line-through}
.clegend{display:flex;gap:11px;flex-wrap:wrap;font-size:11px;color:var(--ink-2);margin-top:8px}.clegend b{font-weight:800}
.rulenote{font-size:12px;margin-top:9px;padding:8px 10px;border-radius:8px;background:var(--surface-2);color:var(--ink-2);font-weight:600}.rulenote.lock{background:var(--crit-soft);color:var(--crit)}.rulenote.free{background:var(--good-soft);color:var(--good)}
.pricebox{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px}.pricebox .rowp{display:flex;justify-content:space-between;align-items:center;font-size:13px}.pricebox .rowp+.rowp{margin-top:5px}.pricebox .rowp b{font-family:var(--mono);font-weight:800;font-size:16px}
.slip{background:var(--surface-2);border:1px dashed var(--line-strong);border-radius:10px;padding:14px;font-family:var(--mono);font-size:12.5px;white-space:pre-wrap;color:var(--ink-2);line-height:1.7;min-height:60px}

/* tables */
.tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}
table{width:100%;border-collapse:collapse;font-size:13.5px}th,td{text-align:left;padding:10px 13px;border-bottom:1px solid var(--line);white-space:nowrap}
th{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);font-weight:800;background:var(--surface-2)}td.n,th.n{text-align:right;font-family:var(--mono)}tr:last-child td{border-bottom:none}
tfoot td{font-weight:800;background:var(--surface-2);border-top:2px solid var(--line-strong)}td input,td select{padding:6px 8px;font-size:13px}
.pill{font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px}.pill.g{background:var(--good-soft);color:var(--good)}.pill.w{background:var(--warn-soft);color:var(--warn)}.pill.a{background:var(--accent-soft);color:var(--accent-ink)}
.ngtag{background:var(--crit);color:#fff;font-size:10px;font-weight:800;padding:2px 7px;border-radius:5px}.selftag{background:var(--surface-3);color:var(--ink-2);font-size:10px;font-weight:800;padding:2px 7px;border-radius:5px}
.kpirow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}@media(max-width:820px){.kpirow{grid-template-columns:1fr 1fr}}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:14px 16px;box-shadow:var(--shadow)}.kpi .v{font-family:var(--mono);font-weight:800;font-size:22px}.kpi .l{font-size:12px;color:var(--ink-2);margin-top:2px}
.drange{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.drange .field{margin:0}.drange input,.drange select{width:auto}

/* customer */
.dupwarn{border-radius:9px;padding:11px 13px;font-size:13px;color:var(--ink);margin-top:12px}.dupwarn.bad{background:var(--crit-soft);border:1px solid color-mix(in srgb,var(--crit) 40%,transparent)}.dupwarn.ok{background:var(--good-soft);border:1px solid color-mix(in srgb,var(--good) 40%,transparent)}.dupwarn.ng{background:#fce4e4;border:1px solid var(--crit)}:root[data-theme="dark"] .dupwarn.ng{background:#2a1315}
.profile{border:1px solid var(--line);border-radius:10px;background:var(--surface-2);padding:12px}
.histgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}@media(max-width:600px){.histgrid{grid-template-columns:1fr}}
.histcell{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 11px}.histcell .k{font-size:11px;color:var(--ink-3);font-weight:700}.histcell .v{font-size:13px;font-weight:700;margin-top:1px}
.canctag{font-size:11px;font-weight:700;padding:1px 7px;border-radius:4px}.cc-girl{background:var(--crit-soft);color:var(--crit)}.cc-cust{background:var(--warn-soft);color:var(--warn)}
.custbar{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:10px 13px;cursor:pointer;margin-bottom:7px;font-weight:700}
.custbar:hover{border-color:var(--accent)}.custbar .cn{font-size:14px}.custbar .ct{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--ink-3)}.custbar .caret{color:var(--ink-3);transition:transform .15s}.custbar.open .caret{transform:rotate(90deg)}
.custdraw{margin:-3px 0 9px;padding:0 2px}
.tagchk{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;border:1px solid var(--line-strong);background:var(--surface);border-radius:20px;padding:4px 10px;cursor:pointer}.tagchk.on{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}
.poolchips{display:flex;flex-wrap:wrap;gap:6px}

/* master tree */
.tree{display:flex;flex-direction:column;gap:10px}.tnode{border:1px solid var(--line);border-radius:11px;padding:12px 14px;background:var(--surface)}
.tstore{display:flex;align-items:center;gap:9px;font-weight:800;font-size:14.5px}.cswatch{width:16px;height:16px;border-radius:5px;border:1px solid rgba(0,0,0,.15)}
.tstore .del{margin-left:auto;border:0;background:var(--surface-2);color:var(--ink-3);border-radius:6px;padding:3px 8px;font-size:12px}
.tpanels{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-left:25px}.tpanel{background:var(--surface-2);border:1px solid var(--line);border-radius:7px;padding:4px 6px 4px 10px;font-size:12.5px;font-weight:700;display:flex;align-items:center;gap:5px}.tpanel button{border:0;background:transparent;color:var(--ink-3);padding:0 2px;font-size:12px}
.paneladd{display:flex;gap:6px;margin-top:9px;padding-left:25px;max-width:340px}
.opttd{white-space:normal;vertical-align:top}.optcell{display:flex;flex-wrap:wrap;gap:3px;max-width:360px}
.tagchk.pok{padding:2px 8px;font-size:11px;margin:1px}.tagchk.png{padding:2px 8px;font-size:11px;margin:1px}
.tagchk.pok.on{background:var(--good-soft);border-color:var(--good);color:var(--good)}.tagchk.png.on{background:var(--crit-soft);border-color:var(--crit);color:var(--crit)}
.dprof{border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:8px 10px;margin-bottom:7px}.dprof .dh{display:flex;justify-content:space-between;font-weight:800;font-size:13.5px}.dprof .dm{font-size:12px;color:var(--ink-2);margin-top:1px}.dprof .do{font-size:11.5px;margin-top:2px}

/* settlement */
.settle{display:grid;grid-template-columns:236px 1fr;gap:16px}@media(max-width:820px){.settle{grid-template-columns:1fr}}
.stafflist{display:flex;flex-direction:column;gap:6px}.staffitem{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:9px 12px;cursor:pointer;font-weight:700;font-size:14px}
.staffitem:hover{border-color:var(--accent)}.staffitem.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.staffitem .rt{font-size:10.5px;font-weight:800;color:var(--ink-3);background:var(--surface-2);padding:1px 7px;border-radius:5px;margin-left:auto}
.detail{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:20px;box-shadow:var(--shadow)}
.dhead{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.dhead .nm{font-size:19px;font-weight:800}
.dline{display:flex;justify-content:space-between;align-items:center;font-size:14px;padding:8px 0;border-bottom:1px solid var(--line)}.dline.sub{font-size:12.5px;color:var(--ink-2);padding:4px 0 4px 14px}.dline b{font-family:var(--mono)}.dline.minus b{color:var(--crit)}.dline .x{border:0;background:var(--surface-2);color:var(--ink-3);border-radius:5px;width:22px;height:22px;font-size:12px;margin-left:8px}
.dtot{display:flex;justify-content:space-between;align-items:center;font-size:16px;font-weight:800;border-top:2px solid var(--line-strong);margin-top:6px;padding-top:12px}.dtot b{font-family:var(--mono);font-size:22px;color:var(--good)}
.meterrow{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.addline{display:grid;grid-template-columns:1fr 120px auto;gap:8px;margin-top:12px}.quickadd{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.sbnote{font-size:12px;color:var(--ink-3);margin-top:8px;background:var(--surface-2);border-radius:8px;padding:7px 10px}.signbox{margin-top:16px;border-top:1px dashed var(--line-strong);padding-top:12px}.signline{border-bottom:1px solid var(--ink-3);height:34px;margin-top:6px}

/* shift */
.shiftwrap{display:grid;grid-template-columns:190px 1fr;gap:16px}@media(max-width:820px){.shiftwrap{grid-template-columns:1fr}}
.pool{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:14px;box-shadow:var(--shadow);height:max-content}
.pool h4{font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin:12px 0 7px}.pool h4:first-child{margin-top:0}
.pchip{font-size:12.5px;font-weight:700;border-radius:8px;padding:5px 10px;cursor:grab;border:1px solid transparent}.pchip.cast{background:var(--accent-soft);color:var(--accent-ink)}.pchip.drv{background:var(--blue-soft);color:var(--blue)}.pchip.int{background:var(--warn-soft);color:var(--warn)}
.calhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.calhead b{font-size:16px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.caldow{font-size:11px;font-weight:800;color:var(--ink-3);text-align:center;padding:4px 0}
.calcell{min-height:80px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:5px 6px;font-size:11px;cursor:pointer;transition:border-color .1s}.calcell.dragover{border-color:var(--accent);background:var(--accent-soft)}
.calcell .dn{font-weight:800;color:var(--ink-2);font-size:12px}.calcell.today .dn{color:var(--accent-ink)}
.schip{display:block;font-size:10.5px;font-weight:700;border-radius:5px;padding:1px 5px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schip.cast{background:var(--accent-soft);color:var(--accent-ink)}.schip.drv{background:var(--blue-soft);color:var(--blue)}.schip.int{background:var(--warn-soft);color:var(--warn)}.schip.undec{background:var(--warn);color:#fff}
.tlaxis{display:grid;grid-template-columns:120px 1fr;gap:8px;align-items:center;margin-bottom:6px}.tlhours{display:flex;font-size:10px;color:var(--ink-3);font-weight:700}.tlhours span{flex:1;text-align:left}
.tlrow{display:grid;grid-template-columns:120px 1fr;gap:8px;align-items:center;margin-bottom:7px}.tlname{font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tltrack{position:relative;height:22px;background:var(--surface-2);border-radius:6px;min-width:520px}.tlbar{position:absolute;top:2px;bottom:2px;border-radius:5px;font-size:10px;font-weight:800;color:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.tlbar.cast{background:var(--accent)}.tlbar.drv{background:var(--blue)}.tlbar.int{background:var(--warn)}.tlbar.undec{left:0;right:0;background:repeating-linear-gradient(45deg,var(--warn),var(--warn) 6px,#e0a838cc 6px,#e0a838cc 12px);color:#3a2a00}
.tledit{display:flex;gap:5px;align-items:center;margin-top:5px;font-size:11px;flex-wrap:wrap}.tledit input{width:78px;padding:5px 7px;font-size:12px}.tledit .tbd{display:inline-flex;gap:4px;align-items:center;font-weight:700;color:var(--warn)}

/* phone (driver/cast/clerk) */
.phones{display:flex;gap:26px;flex-wrap:wrap;justify-content:center}.phone{width:352px;max-width:100%;background:var(--surface);border:1px solid var(--line-strong);border-radius:26px;padding:12px;box-shadow:var(--shadow)}
.phone .notch{width:110px;height:5px;background:var(--line-strong);border-radius:10px;margin:2px auto 10px}.phscreen{background:var(--bg);border-radius:16px;padding:14px;min-height:520px;border:1px solid var(--line)}
.ph-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.ph-h .t{font-weight:800;font-size:15px}.ph-h .badge{font-size:11px;background:var(--accent-soft);color:var(--accent-ink);font-weight:700;padding:3px 9px;border-radius:20px}
.infocard{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:13px;margin-bottom:10px}.infocard .k{font-size:11px;color:var(--ink-3);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.infocard .v{font-weight:700;font-size:14px;margin-top:1px}.infocard .v.big{font-family:var(--mono);font-size:22px}
.timerbtns{display:flex;gap:8px;margin-top:11px}.timerbtns button{flex:1;border:0;border-radius:9px;font-weight:800;font-size:14px;padding:11px}.tstart{background:var(--good);color:#fff}.tend{background:var(--crit);color:#fff}.timerbtns button:disabled{opacity:.4;cursor:not-allowed}
.cancelbtn{width:100%;margin-top:8px;border:1px solid var(--crit);background:transparent;color:var(--crit);font-weight:800;font-size:13px;padding:10px;border-radius:9px}.cancelbtn:disabled{opacity:.45;cursor:not-allowed}
.payitem{border:1px solid var(--line);border-radius:10px;padding:10px 11px;margin-top:8px;background:var(--surface)}.payitem .ph{display:flex;justify-content:space-between;font-weight:800;font-size:13px}.payitem .pl{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-2);margin-top:2px}.payitem .pl b{font-family:var(--mono);color:var(--ink)}.payitem.cancel{border-color:var(--crit)}.payitem.deduct{border-color:var(--warn);background:var(--warn-soft)}
.paytot{display:flex;justify-content:space-between;border-top:2px solid var(--line-strong);margin-top:10px;padding-top:9px;font-weight:800}.paytot b{font-family:var(--mono);font-size:19px;color:var(--good)}
.nginfo{font-size:11px;color:var(--ink-3);text-align:center;margin-top:6px}

/* modals */
.modal{position:fixed;inset:0;background:rgba(10,15,20,.5);display:none;place-items:center;z-index:100;padding:18px}.modal.on{display:grid}
.modal .box{background:var(--surface);border:1px solid var(--line);border-radius:14px;max-width:760px;width:100%;padding:20px;box-shadow:0 20px 60px rgba(0,0,0,.4);max-height:88vh;overflow:auto}.modal .box.sm{max-width:440px}.modal .close{float:right;border:0;background:var(--surface-2);width:28px;height:28px;border-radius:7px;color:var(--ink-2)}.modal h3{font-size:17px;font-weight:800;margin-bottom:4px}
.dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin-top:12px;font-size:13.5px}.dl dt{color:var(--ink-3);font-weight:700}.dl dd{margin:0;font-weight:600}

/* feedback */
.fbfab{position:fixed;left:14px;bottom:14px;z-index:60;background:var(--accent);color:#fff;border:0;border-radius:22px;padding:9px 15px;font-weight:800;font-size:12.5px;box-shadow:var(--shadow);opacity:.68;transition:opacity .15s;display:flex;align-items:center;gap:6px}.fbfab:hover{opacity:1}

/* toast */
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:200;background:var(--ink);color:var(--bg);font-weight:700;font-size:13px;padding:10px 16px;border-radius:10px;box-shadow:var(--shadow);opacity:0;transition:opacity .2s,transform .2s}
.toast.on{opacity:1;transform:translateX(-50%) translateY(-4px)}.toast.success{background:var(--good);color:#fff}.toast.warning{background:var(--warn);color:#fff}.toast.error{background:var(--crit);color:#fff}

/* print */
#printRoot{display:none}
@media print{body{background:#fff}.appbar,.subnav,.fbfab,.no-print{display:none!important}body *{visibility:hidden}#printRoot,#printRoot *{visibility:visible}#printRoot{display:block;position:absolute;left:0;top:0;width:100%;padding:24px;color:#000}#printRoot .pr-line{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #ccc;font-size:14px}#printRoot .pr-line.sub{font-size:12px;color:#444;padding-left:14px}#printRoot .pr-tot{display:flex;justify-content:space-between;font-weight:800;font-size:18px;border-top:2px solid #000;margin-top:8px;padding-top:10px}#printRoot h2{font-size:20px;margin-bottom:4px}#printRoot .pr-sign{margin-top:44px;border-top:1px solid #000;width:70%;padding-top:6px;font-size:13px}}
