/* NEXT by Fork N Knife. Brand: charcoal #29292d, gold #c5a44a.
   Type: IBM Plex Sans for everything; Playfair Display only for page titles, echoing the NEXT wordmark. */
@font-face{font-family:"Plex";src:url(/assets/fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Plex";src:url(/assets/fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Plex";src:url(/assets/fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2");font-weight:600 700;font-display:swap}
@font-face{font-family:"Playfair";src:url(/assets/fonts/playfair-display-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
:root,[data-theme="light"]{
  --bg:#f3f3f0; --surface:#ffffff; --surface2:#f6f6f3; --border:#e4e2dc; --border-strong:#d2cfc7;
  --text:#1f1f22; --muted:#66645e; --faint:#97948c;
  --accent:#b8932f; --accent-soft:rgba(197,164,74,.15); --accent-ink:#86671a;
  --good:#1d8148; --good-soft:rgba(29,129,72,.11); --bad:#c93e36; --bad-soft:rgba(201,62,54,.1); --warn-soft:rgba(197,164,74,.18);
  --bar:#c5a44a; --bar-bad:#d9786f; --area:rgba(197,164,74,.14);
  --shadow:0 1px 2px rgba(31,31,34,.05);
  --shadow-pop:0 16px 40px rgba(20,20,22,.16),0 2px 6px rgba(20,20,22,.06);
  --chrome:#29292d; --chrome2:#323237; --chrome-line:#3c3c42; --chrome-text:#e9e7e1; --chrome-muted:#a3a098;
  --serif:"Playfair",Georgia,serif;
  color-scheme:light;
}
[data-theme="dark"]{
  --bg:#1f1f1e; --surface:#2a2a28; --surface2:#252524; --border:#393936; --border-strong:#4a4945;
  --text:#f0eee6; --muted:#aaa79e; --faint:#7d7a72;
  --accent:#d4b35c; --accent-soft:rgba(212,179,92,.15); --accent-ink:#e2c26c;
  --good:#6cc690; --good-soft:rgba(108,198,144,.13); --bad:#f07a6f; --bad-soft:rgba(240,122,111,.12); --warn-soft:rgba(212,179,92,.16);
  --bar:#d4b35c; --bar-bad:#e08a80; --area:rgba(212,179,92,.13);
  --shadow:none;
  --shadow-pop:0 18px 44px rgba(0,0,0,.5);
  --chrome:#1a1a1c; --chrome2:#26262a; --chrome-line:#323236; --chrome-text:#e9e7e1; --chrome-muted:#9c998f;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--text);font:14.5px/1.5 "Plex","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
.ic{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.serif{font-family:var(--serif);font-weight:600;letter-spacing:.1px}
a{color:var(--accent-ink)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.hide{display:none!important}
.muted{color:var(--muted);font-size:13px}

/* ---------- shell ---------- */
.shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.sidebar{background:var(--chrome);color:var(--chrome-text);display:flex;flex-direction:column;padding:20px 16px;position:sticky;top:0;height:100vh;overflow-y:auto}
.sb-top{position:relative;margin-bottom:22px;display:flex;justify-content:center}
.logo{display:block;width:189px;height:auto}
.product{color:#c5a44a;font-weight:700;letter-spacing:.5px;font-size:13px;margin:6px 0 0 4px}
.sb-close{display:none}
.sb-label{font-size:12px;font-weight:500;color:var(--chrome-muted);margin:18px 8px 6px}
.sb-select{width:100%;background:var(--chrome2);border:1px solid var(--chrome-line);color:#f0eee6;border-radius:8px;padding:8px 10px}
.sb-nav{display:flex;flex-direction:column;gap:1px}
.sb-nav .tab,.sb-link{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;color:#d4d1c9;padding:8px 10px;border-radius:7px;cursor:pointer;text-decoration:none;font-size:14px;position:relative}
.sb-nav .tab:hover,.sb-link:hover{background:var(--chrome2);color:#fff}
.sb-nav .tab.on{background:var(--chrome2);color:#fff;font-weight:500}
.sb-nav .tab.on::before{content:'';position:absolute;left:-16px;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:#c5a44a}
.sb-nav .tab .ic,.sb-link .ic{color:var(--chrome-muted)}
.sb-nav .tab.on .ic{color:#c5a44a}
.sb-link.quiet{color:var(--chrome-muted)}
.sb-bottom{margin-top:auto;padding-top:14px;border-top:1px solid var(--chrome-line);display:flex;flex-direction:column;gap:1px}
.sb-user{display:flex;align-items:center;gap:10px;padding:12px 8px 4px;margin-top:8px;border-top:1px solid var(--chrome-line)}
.avatar{width:30px;height:30px;border-radius:50%;background:#c5a44a;color:#29292d;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex:none;letter-spacing:.3px}
.sb-who{flex:1;min-width:0;line-height:1.3}
.sb-who b{display:block;font-size:13.5px;font-weight:500;color:#f0eee6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-who span{font-size:12px;color:var(--chrome-muted)}
.sb-out{color:var(--chrome-muted);background:none;border:0;padding:6px;border-radius:6px;display:inline-flex;cursor:pointer}
.sb-out:hover{color:#fff;background:var(--chrome2)}
.sb-ver{padding:2px 8px 0 48px;font-size:11.5px;color:#7f7c75}
.scrim{display:none}

.main{min-width:0;padding:22px 28px 48px}
.topbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.topbar h1{font-family:var(--serif);font-size:27px;font-weight:600;margin:0 8px 0 0;letter-spacing:.1px;line-height:1.2}
.menubtn,.menubtn.iconbtn{display:none}
.topright{margin-left:auto;display:flex;align-items:center;gap:10px}
.status{font-size:13px;color:var(--muted)}
.status.bad{color:var(--bad)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;padding:7px 14px;min-height:36px;cursor:pointer;font-size:14px;font-weight:500;white-space:nowrap;transition:border-color .12s,background .12s}
.btn:hover{border-color:var(--faint)}
.btn:disabled{opacity:.55;cursor:default}
.btn .ic{width:16px;height:16px}
.btn.primary{background:#29292d;border-color:#29292d;color:#fff;font-weight:500}
.btn.ghost{background:none;border-color:transparent;color:var(--muted)}.btn.ghost:hover{background:var(--surface2);color:var(--text)}
.btn.sm{min-height:30px;padding:4px 10px;font-size:13px}
[data-theme="dark"] .btn.primary{background:var(--accent);border-color:var(--accent);color:#1d1c1a}
.btn.primary:hover{filter:brightness(1.12)}
.iconbtn{display:inline-flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;width:36px;height:36px;cursor:pointer;font-size:16px;color:var(--muted);flex:none}
.iconbtn:hover{color:var(--text);border-color:var(--border-strong)}

/* ---------- date picker ---------- */
.datebox{position:relative;display:flex;align-items:center;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface);box-shadow:var(--shadow)}
.stepbtn{display:inline-flex;align-items:center;justify-content:center;background:none;border:0;width:34px;height:36px;cursor:pointer;color:var(--muted)}
.stepbtn:hover{color:var(--text);background:var(--surface2)}
.stepbtn:first-child{border-radius:8px 0 0 8px}.stepbtn:last-of-type{border-radius:0 8px 8px 0}
.datepill{background:none;border:0;border-left:1px solid var(--border);border-right:1px solid var(--border);padding:0 12px;height:36px;cursor:pointer;font-weight:500;display:flex;align-items:center;gap:8px}
.datepill:hover{background:var(--surface2)}
.datepill .ic{width:16px;height:16px;color:var(--muted)}
.datemenu{position:absolute;top:44px;left:0;z-index:30;background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:12px;width:600px;max-width:calc(100vw - 32px);max-height:calc(100vh - 90px);overflow:auto}
.dm-top{display:grid;grid-template-columns:170px 1fr;gap:14px}
.dm-top .dm-presets{grid-template-columns:1fr;align-content:start}
.cal-head{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.cal-head select{flex:1;min-width:0;background:var(--surface2);border:1px solid var(--border);border-radius:7px;padding:6px 6px;font:inherit;color:inherit}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-dow{font-size:11px;color:var(--muted);text-align:center;padding:4px 0}
.cal-day{background:none;border:0;border-radius:7px;padding:0;height:34px;cursor:pointer;font:inherit;color:inherit;font-variant-numeric:tabular-nums}
.cal-day:hover{background:var(--surface2)}
.cal-day.in{background:var(--accent-soft);border-radius:0}
.cal-day.start{border-top-left-radius:7px;border-bottom-left-radius:7px}
.cal-day.end{border-top-right-radius:7px;border-bottom-right-radius:7px}
.cal-day.start,.cal-day.end{background:var(--accent);color:#1d1d1f;font-weight:600}
.cal-day.today:not(.start):not(.end){box-shadow:inset 0 0 0 1.5px var(--accent)}
.cal-day.future{color:var(--muted)}
.cal-hint{font-size:12px;color:var(--muted);margin-top:6px;min-height:16px}
.dm-time{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}
.dm-time .chips button{background:var(--surface2);border:1px solid var(--border);border-radius:999px;padding:6px 12px;cursor:pointer;font:inherit;font-size:13px;color:inherit}
.dm-time .chips button.on{background:var(--accent-soft);border-color:var(--accent);font-weight:600}
.dm-time .dm-row{margin:8px 0 0}
.dm-foot{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--border);margin-top:10px;padding-top:10px}
.datepill.timed .sub{color:var(--accent)}
.dm-presets{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.dm-presets button{background:none;border:0;text-align:left;padding:8px 10px;border-radius:7px;cursor:pointer}
.dm-presets button:hover,.dm-presets button.on{background:var(--accent-soft)}
.dm-custom,.dm-compare{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}
.dm-title{font-size:12px;color:var(--muted);margin-bottom:6px}
.dm-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.dm-row input{flex:1;min-width:0;background:var(--surface2);border:1px solid var(--border);border-radius:7px;padding:7px 8px}
.seg{display:flex;border:1px solid var(--border-strong);border-radius:8px;overflow:hidden}
.seg button{flex:1;background:none;border:0;padding:7px 6px;cursor:pointer;font-size:13px}
.seg button+button{border-left:1px solid var(--border)}
.seg button.on{background:var(--accent-soft);font-weight:600}

/* ---------- edit bar ---------- */
.editbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;margin-bottom:16px;border:1px solid var(--accent);border-radius:10px;background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}
.eb-title{margin-right:6px}
.editbar #doneBtn{margin-left:auto}

/* ---------- widgets ---------- */
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.grid{grid-auto-flow:row dense}
.widget{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-width:0}
.size-s{grid-column:span 3}.size-m{grid-column:span 6}.size-l,.size-xl{grid-column:span 12}
.whead{display:flex;align-items:center;gap:8px;padding:15px 18px 0;min-height:40px}
.whead h2{font-size:14px;font-weight:600;color:var(--text);margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wsub{font-size:12.5px;color:var(--muted);margin:-4px 0 8px}
.wbody{padding:12px 18px 18px;flex:1;min-width:0}
.type-report .wbody{padding:6px 0 0}
.widget.editing{border-style:dashed;border-color:var(--accent);cursor:grab}
.widget.dragging{opacity:.4}.widget.dropto{outline:2px solid var(--accent)}
.wtools{display:flex;gap:4px;align-items:center}
.tool{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:0 6px;font-size:12px;font-weight:600;cursor:pointer;color:var(--muted)}
.tool .ic{width:14px;height:14px}
.sizeseg{display:inline-flex;margin-right:4px}.sizeseg .tool{border-radius:0;margin-left:-1px}.sizeseg .tool:first-child{border-radius:6px 0 0 6px;margin-left:0}.sizeseg .tool:last-child{border-radius:0 6px 6px 0}
.sizeseg .tool.on{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent);position:relative;z-index:1}
.tool:hover{color:var(--text);border-color:var(--border-strong)}
.tool.danger:hover{color:var(--bad);border-color:var(--bad)}
.type-categories .wbody,.type-voids .wbody,.type-staff .wbody,.type-saleTypes .wbody,.type-payments .wbody,.type-section .wbody,.type-locations .wbody,.type-topItems .wbody{max-height:430px;overflow:auto}

.kpi{padding:2px 0 2px}
.type-kpi .whead h2{color:var(--muted);font-weight:500}
.kpival{font-size:29px;font-weight:600;letter-spacing:-.4px;color:var(--text);white-space:nowrap;line-height:1.2}
.kpichg{margin-top:6px;font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.kpichg b{font-weight:600;padding:1px 7px;border-radius:999px;font-size:12px}
.kpichg.up b{background:var(--good-soft)}.kpichg.down b{background:var(--bad-soft)}
.kpichg.up b{color:var(--good)}.kpichg.down b{color:var(--bad)}
.spark{display:block;width:100%;height:36px;margin-top:8px}
.spark path.l{fill:none;stroke:var(--accent);stroke-width:2}
.spark path.a{fill:var(--area)}

.chart{width:100%;height:auto;display:block}
.chart .bar{fill:var(--bar)}.chart .bar:hover{opacity:.8}
.chart .line{fill:none;stroke:var(--accent);stroke-width:2.5}.chart .area{fill:var(--area)}.chart .dot{fill:var(--accent)}
.chart .axis{fill:var(--faint);font-size:11.5px;font-family:inherit}.chart .gridline{stroke:var(--border)}.chart .gridline.soft{stroke-dasharray:2 4;opacity:.9}
.chart .hit{fill:transparent}.chart .hit:hover+.bar,.chart .bar:hover{opacity:.82}
.charttip{position:fixed;z-index:60;pointer-events:none;background:#29292d;color:#fff;font-size:12.5px;padding:6px 9px;border-radius:7px;box-shadow:var(--shadow-pop);white-space:nowrap}
.charttip b{display:block;font-weight:600}

.hbars{display:flex;flex-direction:column;gap:11px}
.hbar-top{display:flex;justify-content:space-between;gap:10px;font-size:13.5px;margin-bottom:5px}
.hbar-top span:first-child{min-width:0}
.hbars.bad .hbar-fill{background:var(--bar-bad)}
.hbar-top span:last-child{color:var(--muted);white-space:nowrap}
.hbar-track{height:6px;background:var(--surface2);border-radius:99px;overflow:hidden}
.hbar-fill{height:100%;background:var(--bar);border-radius:99px}

.wtable{width:100%;border-collapse:collapse}
.wtable th,.wtable td{padding:8px 6px;border-bottom:1px solid var(--border);text-align:left;font-size:14px}
.wtable th{color:var(--muted);font-weight:500;font-size:12.5px}
.wtable td:first-child{color:var(--muted)}.type-staff .wtable td:first-child,.type-locations .wtable td:first-child{color:var(--text)}
.wtable td:nth-child(n+3),.wtable th:nth-child(n+3){text-align:right}
.wtable tr:last-child td{border-bottom:0}
.note{white-space:pre-wrap;font-size:15px}
.norecords{text-align:center;color:var(--muted);padding:14px}
.loading{padding:18px;text-align:center;color:var(--muted)}
.empty{grid-column:1/-1;padding:56px 24px;text-align:center;color:var(--muted);border:1px dashed var(--border-strong);border-radius:12px;background:var(--surface)}

/* ---------- Company Report ---------- */
.reporthead{text-align:center;padding:4px 10px 12px;line-height:1.55}
.reporthead .rest{font-size:18px;font-weight:700}
.reportgrid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border)}
.section{padding:12px 16px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}
.section:nth-child(even){border-right:0}
.section.wide{grid-column:1/-1;border-right:0}
.section h3{text-align:center;color:var(--accent-ink);margin:0 0 10px;font-size:15px;font-weight:650}
.reportline{display:grid;grid-template-columns:1fr 70px 110px;gap:10px;padding:3px 0;font-size:14px}
.reportline span:nth-child(2),.reportline span:nth-child(3){text-align:right}
.reportline.indent span:first-child{padding-left:16px;color:var(--muted)}
.reportline.total{border-top:1px solid var(--border-strong);font-weight:600;margin-top:3px;padding-top:5px}
.groupname{font-weight:650;padding:8px 0 2px}
.reportfooter{text-align:center;padding:14px;color:var(--muted);font-size:13px}

/* ---------- Ask NEXT ---------- */
.ask{display:flex;flex-direction:column;gap:10px}
.chatlog{max-height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{background:var(--surface2);border:1px solid var(--border);border-radius:999px;padding:6px 11px;font-size:13px;cursor:pointer}
.chip:hover{border-color:var(--accent)}
.askrow{display:flex;gap:8px}
.askrow input{flex:1;min-width:0;background:var(--surface2);border:1px solid var(--border-strong);border-radius:8px;padding:9px 12px}

/* ---------- modal ---------- */
.modalwrap{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:7vh 14px;overflow:auto}
.modal{background:var(--surface);border:1px solid var(--border-strong);border-radius:14px;width:100%;max-width:660px;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.modalhead{display:flex;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border)}
.modalhead h2{margin:0;font-size:18px;flex:1}
#modalBody{padding:18px}
.catalogs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.catalog{text-align:left;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:12px;cursor:pointer}
.catalog:hover{border-color:var(--accent)}
.catalog b{display:block;margin-bottom:3px}.catalog span{font-size:13px;color:var(--muted)}
.field{display:block;margin-bottom:14px;font-size:13px;color:var(--muted)}
.field{font-weight:500;color:var(--text)}
.field input,.field select,.field textarea{display:block;width:100%;margin-top:6px;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;font-size:14.5px;font-weight:400;color:var(--text)}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.field textarea{min-height:90px}
.modalbtns{display:flex;justify-content:flex-end}

/* ---------- login & status pages ---------- */
.loginpage{min-height:100vh;background:#29292d;display:flex;align-items:center;justify-content:center;padding:24px 16px}
.loginwrap{width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center}
.loginlogo{width:220px;margin:0 auto 40px}
.loginbox{width:100%;background:#ffffff;color:#1f1f22;border-radius:14px;padding:28px 28px 22px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.loginbox h1{font-family:var(--serif);font-weight:600;font-size:26px;margin:0 0 6px}
.loginbox label{display:block;font-size:13.5px;font-weight:500;color:#3a3936;margin:16px 0 6px}
.loginbox input{width:100%;border:1px solid #d2cfc7;border-radius:8px;padding:10px 12px;font-size:15.5px;background:#fff;color:#1f1f22}
.loginbox input:focus{outline:0;border-color:#b8932f;box-shadow:0 0 0 3px rgba(197,164,74,.2)}
.loginbox .btn{width:100%;margin-top:22px;padding:11px;font-size:15.5px;min-height:44px}
.loginfoot{color:#8f8c84;font-size:12.5px;margin-top:20px}
.errorbox{background:#fdecea;border:1px solid #f3b6b1;color:#a5281f;padding:10px;border-radius:8px;font-size:14px;margin-bottom:6px}
.simplehead{display:flex;align-items:center;gap:16px;background:#29292d;padding:14px 22px}
.simplehead .logo{width:150px}
.simplehead a{color:#c5a44a;margin-left:auto}
.page{padding:22px 26px}
.stable{width:100%;border-collapse:collapse}.stable th,.stable td{padding:10px;border-bottom:1px solid var(--border);text-align:left;font-size:14px}
.ok{color:var(--good)}.notok{color:var(--bad)}

/* ---------- responsive ---------- */
@media(max-width:1200px){.size-s{grid-column:span 6}.size-m,.size-l{grid-column:span 12}}
@media(max-width:900px){
  .shell{grid-template-columns:1fr}
  .sidebar{position:fixed;left:0;top:0;bottom:0;width:270px;z-index:40;transform:translateX(-100%);transition:transform .2s ease}
  .sidebar.open{transform:none}
  .sb-close{display:block;position:absolute;right:0;top:0;background:none;border:0;color:#bdb9b0;font-size:18px;cursor:pointer}
  .scrim.open{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:35}
  .menubtn,.menubtn.iconbtn{display:inline-flex}
  .main{padding:12px 14px 30px}
  .topbar{gap:10px}
  .topbar h1{font-size:20px;flex:1}
  .datebox{order:5;width:100%;justify-content:space-between}
  .datepill{flex:1;justify-content:center}
  .datemenu{left:0;right:0;width:auto}
  .dm-top{grid-template-columns:1fr}
  .dm-top .dm-presets{grid-template-columns:1fr 1fr}
  .topright{margin-left:0}
  .status{display:none}
  .grid{gap:12px}
  .kpival{font-size:24px}
  .catalogs{grid-template-columns:1fr}
  .reportgrid{grid-template-columns:1fr}.section{border-right:0}
  .reportline{grid-template-columns:1fr 50px 95px;font-size:13.5px}
}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none}}
@media print{.sidebar,.topbar .datebox .stepbtn,.topright,.editbar,.wtools,.menubtn{display:none!important}.shell{display:block}.grid{display:block}.widget{border:0;break-inside:avoid;box-shadow:none}.wbody{max-height:none!important;overflow:visible!important}body{background:#fff;color:#000}}
.datepill .sub{font-weight:400;color:var(--muted);margin-left:8px;font-size:13px}
@media(max-width:900px){.datepill .sub{display:none}}
@media(max-width:1200px){.size-s.type-payments,.size-s.type-saleTypes,.size-s.type-categories,.size-s.type-staff,.size-s.type-voids,.size-s.type-topItems,.size-s.type-section,.size-s.type-locations,.size-s.type-ask,.size-s.type-trend,.size-s.type-hourly,.size-s.type-weekday,.size-s.type-report{grid-column:span 12}}
/* ---------- NEXT by Fork N Knife brand mark ---------- */
.brandmark .wordmark{font-size:38px;font-weight:800;letter-spacing:4px;line-height:1;color:#fff}
.brandmark .byline{display:flex;align-items:center;gap:8px;margin-top:8px}
.brandmark .byline span{color:#c5a44a;font-size:13px;font-style:italic}
.brandmark .byline .logo{width:150px}
.brandmark.center{text-align:center}.brandmark.center .byline{justify-content:center}
.brandmark.row{display:flex;align-items:center;gap:12px}.brandmark.row .wordmark{font-size:26px}.brandmark.row .byline{margin-top:0}.brandmark.row .byline .logo{width:120px}
.product{display:none}

/* ---------- NEXT AI: launcher and chat window ---------- */
.askfab{position:fixed;right:22px;bottom:22px;z-index:45;display:flex;align-items:center;gap:8px;background:#29292d;color:#fff;border:1px solid #3c3c42;border-radius:999px;padding:11px 18px 11px 14px;font-size:14.5px;font-weight:500;cursor:pointer;box-shadow:0 10px 28px rgba(20,20,22,.28)}
.askfab .ic{color:#c5a44a;width:19px;height:19px}
.askfab:hover{background:#34343a}
[data-theme="dark"] .askfab{background:#c5a44a;color:#1f1f22;border-color:#c5a44a}[data-theme="dark"] .askfab .ic{color:#1f1f22}
.sb-ask{display:flex;align-items:center;gap:10px;width:100%;margin:14px 0 2px;padding:10px 12px;background:rgba(197,164,74,.1);border:1px solid rgba(197,164,74,.55);border-radius:9px;color:#fff;text-align:left;cursor:pointer;font:inherit}
.sb-ask:hover{background:rgba(197,164,74,.18)}
.sb-ask .ic{color:#c5a44a;width:20px;height:20px}
.sb-ask b{display:block;font-size:14px;font-weight:500}
.sb-ask small{display:block;font-size:12px;color:var(--chrome-muted);margin-top:1px}
.askwin{position:fixed;right:22px;bottom:22px;z-index:46;width:440px;height:600px;min-width:320px;min-height:380px;max-height:calc(100vh - 16px);max-width:calc(100vw - 16px);overflow:hidden;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border-strong);border-radius:16px;box-shadow:var(--shadow-pop);animation:awIn .18s ease-out}
@keyframes awIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
.askwin-head{display:flex;align-items:center;gap:10px;padding:12px 12px 12px 14px;border-bottom:1px solid var(--border);cursor:move;user-select:none;touch-action:none}
.askwin-head.dragging{cursor:grabbing}
.aw-mark,.botmark,.greet-mark{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#29292d;color:#c5a44a;flex:none}
.aw-mark{width:30px;height:30px}.aw-mark .ic{width:17px;height:17px}
.aw-title{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.aw-title b{font-size:14.5px;font-weight:600}
.aw-title span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aw-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:0;color:var(--muted);border-radius:8px;cursor:pointer}
.aw-btn:hover{background:var(--surface2);color:var(--text)}
.aw-btn .ic{width:17px;height:17px}
.askwin .chatlog{flex:1;min-height:0;max-height:none;overflow-y:auto;padding:16px 16px 8px;display:flex;flex-direction:column;gap:14px;scroll-behavior:smooth}
.greet{display:flex;flex-direction:column;align-items:flex-start;padding:6px 2px 0}
.greet-mark{width:38px;height:38px;margin-bottom:12px}.greet-mark .ic{width:21px;height:21px}
.greet h3{font-family:var(--serif);font-size:21px;font-weight:600;margin:0 0 4px}
.greet p{margin:0 0 14px;color:var(--muted);font-size:13.5px;max-width:36em}
.suggest{display:flex;flex-direction:column;gap:6px;width:100%}
.sugg{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:9px 12px;font-size:13.5px;cursor:pointer;color:var(--text)}
.sugg:hover{border-color:var(--accent);background:var(--accent-soft)}
.msg{font-size:14px;line-height:1.55;max-width:88%;overflow-wrap:anywhere}
.msg.user{align-self:flex-end;background:#29292d;color:#fff;padding:9px 13px;border-radius:14px 14px 4px 14px;white-space:pre-wrap}
[data-theme="dark"] .msg.user{background:#3a3a40}
.botrow{display:flex;gap:10px;align-items:flex-start}
.botmark{width:26px;height:26px;margin-top:1px}.botmark .ic{width:15px;height:15px}
.msg.bot{flex:1;min-width:0;max-width:none;padding:2px 0 0}
.msg.bot p{margin:0 0 8px}.msg.bot p:last-child{margin-bottom:0}
.msg.bot ul{margin:4px 0 8px;padding-left:18px}.msg.bot li{margin:2px 0}
.botrow.err .msg{color:var(--bad)}
.caret-blink{display:inline-block;width:7px;height:14px;margin-left:2px;vertical-align:-2px;background:var(--accent);border-radius:1px;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.msg .used{display:flex;gap:7px;align-items:flex-start;margin-top:10px;padding-top:8px;border-top:1px solid var(--border);font-size:12px;color:var(--faint);line-height:1.45}
.msg .used .ic{width:14px;height:14px;margin-top:1px}
.dots{display:inline-flex;gap:4px;align-items:center;height:20px;padding:0 2px}
.dots i{width:7px;height:7px;border-radius:50%;background:var(--faint);animation:dot 1.2s infinite ease-in-out}
.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-4px);opacity:1}}
.typing .msg{display:flex;align-items:center;gap:10px}
.typing-note{font-size:12.5px;color:var(--muted)}
.composer{display:flex;align-items:flex-end;gap:8px;margin:8px 12px 6px;padding:7px 7px 7px 12px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface)}
.composer:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.composer textarea{flex:1;min-width:0;border:0;outline:0;resize:none;background:none;font-size:14px;line-height:1.45;padding:5px 0;max-height:140px}
.sendbtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:0;background:#29292d;color:#fff;cursor:pointer;flex:none}
.sendbtn:disabled{background:var(--border-strong);cursor:default}
[data-theme="dark"] .sendbtn:not(:disabled){background:#c5a44a;color:#1f1f22}
.sendbtn .ic{width:17px;height:17px;stroke-width:2}
.aw-foot{font-size:11.5px;color:var(--faint);text-align:center;padding:0 12px 10px}
.askoff{display:flex;gap:8px;align-items:flex-start;margin:8px 12px 12px;padding:10px 12px;border-radius:10px;background:var(--surface2);border:1px solid var(--border);font-size:13px;color:var(--muted)}
.askoff .ic{width:16px;height:16px;margin-top:2px}
.aw-grip{position:absolute;right:2px;bottom:2px;width:16px;height:16px;cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg,transparent 0 55%,var(--faint) 55% 61%,transparent 61% 72%,var(--faint) 72% 78%,transparent 78%);opacity:.6}
.aw-grip:hover{opacity:1}
@media(max-width:700px){
  .askfab{right:14px;bottom:14px}
  .aw-grip{display:none}
  .askwin{inset:0!important;width:auto!important;height:auto!important;max-width:none;max-height:none;border-radius:0;animation:none}
  .askwin-head{cursor:default}
}
@media(prefers-reduced-motion:reduce){.askwin,.dots i,.caret-blink{animation:none}.askwin .chatlog{scroll-behavior:auto}}
@media print{.askfab,.askwin{display:none!important}}
.brandmark .byline .logo,.loginbox .brandmark .logo{margin:0}

.brandlogo{display:block;width:172px;height:auto;margin:2px 0 4px}
.brandlogo.center{width:230px;margin:4px auto}
.brandlogo.small{width:104px;margin:0}

.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap;line-height:1.6;background:var(--surface2);color:var(--muted);border:1px solid var(--border)}
.pill.good,.pill.warn,.pill.bad{border-color:transparent}
.pill.good::before,.pill.warn::before,.pill.bad::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.pill.good{background:var(--good-soft);color:var(--good)}
.pill.warn{background:var(--warn-soft);color:var(--accent-ink)}
.pill.bad{background:var(--bad-soft);color:var(--bad)}
.pill.role-admin{background:#29292d;color:#f0eee6;border-color:#29292d}
[data-theme="dark"] .pill.role-admin{background:#f0eee6;color:#29292d}
.pill.role-owner{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}
.linkbtn{background:none;border:none;padding:2px 4px;color:var(--accent);cursor:pointer;font-size:13.5px;text-decoration:underline;white-space:nowrap}
.linkbtn.danger,.btn.danger{color:var(--bad)}
.btn.danger:hover{border-color:var(--bad)}
.acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.actcell .acts{justify-content:flex-end}
a.btn{text-decoration:none;display:inline-flex;color:var(--text)}a.btn.primary{color:#fff}
.checklist{display:flex;flex-direction:column;gap:2px;margin-top:6px;max-height:220px;overflow:auto;border:1px solid var(--border);border-radius:8px;padding:6px 10px}
.checkrow{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:14px;color:var(--text);cursor:pointer}
.checkrow input{width:auto;margin:0}
.mpad{padding:16px 18px}
.mpad p{margin-top:0}
.modalbtns{gap:8px;align-items:center;margin-top:10px}
.modalbtns .left{margin-right:auto}
.credbox{background:var(--surface2);border:1px solid var(--border-strong);border-radius:10px;padding:10px 14px;margin:12px 0}
.credbox div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:15px}
.credbox span{color:var(--muted)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.3px}
.subbox{border-left:3px solid #c5a44a;padding-left:12px;margin-bottom:12px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.typerow{display:flex;gap:8px;margin-top:6px}
.typerow .tk{width:70px;flex:none}
.typerow input{background:var(--surface2);border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;font-size:14px;color:var(--text);flex:1}
.steps{padding-left:20px;line-height:1.6}
.nowrap{white-space:nowrap}
.loginhelp{margin-top:14px;text-align:center;font-size:13.5px}
.loginhelp button{background:none;border:none;color:#86671a;cursor:pointer;font-size:13.5px;font-weight:500}.loginhelp button:hover{text-decoration:underline}
.loginhelp p{color:#6c6a64;margin:8px 0 0}
@media(max-width:700px){
  .stable.resp thead{display:none}
  .stable.resp tr{display:block;border-bottom:1px solid var(--border);padding:8px 0}
  .stable.resp td{display:flex;justify-content:space-between;gap:12px;border:none;padding:4px 2px;text-align:right}
  .stable.resp td::before{content:attr(data-l);color:var(--muted);text-align:left}
  .stable.resp td.actcell::before{content:none}
  .stable.resp td.actcell{justify-content:flex-start}
  .two{grid-template-columns:1fr}.sethead{flex-direction:column;align-items:stretch}.page{padding:16px}}

.sb-top .brandlogo{margin:2px auto 4px}
.sb-live{font-size:12.5px;margin:8px 2px 0;display:flex;align-items:center;gap:7px;color:#c9c6bd}
.sb-live::before{content:'';width:8px;height:8px;border-radius:50%;background:#7a776f;flex:none}
.sb-live.good::before{background:#3fb871}.sb-live.warn::before{background:#c5a44a}.sb-live.bad::before{background:#e5594f}
.adminbanner{background:rgba(229,89,79,.1);border:1px solid rgba(229,89,79,.45);border-radius:10px;padding:10px 14px;margin:0 0 14px;font-size:14px}
.adminbanner a{font-weight:600;margin-left:6px}
.problem{border:1px solid rgba(229,89,79,.45);background:rgba(229,89,79,.07);border-radius:10px;padding:10px 12px;margin:8px 0}
.problem p{margin:0 0 8px;font-size:14px}
.confirmbox{background:var(--surface2);border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;font-size:15px;color:var(--text);width:160px}
@media(max-width:900px){.datepill.timed .sub{display:inline}}

/* ---------- Settings: same shell as the dashboard, panels with label | control rows ---------- */
.sb-back{margin:4px 0 14px;color:var(--chrome-muted)}
.setmain{max-width:1060px}
.settop{align-items:flex-start;margin-bottom:22px}
.sethd{flex:1;min-width:0}
.sethd h1{font-family:var(--serif);font-size:27px;font-weight:600;margin:0;line-height:1.2}
.sethd p{margin:4px 0 0;color:var(--muted);font-size:14px;max-width:62ch}
.settop .topright{margin-left:auto;padding-top:4px}
.banner{background:var(--accent-soft);border:1px solid var(--accent);border-radius:10px;padding:12px 14px;margin-bottom:16px;font-weight:500}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);margin-bottom:16px}
.panel.flush{overflow:hidden}
.panel-head{padding:16px 20px 4px}
.panel-head h2{font-size:15.5px;font-weight:600;margin:0}
.panel-head p{margin:3px 0 0;color:var(--muted);font-size:13.5px;max-width:70ch}
.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:24px;align-items:center;padding:14px 20px;border-top:1px solid var(--border)}
.panel-head+.row,.panel-head+input+.row{border-top:0}
.rl b{display:block;font-weight:500;font-size:14px}
.rl span{display:block;color:var(--muted);font-size:13px;margin-top:2px;line-height:1.45}
.rl label{cursor:pointer}
.rc{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;min-width:0}
.rc.col{flex-direction:column;align-items:stretch}
.rbtns{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.inp{width:100%;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;padding:8px 11px;font-size:14.5px;color:var(--text);min-height:38px}
.inp:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.inp.num{width:110px}
select.inp{cursor:pointer}
.inpgroup{display:inline-flex;align-items:center;gap:10px;color:var(--muted);font-size:13.5px}
.panel-foot{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:12px 20px;border-top:1px solid var(--border);background:var(--surface2);border-radius:0 0 12px 12px;flex-wrap:wrap}
.panel-foot.left{justify-content:flex-start;min-height:0;padding:0 20px;border-top:0;background:none}
.panel-foot.left .note:not(:empty){padding:0 0 14px}
.panel-foot .note{margin-right:auto}
.note{font-size:13px;color:var(--muted)}
.note .ic{width:15px;height:15px;vertical-align:-3px}
.note.ok,.ok{color:var(--good)}.note.notok,.notok{color:var(--bad)}
.note.pad{padding:0 4px}
.saved{color:var(--good);font-size:13px;opacity:0;transition:opacity .2s}.saved.on{opacity:1}
.formerr{color:var(--bad);font-size:13.5px}
.small{font-size:12.5px}
.mono{font-family:ui-monospace,"Cascadia Mono",Consolas,Menlo,monospace;font-size:.92em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
#pwCard.focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.keychip{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:8px;background:var(--surface2);border:1px solid var(--border);font-size:13.5px}
.keychip .ic{width:15px;height:15px;color:var(--accent-ink)}
.btn.danger{color:var(--bad)}.btn.danger:hover{border-color:var(--bad)}.btn.ghost.danger:hover{background:var(--bad-soft)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;padding:8px 20px 16px}
#tab-status>.stats{padding:0 0 16px}
.stat{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px}
.panel .stat{background:var(--surface2)}
.stat span{display:block;font-size:12.5px;color:var(--muted)}
.stat b{display:block;font-size:22px;font-weight:600;margin-top:2px}
.stat.bad b{color:var(--bad)}
.stable{width:100%;border-collapse:collapse}
.stable th{font-size:12.5px;font-weight:500;color:var(--muted);text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--surface2)}
.stable td{padding:12px 14px;border-bottom:1px solid var(--border);font-size:14px;vertical-align:middle}
.stable tbody tr:last-child td{border-bottom:0}
.panel .tablewrap{border-top:1px solid var(--border)}.panel.flush .tablewrap{border-top:0}
.person{display:flex;align-items:center;gap:10px}
.person b{font-weight:500}
.person .sub{display:block;font-size:12px;color:var(--muted)}
.avatar.sm{width:30px;height:30px;font-size:11.5px;background:var(--accent-soft);color:var(--accent-ink)}
.acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.actcell .acts{justify-content:flex-end;flex-wrap:nowrap}
.roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 24px;padding:6px 20px 18px}
.roles p{margin:6px 0 10px;font-size:13px;color:var(--muted)}
.airecent{padding:4px 20px 16px}
.airecent summary{cursor:pointer;font-weight:500;font-size:14px;padding:6px 0}
.airecent .stable{margin-top:6px}
.two-lists{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:6px 20px 18px}
.two-lists h3{font-size:13px;font-weight:600;margin:0 0 6px}
.two-lists ul{margin:0;padding:0;list-style:none}
.two-lists li{position:relative;padding:3px 0 3px 20px;font-size:13.5px;color:var(--muted)}
.ticks li::before,.crosses li::before{position:absolute;left:2px;top:3px;font-weight:600}
.ticks li::before{content:'✓';color:var(--good)}.crosses li::before{content:'×';color:var(--bad);font-size:16px;top:0}
.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;margin:8px 20px 18px;padding:26px 16px;border:1.5px dashed var(--border-strong);border-radius:12px;background:var(--surface2);cursor:pointer;text-align:center;position:relative}
.dropzone:hover,.dropzone.over{border-color:var(--accent);background:var(--accent-soft)}
.dropzone.has{border-style:solid;border-color:var(--accent)}
.dropzone .ic{width:24px;height:24px;color:var(--muted);margin-bottom:4px}
.dropzone b{font-weight:500}.dropzone span{font-size:12.5px;color:var(--muted)}
.dropzone input{position:absolute;inset:0;opacity:0;cursor:pointer}
.restcard{padding:16px 20px 18px}
.restcard-head{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.rc-title{flex:1;min-width:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rc-title h2{font-size:17px;font-weight:600;margin:0}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px 24px;margin:4px 0 0}
.facts dt{font-size:12.5px;color:var(--muted)}
.facts dd{margin:2px 0 0;font-size:14px;overflow-wrap:anywhere}
.setup{border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin:0 0 16px;background:var(--surface2)}
.setup-head{display:flex;justify-content:space-between;font-size:13.5px;margin-bottom:8px}
.setup-head b{font-weight:600}.setup-head span{color:var(--muted)}
.progress{height:5px;border-radius:99px;background:var(--border);overflow:hidden;margin-bottom:10px}
.progress i{display:block;height:100%;background:var(--accent);border-radius:99px}
.setup-steps{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:2px 16px;margin-bottom:10px}
.setup-step{display:flex;align-items:center;gap:8px;font-size:13.5px;padding:3px 0;color:var(--muted)}
.setup-step.done{color:var(--text)}
.setup-step .tick{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--border-strong);display:inline-flex;align-items:center;justify-content:center;flex:none}
.setup-step .tick .ic{width:12px;height:12px;stroke-width:2.6}
.setup-step.done .tick{background:var(--good);border-color:var(--good);color:#fff}
.problem{border:1px solid var(--bad);background:var(--bad-soft);border-radius:10px;padding:12px 14px;margin:0 0 14px}
.problem p{margin:0 0 8px;font-size:14px}
.emptyp{display:flex;flex-direction:column;align-items:center;gap:4px;padding:40px 20px;text-align:center}
.emptyp .ic{width:28px;height:28px;color:var(--faint);margin-bottom:6px}
.emptyp span{color:var(--muted);font-size:13.5px}
@media(max-width:760px){
  .row{grid-template-columns:1fr;gap:10px}
  .rc{justify-content:flex-start}
  .two-lists{grid-template-columns:1fr}
  .settop{flex-wrap:nowrap}
  .sethd h1{font-size:23px}
  .panel-head,.row,.panel-foot{padding-left:16px;padding-right:16px}
  .stable.resp th{display:none}
}
.widget.editing .whead{flex-wrap:wrap;row-gap:8px}
.widget.editing.size-s .wtools{order:-1;width:100%;justify-content:flex-end}
.typing .dots{background:var(--surface2);border:1px solid var(--border);padding:9px 12px;border-radius:12px;height:auto}

/* ---------- Admin home (admins only) ---------- */
.adminhome{display:none}
body.adminview .adminhome{display:block}
body.adminview #dateBox,body.adminview #editBtn,body.adminview #grid,body.adminview #editbar,body.adminview #adminBanner,body.adminview .askfab{display:none!important}
.sb-adminnav{margin:0 0 6px}
.ahstats{padding:0 0 16px}
.stat b span{display:inline;font-size:13px;font-weight:400;color:var(--muted)}
.row-head{display:flex;align-items:center;gap:12px;padding-bottom:12px}
.row-head h2{flex:1}
.issues{list-style:none;margin:0;padding:4px 0 6px}
.issue{display:flex;align-items:flex-start;gap:12px;padding:12px 20px;border-top:1px solid var(--border)}
.issues li:first-child{border-top:0}
.ilevel{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none;margin-top:1px}
.ilevel .ic{width:14px;height:14px;stroke-width:2.2}
.issue.bad .ilevel{background:var(--bad-soft);color:var(--bad)}
.issue.warn .ilevel{background:var(--warn-soft);color:var(--accent-ink)}
.issue.info .ilevel{background:var(--surface2);color:var(--muted)}
.itext{flex:1;min-width:0}
.itext b{display:block;font-weight:500;font-size:14px}
.itext span{display:block;font-size:13px;color:var(--muted);margin-top:1px}
.issue .btn{flex:none}
.showmore{margin:0 20px 12px}
.allgood{display:flex;gap:12px;align-items:flex-start;padding:6px 20px 18px}
.allgood>.ic{width:24px;height:24px;padding:4px;border-radius:50%;background:var(--good-soft);color:var(--good);stroke-width:2.4;flex:none}
.allgood b{display:block;font-weight:500}.allgood span{font-size:13px;color:var(--muted)}
.ahtable tbody tr{cursor:pointer}
.ahtable tbody tr:hover td{background:var(--surface2)}
.ahtable td .sub{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.ahtable td b{font-weight:500}
.mini{display:block;width:70px;height:5px;border-radius:99px;background:var(--border);overflow:hidden;margin-top:6px}
.mini i{display:block;height:100%;background:var(--accent)}
.okword{display:inline-flex;align-items:center;gap:5px;color:var(--good);font-size:13.5px}
.okword .ic{width:15px;height:15px;stroke-width:2.4}
.ahgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.kvlist{padding:0 20px 14px}
.kvrow{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-top:1px solid var(--border);font-size:14px}
.kvrow:first-child{border-top:0}
.kvrow span{color:var(--muted)}.kvrow b{font-weight:500;text-align:right}
.actlist{list-style:none;margin:0;padding:0 20px 14px}
.actlist li{display:flex;gap:12px;padding:8px 0;border-top:1px solid var(--border);font-size:13.5px}
.actlist li:first-child{border-top:0}
.actlist .when{color:var(--muted);flex:none;width:118px}
.rdrawer{position:fixed;inset:0;z-index:55;background:rgba(20,20,22,.35);display:flex;justify-content:flex-end}
.rdrawer-panel{width:440px;max-width:100%;height:100%;overflow-y:auto;background:var(--surface);border-left:1px solid var(--border-strong);box-shadow:var(--shadow-pop);padding:20px 22px 28px;animation:rdIn .18s ease-out}
@keyframes rdIn{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
.rd-head{display:flex;align-items:flex-start;gap:12px}
.rd-head>div{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.rd-head h2{font-family:var(--serif);font-size:23px;font-weight:600;margin:0}
.rd-actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 8px}
.rdrawer h3{font-size:13px;font-weight:600;margin:20px 0 8px;display:flex;justify-content:space-between;align-items:baseline}
.rdrawer .facts{grid-template-columns:1fr 1fr;gap:10px 16px}
.rdrawer .issues.compact{margin:10px 0 0;border:1px solid var(--border);border-radius:10px;padding:0}
.rdrawer .issues.compact .issue{padding:10px 12px}
.rdrawer .setup-steps{grid-template-columns:1fr}
.rdrawer #rdCheck{margin-top:8px}
@media(max-width:900px){.ahgrid{grid-template-columns:1fr}}
@media(max-width:700px){.issue{flex-wrap:wrap;padding:12px 16px}.issue .btn{margin-left:36px}.actlist .when{width:96px}}
@media(prefers-reduced-motion:reduce){.rdrawer-panel{animation:none}}
@media(max-width:700px){.ahtable td .cell{text-align:right}.ahtable td .mini{margin-left:auto}.ahtable td.actcell{padding-bottom:10px}}
