/* The front door — fltortho.com/login, /home (the week calendar), /cases, /logout. Theme = the commissions / PO portals (D9 §2): bg #0c0f14, ink #e8eef7,
   muted #9fb0c7, gold #d6a73a, inputs #10151d / #303846, cards rgba(255,255,255,.04) radius 8, system font stack.
   The platform bar (platform.css) sits on top of every page; this file styles what is under it. */
:root{
  --bg:#0c0f14; --bg2:#10151d; --card:rgba(255,255,255,.04); --card2:#151b25;
  --ink:#e8eef7; --muted:#9fb0c7; --dim:#718198; --soft:#c4d0e2;
  --gold:#d6a73a; --gold-hover:#ecc152; --gold-ink:#10151d; --gold-soft:rgba(214,167,58,.14);
  --green:#4ade80; --green-soft:#23863633;
  --blue:#6ea8fe; --blue-soft:#1f6feb22;
  --amber:#ffd35c; --amber-soft:#b8860b33;
  --red:#ff7b72; --red-soft:#da363333;
  --line:rgba(255,255,255,.08); --line-strong:rgba(255,255,255,.13); --border:#303846;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{background:var(--bg);color-scheme:dark}
body{background:var(--bg);color:var(--ink);font-family:var(--font);min-height:100vh;-webkit-font-smoothing:antialiased}
a{color:inherit}
button{font:inherit;cursor:pointer}
input{font:inherit}
.hidden{display:none!important}

/* ---------- shared bits ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.28)}
.field{display:block;margin-bottom:14px;text-align:left}
.field span{display:block;font-size:13px;color:var(--soft);margin-bottom:5px}
.field input{width:100%;background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:10px 12px;color:var(--ink);font-size:15px;outline:none;transition:border-color .15s}
.field input:focus{border-color:var(--gold)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:6px;padding:11px 16px;font-weight:600;font-size:15px;transition:background .15s,opacity .15s,transform .08s}
.btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.5;cursor:default}
.btn-gold{background:var(--gold);color:var(--gold-ink);width:100%}
.btn-gold:hover{background:var(--gold-hover)}
.btn-ghost{background:#30405e;color:var(--ink)}
.btn-ghost:hover{background:#3d5178}
.btn-sm{padding:7px 12px;font-size:13px}
.msg{display:none;margin:0 0 14px;padding:10px 12px;border-radius:6px;font-size:13.5px;line-height:1.45;text-align:left}
.msg.on{display:block}
.msg.err{background:var(--red-soft);border:1px solid rgba(255,123,114,.35);color:#ffd2cf}
.msg.ok{background:var(--green-soft);border:1px solid rgba(74,222,128,.3);color:#c9f7dd}
.po-file-group{margin-top:24px}
.po-file-group h2{font-size:16px;font-weight:600;line-height:1.4}
.po-file-kind{display:block;margin:4px 0 10px;font-size:13px;color:var(--muted)}
.po-file-rows{list-style:none;margin:12px 0 0;padding:0}
.po-file-row{display:flex;align-items:center;min-height:44px;padding:11px 12px;border-top:1px solid var(--line);font-size:14px;line-height:1.5;color:var(--soft);white-space:normal;overflow-wrap:anywhere;text-decoration:none}
.po-file-row:hover,.po-file-row:focus-visible{background:var(--card);color:var(--ink)}

/* ---------- login ---------- */
.login-wrap{min-height:calc(100vh - 48px);display:flex;align-items:center;justify-content:center;padding:28px 18px}
.login-card{width:min(92vw,420px);padding:36px 34px 28px;text-align:center}
.login-card .badge{display:inline-block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:5px 11px;border-radius:999px;background:var(--gold-soft);color:var(--gold-hover);border:1px solid rgba(214,167,58,.3);margin-bottom:18px}
.login-card h1{font-size:24px;font-weight:700;letter-spacing:-.01em;margin:0 0 6px}
.login-card p.lead{color:var(--muted);font-size:14px;line-height:1.5;margin:0 0 22px}
.links{display:flex;justify-content:space-between;align-items:center;margin-top:16px;font-size:13px;color:var(--muted)}
.links a,.linkbtn{color:var(--soft);background:none;border:0;padding:0;text-decoration:underline;text-underline-offset:3px;font-size:13px}
.links a:hover,.linkbtn:hover{color:var(--gold-hover)}
.foot{margin-top:26px;text-align:center;font-size:12px;color:var(--dim);line-height:1.5}
@media (max-width:760px){
  .field input,.btn{min-height:44px}
  .links a,.linkbtn{display:inline-flex;align-items:center;min-height:44px;padding:8px 0}
}

/* ---------- home: the dashboard (D9 §3 — the queue spans the full width; the bar carries navigation) ---------- */
.wrap{max-width:1180px;margin:0 auto;padding:22px 24px 60px}
.hello{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:4px 0 18px}
.hello h1{font-size:22px;font-weight:700;letter-spacing:-.01em}
.hello .sub{color:var(--muted);font-size:13.5px}
.banner{display:none;margin:0 0 16px;padding:12px 14px;border-radius:0 8px 8px 0;border-left:3px solid var(--gold);background:#d6a73a14;color:#e6d3a1;font-size:13.5px;line-height:1.5}
.banner.on{display:block}
.banner a{color:var(--gold-hover)}

.panel{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.panel-h{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}
.panel-h h2{font-size:16px;font-weight:700}
.panel-h .spacer{margin-left:auto;color:var(--dim);font-size:12px}
.tabs{display:flex;gap:4px;padding:10px 10px 0;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{border:0;background:transparent;color:var(--muted);padding:9px 12px;border-radius:7px 7px 0 0;font-size:13px;font-weight:600;white-space:nowrap;display:inline-flex;align-items:center;gap:7px;border-bottom:2px solid transparent}
.tab:hover{color:var(--ink);background:rgba(255,255,255,.04)}
.tab b{font-size:11.5px;padding:1px 7px;border-radius:999px;background:#30405e55;color:var(--muted)}
.tab.on{color:var(--ink);border-bottom-color:var(--gold)}
.tab.on b{background:var(--gold);color:var(--gold-ink)}
.rows{display:block}
.row{display:grid;grid-template-columns:156px minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) 110px;gap:12px;align-items:center;padding:11px 16px;border-top:1px solid var(--line);font-size:13.5px}
.row:hover{background:rgba(255,255,255,.025)}
.row:first-child{border-top:0}
.row .when{font-weight:600;font-size:13px}
.row .when{min-width:0}
.row .when small{display:block;color:var(--muted);font-weight:500;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .main{min-width:0}
.row .main b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .main small{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .cell{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--soft)}
.row .cell small{display:block;color:var(--dim);font-size:11.5px}
.state{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap;background:#30405e55;color:var(--muted)}
.state.today,.state.scheduled{background:var(--blue-soft);color:var(--blue)}
.state.needs-po{background:var(--red-soft);color:var(--red)}
.state.po-issue{background:var(--amber-soft);color:var(--amber)}
.state.po-collected{background:var(--green-soft);color:var(--green)}
.state.cancelled{opacity:.6}
/* the state cell on /cases: the badge, and under it how long a case has waited on its PO (the app's aging colours) */
.row .st{min-width:0}
.row .st small{display:block;margin-top:3px;font-size:11.5px;color:var(--dim);white-space:nowrap}
.row .st small.age-warn{color:var(--amber)}
.row .st small.age-danger,.row .st small.age-severe{color:var(--red)}
.row .st small.age-severe{font-weight:700}
.empty{padding:34px 16px;text-align:center;color:var(--muted);font-size:14px}
.note{padding:10px 16px;border-top:1px solid var(--line);color:var(--dim);font-size:12px}
@media (max-width:700px){
  .wrap{padding:16px 14px 60px}
  .row{grid-template-columns:96px minmax(0,1fr) 92px;gap:10px}
  .row .cell{display:none}
}

/* Forecast shares the Cases title row and workspace control treatment. */
#forecast-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-left:auto;font-size:13px}
#forecast-tools[hidden]{display:none}
#forecast-week{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 12px;max-width:100%}
#forecast-status:empty{display:none}
@media(max-width:760px){#forecast-tools{width:100%;margin-left:0}#forecast-tools select,#forecast-tools button{min-height:44px}}

/* Cases: search every case + region + senior-rep filters (Brian, 2026-10-03). The server filters, every tab count follows. */
.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 16px 4px}
.search{position:relative;display:block;flex:1 1 340px;min-width:220px}
.search input{width:100%;-webkit-appearance:none;appearance:none;background:var(--bg2);border:1px solid var(--border);border-radius:6px;
  padding:9px 12px 9px 34px;color:var(--ink);font-size:14px;outline:none;transition:border-color .15s}
.search input::placeholder{color:var(--dim)}
.search input:focus{border-color:var(--gold)}
.search::before{content:"";position:absolute;left:12px;top:50%;width:10px;height:10px;margin-top:-8px;border:2px solid var(--dim);border-radius:50%;pointer-events:none}
.search::after{content:"";position:absolute;left:23px;top:50%;width:2px;height:6px;margin-top:2px;background:var(--dim);transform:rotate(-45deg);pointer-events:none}
.search:focus-within::before{border-color:var(--gold)}
.search:focus-within::after{background:var(--gold)}
.filters select{background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:9px 10px;color:var(--ink);font:inherit;font-size:13.5px;
  outline:none;max-width:280px;cursor:pointer}
.filters select:focus{border-color:var(--gold)}
.filters select.on{border-color:var(--gold);color:var(--gold-hover)}
.filters .linkbtn{color:var(--soft);font-size:13px;padding:0 4px}
.fcount{margin-left:auto;color:var(--dim);font-size:12px;white-space:nowrap}
.tab-all{margin-left:auto}
.rows.loading{opacity:.5;transition:opacity .12s}
mark{background:rgba(214,167,58,.3);color:inherit;border-radius:3px;padding:0 1px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
@media (max-width:700px){
  .filters{padding:10px 12px 2px}
  .filters select{flex:1 1 140px;max-width:none}
  .fcount{width:100%;margin-left:0}
  .tab-all{margin-left:0}
}

/* ---------- Calendar = fltortho.com/home (Brian, 2026-10-03 10:59): a Google-style week, Monday through Sunday ----------
   Every case is Google's green for now (the §12 colour system: green = nothing needed from FLT; red and blue arrive with
   inventory). Past days keep their cases, a little dimmer, each with its PO status; CX = cancelled, struck through.
   Phone width: the week turns into a list of days, Google's schedule view. */
.wrap-wide{max-width:1560px}
.cal-bar{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid var(--line)}
.cal-nav{display:flex;align-items:center;gap:4px;min-width:0;flex-wrap:wrap}
.cal-today{border:1px solid var(--border);background:transparent;color:var(--ink);border-radius:6px;padding:7px 15px;font-size:13.5px;font-weight:600;margin-right:4px}
.cal-today:hover{border-color:rgba(214,167,58,.55);color:var(--gold-hover)}
.cal-arrow{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:transparent;color:var(--soft);font-size:26px;line-height:1;padding:0 0 4px}
.cal-arrow:hover{background:rgba(255,255,255,.07);color:var(--ink)}
.cal-title{font-size:19px;font-weight:600;letter-spacing:-.01em;margin:0 8px 0 8px;white-space:nowrap}
.cal-count{color:var(--muted);font-size:13px;white-space:nowrap}
.cal-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.seg{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden;background:var(--bg2)}
.seg button{border:0;border-left:1px solid var(--border);background:transparent;color:var(--muted);padding:7px 13px;font-size:13px;font-weight:600;white-space:nowrap}
.seg button:first-child{border-left:0}
.seg button:hover{color:var(--ink);background:rgba(255,255,255,.04)}
.seg button.on{background:var(--gold-soft);color:var(--gold-hover)}
.cal-filters select{background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:8px 10px;color:var(--ink);font:inherit;font-size:13.5px;outline:none;max-width:260px;cursor:pointer}
.cal-filters select:focus{border-color:var(--gold)}
.cal-filters select.on{border-color:var(--gold);color:var(--gold-hover)}
.cal-grid.loading{opacity:.55;transition:opacity .12s}
.cal-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-day{display:flex;flex-direction:column;min-width:0;min-height:440px;border-left:1px solid var(--line)}
.cal-day:first-child{border-left:0}
.cal-day.is-weekend{background:rgba(255,255,255,.012)}
.cal-dh{display:flex;flex-direction:column;align-items:center;gap:1px;padding:10px 4px 8px;border-bottom:1px solid var(--line)}
.cal-dow{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.cal-dnum{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;font-size:22px;font-weight:500;color:var(--ink)}
.cal-dmon{display:none}
.cal-dcount{min-height:15px;font-size:11.5px;color:var(--dim)}
.is-past .cal-dow,.is-past .cal-dnum{color:var(--dim)}
.is-today .cal-dow,.is-today .cal-dcount{color:var(--gold-hover)}
.is-today .cal-dnum{background:var(--gold);color:var(--gold-ink);font-weight:700}
.cal-dbody{flex:1;display:flex;flex-direction:column;gap:4px;padding:6px 5px 12px}
.cal-none{display:none}
.cal-region{padding:7px 3px 1px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.cal-region:first-child{padding-top:1px}
.ev{display:block;width:100%;min-width:0;text-align:left;border:0;border-left:3px solid #33b679;border-radius:5px;background:rgba(51,182,121,.15);color:var(--ink);padding:5px 7px 6px;font-size:12px;line-height:1.35;cursor:pointer;transition:background .12s}
.ev:hover,.ev.ev-on{background:rgba(51,182,121,.27)}
.ev:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.ev-top{display:flex;align-items:baseline;gap:5px;min-width:0}
.ev-time{flex:none;font-size:11.5px;font-weight:600;color:#8fd6b0}
.ev-top b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.ev-line,.ev-rep{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-line{color:var(--soft)}
.ev-rep{color:var(--dim);font-size:11.5px}
.ev-foot{display:flex;align-items:center;gap:6px;min-width:0}
.ev-foot .ev-rep{flex:1 1 auto;min-width:0}
.ev-st{flex:none;display:inline-block;margin:2px 0 1px auto;padding:1px 7px;border-radius:999px;font-size:10.5px;font-weight:700;background:#30405e55;color:var(--muted)}
.ev.st-needs-po .ev-st{background:var(--red-soft);color:var(--red)}
.ev.st-po-issue .ev-st{background:var(--amber-soft);color:var(--amber)}
.ev.st-po-collected .ev-st{background:var(--green-soft);color:var(--green)}
.is-past .ev{background:rgba(51,182,121,.08);border-left-color:#2b8a5e}
.is-past .ev:hover,.is-past .ev.ev-on{background:rgba(51,182,121,.2)}
.ev.ev-cx,.is-past .ev.ev-cx{background:rgba(255,255,255,.035);border-left-color:#5b6576;color:var(--dim)}
.ev.ev-cx b,.ev.ev-cx .ev-line{text-decoration:line-through;color:var(--dim)}
.ev.ev-cx .ev-time{color:var(--dim)}
/* Compact view (Josephine via Brian, 2026-10-05): one line per surgeon per day, "x5 Levi", so a day counts at a glance.
   The toggle sits in the middle of the bar, between the week's count and the region buttons; when the three do not fit
   on one line, door.js (calFitBar) gives it a line of its own below so the first line stays as it was. */
.cal-viewbox{display:flex;gap:12px;align-items:center}
.cal-bar.cal-bar-tight .cal-viewbox{order:3;flex-basis:100%}
.cal-grid.is-compact .cal-day{min-height:300px}
.cal-sx{display:flex;align-items:baseline;gap:7px;min-width:0;border-left:3px solid #33b679;border-radius:5px;background:rgba(51,182,121,.15);color:var(--ink);padding:5px 8px 6px;font-size:13px;line-height:1.35;cursor:default}
.cal-sx-n{flex:none;min-width:1.9em;font-weight:700;color:#8fd6b0;font-variant-numeric:tabular-nums}
.cal-sx b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.cal-sx-more{flex:none;margin-left:auto;font-size:10.5px;font-weight:700;color:var(--dim);white-space:nowrap}
.is-past .cal-sx{background:rgba(51,182,121,.08);border-left-color:#2b8a5e}
.cal-sx.cal-sx-cx,.is-past .cal-sx.cal-sx-cx{background:rgba(255,255,255,.035);border-left-color:#5b6576;color:var(--dim)}
.cal-sx.cal-sx-cx b{text-decoration:line-through;color:var(--dim)}
.cal-sx.cal-sx-cx .cal-sx-n{color:var(--dim)}
/* the case card (Google's event card): opens beside the case, a sheet from the bottom on a phone */
.cal-pop{position:fixed;z-index:70;top:80px;right:24px;width:340px;max-width:calc(100vw - 24px);padding:16px 18px 14px;border-radius:10px;border:1px solid var(--line-strong);background:#161c26;box-shadow:0 22px 60px rgba(0,0,0,.55);font-size:13.5px}
.pop-x{position:absolute;top:8px;right:8px;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:20px;line-height:1}
.pop-x:hover{background:rgba(255,255,255,.07);color:var(--ink)}
.pop-h{display:flex;align-items:center;gap:9px;padding-right:30px}
.pop-h h3{font-size:17px;font-weight:700;letter-spacing:-.01em}
.pop-dot{flex:none;width:12px;height:12px;border-radius:3px;background:#33b679}
.pop-dot.st-cancelled{background:#5b6576}
.pop-sub{margin:3px 0 0 21px;color:var(--muted)}
.cal-pop dl{display:grid;grid-template-columns:78px minmax(0,1fr);gap:6px 12px;margin:12px 0 0}
.cal-pop dt{color:var(--dim);font-size:12px;padding-top:1px}
.cal-pop dd{margin:0;color:var(--soft);overflow-wrap:anywhere}
@media (max-width:760px){
  .wrap-wide{padding:14px 10px 60px}
  .cal-bar{padding:10px 10px 12px}
  .cal-nav{width:100%}
  .cal-arrow{width:44px;height:44px;min-width:44px}
  .cal-today,.cal .seg button,#cal-rep{min-height:44px;min-width:44px}
  .cal-viewbox{width:100%;flex-direction:column;align-items:stretch}
  .cal-viewbox summary{min-height:44px;align-content:center;cursor:pointer}
  .cal-viewbox details a{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
  .cal-viewbox .cal-view{width:100%}
  .cal-title{font-size:16px;margin:0 4px}
  .cal-count{flex-basis:100%;margin:2px 0 0 2px}
  .cal-filters{width:100%}
  .seg{display:flex;width:100%}
  .seg button{flex:1;padding:8px 4px}
  .cal-filters select{flex:1 1 auto;max-width:none;width:100%}
  .cal-days{display:block}
  .cal-day{flex-direction:row;min-height:0;border-left:0;border-top:1px solid var(--line)}
  .cal-day:first-child{border-top:0}
  .cal-day.is-weekend{background:transparent}
  .cal-dh{flex:none;width:60px;justify-content:flex-start;border-bottom:0;padding:10px 2px}
  .cal-dnum{width:36px;height:36px;font-size:19px}
  .cal-dmon{display:block;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
  .cal-dcount{display:none}
  .cal-dbody{min-width:0;padding:10px 10px 10px 2px;gap:6px}
  .cal-none{display:block;padding-top:11px;font-size:12.5px;color:var(--dim)}
  .ev{font-size:13px;padding:7px 9px}
  .ev-time{font-size:12.5px}
  .ev-rep{font-size:12px}
  .cal-grid.is-compact .cal-day{min-height:0}
  .cal-sx{font-size:14px;padding:7px 9px}
  .cal-pop{left:10px!important;right:10px;top:auto!important;bottom:10px;width:auto;max-width:none;max-height:80vh;overflow:auto}
}

.settings{margin-top:22px}
.settings .sub-h{font-size:14px;font-weight:700;margin:0 0 12px;color:var(--ink)}
.settings .panel-b{padding:16px}
.settings .two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media (max-width:700px){.settings .two{grid-template-columns:1fr}}
.kv{font-size:13px;color:var(--muted);line-height:1.7}
.kv b{color:var(--ink);font-weight:600}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
#profile-tools > .panel-b{padding:16px}
#profile-tools details{scroll-margin-top:72px}
#account-tools-status:empty{margin:0}
@media (max-width:760px){
  .settings .sees-modes .btn,.settings .actions .btn-sm,.settings #pw-btn{min-height:44px}
}

/* ---------- Settings: People & access (admins; Brian, 2026-10-03) ---------- */
.btn-danger{background:#5b1f22;color:#ffd2cf;border-color:rgba(255,123,114,.35)}
.btn-danger:hover{background:#7a2a2e}
.people{display:block}
.person{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px 18px;align-items:center;padding:11px 16px;border-top:1px solid var(--line)}
.person.saving{opacity:.55;pointer-events:none}
.person-access{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.sw{display:inline-flex;align-items:center;gap:7px;padding:5px 11px 5px 9px;border-radius:999px;border:1px solid var(--border);background:var(--bg2);color:var(--dim);font-size:12.5px;font-weight:600;cursor:pointer;user-select:none;transition:border-color .12s,color .12s,background .12s}
.sw:hover{border-color:rgba(214,167,58,.45);color:var(--muted)}
.sw.on{border-color:rgba(214,167,58,.55);background:var(--gold-soft);color:var(--gold-hover)}
.sw input{margin:0;width:14px;height:14px;accent-color:#d6a73a;cursor:pointer}
.sw-locked,.sw-locked input{cursor:default}
.sw-locked:hover{border-color:var(--border);color:var(--dim)}
.sw.on.sw-locked:hover{border-color:rgba(214,167,58,.55);color:var(--gold-hover)}
.access-key b{color:var(--ink);font-weight:600}
.person:first-child{border-top:0}
.person:hover{background:rgba(255,255,255,.02)}
.person-off .person-name b{color:var(--muted)}
.person-main{min-width:0}
.person-name{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:14px}
.person-main small{display:block;color:var(--muted);font-size:12px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.person-main small.dim,.dim{color:var(--dim)}
.small{font-size:12px}
.person-roles{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--gold-soft);color:var(--gold-hover);border:1px solid rgba(214,167,58,.25)}
.pill-note{font-size:11px;color:var(--dim);margin-left:2px}
.tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600;background:#30405e55;color:var(--soft)}
.tag-off{background:var(--red-soft);color:var(--red)}
.tag-warn{background:var(--amber-soft);color:var(--amber)}
.person-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.person-out{grid-column:1/-1;margin-top:6px;padding:12px 14px;border-radius:8px;background:rgba(255,255,255,.03);border:1px solid var(--line);font-size:13px;line-height:1.6}
.person-out.result{border-color:rgba(214,167,58,.4);background:#d6a73a12}
.temp-pw{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;color:var(--gold-hover);background:var(--bg2);padding:2px 8px;border-radius:5px;border:1px solid var(--border);user-select:all}
.roles-edit .rolegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px 14px;margin-bottom:10px}
.rolebox{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--muted);cursor:pointer}
.rolebox b{color:var(--ink);font-weight:600}
.rolebox input{margin-top:3px;accent-color:#d6a73a}
.region-pick{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--soft);margin:2px 0 4px}
.region-pick select{background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:6px 8px;color:var(--ink);font:inherit;font-size:13px}
.roles-edit .actions .btn-gold{width:auto}
.unlinked{border-top:1px solid var(--line);background:#d6a73a0a}
.sub-panel-h{border-bottom:1px solid var(--line)}
.sub-panel-h h2{font-size:14px;color:var(--gold-hover)}
.unlinked .link-pick{background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:7px 9px;color:var(--ink);font:inherit;font-size:13px;max-width:260px}
.unlinked .btn-gold{width:auto}
@media (max-width:760px){
  .person{grid-template-columns:1fr}
  .person-access,.person-actions{justify-content:flex-start}
}

/* ---------- EOS (Brian, 2026-10-03): everybody in EOS and their open Rocks ---------- */
.eos-people{display:block}
.eos-person{padding:12px 16px;border-top:1px solid var(--line)}
.eos-person:first-child{border-top:0}
.eos-you{background:#d6a73a0d}
.eos-head{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:6px;font-size:14px}
.eos-head .dim{font-size:12px}
.eos-count{margin-left:auto;color:var(--muted);font-size:12px}
.eos-count em{font-style:normal;color:var(--red)}
.rock{display:grid;grid-template-columns:86px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 0 6px 2px;font-size:13.5px}
.rock .state{text-align:center}
.rock-title{min-width:0;color:var(--ink)}
.rock-meta{color:var(--dim);font-size:12px;white-space:nowrap}
.rock-off .rock-title{color:#ffe1de}
.eos-quiet{padding:12px 16px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;line-height:1.6}
.eos-quiet b{color:var(--soft)}
@media(max-width:760px){#eos .filters input,#eos .filters select{min-height:44px}}
@media (max-width:700px){
  .rock{grid-template-columns:76px minmax(0,1fr)}
  .rock-meta{grid-column:2;white-space:normal}
  .eos-count{margin-left:0;width:100%}
}

/* ---------- Sample cases (Brian, 2026-10-03): who holds each case, contents, signed handoffs ---------- */
.s-group{margin-bottom:18px}
.s-case{padding:12px 16px;border-top:1px solid var(--line)}
.s-case:first-of-type{border-top:0}
/* Sample cases only: explicit custody cards, never a flattened inventory list. */
.sample-page .wrap{max-width:1400px}
.sample-page .s-group{margin:28px 0 36px}
.sample-page .s-group-title{display:flex;align-items:baseline;gap:12px;margin:0 0 14px}
.sample-page .s-group-title h2{font-size:21px;margin:0;color:#dcb66e}
.sample-page .s-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
.sample-page .s-case{min-width:0;padding:22px;border:1px solid #405064;border-radius:16px;background:#141c27;box-shadow:0 8px 24px #0003;color:#e8eef7}
.sample-page .s-case.s-case-mine{border-top:3px solid #bd9858}
.sample-page .s-head{display:block;padding-bottom:16px;border-bottom:1px solid #334155}
.sample-page .s-title{display:flex;align-items:flex-start;flex-direction:column;gap:7px}
.sample-page .s-title>b{font-size:23px;color:#e8eef7}
.sample-page .s-holder{margin-top:14px;line-height:1.7}
.sample-page .s-holder small{display:block}
.sample-page .s-contents{padding:16px 0}
.sample-page .s-contents h3{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#93a4b8;margin:0 0 12px}
.sample-page .s-items{margin:0;padding-left:18px;line-height:1.7}
.sample-page .s-actions{padding-top:16px;border-top:1px solid #334155;display:flex;flex-wrap:wrap;gap:8px}
.sample-page .s-panel{padding:16px 0 0;background:transparent;border:0;border-top:1px solid #334155;border-radius:0}
.sample-page .s-case:has(.s-panel:not(.hidden)){grid-column:1/-1}
.sample-page .s-hist{padding:14px 0;overflow-wrap:anywhere}
.s-photo-picker{margin:16px 0;padding:14px;border:1px dashed #526078;border-radius:10px}
.s-photo-label{margin-bottom:12px;font-size:13px}
.s-photo-count{margin-left:8px}
.s-photo-input{display:block;max-width:100%;font-size:12px;margin-top:8px}
.s-photo-drafts,.s-photo-history{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.s-photo-history{flex-basis:100%}
.s-photo-drafts>div{display:flex;flex-direction:column;gap:6px}
.s-photo-drafts img,.s-photo-history img{width:76px;height:76px;object-fit:cover;border-radius:8px}
.s-photo-history button{padding:0;border:1px solid #526078;background:#101722;border-radius:9px;cursor:zoom-in}
.s-photo-error{font-size:13px;color:#e1ba77;margin-top:8px}
.s-lightbox{padding:0;border:1px solid #526078;border-radius:14px;background:#0c111a;color:#e8eef7;width:calc(100vw - 36px);max-width:1400px;height:calc(100dvh - 36px);max-height:none;overflow:hidden}
.s-lightbox[open]{display:flex;flex-direction:column;margin:auto}
.s-lightbox::backdrop{background:#03060bea}
.s-lightbox-bar,.s-lightbox-nav{display:flex;align-items:center;gap:10px;padding:14px}
.s-lightbox-bar strong{flex:1}
.s-lightbox button{background:#253144;color:#e8eef7;border:1px solid #526078;border-radius:8px;padding:10px;cursor:pointer}
.s-lightbox button:disabled{opacity:.35;cursor:default}
.s-lightbox-view{display:flex;flex:1;min-height:0;overflow:auto;background:#080c12}
.s-lightbox-view img{flex-shrink:0;display:block;height:auto;object-fit:contain;margin:auto}
.s-lightbox-nav{justify-content:space-between;font-size:12px;color:#a8b6c9}
@media(max-width:1100px){.sample-page .s-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.sample-page .s-grid{grid-template-columns:1fr;gap:18px}.sample-page .s-case{padding:18px}.s-lightbox{width:100vw;height:100dvh;border:0;border-radius:0}.s-lightbox-nav span{display:none}}
.s-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr) auto;gap:10px 14px;align-items:center}
.s-title{display:flex;align-items:baseline;gap:8px;font-size:15px}
.s-title .dim{font-size:12px}
.s-holder{font-size:13.5px;color:var(--soft)}
.s-holder small{margin-left:4px}
.s-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.tag-ok{background:var(--green-soft);color:var(--green)}
.s-items{margin:8px 0 0;padding:0 0 0 18px;columns:2;column-gap:28px;font-size:13px;color:var(--soft);line-height:1.55}
.s-items li{break-inside:avoid}
.s-items small{color:var(--dim)}
.s-panel{margin-top:12px;padding:12px 14px;border-radius:8px;background:rgba(255,255,255,.03);border:1px solid var(--line)}
.s-hist{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:7px 0;border-top:1px solid var(--line);font-size:13px}
.s-hist:first-child{border-top:0}
.s-when{color:var(--dim);font-size:12px;min-width:150px}
.s-who{color:var(--soft)}
.s-pdf{margin-left:auto;color:var(--gold-hover);font-weight:600}
.s-missing,.s-note{flex-basis:100%;font-size:12px;color:var(--muted)}
.s-missing{color:#ffd2cf}
.s-check{display:flex;flex-direction:column;gap:6px;padding:7px 0;border-top:1px solid var(--line)}
.s-check:first-of-type{border-top:0}
.s-present{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--ink);cursor:pointer}
.s-present input{width:18px;height:18px;accent-color:#d6a73a}
.s-present small{color:var(--dim)}
.s-itemnote,.s-notes,.s-hnote,.s-row input,.s-people{width:100%;background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:8px 10px;color:var(--ink);font:inherit;font-size:13.5px}
.s-notes{min-height:64px;resize:vertical;margin-top:10px}
.s-sig{margin-top:12px}
.s-sig canvas{display:block;width:100%;max-width:640px;height:220px;background:var(--bg2);border:1px dashed var(--gold);border-radius:8px;touch-action:none;cursor:crosshair}
.s-sig-row{display:flex;justify-content:space-between;align-items:center;max-width:640px;margin-top:4px}
.s-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) 72px auto;gap:8px;align-items:center;padding:5px 0}
.s-row .s-reason{grid-column:1/-1}
.s-row.s-removing .s-desc,.s-row.s-removing .s-part,.s-row.s-removing .s-qty{opacity:.45;text-decoration:line-through}
.s-add{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
.s-cost{width:104px}
.s-items .s-cost{color:var(--soft)}
.s-policy{margin:10px 0 6px;padding:8px 12px;border-left:3px solid #d4a53a;background:rgba(212,165,58,.08);border-radius:0 8px 8px 0;font-size:13px;line-height:1.5;color:var(--soft)}
.s-deduct{font-weight:600}
.s-holderset .s-people{margin:8px 0}
.s-foot{border-top:0;padding:14px 4px}
@media (max-width:760px){
  .s-head{grid-template-columns:1fr}
  .s-actions{justify-content:flex-start}
  .sample-page .s-actions{flex-direction:column;align-items:stretch}
  .sample-page .s-actions .btn{min-height:44px;width:100%}
  .sample-page .s-panel .btn,.sample-page .s-panel .linkbtn,.sample-page .s-present,.sample-page .s-photo-input{min-height:44px}
  .sample-page .s-pdf{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
  .s-items{columns:1}
  .s-row{grid-template-columns:1fr 1fr}
  .s-row .s-desc{grid-column:1/-1}
}

/* ---------- logout ---------- */
.bye{min-height:calc(100vh - 48px);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px}
/* Person-scoped calendar choices; inherit the website's dark surfaces. */
.sees-modes,.sees-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.sees-modes .btn{width:auto;flex:1;white-space:nowrap;font-size:14px;padding:12px 10px}
.sees-status{min-height:24px;margin:12px 0}
.sees-tools input{flex:1;min-width:140px;background:#10151d;border:1px solid #303b4d;border-radius:7px;padding:10px 12px;color:#eef1f6;font:inherit}
.sees-list{max-height:380px;overflow:auto;margin-top:12px}
.sees-group h3{font-size:14px;color:var(--muted,#abb5c4);margin:18px 0 8px}
.sees-person{display:flex;gap:12px;align-items:center;padding:12px 8px;border-bottom:1px solid #ffffff0d;cursor:pointer}
.sees-person input{width:18px;height:18px;accent-color:#d4b77d;flex-shrink:0}
.sees-person small{display:block;color:var(--muted,#abb5c4);margin-top:3px}
.person-profile-name{font:inherit;font-weight:600;color:inherit;border:0;background:none;padding:0;cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:4px}
.sees-profile{background:#141a23;color:#eef1f6;border:1px solid #ffffff20;border-radius:16px;padding:0;margin:auto;width:min(640px,calc(100% - 24px));max-height:90dvh;overflow:auto}
.sees-profile .panel-b{padding:24px}
.sees-profile h3{margin-bottom:14px}
.sees-profile .person-access{justify-content:flex-start;margin-top:14px}
.sees-profile::backdrop{background:#000b}
.sees-profile .panel-h{display:flex;justify-content:space-between;gap:12px}
.sees-profile .person{padding:0;border:0;display:block;margin-bottom:24px}
@media(max-width:600px){.sees-modes .btn{flex:1;padding-inline:10px}.sees-profile .panel-b{padding:16px}}

/* FedEx codes (Operations → FedEx codes, Brian 2026-10-07): one row per senior rep, juniors under their senior's code. */
.fx-howto{margin:0;padding:13px 16px;border-bottom:1px solid var(--line);color:var(--soft);font-size:14px;line-height:1.5}
.fx-howto b{color:var(--gold-hover);font-weight:700}
.fx-row{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(0,190px);gap:12px;align-items:center;padding:11px 16px;border-top:1px solid var(--line);font-size:14px}
.fx-code{font-size:22px;font-weight:800;color:var(--gold);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.fx-rep b{display:block;color:var(--ink);font-weight:650}
.fx-rep small{display:block;margin-top:2px;color:var(--muted);font-size:12.5px;line-height:1.4}
.fx-region{color:var(--dim);font-size:12.5px;text-align:right}
.fx-row mark{background:var(--gold-soft);color:var(--gold-hover);border-radius:3px;padding:0 2px}
@media (max-width:640px){.fx-row{grid-template-columns:52px minmax(0,1fr);row-gap:2px}.fx-code{grid-row:span 2}.fx-region{text-align:left}}
