/* Owner dashboard. Base rules copied from the G&G Command Center (ggautohausteam.com /static/style.css) so this
   looks like the owner's section of the same product: same palette, logo tile, header, panels, stats, badges. */
:root{--bg:#0b1220;--bg2:#111a2b;--panel:#152036;--panel2:#1b2842;--line:#26344f;--text:#e6ebf2;--muted:#9aa6b8;--silver:#c9d1dc;
--accent:#14b8a6;--accent2:#0d9488;--accentbg:rgba(20,184,166,.12);--warn:#f59e0b;--bad:#ef4444;--good:#22c55e;--info:#38bdf8}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 "Inter","Segoe UI",system-ui,-apple-system,sans-serif}
html{-webkit-text-size-adjust:100%}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.top{position:sticky;top:0;z-index:20;background:#0e1729;border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top)}
.bar{display:flex;align-items:center;gap:18px;padding:10px 24px}
.brand{display:flex;align-items:center;gap:10px;color:var(--text);white-space:nowrap}.brand:hover{text-decoration:none}
.logo{width:36px;height:36px;border-radius:9px;background:linear-gradient(135deg,#e5e9f0,#8e9aab);color:#0b1220;display:grid;place-items:center;font-weight:800;font-size:13px;letter-spacing:-.5px}
.brand b{font-size:16px;letter-spacing:.2px}.brand small{display:block;color:var(--muted);font-size:11px;letter-spacing:1.5px;text-transform:uppercase}
.who{margin-left:auto;display:flex;align-items:center;gap:10px;color:var(--muted);white-space:nowrap}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--panel2);border:1px solid var(--line);display:grid;place-items:center;color:var(--silver);font-weight:700;font-size:12px}
.role{font-size:11px;padding:2px 8px;border-radius:99px;background:var(--accentbg);color:var(--accent);text-transform:uppercase;letter-spacing:.6px}
nav.tabs{display:flex;gap:2px;padding:0 20px;overflow-x:auto}nav.tabs a{color:var(--muted);padding:9px 12px;border-bottom:2px solid transparent;white-space:nowrap;font-weight:500}
nav.tabs a:hover{color:var(--text);text-decoration:none}nav.tabs a.on{color:var(--text);border-bottom-color:var(--accent)}
main{padding:22px 24px 40px;max-width:1380px;margin:0 auto}
h1{font-size:22px;margin:0 0 4px}h2{font-size:16px;margin:0 0 10px}h3{font-size:14px;margin:0 0 8px}.sub{color:var(--muted);margin:0 0 18px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:16px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:1fr 1fr}.g4{grid-template-columns:repeat(4,1fr)}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.stat b{font-size:24px;display:block}.stat span{color:var(--muted);font-size:12px}
label.f{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}
input,select,textarea{background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 10px;font:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent2);border-color:transparent}
.btn,button{background:var(--accent);color:#04211e;border:0;border-radius:8px;padding:9px 14px;cursor:pointer;font:inherit;font-weight:600}
.btn:hover,button:hover{background:#2dd4bf;text-decoration:none}
.btn.ghost,button.ghost{background:transparent;color:var(--silver);border:1px solid var(--line)}.btn.ghost:hover,button.ghost:hover{border-color:var(--accent);color:var(--text)}
.btn.sm,button.sm{padding:5px 10px;font-size:12px}
button:disabled{opacity:.6;cursor:default}
.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:ui-monospace,Menlo,monospace}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:2px 9px;border-radius:99px;font-weight:600;white-space:nowrap;border:0}
.b-good{background:rgba(34,197,94,.13);color:#4ade80}.b-bad{background:rgba(239,68,68,.14);color:#f87171}.b-warn{background:rgba(245,158,11,.14);color:#fbbf24}.b-info{background:rgba(56,189,248,.12);color:#7dd3fc}.b-muted{background:var(--panel2);color:var(--muted)}
.note{background:var(--bg2);border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:8px;padding:9px 12px;color:var(--silver);font-size:12.5px;margin:8px 0 16px}
.empty{color:var(--muted);text-align:center;padding:18px 10px}
.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.login-hero{background:radial-gradient(1200px 600px at 0% 0%,#1c2c4a 0%,#0b1220 60%);padding:56px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line)}
.login-box{display:grid;place-items:center;padding:40px}.login-card{width:100%;max-width:380px}
.login-card input{width:100%;padding:11px 12px;margin-top:6px;font-size:16px}
@media(max-width:900px){.login-wrap{grid-template-columns:1fr}.login-hero{display:none}}
footer.foot{color:var(--muted);font-size:11.5px;text-align:center;padding:20px 20px calc(20px + env(safe-area-inset-bottom))}

/* ---------- owner-only additions (same palette) ---------- */
.hidden{display:none!important}
.err{color:#f87171;font-size:13px;min-height:1em}
.ok-text{color:#4ade80}
.hidden-user{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.logo-lg{width:44px;height:44px;font-size:15px}.brand-lg{font-size:19px}
.hero-h{font-size:34px;line-height:1.15;max-width:520px}.hero-p{max-width:480px;font-size:15px}
.login-card{padding:28px}.login-h{font-size:20px}.login-card .muted{margin-top:0}
button.wide{width:100%;margin-top:20px;padding:11px}
.mobile-brand{display:none;margin-bottom:18px}
@media(max-width:900px){.mobile-brand{display:flex}.login-box{min-height:100vh;padding:24px 16px}}
.linkbtn{background:none;border:0;color:var(--accent);padding:0;font-size:inherit;font-weight:500}.linkbtn:hover{background:none;text-decoration:underline}

.statusbar{display:flex;flex-wrap:wrap;gap:8px;padding:10px 24px;border-bottom:1px solid var(--line);background:var(--bg2);max-width:none}
.statusbar .badge{font-size:12.5px;padding:4px 11px}
#st-wendy{cursor:pointer}
.dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block;font-style:normal}
.statusdetail{padding:8px 24px;font-size:12.5px;color:var(--silver);background:var(--bg2);border-bottom:1px solid var(--line)}

.stats{margin-bottom:16px}
.stat em{display:block;font-style:normal;margin-top:2px}
.stat.hot{border-color:rgba(239,68,68,.55);background:linear-gradient(180deg,rgba(239,68,68,.10),var(--panel))}.stat.hot b{color:#f87171}

.ph{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.ph h2{margin:0;display:flex;align-items:center;gap:8px}
.row{display:flex;gap:8px;flex-wrap:wrap}
.notify{border-color:rgba(20,184,166,.45)}.notify p{margin:0 0 12px}

.layout{display:grid;gap:16px;grid-template-columns:1.45fr 1fr;grid-template-areas:"alerts message" "alerts reports" "alerts rollup" "alerts questions";grid-template-rows:auto auto auto 1fr;align-items:start}
.layout>.panel{margin:0}
.a-alerts{grid-area:alerts}.a-message{grid-area:message}.a-reports{grid-area:reports}.a-rollup{grid-area:rollup}.a-questions{grid-area:questions}

.group{margin-top:14px}.group:first-of-type{margin-top:0}
.group h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px}
.gh{color:var(--muted);font-weight:400;font-size:12px}
.more{margin-top:6px}

.item{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px}
.item.urgent{border-color:rgba(239,68,68,.55);border-left:3px solid var(--bad);background:linear-gradient(90deg,rgba(239,68,68,.08),var(--bg2) 60%)}
.item.needs{border-left:3px solid var(--warn)}
.item-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:5px}
.item-title{font-weight:600;color:var(--text)}
.when{font-size:12px;color:var(--muted);margin-left:auto;white-space:nowrap}
.item-body{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--silver);font-size:13.5px}
.item-body.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer}
.chip{display:inline-block;font-size:11px;padding:1px 7px;border-radius:6px;background:var(--panel2);border:1px solid var(--line);color:var(--silver)}
.chip.test{color:#fbbf24;border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.08)}

.adv{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:9px 2px;border-bottom:1px solid #1e2a42}
.adv:last-child{border-bottom:0}
.adv .who2{font-weight:600}.adv .k{color:var(--muted);font-size:12.5px}.adv .r{text-align:right}

.rollup-body{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--silver);font-size:13.5px;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:12px;max-height:420px;overflow:auto}
.queued{margin-top:12px}.queued h3{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 6px}
.queued li{margin:4px 0;color:var(--silver);white-space:pre-wrap;overflow-wrap:anywhere}
.queued ul{margin:0;padding-left:18px}

.all-clear{display:flex;align-items:center;gap:10px;background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.3);color:#4ade80;border-radius:10px;padding:12px;font-weight:600}
.all-clear .check{width:24px;height:24px;border-radius:50%;background:rgba(34,197,94,.2);display:inline-grid;place-items:center;flex:none}
.question{border-top:1px solid var(--line);padding:12px 0}.question:first-child{border-top:0;padding-top:0}
.q-id{font-size:12px;font-weight:700;color:var(--muted)}.q-text{margin:4px 0;font-weight:600}
.opts{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.opt{text-align:left;background:var(--bg2);border:1px solid var(--line);color:var(--text);font-weight:500}
.opt:hover{background:var(--panel2)}
.opt.picked{border-color:var(--accent);background:var(--accentbg);color:#5eead4}
.question textarea{width:100%;font-size:16px;margin:4px 0 8px}

@media(max-width:1000px){
  .layout{grid-template-rows:auto}
  .g4{grid-template-columns:1fr 1fr}
  .layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"message" "reports" "rollup" "alerts" "questions"}
}
@media(max-width:640px){
  .bar{padding:10px 14px}main{padding:16px 12px 30px}.statusbar{padding:8px 12px}.statusdetail{padding:8px 12px}
  nav.tabs{padding:0 8px}.who{gap:6px}.who .role,.who .avatar{display:none}
  .stat{padding:12px}.stat b{font-size:22px}.panel{padding:14px}
  .when{margin-left:0;flex-basis:100%}
}
.queued summary{cursor:pointer;font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:600;padding:4px 0;list-style:none}
.queued summary::-webkit-details-marker{display:none}.queued summary::before{content:"\25B8  ";color:var(--accent)}
.queued[open] summary::before{content:"\25BE  "}

/* ---------- v2: actions, drafts, message box, settings ---------- */
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.actions button{padding:8px 14px}
button.reject{background:transparent;color:#f87171;border:1px solid rgba(239,68,68,.45)}button.reject:hover{background:rgba(239,68,68,.12)}
.draft{border-left:3px solid var(--warn)}
.draft .meta{color:var(--muted);font-size:12.5px;margin-bottom:6px}
.draft .quote{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:14px}
.draft textarea{width:100%;font-size:16px;min-height:110px;margin-top:6px}
.draft.done{opacity:.85;border-left-color:var(--good)}
.draft.rejected{border-left-color:var(--muted)}
.outcome{margin-top:8px;font-size:12.5px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.testtag{font-weight:700;color:#fbbf24}
.adv{grid-template-columns:1fr auto}
.adv .acts{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center}
.adv .acts button{padding:6px 11px;font-size:12.5px}
.adv .acts .small{flex-basis:100%}
.seg{display:flex;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:3px;gap:3px;margin-bottom:8px}
.segbtn{flex:1;background:transparent;color:var(--muted);padding:8px 6px;font-size:13px;border-radius:8px}
.segbtn:hover{background:var(--panel2);color:var(--text)}
.segbtn.on{background:var(--accent);color:#04211e}
.a-message textarea{width:100%;font-size:16px;margin:4px 0 8px}
.a-message .row{align-items:center}
.answer{margin-top:12px;background:var(--bg2);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:10px 12px}
.answer .q{color:var(--muted);font-size:12.5px;margin-bottom:4px}
.answer .a{white-space:pre-wrap;overflow-wrap:anywhere}
.req{border-top:1px solid #1e2a42;padding:8px 0}.req:first-child{border-top:0}
.req .t{white-space:pre-wrap;overflow-wrap:anywhere}
.req .rep{margin-top:6px;padding:8px 10px;border-radius:8px;background:var(--accentbg);color:#5eead4;white-space:pre-wrap}
.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;vertical-align:-2px}
@keyframes spin{to{transform:rotate(360deg)}}
.settings>summary{cursor:pointer;list-style:none}.settings>summary::-webkit-details-marker{display:none}
.settings>summary h2{display:inline;margin:0}.settings>summary::before{content:"\25B8  ";color:var(--accent)}
.settings[open]>summary::before{content:"\25BE  "}
.pwform{max-width:420px;margin-top:12px;display:flex;flex-direction:column;gap:10px}
.pwform input{width:100%;font-size:16px;padding:10px 12px}

/* ---------- v3: read state, acknowledge, related-to context ---------- */
.udot{width:9px;height:9px;border-radius:50%;background:var(--accent);display:inline-block;flex:none;box-shadow:0 0 0 3px var(--accentbg)}
.item.urgent .udot{background:var(--bad);box-shadow:0 0 0 3px rgba(239,68,68,.2)}
.item.unread .item-body,.adv.unread .who2{font-weight:700;color:var(--text)}
.item.unread{box-shadow:inset 0 0 0 1px rgba(20,184,166,.35)}
.item.urgent.unread{box-shadow:inset 0 0 0 1px rgba(239,68,68,.6)}
.adv .who2{display:flex;align-items:center;gap:7px}
.unread-text{color:#5eead4!important;font-weight:600}
.readrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.filterbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-2px 0 12px}
.seg-sm{margin:0;flex:0 1 220px}.seg-sm .segbtn{padding:6px 10px}
.adv .related{grid-column:1 / -1;margin-top:6px}
.related>summary,.orig>summary{cursor:pointer;color:var(--accent);font-size:12.5px;font-weight:600;list-style:none;padding:3px 0}
.related>summary::-webkit-details-marker,.orig>summary::-webkit-details-marker{display:none}
.related>summary::before,.orig>summary::before{content:"\25B8  "}.related[open]>summary::before,.orig[open]>summary::before{content:"\25BE  "}
.ctx{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:6px 0 10px}
.ctx .trigger{font-weight:700;color:var(--text);margin-bottom:6px}
.facts{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;font-size:13px}
.fact{display:contents}.fl{color:var(--muted)}.fv{color:var(--silver);overflow-wrap:anywhere}
.ctx-sum{margin:8px 0 4px;color:var(--silver);font-size:13px;font-style:italic}
.orig{margin-top:6px}.orig-text{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:9px 11px;margin-top:4px;font-size:13.5px;max-height:360px;overflow:auto}
.why{margin-top:8px;font-size:13px;color:var(--silver);border-left:3px solid var(--info);padding:4px 0 4px 10px}
.why b{color:#7dd3fc}
.note-line{color:#fbbf24;margin:6px 0 0}
.draft-label{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:4px 0 4px;font-weight:600}
.ifok{margin-top:10px;font-size:13px;color:#fbbf24;background:rgba(245,158,11,.08);border:1px dashed rgba(245,158,11,.45);border-radius:8px;padding:8px 10px}

/* ---------- alert detail sheet ---------- */
.adv .opendetail{grid-column:1 / -1;text-align:left;margin-top:6px;font-size:12.5px;font-weight:600}
.adv .tappable{cursor:pointer}
body.sheet-open{overflow:hidden}
.sheet{position:fixed;inset:0;z-index:60;background:var(--bg);overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:env(safe-area-inset-bottom)}
.sh-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;background:#0e1729;border-bottom:1px solid var(--line)}
.sh-title{font-weight:600;color:var(--silver)}
.sh-body{max-width:760px;margin:0 auto;padding:16px}
.sh-head h2{font-size:22px;margin:0 0 2px}.sh-head .k{color:var(--muted);margin-bottom:8px}
.sh-sec{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-top:14px}
.sh-sec h3{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 10px}
a.tel{font-weight:700;font-size:15px}
.tl{list-style:none;margin:0;padding:0}
.tl li{display:grid;grid-template-columns:150px 1fr;gap:10px;padding:6px 0;border-bottom:1px solid #1e2a42;font-size:13.5px}.tl li:last-child{border-bottom:0}
.tl-at{color:var(--muted)}
.thread{display:flex;flex-direction:column;gap:8px}
.msg{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:9px 11px}
.msg-alert{border-left:3px solid var(--accent)}.msg-reply,.msg-post{border-left:3px solid var(--info)}
.msg-reaction{border-left:3px solid var(--good)}.msg-action{border-left:3px solid var(--warn)}
.msg-h{display:flex;flex-wrap:wrap;gap:4px;align-items:baseline;font-size:12.5px;margin-bottom:4px}
.msg-t{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13.5px;color:var(--silver)}
@media(max-width:640px){.tl li{grid-template-columns:1fr;gap:0}}

/* ---------- reports ---------- */
.replinks{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.replink,.reprow{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--panel);border:1px solid rgba(20,184,166,.45);color:var(--text);border-radius:10px;padding:10px 12px;font-weight:500}
.replink:hover,.reprow:hover{background:var(--accentbg)}
.repicon{flex:none;font-size:10.5px;font-weight:800;letter-spacing:.5px;color:#f87171;border:1px solid rgba(239,68,68,.5);border-radius:5px;padding:2px 5px}
.reptext{flex:1;overflow-wrap:anywhere}
.repgo{flex:none;color:#5eead4;font-weight:600;font-size:12.5px}
.reprow{border-color:var(--line);background:var(--bg2);margin-bottom:6px}
.reprow-l{flex:1;min-width:0}
.rep-t{font-weight:600}
.rep-body{max-width:900px}
.rep-head{margin-bottom:12px}.rep-head .row{margin-top:10px}
.rep-frame{width:100%;height:75vh;border:1px solid var(--line);border-radius:10px;background:#fff;display:block}
/* iPhone: Safari grows an iframe to its content's width (sideways scrolling). width:1px + min-width:100% pins it to
   the screen width; the report itself is responsive. (wendy, 2026-11-08) */
.rep-frame{width:1px;min-width:100%;max-width:100%}
@media(max-width:640px){.rep-body.sh-body{padding:10px 6px}}
.askhist{margin-top:12px}.askhist>summary{cursor:pointer;color:var(--accent);font-size:12.5px;font-weight:600;list-style:none}
.askhist>summary::-webkit-details-marker{display:none}.askhist>summary::before{content:"\25B8  "}.askhist[open]>summary::before{content:"\25BE  "}

/* ---------- phone-alerts banner + notification mode ---------- */
.pushbanner{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;border-radius:0;padding:12px 24px;
  background:linear-gradient(90deg,rgba(239,68,68,.22),rgba(239,68,68,.10));border-bottom:1px solid rgba(239,68,68,.55);color:var(--text);font-weight:500}
.pushbanner:hover{background:linear-gradient(90deg,rgba(239,68,68,.3),rgba(239,68,68,.14))}
.pb-icon{flex:none;width:28px;height:28px;border-radius:50%;background:var(--bad);color:#fff;display:grid;place-items:center;font-weight:800}
.pb-text{flex:1;display:flex;flex-direction:column;gap:2px}.pb-text b{color:#fecaca;font-size:15px}
#push-banner-sub{font-size:12.5px;color:var(--silver)}
.pb-go{flex:none;font-size:22px;color:#fecaca}
.modes{margin-top:12px;display:flex;flex-direction:column;gap:6px}.modes .seg{max-width:340px}
@media(max-width:640px){.pushbanner{padding:12px}}

/* ---------- header bell + Urgent|All toggle + popover (replaces the big Phone alerts card) ---------- */
.hdrbtn{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;font-size:12px;border-radius:8px}
.bell{background:transparent;border:1px solid var(--line);color:var(--silver);font-weight:700}
.bell:hover{background:var(--panel2)}
.bell.on{color:#4ade80;border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.08)}
.bell.off{color:#f87171;border-color:rgba(239,68,68,.55);background:rgba(239,68,68,.10)}
.hdr-seg{display:inline-flex;height:30px;padding:2px;gap:2px;margin:0;border-radius:8px;align-items:stretch}
.hdr-seg .segbtn{flex:none;padding:0 9px;font-size:12px;border-radius:6px;line-height:1}
.rf-icon{display:none;font-size:16px;line-height:1}
.top{position:sticky}
.notify-pop{position:absolute;right:16px;top:calc(100% - 38px);z-index:30;width:min(360px,calc(100vw - 24px));background:var(--panel);
  border:1px solid rgba(20,184,166,.5);border-radius:12px;padding:14px 16px;box-shadow:0 12px 40px rgba(0,0,0,.55)}
.notify-pop p{margin:0 0 8px}
.notify-pop .row{margin:6px 0 4px}
@media(max-width:640px){
  .brand small{display:none}.brand b{font-size:14px}.logo{width:32px;height:32px;font-size:12px}
  .bar{gap:8px}.who{gap:5px}
  .rf-icon{display:inline}.rf-text{display:none}.hdrbtn{padding:0 8px}
  .hdr-seg .segbtn{padding:0 7px}
  .notify-pop{right:12px;top:52px}
}

/* ---------- PDF overlay (fixed close button, swipe down to dismiss) ---------- */
.pdfov{position:fixed;inset:0;z-index:90;background:#0b1220;display:flex;flex-direction:column;transition:transform .15s ease-out}
.pdfov-bar{flex:none;display:flex;align-items:center;gap:10px;padding:calc(env(safe-area-inset-top) + 8px) 12px 8px 16px;
  background:#0e1729;border-bottom:1px solid var(--line);position:relative;touch-action:none}
.pdfov-grip{position:absolute;left:50%;top:calc(env(safe-area-inset-top) + 2px);width:40px;height:4px;margin-left:-20px;border-radius:2px;background:var(--line)}
.pdfov-t{flex:1;font-weight:600;color:var(--silver);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdfov-x{flex:none;width:40px;height:40px;border-radius:50%;padding:0;font-size:18px;background:var(--panel2);color:var(--text);border:1px solid var(--line)}
.pdfov-x:hover{background:var(--bad);color:#fff}
.pdfov-frame{flex:1;width:1px;min-width:100%;max-width:100%;border:0;background:#fff}  /* same iPhone width pinning as .rep-frame */
/* no sideways scrolling at 390 px: grid/flex children may shrink below their content's width */
.layout>*,.grid>*,.sh-body>*:not(.rep-frame){min-width:0}
.layout{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}
@media(max-width:1000px){.layout{grid-template-columns:minmax(0,1fr)}}

/* ---------- solid top edge (iPhone): opaque header that also covers the status bar / notch area ---------- */
html{background:#0e1729}
body{background:var(--bg)}
.top{background:#0e1729;border-bottom:1px solid #2b3a57;box-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-backdrop-filter:none;backdrop-filter:none;
  padding-top:env(safe-area-inset-top);z-index:40}
.sh-bar{background:#0e1729;border-bottom:1px solid #2b3a57;-webkit-backdrop-filter:none;backdrop-filter:none}
.pdfov-bar{background:#0e1729;border-bottom:1px solid #2b3a57}

/* ---------- tappable tiles, jump highlight, back-to-top ---------- */
.stat.tap{cursor:pointer;position:relative;transition:border-color .15s,background .15s}
.stat.tap::after{content:"\203A";position:absolute;right:12px;top:10px;color:var(--muted);font-size:18px}
.stat.tap:hover,.stat.tap:active{border-color:rgba(20,184,166,.6);background:var(--accentbg)}
.group.flash{animation:flash 1.4s ease-out}
@keyframes flash{0%{box-shadow:0 0 0 2px rgba(20,184,166,.8);border-radius:10px}100%{box-shadow:0 0 0 2px rgba(20,184,166,0)}}
.open-chip{margin:0 0 8px}
.totop{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom));z-index:35;
  border-radius:999px;padding:9px 16px;font-size:13px;box-shadow:0 6px 20px rgba(0,0,0,.5)}

/* ---------- reports list: clear / swipe / archived ---------- */
.reprow-wrap{display:flex;align-items:stretch;gap:6px;margin-bottom:6px;transition:opacity .2s,transform .2s}
.reprow-wrap .reprow{margin:0;flex:1;min-width:0;transition:transform .15s}
.reprow-wrap.leaving{opacity:0;transform:translateX(-30px)}
.rep-clear{flex:none;width:40px;padding:0;background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:10px;font-size:15px}
.rep-clear:hover{color:#f87171;border-color:rgba(239,68,68,.5);background:rgba(239,68,68,.08)}
.rep-restore{flex:none;align-self:center}
.reprow-wrap.archived .reprow{opacity:.6}
.reports-foot{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px;font-size:13px}
.archived-list{flex-basis:100%;margin-top:8px;display:flex;flex-direction:column;gap:6px}

/* ---------- compact report cards; swipe left reveals Clear ---------- */
.reprow-wrap{position:relative;display:block;overflow:hidden;border-radius:10px;margin-bottom:6px;gap:0}
.reprow-wrap .reprow{position:relative;z-index:1;margin:0;width:100%;padding:9px 12px;gap:10px;background:var(--bg2);border:1px solid var(--line);
  transition:transform .18s ease-out;touch-action:pan-y}
.reprow-wrap .rep-t{font-size:14px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rep-sub{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reprow-wrap .repgo{font-size:12px}
.rep-clear{position:absolute;z-index:0;top:0;right:0;bottom:0;width:88px;border:0;border-radius:0 10px 10px 0;padding:0;
  background:var(--bad);color:#fff;font-weight:700;font-size:13px}
.rep-clear:hover{background:#dc2626}
.reprow-wrap:not(.open):not(.swiping) .rep-clear{visibility:hidden}
.reprow-wrap.open .rep-clear{visibility:visible}
.rep-restore{flex:none;margin-left:6px}

/* ---------- Team HQ tab ---------- */
nav.tabs .tab{background:transparent;color:var(--muted);padding:9px 12px;border:0;border-bottom:2px solid transparent;border-radius:0;
  white-space:nowrap;font-weight:500;font-size:14px;display:inline-flex;align-items:center;gap:6px}
nav.tabs .tab:hover{color:var(--text);background:transparent}
nav.tabs .tab.on{color:var(--text);border-bottom-color:var(--accent)}
.tabbadge{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--warn);color:#0b1220;font-size:11px;font-weight:800;
  display:inline-grid;place-items:center}
.hq-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
.hq-grid>.panel{margin:0;min-width:0}
@media(min-width:1001px){.hq-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start}
  .hq-projects{grid-column:1;grid-row:1 / span 3}.hq-wait{grid-column:2}.hq-agents{grid-column:2}.hq-queue{grid-column:2}.hq-decisions{grid-column:1 / -1}}
.proj{border-top:1px solid var(--line);padding:12px 0}.proj:first-child{border-top:0;padding-top:2px}
.proj-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.proj-n{font-weight:700;font-size:15px;flex:1;min-width:0}
.pdot{width:10px;height:10px;border-radius:50%;flex:none}
.pdot.green{background:var(--good);box-shadow:0 0 0 3px rgba(34,197,94,.18)}
.pdot.amber{background:var(--warn);box-shadow:0 0 0 3px rgba(245,158,11,.18)}
.pdot.grey{background:#64748b;box-shadow:0 0 0 3px rgba(100,116,139,.2)}
.proj-goal{margin:6px 0 4px;color:var(--silver);font-size:13px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.proj-next{margin:6px 0 0;font-size:13px;color:var(--text)}.proj-next b{color:#5eead4}
.proj-more>summary{cursor:pointer;color:var(--accent);font-size:12.5px;font-weight:600;list-style:none;padding:3px 0}
.proj-more>summary::-webkit-details-marker{display:none}.proj-more>summary::before{content:"\25B8  "}.proj-more[open]>summary::before{content:"\25BE  "}
.proj-f{font-size:13px;color:var(--silver);margin:4px 0;overflow-wrap:anywhere}.proj-f b{color:var(--text)}
.agent{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.agent:first-child{border-top:0;padding-top:0}
.agent-l{flex:1;min-width:0}.agent-n{font-weight:600}
.agent-r{display:flex;align-items:center;gap:6px;flex:none;color:#4ade80}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--good);animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,.6)}50%{box-shadow:0 0 0 5px rgba(34,197,94,0)}}
.queue-list{margin:0;padding-left:22px}.queue-list li{margin:6px 0}.q-title{font-weight:600}
.dec{border-top:1px solid var(--line);padding:9px 0}.dec:first-child{border-top:0;padding-top:0}
.dec-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:3px}.dec-p{font-weight:600;font-size:13px}
.dec-t{font-size:13px;color:var(--silver);overflow-wrap:anywhere}
.todo{display:flex;align-items:center;gap:8px;margin-top:8px}.todo-box{width:14px;height:14px;border:2px solid var(--warn);border-radius:3px;flex:none}

/* ---------- Dashboard tab (dark only). Charts are inline SVG coloured by these tokens. ---------- */
:root{--good-t:#4ade80;--near-t:#fbbf24;--bad-t:#f87171;--good-bg:rgba(34,197,94,.13);--near-bg:rgba(245,158,11,.14);--bad-bg:rgba(239,68,68,.14)}
.dash-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.dash-head h1{margin:0}
.sample-note{border-left-color:var(--info);margin:0 0 12px}
.livechip{gap:6px}.livedot{width:7px;height:7px;border-radius:50%;background:currentColor;animation:pulse 1.6s ease-in-out infinite}
.caret{color:var(--muted);font-size:11px;flex:none}
.st-good{color:var(--good-t)}.st-near{color:var(--near-t)}.st-bad{color:var(--bad-t)}
.chg-up{color:var(--good-t)}.chg-down{color:var(--bad-t)}
.pendbox{grid-column:1 / -1;border:1px dashed var(--line);border-radius:10px;padding:16px;color:var(--muted);text-align:center}
svg.hbar{display:block;width:100%;height:8px}
.gb-track{fill:var(--line)}.gb-goal{fill:var(--text)}
.gb-fill{fill:var(--accent)}.gb-fill.st-good{fill:var(--good)}.gb-fill.st-near{fill:var(--warn)}.gb-fill.st-bad{fill:var(--bad)}
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:-4px 0 10px}
.legend .lg{display:inline-block;width:10px;height:10px;border-radius:3px;margin-left:4px}
.fold>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary h2{margin:0}.fold>summary h2::before{content:"\25B8  ";color:var(--accent)}.fold[open]>summary h2::before{content:"\25BE  "}
.fold[open]>summary{margin-bottom:10px}
.linkbtn.sc-more{margin-top:8px;font-size:13px}

/* today: sold | closed */
.today{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:14px}
.today-t{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:var(--panel);color:var(--text);
  border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-weight:400;min-width:0}
.today-t:hover,.today-t.on{background:var(--panel);border-color:rgba(20,184,166,.6)}
.today-t .kt-label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
.today-v{font-size:28px;font-weight:700;line-height:1.15}.today-v.muted{font-size:20px;font-style:italic}
.today-n{font-size:12px;color:var(--muted)}
.today-split{grid-column:1 / -1;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.today-split p{margin:6px 0 0}
table.split{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:13.5px}
table.split th{color:var(--muted);font-weight:600;text-align:left;padding:4px 0;border-bottom:1px solid var(--line)}
table.split td{padding:6px 0;border-bottom:1px solid var(--line)}
table.split .num{text-align:right}
.dash-seg{margin-bottom:14px}.dash-seg .segbtn{padding:8px 2px}

/* KPIs */
.dash-ph{flex-wrap:wrap}.dash-period{flex:0 1 260px;margin:0}
.dash-ph select.dash-week{max-width:100%;font-size:13px;padding:5px 8px}
.ktiles{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:641px){.ktiles{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ktile{min-width:0;padding:12px 14px;background:var(--bg2)}
.ktile .kt-label{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
.ktile b.kt-val{font-size:24px;margin:2px 0}
.ktile.pending b.kt-val{color:var(--muted);font-size:18px;font-style:italic}
.kt-goal{margin-bottom:3px}
.kt-chg{font-size:12px;margin-top:4px;color:var(--muted)}
.kt-asof{display:block;font-style:normal;color:var(--muted);font-size:11px;margin-top:3px}
svg.goalbar{display:block;width:100%;height:8px}
.advrow{background:var(--bg2);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:8px;min-width:0}
.advrow.st-good{border-left-color:var(--good)}.advrow.st-near{border-left-color:var(--warn)}.advrow.st-bad{border-left-color:var(--bad)}
.advrow-h{display:flex;width:100%;align-items:center;gap:8px;background:transparent;border:0;padding:2px 0 8px;color:var(--text);text-align:left}
.advrow-h:hover{background:transparent}.advrow-h .badge{margin-left:auto}
.advrow-n{font-weight:700;font-size:15px}
.advcells{display:grid;gap:6px;grid-template-columns:repeat(4,minmax(0,1fr))}
.advcell{background:var(--panel);border-radius:8px;padding:6px 8px;min-width:0;color:var(--text)}
.advcell.st-good{background:var(--good-bg)}.advcell.st-near{background:var(--near-bg)}.advcell.st-bad{background:var(--bad-bg)}
.advcell .ac-l{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.advcell .ac-v{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.advcell.pending .ac-v{color:var(--muted);font-style:italic;font-weight:500}
.mom-row{padding:8px 0;border-top:1px solid var(--line)}.mom-row:first-of-type{border-top:0}
.mom-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}.mom-h .kt-chg{margin:0}
.mom-l{font-weight:600}
.mom-line{display:grid;grid-template-columns:76px minmax(0,1fr) 72px;gap:8px;align-items:center;font-size:12px}
.mom-k{color:var(--muted)}.mom-v{text-align:right;font-variant-numeric:tabular-nums}
.mom-cur{fill:var(--accent)}.mom-prev{fill:var(--muted)}

/* scorecards */
.scards{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.scards{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}
.scard{margin:0;min-width:0}.scard .ph{flex-wrap:wrap}
.sc-row{display:grid;grid-template-columns:minmax(0,1fr) auto 120px;gap:10px;align-items:center;padding:7px 0;border-top:1px solid var(--line)}
.sc-row:first-of-type{border-top:0}
.sc-l{min-width:0}.sc-n{display:block;font-size:13px}.sc-c{display:block;font-size:11px}
.sc-v{font-size:15px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.sc-v.pending{color:var(--muted);font-style:italic;font-weight:500}
svg.spark{display:block;width:120px;height:30px}
.spk-bar{fill:var(--accent);opacity:.5}.spk-bar.last{opacity:1}.spk-gap{fill:var(--muted);opacity:.6}
.spk-goal{stroke:var(--warn);stroke-width:1;stroke-dasharray:3 2}

/* techs: workload now */
.wl-row{border-top:1px solid var(--line)}.wl-row:first-child{border-top:0}
.wl-h{display:grid;grid-template-columns:64px minmax(0,1fr) 52px 98px 10px;gap:8px;align-items:center;width:100%;background:transparent;border:0;
  padding:10px 0;color:var(--text);text-align:left;font-weight:400}
.wl-h:hover{background:transparent}
.wl-n{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wl-v{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.wl-h .badge{font-size:11px;padding:2px 7px;justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.wl-detail{padding:0 0 12px}
.wl-k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:8px 0 4px}
.wl-eta{display:flex;flex-wrap:wrap;gap:6px}
.wl-lab{display:flex;justify-content:space-between;gap:8px;padding:3px 0;font-size:13px}

/* job board */
.jb-ph{flex-wrap:wrap}.jb-unit{flex:0 0 140px;margin:0}.jb-sort{flex:0 1 260px;margin:0}
.jb-range{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;margin:0 0 8px}
.jb-range label.f{flex:1 1 130px;min-width:0}.jb-range input{width:100%;font-size:16px;padding:6px 8px}
.jb-line{margin:10px 0 0}
.jb-pend{color:var(--info)}
.jb-ranges{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.jbchip{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:100%}
.jbdot{width:11px;height:11px;border-radius:50%;flex:none;background:var(--muted);box-shadow:0 0 0 2px var(--panel2)}
.jbchip-t{font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
svg.jb-stack{display:block;width:100%;height:10px;margin:2px 0 8px}
.jb-sold{fill:var(--good)}.jb-pending{fill:var(--info)}.jb-declined{fill:var(--bad)}
.lg.jb-sold-bg{background:var(--good)}.lg.jb-pending-bg{background:var(--info)}.lg.jb-declined-bg{background:var(--bad)}
.hold{border-top:1px solid var(--line)}.hold:first-child{border-top:0}
.hold-h{display:flex;width:100%;align-items:center;gap:10px;background:transparent;border:0;padding:9px 0;color:var(--text);text-align:left;font-weight:400}
.hold-h:hover{background:transparent}
.hold-t{flex:1;min-width:0;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hold-t .badge{margin-right:6px;font-size:11px;padding:1px 7px}
.hold-ro{font-weight:700}
.hold-v{flex:none;font-variant-numeric:tabular-nums}
.hold-d{padding:0 0 10px}.hold-d p{margin:2px 0 6px}
.hold-part{display:flex;flex-direction:column;background:var(--bg2);border-radius:8px;padding:6px 10px;margin-top:6px;font-size:13px}
.jb-table-wrap{display:none}
.jb-table{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums}
.jb-table th{color:var(--muted);font-weight:600;text-align:left;padding:6px;border-bottom:1px solid var(--line);white-space:nowrap}
.jb-table td{padding:7px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.jb-table .num{text-align:right;white-space:nowrap}
.jb-table td.jb-mix{width:130px;vertical-align:middle}.jb-mix svg.jb-stack{margin:0}
.jb-n{color:var(--muted);font-size:11px}
.jb-table tr.jb-total td{background:var(--panel2);font-weight:700;border-bottom:2px solid var(--accent2)}
.jb-table tr.jb-row:hover td{background:var(--bg2)}
.jb-open{display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;padding:0;color:var(--text);font-weight:600;max-width:200px}
.jb-open:hover{background:transparent}
.jb-detail td{background:var(--bg2)}
.jb-ros{margin:4px 0}
.jb-rotable{border-collapse:collapse;font-size:12.5px;width:100%;max-width:560px;margin-top:6px}
.jb-rotable th,.jb-rotable td{padding:4px 8px 4px 0;text-align:left;border-bottom:1px solid var(--line)}
.jb-rotable .num{text-align:right}
.jb-cards{display:flex;flex-direction:column;gap:8px}
.jb-card{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:0}
.jb-card.jb-total{border-color:var(--accent2)}
.jb-card-h{display:flex;width:100%;align-items:center;gap:8px;background:transparent;border:0;padding:0 0 6px;color:var(--text);text-align:left;font-weight:400}
.jb-card-h:hover{background:transparent}.jb-card-w{margin-left:auto;font-size:13px;color:var(--silver);white-space:nowrap}
.jb-grid{display:grid;gap:6px;grid-template-columns:repeat(3,minmax(0,1fr))}
.jb-kv{background:var(--panel);border-radius:8px;padding:6px 8px;min-width:0}
.jb-kv .ac-l{display:block;font-size:11px;color:var(--muted)}.jb-kv .ac-v{display:block;font-size:14px}.jb-kv .ac-a{display:block;font-size:10px;color:var(--muted)}
.jb-kv.pending .ac-v{color:var(--muted);font-style:italic}
.jb-more{margin-top:6px}.jb-card .jb-ros{margin-top:8px}
.jb-foot{margin:10px 0 0}
@media(min-width:1001px){.jb-table-wrap{display:block}.jb-cards{display:none}}
@media(max-width:640px){.sc-row{grid-template-columns:minmax(0,1fr) auto 92px;gap:8px}svg.spark{width:92px}.ktile b.kt-val{font-size:21px}
  .today-v{font-size:24px}.advcell{padding:5px 6px}.advcell .ac-v{font-size:13px}}

/* waiting on parts: job blocks and part lines (readable, not chips) */
.plist{margin-top:4px}
.pg-h{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:12px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--line)}
.pg-h:first-child{margin-top:4px}.pg-h.pg-overdue{color:var(--bad-t);border-bottom-color:rgba(239,68,68,.5)}
.pg-h.pg-today{color:var(--info)}
.pg-date{font-size:12px;color:var(--silver);margin:8px 0 4px}
.pj{background:var(--bg2);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:10px;padding:10px 12px;margin:6px 0}
.pj.overdue{border-left-color:var(--bad)}
.pj-h{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.pj-veh{color:var(--silver);font-size:13px}
.pj-job{font-size:13.5px;margin:2px 0}
.pj-facts{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:12.5px;color:var(--muted);margin-bottom:4px}
.pj-reason{font-size:12.5px;color:var(--silver);margin-bottom:4px}
.pt{border-top:1px dashed var(--line);padding:6px 0 2px}
.pt-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline;font-size:13.5px}
.pt-top b{min-width:0;overflow-wrap:anywhere}
.pt-when{flex:none;font-size:12.5px;color:var(--text);text-align:right}
.pt.overdue .pt-when{color:var(--bad-t);font-weight:700}
.pt-meta{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.hold-eta{flex:none;font-size:12px;color:var(--muted)}
.hold .pj{margin:0 0 10px}
.wl-more{margin-top:10px}
.wl-more>summary{cursor:pointer;font-size:13px;color:var(--accent);font-weight:600;padding:4px 0}

/* ---------- Shadow review tab ---------- */
.sh-ready{margin-bottom:12px}
.sh-rd{padding:7px 0;border-top:1px solid var(--line)}.sh-rd:first-child{border-top:0}
.sh-rd-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}
.sh-rd-t{font-weight:600;font-size:13.5px;min-width:0;overflow-wrap:anywhere}
.sh-card{margin-bottom:12px}
.sh-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:6px}
.sh-id{font-size:15px}.sh-kind{margin-left:auto;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.sh-ref{font-weight:600;margin-bottom:6px}
.sh-k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.sh-would{background:var(--bg2);border-radius:8px;padding:8px 10px;margin-bottom:6px}
.sh-ul{margin:2px 0 6px;padding-left:18px;font-size:13.5px}.sh-ul li{margin:2px 0;overflow-wrap:anywhere}
.sh-why{color:var(--silver);font-size:12.5px}
.sh-grok{font-size:13px;color:var(--silver)}
.linkbtn.sh-more{font-size:13px;padding:4px 0;margin:2px 0}
.sh-slack{margin:4px 0}
.sh-form{margin-top:8px}
.sh-note{width:100%;font-size:16px;margin:4px 0 8px}
.sh-prompt{margin:4px 0;color:var(--near-t);font-size:13px}
.sh-btns{display:flex;gap:8px;flex-wrap:wrap}
.sh-btns>button{flex:1 1 0;min-height:46px;font-size:15px}
button.sh-ok{background:rgba(34,197,94,.16);color:var(--good-t);border:1px solid rgba(34,197,94,.5)}
button.sh-ok:hover{background:rgba(34,197,94,.26)}
button.sh-no{background:rgba(239,68,68,.14);color:var(--bad-t);border:1px solid rgba(239,68,68,.5)}
button.sh-no:hover{background:rgba(239,68,68,.24)}
.sh-queued{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;padding:10px 12px;border-radius:10px;background:var(--bg2);border:1px solid var(--line)}
.sh-queued>span:first-child{font-weight:700;flex:1}
.sh-queued.ok{border-color:rgba(34,197,94,.5)}.sh-queued.no{border-color:rgba(239,68,68,.5)}
.sh-qnote{margin:6px 0 0}
.sh-err{color:var(--bad-t);font-size:13px;margin:6px 0 0}
.sh-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.sh-filters .seg{flex:1 1 220px;margin:0}.sh-filters select{flex:1 1 140px;min-width:0}
.sh-rev{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--good);border-radius:12px;padding:10px 14px;margin-bottom:10px}
.sh-rev.no{border-left-color:var(--bad)}
.sh-notetext{font-size:13.5px;margin:6px 0;padding:6px 10px;background:var(--bg2);border-radius:8px;overflow-wrap:anywhere}
.sh-rule{border-top:1px solid var(--line);padding:12px 0}.sh-rule:first-child{border-top:0;padding-top:0}
.sh-ruletext{font-size:14.5px;margin:4px 0 8px;overflow-wrap:anywhere}
.sh-exids{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}
button.chip.sh-exbtn{cursor:pointer;font-size:12px;padding:3px 9px;font-weight:600}
button.chip.sh-exbtn.on{border-color:var(--accent);color:var(--text)}
.sh-ex{background:var(--bg2);border-radius:10px;padding:8px 10px;margin:0 0 8px}
.sh-top{margin:2px 0 6px}
.sh-top .sh-k{margin-top:6px}
.sh-quote{margin:3px 0 4px;padding:8px 12px;border-radius:10px;font-size:14.5px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;
  background:var(--bg2);border-left:3px solid var(--muted)}
.sh-quote.cust{border-left-color:var(--muted)}
.sh-quote.wendy{border-left-color:var(--accent);background:var(--accentbg)}
.sh-quote.kevin{border-left-color:var(--warn)}
.sh-h .sh-ref{margin:0 0 0 auto;font-weight:600}
.sh-acts{font-size:14px}
button.sh-edit{width:100%;margin-top:8px;min-height:42px}
.sh-reply{font-size:16px}

/* ---------- Dismiss (swipe left / ×), toast, drafts on the Shadow tab (Kevin 2026-11-10) ---------- */
.swipe{touch-action:pan-y;position:relative;will-change:transform}
.swipe.will-dismiss{box-shadow:inset 0 0 0 2px var(--bad)!important}
.dismiss-x{display:none;margin-left:auto;background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:8px;
  width:30px;height:30px;padding:0;font-size:18px;line-height:1;font-weight:400}
.dismiss-x:hover{color:var(--text);border-color:var(--muted);background:var(--panel2)}
@media (hover:hover) and (pointer:fine){.dismiss-x{display:inline-block}}
.adv .r .dismiss-x{margin:4px 0 0 6px}
.item.dismissed,.adv.dismissed{opacity:.55}
button.restore{margin-left:auto;min-height:34px}
.adv .r button.restore{margin:4px 0 0}
.dismissed-foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:10px 2px 2px;border-top:1px solid var(--line);margin-top:6px}
.dismissed-foot .linkbtn{font-size:14px;font-weight:600;min-height:40px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom));z-index:60;display:flex;
  align-items:center;gap:14px;max-width:calc(100vw - 24px);padding:10px 10px 10px 16px;border-radius:12px;background:#22314f;
  color:var(--text);border:1px solid var(--line);box-shadow:0 8px 24px rgba(0,0,0,.45);font-size:15px}
.toast.hidden{display:none}
.toast-b{background:transparent;color:var(--accent);border:1px solid var(--accent);min-height:40px;min-width:72px;font-size:15px}
button.draftlink{display:flex;align-items:center;gap:10px;width:100%;text-align:left;margin-bottom:8px;padding:12px 14px;min-height:56px;
  background:var(--bg2);color:var(--silver);border:1px solid var(--line);border-left:3px solid var(--muted);border-radius:10px;font-weight:400}
button.draftlink.has{border-left-color:var(--warn);color:var(--text)}
button.draftlink:hover{background:var(--panel2)}
.draftlink .dl-t{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.draftlink .dl-t .small{color:var(--muted)}
.draftlink .dl-go{color:var(--accent);font-weight:700;white-space:nowrap}
.draft-err{margin:8px 0 4px;padding:10px 12px;border-radius:10px;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.55);color:var(--text);font-size:14px}
.draft-err.hidden{display:none}
.draft-err b{color:#fca5a5}
.draft-err-msg{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;margin:4px 0;overflow-wrap:anywhere}
.sh-h2{font-size:16px;margin:14px 0 6px;display:flex;align-items:center;gap:8px}
.sh-drafts{margin-bottom:8px}
.sh-drafts .item.draft{background:var(--panel);padding:12px 14px;margin-bottom:12px}
.sh-drafts .actions{display:flex;flex-wrap:wrap;gap:8px}
.sh-drafts .actions button{flex:1 1 0;min-height:46px;font-size:15px}
.sh-drafts .actions button.markread{flex:0 0 100%;min-height:38px;font-size:13px}
.sh-teach{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}
.sh-teach-h{font-weight:700;color:var(--accent)}

/* ---------- At a glance (Kevin 2026-11-10) ---------- */
.glance{margin-bottom:14px}
.gl-seg{margin:0 0 8px}.gl-seg .segbtn{flex:1 1 0;min-height:40px}
.gl-range{margin:0 0 8px}
.gl-main{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}
.gl-second{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px}
@media (min-width:900px){.gl-main{grid-template-columns:repeat(4,minmax(0,1fr))}.gl-second{grid-template-columns:repeat(4,minmax(0,1fr))}}
.gl-t{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:var(--bg2);color:var(--text);
  border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-height:84px;font-weight:400;min-width:0}
button.gl-t{cursor:pointer}button.gl-t:hover{background:var(--panel2)}
.gl-t.gl-collected{border-color:rgba(34,197,94,.55)}
.gl-t.gl-now{border-style:dashed}
.gl-l{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
.gl-v{font-size:26px;font-weight:700;line-height:1.15;white-space:nowrap}
.gl-t.nodata .gl-v{font-size:18px;font-style:italic;color:var(--muted)}
.gl-s{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.gl-t.sm{min-height:62px;padding:8px 12px}.gl-t.sm .gl-v{font-size:19px}
.gl-h{font-size:14px;margin:14px 0 6px;color:var(--silver)}
.gl-paybox{margin-top:10px;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:6px 12px 8px}
.gl-grp{border-bottom:1px solid var(--line)}
button.gl-grp-h{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;color:var(--text);padding:10px 0;min-height:46px;font-weight:600}
button.gl-grp-h:disabled{opacity:.5}
.gl-grp-l{flex:1;text-align:left}.gl-grp-n{color:var(--muted);font-weight:400}
.gl-pays{padding:0 0 8px}
.gl-pay-r{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid #1e2a42;font-size:13.5px}
.gl-pay-who{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;min-width:0}
.gl-pay-t{color:var(--muted)}
.gl-pay-r.refund .gl-pay-a{color:var(--bad-t)}
.gl-tag{font-size:11px;padding:1px 7px}
.gl-total{display:flex;justify-content:space-between;padding:10px 0 4px;font-size:15px}
.gl-adv{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px}
.gl-adv.top{border-color:rgba(34,197,94,.6);box-shadow:inset 3px 0 0 var(--good)}
.gl-adv.total{background:transparent;border-style:dashed}
.gl-adv-h{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.gl-adv-n{font-size:15px}.gl-adv-sl{margin-left:auto}.gl-adv-sold{font-size:18px}
.gl-adv-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px}
@media (min-width:700px){.gl-adv-g{grid-template-columns:repeat(4,minmax(0,1fr))}}
.gl-c{display:flex;flex-direction:column;min-width:0}
.gl-cl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.gl-cv{font-size:14.5px}.gl-cs{font-size:12px;color:var(--muted)}
