/* ─────────────────────────────────────────────────────────────────
   PartsOrder — Amazon-inspired theme
   ───────────────────────────────────────────────────────────────── */
:root{
  --bg:#EAEDED;--surf:#FFFFFF;--surf2:#F0F2F2;--surf3:#E3E6E6;
  --bdr:#D5D9D9;--bdr2:#adb7b8;
  --amber:#FF9900;--amber-lo:#fff3cd;--amber-bg:#fff8e7;
  --red:#B12704;--red-lo:#f5b8aa;--red-bg:#fef0ec;
  --green:#067D62;--green-lo:#b3e6d8;--green-bg:#eaf7f4;
  --blue:#007185;--blue-lo:#c8f3fa;--blue-bg:#f0fafb;
  --purple:#6655c0;--purple-lo:#d8d4f5;--purple-bg:#f0effe;
  --orange:#c45500;--orange-lo:#ffd8a0;--orange-bg:#fff4e0;
  --txt:#0F1111;--txt-dim:#565959;--txt-muted:#767676;
  --r:4px;--r2:8px;
  --fh:'Roboto Condensed',Arial,sans-serif;
  --fm:'Courier New',Courier,monospace;
  --fb:Arial,sans-serif;
  --hdr:#131921;--nav:#232F3E;
  --cta:#FFD814;--cta-bdr:#FFA41C;--cta-txt:#0F1111;
  --card-shadow:0 2px 5px rgba(15,17,17,.15);
}
body.dark{
  --bg:#131921;--surf:#1f2937;--surf2:#232F3E;--surf3:#2d3a4a;
  --bdr:#374151;--bdr2:#4b5563;
  --amber:#FF9900;--amber-lo:#3d2a00;--amber-bg:#2a1f00;
  --red:#f55c3a;--red-lo:#5c1a0a;--red-bg:#3d1108;
  --green:#2ecc8a;--green-lo:#0a3d29;--green-bg:#072a1c;
  --blue:#00a8c9;--blue-lo:#003d4f;--blue-bg:#002a36;
  --purple:#9d8af0;--purple-lo:#2a2060;--purple-bg:#1a1540;
  --orange:#ff9900;--orange-lo:#3d2200;--orange-bg:#2a1800;
  --txt:#d1d5db;--txt-dim:#9ca3af;--txt-muted:#6b7280;
  --hdr:#0d1117;--nav:#161d27;
  --cta:#FF9900;--cta-bdr:#e68900;--cta-txt:#0F1111;
  --card-shadow:0 2px 8px rgba(0,0,0,.4);
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{height:auto;overflow-y:auto;}
body{background:var(--bg);color:var(--txt);font-family:var(--fb);min-height:100vh;-webkit-tap-highlight-color:transparent;font-size:14px;line-height:1.4;}
h1,h2,h3{font-family:var(--fh);}
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--bdr2);border-radius:3px;}

/* ── LOGIN — refined utility pilot ──
   Scoped under #login-screen so the rest of the app keeps its current look
   while we evaluate the direction. Geist + Geist Mono, deep navy accent
   pulled from the GRSI logo, cool paper backdrop. */
#login-screen{
  min-height:100vh;
  display:flex;align-items:center;justify-content:center;
  padding:48px 20px;gap:40px;flex-wrap:wrap;
  background:#DEE4EB;
  background-image:
    radial-gradient(1200px 600px at 50% -200px, rgba(30,58,138,.06), transparent 60%),
    radial-gradient(800px 400px at 50% 110%,  rgba(30,58,138,.04), transparent 60%);
  font-family:'Geist','Geist Sans',system-ui,sans-serif;
  color:#0B0F19;
  font-feature-settings:"ss01","cv11";
}
body.dark #login-screen{
  background:#0A0F1A;
  background-image:
    radial-gradient(1200px 600px at 50% -200px, rgba(96,165,250,.10), transparent 60%),
    radial-gradient(800px 400px at 50% 110%,  rgba(96,165,250,.06), transparent 60%);
  color:#E5E7EB;
}
#login-screen .login-card{
  width:100%;max-width:380px;flex-shrink:0;
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:14px;
  padding:36px 32px 28px;
  box-shadow:0 1px 0 rgba(15,23,42,.04), 0 12px 32px -16px rgba(15,23,42,.12);
}
body.dark #login-screen .login-card{
  background:#10151F;
  border-color:#1F2937;
  box-shadow:0 1px 0 rgba(255,255,255,.02), 0 16px 40px -16px rgba(0,0,0,.6);
}
#login-screen .login-logo{text-align:center;margin-bottom:28px;}
#login-screen .login-mark{
  display:block;margin:0 auto;
  width:200px;height:200px;
  object-fit:contain;
  filter:drop-shadow(0 8px 18px rgba(30,58,138,.18));
}
#login-screen .login-mark--dark{display:none;}
body.dark #login-screen .login-mark--light{display:none;}
body.dark #login-screen .login-mark--dark{
  display:block;
  filter:drop-shadow(0 8px 22px rgba(96,165,250,.22));
}

/* Form labels: small mono uppercase — instrumented-panel feel */
#login-screen label{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#6B7280;
  margin-bottom:7px;
}
body.dark #login-screen label{color:#94A3B8;}
#login-screen .field{margin-bottom:18px;}
#login-screen input[type=text],
#login-screen input[type=password]{
  background:#FFFFFF;
  border:1px solid #D8DCE2;
  border-radius:8px;
  color:#0B0F19;
  font-family:'Geist',sans-serif;
  font-size:15px;font-weight:400;
  padding:11px 13px;
  letter-spacing:0;text-transform:none;text-align:left;
  transition:border-color .15s ease, box-shadow .15s ease;
}
body.dark #login-screen input[type=text],
body.dark #login-screen input[type=password]{
  background:#0F1623;
  border-color:#27313F;
  color:#E5E7EB;
}
#login-screen input.uname{
  font-family:'Geist Mono',ui-monospace,monospace;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:15px;
  text-align:left;
}
#login-screen input:focus{
  border-color:#1E3A8A;
  box-shadow:0 0 0 4px rgba(30,58,138,.14);
}
body.dark #login-screen input:focus{
  border-color:#60A5FA;
  box-shadow:0 0 0 4px rgba(96,165,250,.18);
}
#login-screen input::placeholder{color:#9CA3AF;font-weight:400;letter-spacing:0;}
#login-screen input.uname::placeholder{letter-spacing:.18em;}

#login-screen .pw-wrap{position:relative;}
#login-screen .pw-eye{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  background:transparent;border:0;
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:11px;font-weight:500;
  letter-spacing:.12em;text-transform:uppercase;
  color:#6B7280;
  padding:6px 8px;border-radius:6px;cursor:pointer;
}
#login-screen .pw-eye:hover{color:#0B0F19;background:#F3F4F6;}
body.dark #login-screen .pw-eye:hover{color:#E5E7EB;background:#1A2332;}

/* Primary button: deep navy from the GRSI brand */
#login-screen .btn-pri{
  background:#1E3A8A;
  color:#FFFFFF;
  border:1px solid #1E3A8A;
  border-radius:8px;
  font-family:'Geist',sans-serif;
  font-size:14px;font-weight:600;
  letter-spacing:0;
  padding:12px 16px;
  margin-top:6px;
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset, 0 1px 2px rgba(15,23,42,.10);
  transition:background .12s ease, transform .06s ease;
}
#login-screen .btn-pri:hover{background:#1E40AF;}
#login-screen .btn-pri:active{transform:translateY(1px);}
#login-screen .btn-pri:disabled{background:#94A3B8;border-color:#94A3B8;color:#FFFFFF;}

#login-screen .alert{
  font-family:'Geist',sans-serif;
  font-size:13px;
  border-radius:8px;
  padding:10px 12px;
  margin-bottom:16px;
}

#login-screen .login-foot{
  display:flex;justify-content:center;
  margin-top:20px;padding-top:16px;
  border-top:1px solid #EEF0F3;
}
body.dark #login-screen .login-foot{border-top-color:#1F2937;}
#login-screen .dark-toggle{
  background:transparent;border:0;cursor:pointer;
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;
  letter-spacing:.20em;text-transform:uppercase;
  color:#6B7280;padding:4px 8px;border-radius:4px;
}
#login-screen .dark-toggle:hover{color:#0B0F19;}
body.dark #login-screen .dark-toggle:hover{color:#E5E7EB;}

#login-screen .login-hint{
  margin-top:16px;background:#F8FAFC;border:1px solid #E4E6EB;border-radius:8px;
  padding:10px 12px;font-size:12px;color:#475569;line-height:1.6;
  font-family:'Geist Mono',ui-monospace,monospace;
}
body.dark #login-screen .login-hint{background:#0F1623;border-color:#27313F;color:#94A3B8;}
#login-screen .login-hint b{color:#1E3A8A;font-weight:500;}
body.dark #login-screen .login-hint b{color:#93C5FD;}

/* ── FORMS ── */
.field{margin-bottom:14px;}
label{display:block;font-family:var(--fb);font-size:13px;font-weight:700;letter-spacing:0;
  text-transform:none;color:var(--txt);margin-bottom:5px;}
input[type=text],input[type=password],input[type=number],input[type=email],input[type=tel],input[type=url],input[type=search],input[type=date],input[type=datetime-local],input[type=time],textarea,select{
  width:100%;background:var(--surf);border:1px solid var(--bdr2);border-radius:var(--r);
  color:var(--txt);font-family:var(--fb);font-size:14px;padding:9px 11px;outline:none;
  transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none;}
input:focus,textarea:focus,select:focus{border-color:#e77600;box-shadow:0 0 0 3px rgba(231,118,0,.25);}
input.uname{text-transform:uppercase;letter-spacing:5px;font-size:20px;text-align:center;font-family:var(--fm);}
input.pin{letter-spacing:8px;font-size:22px;text-align:center;font-family:var(--fm);}
textarea{resize:vertical;min-height:58px;font-size:13px;}
select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%23888' d='M5 7L0 2h10z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center;padding-right:30px;}
optgroup{text-align:left;}
input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#1E3A8A;}
body.dark input[type=checkbox]{accent-color:#3B5BDB;}
.pw-wrap{position:relative;}
.pw-wrap input{padding-right:42px;}
.pw-eye{position:absolute;right:11px;top:50%;transform:translateY(-50%);
  background:none;border:none;color:var(--txt-muted);cursor:pointer;font-size:16px;padding:4px;}
.pw-eye:hover{color:var(--txt);}

/* ── PASSWORD STRENGTH ── */
.pw-reqs{margin-top:8px;display:flex;flex-direction:column;gap:4px;}
.req{font-size:12px;display:flex;align-items:center;gap:6px;color:var(--txt-muted);transition:color .18s;}
.req.met{color:var(--green);}
.req::before{content:'○';font-size:9px;flex-shrink:0;}
.req.met::before{content:'●';}

/* ── BUTTONS ── refined-utility palette (matches login pilot + modal scope) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 16px;
  border:1px solid transparent;border-radius:8px;font-family:'Geist','Geist Sans',system-ui,sans-serif;
  font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;cursor:pointer;
  transition:background .12s ease, color .12s ease, border-color .12s ease, transform .06s ease;
  user-select:none;}
.btn-full{width:100%;}

/* Primary: deep navy from the GRSI brand */
.btn-pri{background:#1E3A8A;color:#FFFFFF;border-color:#1E3A8A;
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset, 0 1px 2px rgba(15,23,42,.10);}
.btn-pri:hover{background:#1E40AF;border-color:#1E40AF;}
.btn-pri:active{transform:translateY(1px);}
.btn-pri:disabled{background:#94A3B8;border-color:#94A3B8;color:#FFFFFF;cursor:not-allowed;box-shadow:none;}
body.dark .btn-pri{background:#3B5BDB;border-color:#3B5BDB;}
body.dark .btn-pri:hover{background:#4263EB;border-color:#4263EB;}

/* Secondary: white with quiet grey border */
.btn-sec{background:#FFFFFF;color:#0B0F19;border-color:#E4E6EB;}
.btn-sec:hover{border-color:#1E3A8A;background:rgba(30,58,138,.04);}
body.dark .btn-sec{background:#10151F;color:#E5E7EB;border-color:#27313F;}
body.dark .btn-sec:hover{border-color:#60A5FA;background:rgba(96,165,250,.06);}

/* Ghost: transparent, minimal border */
.btn-ghost{background:transparent;color:#475569;border:1px solid #E4E6EB;}
.btn-ghost:hover{color:#0B0F19;border-color:#1E3A8A;background:rgba(30,58,138,.04);}
body.dark .btn-ghost{color:#94A3B8;border-color:#27313F;}
body.dark .btn-ghost:hover{color:#E5E7EB;border-color:#60A5FA;background:rgba(96,165,250,.06);}

/* Danger: soft red — outline, not solid, until hover */
.btn-danger{background:transparent;color:#991B1B;border:1px solid #FECACA;}
.btn-danger:hover{background:#FEF2F2;color:#7F1D1D;border-color:#FCA5A5;}
body.dark .btn-danger{color:#FCA5A5;border-color:rgba(220,38,38,.30);}
body.dark .btn-danger:hover{background:rgba(220,38,38,.10);color:#FECACA;border-color:rgba(220,38,38,.50);}

/* Outline: same shell as ghost but neutral text — used for tertiary CTAs */
.btn-outline{background:transparent;color:#0B0F19;border:1px solid #E4E6EB;}
.btn-outline:hover{border-color:#1E3A8A;background:rgba(30,58,138,.04);}
body.dark .btn-outline{color:#E5E7EB;border-color:#27313F;}
body.dark .btn-outline:hover{border-color:#60A5FA;background:rgba(96,165,250,.06);}

/* Success: solid green — kept similar weight for "complete" affordances */
.btn-success{background:#10B981;color:#FFFFFF;border-color:#10B981;}
.btn-success:hover{background:#059669;border-color:#059669;}

.btn-sm{padding:7px 13px;font-size:12px;}
.btn-xs{padding:5px 10px;font-size:11px;}

/* ── ALERTS ── */
.alert{padding:10px 14px;border-radius:var(--r);font-size:13px;margin-bottom:14px;line-height:1.5;}
.alert-err{background:var(--red-bg);border:1px solid var(--red-lo);color:var(--red);}
.alert-ok{background:var(--green-bg);border:1px solid var(--green-lo);color:var(--green);}
.alert-info{background:var(--blue-bg);border:1px solid var(--blue-lo);color:var(--blue);}
.alert-warn{background:var(--amber-bg);border:1px solid var(--amber-lo);color:#8a5c00;}

/* ── HEADER — Amazon dark navy ── */
.hdr{background:var(--hdr);border-bottom:none;padding:0 16px;
  display:flex;align-items:center;justify-content:space-between;height:56px;
  position:sticky;top:0;z-index:100;box-shadow:0 2px 4px rgba(0,0,0,.25);}
.hdr-brand{font-family:var(--fh);font-size:22px;font-weight:700;letter-spacing:0;color:#FFFFFF;display:flex;align-items:center;gap:8px;}
.hdr-right{display:flex;align-items:center;gap:10px;}
.uname-pill{font-family:var(--fm);font-size:12px;color:#ccc;background:rgba(255,255,255,.1);
  padding:4px 10px;border-radius:var(--r);border:1px solid rgba(255,255,255,.2);}
/* Buttons inside the header */
.hdr .btn-ghost{color:#ddd;border-color:rgba(255,255,255,.3);}
.hdr .btn-ghost:hover{color:#fff;border-color:rgba(255,255,255,.6);background:rgba(255,255,255,.1);}
.hdr .btn-sec{background:transparent;color:#ddd;border-color:rgba(255,255,255,.3);}
.hdr .btn-sec:hover{background:rgba(255,255,255,.1);color:#fff;}
.dark-toggle{color:#ddd !important;border-color:rgba(255,255,255,.3) !important;}
.dark-toggle:hover{color:#fff !important;border-color:#60A5FA !important;}

/* ── IDLE BAR ── */
.idle-bar{height:4px;background:var(--nav);position:relative;overflow:hidden;}
.idle-bar-fill{height:100%;background:#3B5BDB;transition:width 0.9s linear;}
.idle-bar-fill.warn{background:var(--red);}
.idle-warn-banner{background:#fef0ec;border-bottom:1px solid var(--red-lo);
  padding:8px 16px;font-size:12px;color:var(--red);font-family:var(--fb);
  display:none;align-items:center;justify-content:space-between;gap:10px;}
.idle-warn-banner b{color:var(--red);}
.idle-stay-btn{font-family:'Geist','Geist Sans',system-ui,sans-serif;font-size:12px;font-weight:500;
  background:#1E3A8A;color:#FFFFFF;border:1px solid #1E3A8A;border-radius:8px;padding:5px 12px;cursor:pointer;white-space:nowrap;}
.idle-stay-btn:hover{background:#1E40AF;border-color:#1E40AF;}
body.dark .idle-stay-btn{background:#3B5BDB;border-color:#3B5BDB;}
body.dark .idle-stay-btn:hover{background:#4263EB;border-color:#4263EB;}


/* ── LAYOUT ── */
.main{max-width:820px;margin:0 auto;padding:20px 16px;}
.main-wide{max-width:1800px;}

/* ── BADGES ── refined-utility status pills (semantic colors kept) */
.badge{font-family:'Geist','Geist Sans',system-ui,sans-serif;
  font-size:11px;font-weight:500;letter-spacing:0;
  text-transform:none;padding:2px 9px;border-radius:999px;white-space:nowrap;
  display:inline-block;}
.update-tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:500;
  letter-spacing:0;text-transform:none;background:#FEF2F2;color:#991B1B;border:1px solid #FECACA;}
.b-pending  {background:rgba(220,38,38,.08); color:#991B1B; border:1px solid rgba(220,38,38,.20);}
.b-ordered  {background:rgba(2,132,199,.08); color:#075985; border:1px solid rgba(2,132,199,.22);}
.b-shipped  {background:rgba(124,58,237,.08);color:#5B21B6; border:1px solid rgba(124,58,237,.22);}
.b-delivered{background:rgba(5,150,105,.08); color:#065F46; border:1px solid rgba(5,150,105,.22);}
.b-fulfilled{background:#F1F5F9;             color:#64748B; border:1px solid #E2E8F0; text-decoration:line-through;}
.b-cancelled{background:#F8FAFC;             color:#94A3B8; border:1px solid #E2E8F0; text-decoration:line-through;}
.b-flagged  {background:rgba(217,119,6,.10); color:#92400E; border:1px solid rgba(217,119,6,.28);}
body.dark .update-tag{background:rgba(220,38,38,.12);color:#FCA5A5;border-color:rgba(220,38,38,.32);}
body.dark .b-pending  {background:rgba(248,113,113,.10);color:#FCA5A5;border-color:rgba(248,113,113,.28);}
body.dark .b-ordered  {background:rgba(56,189,248,.10);color:#7DD3FC;border-color:rgba(56,189,248,.28);}
body.dark .b-shipped  {background:rgba(167,139,250,.10);color:#C4B5FD;border-color:rgba(167,139,250,.28);}
body.dark .b-delivered{background:rgba(52,211,153,.10);color:#6EE7B7;border-color:rgba(52,211,153,.28);}
body.dark .b-fulfilled{background:#1A2030;color:#64748B;border-color:#27313F;}
body.dark .b-cancelled{background:#0F1623;color:#475569;border-color:#1F2937;}
body.dark .b-flagged  {background:rgba(251,191,36,.10);color:#FCD34D;border-color:rgba(251,191,36,.32);}
.card.flagged{border-color:rgba(217,119,6,.45);border-left:3px solid #D97706;}
body.dark .card.flagged{border-color:rgba(251,191,36,.40);border-left-color:#FBBF24;}
.age-warn{background:#fffbeb;border-top:1px solid #fde68a;padding:7px 14px;
  font-size:12px;color:#8a5c00;font-family:var(--fb);
  display:flex;align-items:center;gap:6px;}
.age-warn-icon{font-size:13px;}

/* ── CARDS ── */
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);margin-bottom:10px;
  transition:border-color .15s;box-shadow:var(--card-shadow);}
.card:hover{border-color:var(--bdr2);}
.card.fulfilled{opacity:.55;}
.card-hdr{padding:12px 14px;display:flex;align-items:center;justify-content:space-between;
  cursor:pointer;border-bottom:1px solid transparent;transition:border-color .15s;}
.card-hdr:hover{background:var(--surf2);}
.card-hdr.open{border-bottom-color:var(--bdr);}
.card-body{padding:14px;display:none;}
.card-body.open{display:block;}
.chevron{font-style:normal;font-size:14px;color:var(--txt-muted);transition:transform .2s;}
.chevron.open{transform:rotate(90deg);}

/* ── SEC TITLE ── */
.sec-title{font-family:var(--fh);font-size:20px;font-weight:700;letter-spacing:0;text-transform:none;
  color:var(--txt);margin-bottom:16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--bdr);padding-bottom:8px;}
.sec-title::after{display:none;}
.count-pip{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;
  padding:0 7px;background:rgba(30,58,138,.10);color:#1E3A8A;border:1px solid rgba(30,58,138,.18);
  border-radius:999px;font-family:'Geist','Geist Sans',system-ui,sans-serif;font-size:11px;font-weight:500;}
body.dark .count-pip{background:rgba(96,165,250,.12);color:#93C5FD;border-color:rgba(96,165,250,.28);}

/* ── TABS — Amazon nav stripe style ── */
.tabs{display:flex;border-bottom:none;margin-bottom:0;overflow-x:auto;
  background:var(--nav);padding:0 4px;}
.tabs-spacer{flex:1;}
.tab{padding:10px 16px;font-family:var(--fb);font-size:13px;font-weight:700;letter-spacing:0;text-transform:none;
  color:#ccc;cursor:pointer;border-bottom:3px solid transparent;transition:all .15s;
  background:none;border-top:none;border-left:none;border-right:none;white-space:nowrap;flex-shrink:0;}
.tab:hover{color:#fff;border-bottom-color:rgba(255,255,255,.4);}
.tab.on{color:#fff;border-bottom-color:#60A5FA;}
/* Stock Order button inside nav stripe */
.tabs .btn-pri{margin:8px 4px;padding:5px 12px;font-size:12px;}

/* User-portal tab strip (Orders / Work Orders / Quotes / PM Tickets / Invoicing).
   Five labels often overflow on phones; squeeze padding + font as the viewport
   narrows so all five fit edge-to-edge without horizontal scroll. */
.user-tabs{padding:0 16px;border-bottom:1px solid var(--bdr);}
@media (max-width:560px){
  .user-tabs{padding:0 4px;}
  .user-tabs .tab{padding:9px 10px;font-size:12px;}
}
@media (max-width:400px){
  .user-tabs{padding:0;}
  .user-tabs .tab{padding:8px 7px;font-size:11px;letter-spacing:-.01em;}
}

/* ── CHIPS ── refined: white pill default, navy active */
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;
  padding:8px 12px;background:var(--surf);border:1px solid var(--bdr);border-radius:8px;box-shadow:var(--card-shadow);}
.chip{padding:5px 13px;border-radius:999px;font-family:'Geist','Geist Sans',system-ui,sans-serif;
  font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;cursor:pointer;
  background:#FFFFFF;border:1px solid #E4E6EB;color:#475569;transition:all .12s ease;}
.chip:hover{border-color:#1E3A8A;color:#1E3A8A;background:rgba(30,58,138,.04);}
.chip.on{background:#1E3A8A;color:#FFFFFF;border-color:#1E3A8A;}
body.dark .chip{background:#10151F;border-color:#27313F;color:#94A3B8;}
body.dark .chip:hover{border-color:#60A5FA;color:#93C5FD;background:rgba(96,165,250,.06);}
body.dark .chip.on{background:#3B5BDB;color:#FFFFFF;border-color:#3B5BDB;}

/* ── ITEMS TABLE ── */
.itbl{width:100%;border-collapse:collapse;font-size:13px;}
.itbl th{font-family:var(--fb);font-size:11px;font-weight:700;letter-spacing:0;text-transform:uppercase;
  color:var(--txt-muted);padding:6px 10px;text-align:left;border-bottom:1px solid var(--bdr);}
.itbl td{padding:8px 10px;border-bottom:1px solid var(--bdr);vertical-align:top;}
.itbl tr:last-child td{border-bottom:none;}
.part-name{font-family:var(--fm);color:var(--blue);font-size:13px;}
.photo-thumb{width:44px;height:44px;object-fit:cover;border-radius:var(--r);border:1px solid var(--bdr);
  cursor:pointer;transition:opacity .15s;background:var(--surf2);}
.photo-thumb:hover{opacity:.8;}

/* ── WORKER SEARCH & FILTER ── */
.user-filter-bar{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;}
.user-search-wrap{position:relative;display:flex;align-items:center;}
.usearch-icon{position:absolute;left:10px;font-size:14px;pointer-events:none;color:var(--txt-muted);}
.user-search-input{width:100%;padding:8px 12px 8px 34px;font-size:13px;font-family:inherit;
  border:1px solid var(--bdr2);border-radius:var(--r);background:var(--surf);color:var(--txt);}
.user-search-input:focus{outline:none;border-color:#1E3A8A;box-shadow:0 0 0 3px rgba(30,58,138,.18);}
.user-search-input::-webkit-search-cancel-button{cursor:pointer;}
.date-input{padding:5px 8px;font-size:12px;font-family:inherit;border:1px solid var(--bdr2);
  border-radius:var(--r);background:var(--surf);color:var(--txt);min-width:130px;}
.date-input:focus{outline:none;border-color:#1E3A8A;box-shadow:0 0 0 3px rgba(30,58,138,.18);}
.uchips{display:flex;gap:6px;flex-wrap:wrap;}
.uchip{padding:5px 13px;border-radius:999px;font-family:'Geist','Geist Sans',system-ui,sans-serif;
  font-size:12px;font-weight:500;letter-spacing:0;
  cursor:pointer;background:#FFFFFF;border:1px solid #E4E6EB;color:#475569;transition:all .12s ease;}
.uchip:hover{border-color:#1E3A8A;color:#1E3A8A;background:rgba(30,58,138,.04);}
.uchip.on{background:#1E3A8A;color:#FFFFFF;border-color:#1E3A8A;}
body.dark .uchip{background:#10151F;border-color:#27313F;color:#94A3B8;}
body.dark .uchip:hover{border-color:#60A5FA;color:#93C5FD;background:rgba(96,165,250,.06);}
body.dark .uchip.on{background:#3B5BDB;color:#FFFFFF;border-color:#3B5BDB;}

/* ── FAB ── */
.fab{position:fixed;bottom:24px;right:22px;width:56px;height:56px;background:#1E3A8A;
  color:#FFFFFF;border:1px solid #1E3A8A;border-radius:50%;font-size:28px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 16px rgba(30,58,138,.35);transition:all .2s;z-index:200;}
.fab:hover{background:#1E40AF;box-shadow:0 6px 24px rgba(30,58,138,.45);}
.fab:active{transform:scale(.95);}
body.dark .fab{background:#3B5BDB;border-color:#3B5BDB;}
body.dark .fab:hover{background:#4263EB;}

/* ── MODAL ── */
.overlay,.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:300;
  display:flex;align-items:flex-start;justify-content:center;padding:20px;overflow-y:auto;}
.modal-header{padding:14px 18px;border-bottom:1px solid var(--bdr);font-size:18px;font-weight:700;font-family:var(--fh);}
.modal-body{padding:18px;}
.modal-footer{padding:14px 18px;border-top:1px solid var(--bdr);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;}
.modal{background:var(--surf);border:1px solid var(--bdr);border-top:3px solid var(--amber);
  border-radius:var(--r2);width:100%;max-width:520px;margin:auto;box-shadow:0 4px 24px rgba(0,0,0,.2);}
.mhdr{padding:14px 18px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;justify-content:space-between;}
.mhdr h2{font-size:18px;font-weight:700;letter-spacing:0;text-transform:none;font-family:var(--fh);}
.mbody{padding:18px;}
.mfoot{padding:14px 18px;border-top:1px solid var(--bdr);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;}

/* ── ITEM BUILDER ── */
.item-row{background:var(--surf2);border:1px solid var(--bdr);border-radius:var(--r);padding:12px;margin-bottom:9px;}
.item-row-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;}
.item-label{font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#6B7280;}
body.dark .item-label{color:#94A3B8;}
.item-grid{display:grid;grid-template-columns:1fr 72px;gap:7px;margin-bottom:7px;}
.file-zone{border:2px dashed var(--bdr);border-radius:var(--r);padding:11px;text-align:center;cursor:pointer;transition:border-color .15s;}
.file-zone:hover{border-color:#1E3A8A;}
body.dark .file-zone:hover{border-color:#60A5FA;}
.file-zone input[type=file]{display:none;}
.fz-txt{font-family:var(--fb);font-size:11px;letter-spacing:0;text-transform:uppercase;color:var(--txt-muted);}
.fz-txt span{display:block;font-size:18px;margin-bottom:4px;}
.preview-img{width:100%;max-height:110px;object-fit:cover;border-radius:var(--r);margin-top:7px;display:none;}
.add-item-btn{width:100%;padding:9px;background:transparent;border:2px dashed var(--bdr);border-radius:var(--r);
  color:var(--txt-muted);font-family:var(--fb);font-size:12px;letter-spacing:0;text-transform:none;
  cursor:pointer;transition:all .15s;margin-top:6px;}
.add-item-btn:hover{border-color:#1E3A8A;color:#1E3A8A;}
body.dark .add-item-btn:hover{border-color:#60A5FA;color:#93C5FD;}

/* ── BULK ACTIONS — Amazon nav stripe ── */
.bulk-chk{width:16px;height:16px;flex-shrink:0;margin-right:12px;cursor:pointer;accent-color:#1E3A8A;}
body.dark .bulk-chk{accent-color:#3B5BDB;}
.bulk-bar{position:fixed;bottom:-80px;left:0;right:0;z-index:500;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:var(--nav);color:#fff;padding:10px 18px;
  box-shadow:0 -2px 12px rgba(0,0,0,.3);
  transition:bottom .25s cubic-bezier(.4,0,.2,1);}
.bulk-bar.visible{bottom:0;}
.bulk-count{font-family:var(--fb);font-size:13px;font-weight:700;white-space:nowrap;margin-right:4px;}
.bulk-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.bulk-status-sel{font-size:13px;padding:5px 8px;border-radius:var(--r);border:1px solid rgba(255,255,255,.4);
  background:rgba(255,255,255,.1);color:#fff;cursor:pointer;}
.bulk-status-sel option{background:var(--nav);}

/* ── MGR ORDER CONTROLS ── */
.mgr-ctrl{background:var(--surf2);border:1px solid var(--bdr);border-radius:var(--r);padding:14px;margin-top:12px;}
.ctrl-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
@media(max-width:600px){.ctrl-grid{grid-template-columns:1fr;}}
.ctrl-row{grid-column:1/-1;display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.ctrl-row-end{justify-content:flex-end;}
.ckb-lbl{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--txt-dim);}

/* ── ORDER CHAT ── */
.order-chat{margin-top:10px;}
.chat-msgs{display:flex;flex-direction:column;gap:5px;max-height:280px;overflow-y:auto;
  padding:6px 0;border-top:1px solid var(--bdr);margin-bottom:0;}
.chat-empty{font-size:12px;color:var(--txt-muted);text-align:center;padding:10px 0;}
.chat-msg{display:flex;}
.chat-msg.mine{justify-content:flex-end;}
.chat-msg.theirs{justify-content:flex-start;}
.chat-bubble{max-width:82%;padding:7px 11px;border-radius:12px;font-size:13px;line-height:1;}
.chat-msg.mine .chat-bubble{background:#1E3A8A;color:#FFFFFF;border-bottom-right-radius:3px;}
body.dark .chat-msg.mine .chat-bubble{background:#3B5BDB;color:#FFFFFF;}
.chat-msg.theirs .chat-bubble{background:var(--surf2);border:1px solid var(--bdr);border-bottom-left-radius:3px;}
.chat-body{line-height:1.45;white-space:pre-wrap;word-break:break-word;}
.chat-meta{font-size:10px;margin-top:4px;opacity:.65;display:flex;align-items:center;gap:5px;}
.chat-del{background:none;border:none;padding:0 1px;cursor:pointer;font-size:12px;line-height:1;
  opacity:.5;color:inherit;vertical-align:middle;}
.chat-del:hover{opacity:1;}
.chat-input{display:flex;gap:6px;margin-top:6px;align-items:flex-end;}
.chat-input textarea{flex:1;resize:none;font-size:13px;padding:7px 10px;min-height:36px;
  border:1px solid var(--bdr);border-radius:var(--r);background:var(--surf);color:var(--txt);
  font-family:inherit;line-height:1.4;}
.chat-input textarea:focus{outline:none;border-color:#e77600;}
.chat-input .btn{flex-shrink:0;}

/* ── INTERNAL NOTES (manager-only) ── */
.int-notes{margin-top:12px;border:1px dashed var(--amber);border-radius:8px;padding:10px 12px;background:#fffbeb;}
body.dark .int-notes{background:#2a2210;border-color:#92702a;}
.int-notes-hdr{display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none;font-size:12px;
  font-weight:700;color:#92400e;letter-spacing:.5px;text-transform:uppercase;font-family:var(--fh);}
body.dark .int-notes-hdr{color:#fbbf24;}
.int-notes-hdr .chevron{transition:transform .15s;font-size:14px;}
.int-notes-hdr .chevron.open{transform:rotate(90deg);}
.int-notes-body{display:none;margin-top:8px;}
.int-notes-body.open{display:block;}
.int-note{background:#fef3c7;border-radius:8px;padding:7px 11px;margin-bottom:5px;font-size:13px;line-height:1.45;position:relative;}
body.dark .int-note{background:#3a3015;}
.int-note .chat-body{white-space:pre-wrap;word-break:break-word;}
.int-note .chat-meta{font-size:10px;margin-top:4px;opacity:.65;display:flex;align-items:center;gap:5px;}

/* ── USERS TABLE ── */
.utbl{width:100%;border-collapse:collapse;table-layout:fixed;}
.utbl th{font-family:var(--fb);font-size:12px;font-weight:700;letter-spacing:0;text-transform:none;
  color:var(--txt);padding:9px 13px;text-align:left;border-bottom:2px solid var(--bdr);background:var(--surf2);}
.utbl td{padding:9px 13px;border-bottom:1px solid var(--bdr);font-size:14px;}
.utbl tr:last-child td{border-bottom:none;}
.utbl tr:hover td{background:#fafafa;}
body.dark .utbl tr:hover td{background:var(--surf2);}
.utbl .mono{font-family:var(--fm);}

/* ── AUDIT TABLE ── */
.atbl{width:100%;border-collapse:collapse;}
.atbl th{font-family:var(--fb);font-size:11px;font-weight:700;letter-spacing:0;text-transform:uppercase;
  color:var(--txt-muted);padding:7px 10px;text-align:left;border-bottom:1px solid var(--bdr);background:var(--surf2);}
.atbl td{padding:7px 10px;border-bottom:1px solid var(--bdr);font-family:var(--fm);font-size:11px;}
.atbl tr:last-child td{border-bottom:none;}
.atbl tr:hover td{background:var(--surf2);}
.ev-success{color:var(--green);}
.ev-fail{color:var(--red);}
.ev-block{color:var(--orange);}
.ev-info{color:var(--blue);}
.ev-warn{color:var(--purple);}

/* ── Stat readout — instrument cluster across the dashboard ──────────
   A masthead bar, not a card grid: hairline top + bottom rules,
   vertical dividers between cells, a signature 1px rule above each
   number that flips to amber on the active filter. Used by Orders,
   Invoicing, Work Orders, and Quotes — single class family. */
.stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(110px,1fr));
  gap:0;
  margin:2px 0 14px;
  border-top:1px solid var(--bdr);
  border-bottom:1px solid var(--bdr);
  background:transparent;
}
.stats:empty{ display:none; }

.stat{
  border-right:1px solid var(--bdr);
  position:relative;
  padding:14px 16px 13px;
  transition:background-color .18s ease;
}
.stats > :last-child{ border-right:0; }

/* Clickable cells (filters, link-throughs) */
.stat[data-action]{ cursor:pointer; }
.stat[data-action]:hover{ background:rgba(15,23,42,.025); }
body.dark .stat[data-action]:hover{ background:rgba(255,255,255,.035); }

/* Signature: hairline rule directly above the number */
.stat::before{
  content:"";
  position:absolute;
  left:16px; right:16px; top:0;
  height:1px;
  background:var(--bdr);
  transition:background-color .18s ease, height .18s ease;
}
.stat[data-action]:hover::before{ background:var(--bdr2); }

/* Active filter — amber rule, soft amber wash on the cell */
.stat.inv-kpi-active::before{
  height:2px;
  background:#FF9900;
}
.stat.inv-kpi-active{ background:rgba(255,153,0,.045); }
body.dark .stat.inv-kpi-active::before{ background:#FFB347; }
body.dark .stat.inv-kpi-active{ background:rgba(255,179,71,.07); }

/* Number — instrument readout */
.stat-n{
  display:block;
  font-family:'Geist',sans-serif;
  font-variant-numeric:tabular-nums;
  font-size:22px;
  font-weight:500;
  letter-spacing:-.02em;
  line-height:1;
  color:#0B0F19;
}
body.dark .stat-n{ color:#F1F5F9; }

/* A small +N marker after the main number (e.g. flagged + N old) */
.stat-n-plus{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:11px;font-weight:500;
  letter-spacing:0;
  color:#94A3B8;
  margin-left:4px;
  vertical-align:2px;
}
body.dark .stat-n-plus{ color:#6B7280; }

/* Label — tracked-out monospace caps */
.stat-l{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:9px;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#64748B;
  margin-top:8px;
  display:flex;
  align-items:center;
  gap:6px;
}
body.dark .stat-l{ color:#94A3B8; }

/* Per-category bullet before every label — encodes the status channel
   without recoloring the numbers. Default is muted slate; tabs override
   per data-status. */
.stat-l::before{
  content:"";
  width:6px; height:6px; border-radius:999px;
  background:#94A3B8;
  flex-shrink:0;
}

/* Orders */
.stat[data-status="pending"]   .stat-l::before { background:#B12704; }
.stat[data-status="ordered"]   .stat-l::before { background:#007185; }
.stat[data-status="shipped"]   .stat-l::before { background:#6655c0; }
.stat[data-status="delivered"] .stat-l::before { background:#067D62; }
.stat[data-status="fulfilled"] .stat-l::before { background:#94A3B8; }
.stat[data-status="flagged"]   .stat-l::before { background:#FF9900; box-shadow:0 0 0 2px rgba(255,153,0,.18); }

/* Work Orders */
.stat[data-status="open"]      .stat-l::before { background:#B12704; }
.stat[data-status="completed"] .stat-l::before { background:#067D62; }
.stat[data-status="followup"]  .stat-l::before { background:#FF9900; box-shadow:0 0 0 2px rgba(255,153,0,.18); }

/* Invoicing */
.stat[data-status="drafts"]      .stat-l::before { background:#94A3B8; }
.stat[data-status="open-inv"]    .stat-l::before { background:#B12704; }
.stat[data-status="this-week"]   .stat-l::before { background:#067D62; }
.stat[data-status="this-month"]  .stat-l::before { background:#067D62; }

/* "In progress" shared between Work Orders and Quotes */
.stat[data-status="in_progress"] .stat-l::before { background:#D97706; }

/* Quotes */
.stat[data-status="all"]       .stat-l::before { background:#94A3B8; }
.stat[data-status="new"]       .stat-l::before { background:#94A3B8; }
.stat[data-status="quoted"]    .stat-l::before { background:#1E3A8A; }
.stat[data-status="accepted"]  .stat-l::before { background:#059669; }
.stat[data-status="work_complete"] .stat-l::before { background:#1E3A8A; }
.stat[data-status="declined"]  .stat-l::before { background:#DC2626; }
.stat[data-status="cancelled"] .stat-l::before { background:#64748B; }

/* ── EXPORT / FORM BOXES ── */
.form-box{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);padding:16px;margin-bottom:14px;box-shadow:var(--card-shadow);}
.form-box h3{font-family:var(--fh);font-size:16px;font-weight:700;letter-spacing:0;text-transform:none;margin-bottom:4px;}
.form-box p{font-size:12px;color:var(--txt-muted);margin-bottom:14px;line-height:1.6;}
.form-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:flex-end;}
@media(max-width:500px){.form-row{grid-template-columns:1fr 1fr;}.form-row>.btn{grid-column:1/-1;}}

/* ── EMPTY / LOADING ── */
.empty{text-align:center;padding:55px 20px;color:var(--txt-muted);}
.empty .icon{font-size:44px;margin-bottom:10px;}
.empty h3{font-family:var(--fh);font-size:18px;margin-bottom:5px;}
.empty p{font-size:13px;}
.loading{text-align:center;padding:40px 20px;color:var(--txt-muted);font-family:var(--fb);}

/* ── PV OVERLAY ── */
.pv-overlay{position:fixed;inset:0;background:rgba(0,0,0,.96);z-index:500;
  display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;}
.pv-overlay img{max-width:92vw;max-height:86vh;object-fit:contain;border-radius:var(--r);}
.pv-controls{display:flex;gap:12px;margin-top:14px;cursor:default;}
.pv-btn{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);color:#fff;
  font-size:22px;width:44px;height:44px;border-radius:50%;cursor:pointer;line-height:1;
  display:flex;align-items:center;justify-content:center;}
.pv-btn:hover:not(:disabled){background:rgba(255,255,255,.28);}
.pv-btn:disabled{opacity:.4;cursor:default;}

/* ── TOAST ── */
#toast-host{position:fixed;bottom:85px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column-reverse;gap:6px;align-items:center;
  z-index:1000;pointer-events:none;}
.toast{background:var(--surf);
  border:1px solid var(--bdr);border-left:3px solid #1E3A8A;padding:11px 18px;
  border-radius:var(--r);font-size:13px;max-width:90vw;white-space:normal;text-align:center;
  box-shadow:var(--card-shadow);
  animation:tin .25s ease;pointer-events:auto;cursor:pointer;}
.toast.fading{animation:tout .25s ease forwards;}
@keyframes tin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes tout{to{opacity:0;transform:translateY(8px)}}

/* ── FORCE PASSWORD OVERLAY ── */
.force-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:400;
  display:flex;align-items:center;justify-content:center;padding:20px;}
.force-card{background:var(--surf);border:1px solid var(--bdr);border-top:3px solid var(--red);
  border-radius:var(--r2);width:100%;max-width:430px;padding:32px;box-shadow:0 4px 24px rgba(0,0,0,.2);}
.force-card h2{font-size:22px;font-weight:900;color:var(--red);margin-bottom:8px;font-family:var(--fh);}
.force-card .sub{font-size:13px;color:var(--txt-dim);margin-bottom:22px;line-height:1.6;}

/* ── MISC ── */
.user-sort-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:16px;
  padding:8px 12px;background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);box-shadow:var(--card-shadow);}
.user-sort-label{font-family:var(--fb);font-size:11px;font-weight:700;letter-spacing:0;
  text-transform:uppercase;color:var(--txt-muted);width:100%;margin-bottom:2px;}
.user-chip{padding:5px 13px;border-radius:999px;font-family:'Geist','Geist Sans',system-ui,sans-serif;
  font-size:12px;font-weight:500;letter-spacing:0;
  cursor:pointer;background:#FFFFFF;border:1px solid #E4E6EB;color:#475569;transition:all .12s ease;}
.user-chip:hover{border-color:#1E3A8A;color:#1E3A8A;background:rgba(30,58,138,.04);}
.user-chip.on{background:#1E3A8A;color:#FFFFFF;border-color:#1E3A8A;}
body.dark .user-chip{background:#10151F;border-color:#27313F;color:#94A3B8;}
body.dark .user-chip:hover{border-color:#60A5FA;color:#93C5FD;background:rgba(96,165,250,.06);}
body.dark .user-chip.on{background:#3B5BDB;color:#FFFFFF;border-color:#3B5BDB;}
.locked-alert{background:var(--red-bg);border:1px solid var(--red-lo);border-left:4px solid var(--red);
  border-radius:var(--r);padding:11px 15px;margin-bottom:16px;
  display:flex;align-items:flex-start;gap:10px;}
.locked-alert-icon{font-size:16px;flex-shrink:0;margin-top:1px;}
.locked-alert-msg{font-size:13px;color:var(--red);line-height:1.5;}
.locked-alert-msg b{font-family:var(--fm);}
.locked-alert-link{color:var(--red);font-weight:600;text-decoration:underline;margin-left:6px;white-space:nowrap;cursor:pointer;}
.locked-alert-link:hover{opacity:.75;}
.ometa{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--txt-muted);}
.ometa-user{font-family:var(--fm);color:#1E3A8A;}
body.dark .ometa-user{color:#93C5FD;}
body:not(.dark) .ometa-user{color:#0F1111;font-weight:700;}
.acct-pill{font-family:var(--fb);font-size:11px;font-weight:700;
  background:var(--blue-bg);color:var(--blue);border:1px solid var(--blue-lo);
  padding:2px 7px;border-radius:3px;white-space:nowrap;}
hr{border:none;border-top:1px solid var(--bdr);margin:16px 0;}

/* ── DEMO BANNER ── */
#demo-banner{background:var(--amber);color:#0F1111;}

@media(max-width:480px){
  .overlay{padding:0;align-items:flex-end;}
  .modal{border-radius:var(--r2) var(--r2) 0 0;max-width:100%;}
  .main{padding:16px 12px;}
  .uname-pill{display:none;}
  .hdr-sub{display:none;}
}
@media(max-width:900px){#woq-list [style*="grid-template-columns"]{grid-template-columns:repeat(2,1fr) !important;}}
@media(max-width:480px){#woq-list [style*="grid-template-columns"]{grid-template-columns:1fr !important;}}

/* ── ANALYTICS ── */
.an-wrap{padding:4px 0;}
.an-range-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px;}
.an-range-label{font-family:var(--fb);font-size:12px;font-weight:700;color:var(--txt-muted);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;}
.an-total-badge{font-family:var(--fb);font-size:13px;font-weight:700;color:var(--txt-dim);margin-left:auto;}
.an-vs{font-size:11px;font-weight:700;margin-left:6px;}
.an-vs-up{color:var(--green);}
.an-vs-dn{color:var(--red);}
.an-section{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);padding:16px;margin-bottom:14px;}
.an-section-title{font-family:var(--fh);font-size:13px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--txt-muted);margin-bottom:14px;}
.an-empty{font-size:13px;color:var(--txt-muted);padding:8px 0;}
.an-norm-note{font-size:11px;color:var(--txt-muted);margin-bottom:10px;margin-top:-8px;}
.an-two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:700px){.an-two-col{grid-template-columns:1fr;}}

/* Activity chart */
.an-chart-wrap{overflow-x:auto;}
.an-chart{display:flex;align-items:flex-end;gap:2px;height:130px;min-width:100%;padding-bottom:22px;position:relative;}
.an-bar-wrap{flex:1;min-width:6px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;cursor:default;}
.an-bar{width:100%;background:#1E3A8A;border-radius:2px 2px 0 0;transition:opacity .15s;}
body.dark .an-bar{background:#3B5BDB;}
.an-bar-wrap:hover .an-bar{opacity:.75;}
.an-bar-lbl{font-size:9px;color:var(--txt-muted);white-space:nowrap;transform:rotate(-45deg);transform-origin:top left;position:absolute;bottom:0;margin-left:2px;}

/* KPI row */
.an-perf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-bottom:16px;}
.an-kpi{background:var(--surf2);border:1px solid var(--bdr);border-radius:var(--r);padding:12px;text-align:center;}
.an-kpi-n{font-family:var(--fh);font-size:26px;font-weight:700;color:#1E3A8A;line-height:1.1;}
body.dark .an-kpi-n{color:#93C5FD;}
.an-kpi-l{font-size:11px;font-weight:700;color:var(--txt-muted);margin-top:4px;}

/* Fulfillment % bars */
.an-pct-rows{display:flex;flex-direction:column;gap:8px;}
.an-pct-row{display:flex;align-items:center;gap:10px;}
.an-pct-label{font-size:12px;color:var(--txt-dim);width:110px;flex-shrink:0;}
.an-pct-wrap{flex:1;position:relative;height:20px;background:var(--surf2);border-radius:3px;overflow:hidden;}
.an-pct-fill{height:100%;border-radius:3px;transition:width .4s ease;}
.an-pct-lbl{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:11px;font-weight:700;color:var(--txt);mix-blend-mode:multiply;}
body.dark .an-pct-lbl{mix-blend-mode:screen;}

/* ── Invoice KPI tiles in the top stats row ── */
/* Italic sub-line beneath the label (e.g. "in flight" on invoice tiles) */
.stat-sub{
  font-family:'Geist',sans-serif;
  font-style:italic;
  font-size:11px;
  font-weight:400;
  color:#94A3B8;
  margin-top:6px;
  text-transform:none;
  letter-spacing:0;
  line-height:1.2;
}
body.dark .stat-sub{ color:#6B7280; }

/* Compact one-row toolbar above the invoice list */

/* Workflow section headers on the invoice list */
.inv-section-hdr{margin:18px 0 8px;padding:8px 12px;background:var(--surf2);
  border-radius:var(--r);font-family:var(--fh);font-size:13px;font-weight:700;
  letter-spacing:.5px;text-transform:uppercase;color:var(--txt-dim);
  display:flex;align-items:center;gap:10px;}
.inv-section-hdr-label{flex:1;}
.inv-section-hdr-count{font-weight:400;color:var(--txt-muted);font-size:12px;
  letter-spacing:0;text-transform:none;}

/* ── Print stylesheet ── */
@media print {
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
  body{background:#fff!important;color:#000!important;}
  body.dark{--bg:#fff;--surf:#fff;--surf2:#f9f9f9;--surf3:#f0f0f0;
    --bdr:#ccc;--txt:#000;--txt-dim:#333;--txt-muted:#666;}

  /* Hide chrome */
  .hdr,.idle-bar,#idle-warn-banner,.bulk-bar,.bulk-chk,
  .user-filter-bar,.user-sort-row,.user-search-wrap,.chip,
  .btn,.badge.b-flagged,.chevron,.age-warn,
  .stats,.locked-alert,.tabs,
  #pv-host,.toast-host{display:none!important;}

  /* Hide non-expanded cards entirely */
  .card:not(:has(.card-body.open)){display:none!important;}

  /* Show expanded card body */
  .card-body.open{display:block!important;padding:0!important;}
  .card-hdr{padding:8px 0!important;border:none!important;cursor:default!important;}
  .card-hdr:hover{background:transparent!important;}
  .card{border:none!important;box-shadow:none!important;margin:0!important;break-inside:avoid;}

  /* Header row — keep badges and meta visible */
  .badge{border:1px solid #999!important;font-size:11px!important;}
  .ometa{font-size:11px!important;}

  /* Items table */
  .itbl{width:100%;border-collapse:collapse;margin-bottom:12px;}
  .itbl th,.itbl td{border:1px solid #ccc!important;padding:6px 8px!important;font-size:12px!important;}
  .itbl thead{background:#f0f0f0!important;}
  .photo-thumb{width:48px!important;height:48px!important;object-fit:cover;border-radius:2px;}

  /* Order controls — show read-only info, hide interactive bits */
  .mgr-ctrl{background:transparent!important;border:1px solid #ccc!important;padding:10px!important;margin-top:8px!important;}
  .ctrl-grid{gap:6px!important;}
  .ctrl-grid select,.ctrl-grid input[type="text"],.ctrl-grid input[type="date"]{
    border:none!important;background:transparent!important;padding:0!important;
    font-size:12px!important;color:#000!important;-webkit-appearance:none;appearance:none;}
  .ctrl-grid textarea,.chat-input,.ctrl-row,.ctrl-row-end,
  .int-notes,.int-notes-hdr,.int-notes-body{display:none!important;}
  .chat-msgs{max-height:none!important;overflow:visible!important;border:none!important;}
  .chat-msg{break-inside:avoid;}
  .chat-bubble{font-size:11px!important;padding:4px 8px!important;}
  .chat-del{display:none!important;}

  /* Layout */
  body{min-height:auto!important;}
  .main,.main-wide{padding:0!important;max-width:100%!important;margin:0!important;}

  /* Pagination & bulk bar bottom padding */
  div[style*="justify-content:center"][style*="gap:6px"]{display:none!important;}
  #mmain{padding-bottom:0!important;}

  /* Page setup */
  @page{margin:15mm 12mm;size:auto;}
}

/* Horizontal bars */
.an-hbar-row{display:flex;align-items:center;gap:8px;margin-bottom:7px;}
.an-hbar-label{width:140px;flex-shrink:0;font-size:12px;color:var(--txt-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.an-hbar-track{flex:1;background:var(--surf2);border-radius:3px;height:18px;overflow:hidden;}
.an-hbar-fill{height:100%;border-radius:3px;transition:width .4s ease;}
.an-hbar-count{width:36px;flex-shrink:0;text-align:right;font-size:12px;font-family:var(--fm);color:var(--txt-dim);display:flex;align-items:center;justify-content:flex-end;gap:4px;}
.an-open-badge{background:var(--red-bg);color:var(--red);border:1px solid var(--red-lo);font-size:10px;font-family:var(--fb);font-weight:700;padding:1px 4px;border-radius:3px;}
.demo-reset-btn:hover{border-color:var(--blue)!important;color:var(--blue)!important;}


/* ── Order Cards (used for invoices, work orders, etc.) ─────────────────────── */
.order-card {
  background: var(--surf);
  border: 1px solid var(--bdr);
  border-radius: var(--r2);
  box-shadow: var(--card-shadow);
  margin-bottom: 10px;
  overflow: hidden;
}
.oc-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  border-bottom: 1px solid var(--bdr2);
  background: var(--surf2);
}
.oc-id {
  font-family: var(--fm);
  font-weight: 700;
  font-size: 13px;
  color: var(--txt);
}
.oc-status {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 3px;
}
.oc-body {
  padding: 10px 12px;
  font-size: 13px;
  line-height: 1.5;
}

/* ── SIGNATURE PAD ── */
.sig-pad-topbar {
  position: absolute; top: 0; left: 0; right: 0;
  background: #f5f5f5; border-bottom: 1px solid #ccc;
  padding: 10px 16px; display: flex; gap: 10px; align-items: center;
  z-index: 1;
}
.sig-pad-topbar label {
  font-size: 13px; font-weight: 700; white-space: nowrap; color: #333;
}
.sig-pad-topbar input {
  flex: 1; font-size: 15px; padding: 8px; border: 1px solid #ccc; border-radius: 4px;
  background: #fff; color: #222;
}
.sig-pad-canvas {
  position: absolute; top: 0; left: 0;
  width: 100vw; height: 100vh;
  touch-action: none; cursor: crosshair; background: #fff;
}
.sig-pad-controls {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: #f5f5f5; border-top: 1px solid #ccc;
  padding: 12px 16px; display: flex; justify-content: center; gap: 12px;
  z-index: 1;
}

/* ── INVOICE PRESENTATION ── */
.inv-present-footer {
  padding: 12px; text-align: center; background: #f5f5f5;
  display: flex; gap: 10px; justify-content: center; flex-wrap: wrap;
}

/* ── MANAGER DASHBOARD — unified top bar (refined utility) ──
   Single 52px bar that replaces the old 72px header + 50px tabs rail.
   Same tokens as the login pilot: Geist + Geist Mono, navy #1E3A8A
   accent, hairline borders, soft layered shadow. The active tab carries
   the only saturated color in the bar — everything else is muted ink. */

.topbar{
  position:sticky;top:0;z-index:100;
  --tb-surface:#FFFFFF;
  --tb-line:#E4E6EB;
  --tb-line-soft:#EEF1F4;
  --tb-ink:#0B0F19;
  --tb-text:#334155;
  --tb-muted:#64748B;
  --tb-mute2:#94A3B8;
  --tb-accent:#1E3A8A;
  --tb-accent-soft:rgba(30,58,138,.06);
  --tb-accent-hi:#1E40AF;

  height:52px;
  display:flex;align-items:stretch;
  background:var(--tb-surface);
  border-bottom:1px solid var(--tb-line);
  box-shadow:0 1px 0 rgba(15,23,42,.02), 0 6px 18px -14px rgba(15,23,42,.18);
  font-family:'Geist','Geist Sans',system-ui,sans-serif;
  color:var(--tb-text);
  user-select:none;
  position:relative;
}
body.dark .topbar{
  --tb-surface:#0F1623;
  --tb-line:#1F2937;
  --tb-line-soft:#1A2332;
  --tb-ink:#E5E7EB;
  --tb-text:#CBD5E1;
  --tb-muted:#94A3B8;
  --tb-mute2:#64748B;
  --tb-accent:#60A5FA;
  --tb-accent-soft:rgba(96,165,250,.10);
  --tb-accent-hi:#93C5FD;
  box-shadow:0 1px 0 rgba(255,255,255,.02), 0 8px 24px -16px rgba(0,0,0,.6);
}

/* Brand */
.topbar .tb-brand{
  display:flex;align-items:center;gap:10px;
  padding:0 18px;flex:0 0 auto;
  cursor:pointer;color:inherit;
  border-right:1px solid var(--tb-line-soft);
  outline:none;
}
.topbar .tb-brand:focus-visible{box-shadow:inset 0 0 0 2px var(--tb-accent);border-radius:0;}
.topbar .tb-wordmark{
  font-family:'Russo One',sans-serif;
  font-style:italic;
  font-weight:400;
  font-size:18px;
  letter-spacing:.02em;
  color:var(--tb-ink);
  line-height:1;
  /* Russo One has no true italic — synthetic skew matches the logo angle */
}

/* Tab cluster — horizontal scroll, scrollbar hidden */
.topbar .tb-tabs{
  display:flex;align-items:stretch;
  flex:1 1 auto;min-width:0;
  overflow-x:auto;scrollbar-width:none;
}
.topbar .tb-tabs::-webkit-scrollbar{display:none;}
.topbar .tb-tab{
  appearance:none;background:transparent;border:0;cursor:pointer;
  font:500 13px/1 'Geist','Geist Sans',system-ui,sans-serif;
  color:var(--tb-muted);
  padding:0 13px;height:100%;
  display:inline-flex;align-items:center;gap:7px;
  white-space:nowrap;letter-spacing:-.005em;
  position:relative;flex-shrink:0;
  transition:color .14s ease;
}
.topbar .tb-tab .tb-tab-icon{font-size:13px;line-height:1;opacity:.85;filter:saturate(.85);}
.topbar .tb-tab::after{
  content:'';position:absolute;left:13px;right:13px;bottom:-1px;
  height:2px;background:transparent;border-radius:2px 2px 0 0;
  transition:background .14s ease;
}
.topbar .tb-tab:hover{color:var(--tb-ink);}
.topbar .tb-tab:hover::after{background:var(--tb-line);}
.topbar .tb-tab.is-active{color:var(--tb-accent);font-weight:600;}
.topbar .tb-tab.is-active::after{background:var(--tb-accent);}

.topbar .tb-spacer{flex:1 1 auto;}

/* "+ Manager Order" CTA — sits in the bar at 28px high */
.topbar .tb-cta{
  align-self:center;margin:0 10px 0 4px;
  height:28px;padding:0 12px;
  display:inline-flex;align-items:center;gap:5px;
  background:var(--tb-accent);color:#fff;
  border:1px solid var(--tb-accent);border-radius:6px;
  font:600 12px/1 'Geist',sans-serif;
  letter-spacing:0;text-transform:none;
  cursor:pointer;
  box-shadow:0 1px 0 rgba(255,255,255,.10) inset, 0 1px 2px rgba(15,23,42,.10);
  transition:background .14s ease, transform .06s ease;
  flex-shrink:0;
}
.topbar .tb-cta:hover{background:var(--tb-accent-hi);}
.topbar .tb-cta:active{transform:translateY(1px);}
body.dark .topbar .tb-cta{background:#3B5BDB;border-color:#3B5BDB;color:#fff;}
body.dark .topbar .tb-cta:hover{background:#4263EB;border-color:#4263EB;}

/* Vertical divider before the right cluster */
.topbar .tb-vdiv{
  align-self:center;width:1px;height:22px;
  background:var(--tb-line);margin:0 6px;flex-shrink:0;
}

/* Right cluster — user identity + utilities */
.topbar .tb-right{
  display:flex;align-items:center;gap:2px;
  padding:0 10px 0 4px;flex-shrink:0;
}
.topbar .tb-user{
  display:flex;align-items:center;gap:8px;
  padding:0 10px 0 6px;height:32px;
  font:500 13px/1 'Geist',sans-serif;
  color:var(--tb-text);letter-spacing:-.005em;
}
.topbar .tb-avatar{
  width:24px;height:24px;border-radius:50%;
  display:grid;place-items:center;
  background:#DEE4EB;color:#1E3A8A;
  font:500 10px/1 'Geist Mono',ui-monospace,monospace;
  letter-spacing:.06em;text-transform:uppercase;
  border:1px solid var(--tb-line);flex-shrink:0;
}
body.dark .topbar .tb-avatar{background:#10151F;color:#93C5FD;border-color:#27313F;}
.topbar .tb-user-name{color:var(--tb-ink);font-weight:500;}
.topbar .tb-user-role{
  font:500 9.5px/1 'Geist Mono',ui-monospace,monospace;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--tb-muted);
  margin-left:4px;padding-left:8px;
  border-left:1px solid var(--tb-line);
}

.topbar .tb-btn{
  appearance:none;background:transparent;border:0;cursor:pointer;
  height:30px;border-radius:6px;
  display:inline-flex;align-items:center;gap:5px;
  font:500 13px/1 'Geist',sans-serif;letter-spacing:-.005em;
  color:var(--tb-text);padding:0 9px;
  transition:background .14s ease, color .14s ease;
}
.topbar .tb-btn .tb-arrow{font-size:11px;color:var(--tb-mute2);
  transition:transform .14s ease, color .14s ease;}
.topbar .tb-btn:hover{background:var(--tb-accent-soft);color:var(--tb-ink);}
.topbar .tb-btn:hover .tb-arrow{color:var(--tb-accent);transform:translate(1px,-1px);}
.topbar .tb-btn.tb-btn-icon{padding:0;width:30px;justify-content:center;font-size:14px;}
.topbar .tb-btn.tb-btn-logout{color:var(--tb-muted);}
.topbar .tb-btn.tb-btn-logout:hover{color:#B91C1C;background:rgba(185,28,28,.06);}
body.dark .topbar .tb-btn.tb-btn-logout:hover{color:#F87171;background:rgba(248,113,113,.10);}

/* Mobile narrow — wordmark and label text collapse, icons survive */
@media (max-width:680px){
  .topbar .tb-wordmark,
  .topbar .tb-user-name,
  .topbar .tb-user-role,
  .topbar .tb-cta-label,
  .topbar .tb-btn-text{display:none;}
  .topbar .tb-brand{padding:0 12px;border-right-color:transparent;}
  .topbar .tb-tab{padding:0 10px;}
  .topbar .tb-tab::after{left:10px;right:10px;}
  .topbar .tb-cta{margin:0 6px 0 2px;padding:0 8px;width:28px;justify-content:center;}
  .topbar .tb-vdiv{margin:0 2px;}
  .topbar .tb-right{padding:0 6px 0 2px;gap:0;}
  .topbar .tb-user{padding:0 4px;}
  .topbar .tb-btn{padding:0;width:30px;justify-content:center;font-size:14px;gap:0;}
  .topbar .tb-btn .tb-arrow{display:none;}
}

/* ── Manager Orders — collapsible day panels with 2-up card grid ──
   Each day is a <details>/<summary> pair. Newest day opens by default,
   older days fold to a single-line summary the manager can click open
   to reference. When a card is expanded inside its day it spans both
   grid columns so the body has full breathing room. */
.mgr-day{
  margin-bottom:14px;
  border-radius:10px;
  font-family:'Geist','Geist Sans',system-ui,sans-serif;
}
.mgr-day:first-child{margin-top:0;}
.mgr-day[open]{margin-bottom:22px;}

.mgr-day-summary{
  list-style:none;
  display:flex;align-items:center;gap:10px;
  padding:9px 14px;
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:10px;
  cursor:pointer;
  user-select:none;
  transition:border-color .12s ease, background .12s ease;
}
.mgr-day-summary::-webkit-details-marker{display:none;}
.mgr-day-summary:hover{border-color:#CBD5E1;background:#FAFBFC;}
body.dark .mgr-day-summary{background:#0F1623;border-color:#1F2937;}
body.dark .mgr-day-summary:hover{background:#13192A;border-color:#27313F;}

.mgr-day[open] .mgr-day-summary{
  border-radius:10px 10px 0 0;
  border-bottom-color:transparent;
}

.mgr-day-chev{
  font-style:normal;font-size:14px;line-height:1;
  color:#94A3B8;
  transition:transform .14s ease, color .14s ease;
  width:14px;text-align:center;flex-shrink:0;
}
.mgr-day[open] .mgr-day-chev{transform:rotate(90deg);color:#1E3A8A;}
body.dark .mgr-day[open] .mgr-day-chev{color:#93C5FD;}

.mgr-day-label{
  font-size:13px;font-weight:600;color:#0B0F19;letter-spacing:-.005em;
  flex-shrink:0;
}
body.dark .mgr-day-label{color:#E5E7EB;}

.mgr-day-meta{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
  color:#64748B;
  margin-left:auto;
  flex-shrink:0;
}

.mgr-day-btn{
  flex-shrink:0;
  display:inline-flex;align-items:center;gap:5px;
  height:26px;padding:0 11px;
  border-radius:6px;
  font:600 11px/1 'Geist','Geist Sans',system-ui,sans-serif;
  letter-spacing:.02em;
  border:1px solid transparent;
  pointer-events:none; /* the whole summary is the click target */
}
.mgr-day-btn.is-pending{
  background:#FEF3C7;
  color:#92400E;
  border-color:#FDE68A;
  box-shadow:0 1px 0 rgba(146,64,14,.04);
}
.mgr-day-summary:hover .mgr-day-btn.is-pending{
  background:#FDE68A;border-color:#F59E0B;color:#7C2D12;
}
body.dark .mgr-day-btn.is-pending{
  background:rgba(245,158,11,.14);color:#FBBF24;border-color:rgba(245,158,11,.32);
}
body.dark .mgr-day-summary:hover .mgr-day-btn.is-pending{
  background:rgba(245,158,11,.22);border-color:#F59E0B;color:#FCD34D;
}

.mgr-day-btn.is-clear{
  background:transparent;
  color:#475569;
  border-color:#E4E6EB;
  font-weight:500;
}
.mgr-day-summary:hover .mgr-day-btn.is-clear{
  border-color:#1E3A8A;color:#1E3A8A;background:rgba(30,58,138,.04);
}
body.dark .mgr-day-btn.is-clear{color:#94A3B8;border-color:#27313F;}
body.dark .mgr-day-summary:hover .mgr-day-btn.is-clear{
  border-color:#60A5FA;color:#93C5FD;background:rgba(96,165,250,.06);
}
body.dark .mgr-day-meta{color:#94A3B8;}
.mgr-day-meta .mgr-day-flag{color:#B45309;}
.mgr-day-meta .mgr-day-done{color:#059669;}
body.dark .mgr-day-meta .mgr-day-flag{color:#F59E0B;}
body.dark .mgr-day-meta .mgr-day-done{color:#34D399;}

/* The card grid lives inside the day panel; styled to feel like the
   bottom half of the same surface as the summary above. */
.mgr-day .mgr-card-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  align-items:stretch; /* equal-height rows for visual rhythm */
  padding:14px;
  background:#F8FAFC;
  border:1px solid #E4E6EB;
  border-top:0;
  border-radius:0 0 10px 10px;
}
body.dark .mgr-day .mgr-card-grid{
  background:#0B111C;border-color:#1F2937;
}
.mgr-day .mgr-card-grid > .card{margin-bottom:0;}
.mgr-day .mgr-card-grid > .card.expanded{grid-column:1 / -1;}

@media (max-width:900px){
  .mgr-day .mgr-card-grid{grid-template-columns:1fr;padding:10px;}
  .mgr-day-summary{padding:9px 12px;}
  .mgr-day-meta{font-size:10px;}
}

/* ── MANAGER DASHBOARD INTERIOR — refined utility ──
   Scoped under .mmain-r (added only in renderMgr). The rest of the app
   (tech surface, modals, etc.) keeps the existing Amazon styling for
   now. Same token set as the login pilot: Geist + Geist Mono, navy
   #1E3A8A accent, paper background, hairline borders, soft shadow,
   mono uppercase micro-labels. */

.mmain-r{
  font-family:'Geist','Geist Sans',system-ui,sans-serif;
  background:#DEE4EB;
  background-image:
    radial-gradient(1400px 700px at 50% -300px, rgba(30,58,138,.04), transparent 60%);
  padding:32px 28px 60px;
  max-width:1800px;
  color:#0B0F19;
}
body.dark .mmain-r{
  background:#0A0F1A;
  background-image:
    radial-gradient(1400px 700px at 50% -300px, rgba(96,165,250,.06), transparent 60%);
  color:#E5E7EB;
}

/* ── Stats strip ────────────────────────────────────────────── */
.mmain-r .stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:10px;margin-bottom:18px;
}
.mmain-r .stat{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:10px;
  padding:14px 16px;
  text-align:left;
  box-shadow:0 1px 0 rgba(15,23,42,.02);
  transition:border-color .15s ease, box-shadow .15s ease, transform .06s ease;
}
.mmain-r .stat:hover{
  border-color:#CBD5E1;
  box-shadow:0 1px 0 rgba(15,23,42,.02), 0 8px 20px -14px rgba(15,23,42,.18);
}
body.dark .mmain-r .stat{
  background:#10151F;border-color:#1F2937;
  box-shadow:0 1px 0 rgba(255,255,255,.02);
}
body.dark .mmain-r .stat:hover{border-color:#27313F;}
.mmain-r .stat-n{
  font-family:'Geist',sans-serif;
  font-variant-numeric:tabular-nums;
  font-size:26px;font-weight:600;line-height:1.05;
  color:#0B0F19 !important; /* override per-stat inline colors so the */
                            /* stat-l label below carries the signal */
  letter-spacing:-.01em;
}
body.dark .mmain-r .stat-n{color:#E5E7EB !important;}
.mmain-r .stat-n[style*="color:var(--red)"]    ~ .stat-l::before{background:#DC2626;}
.mmain-r .stat-n[style*="color:var(--blue)"]   ~ .stat-l::before{background:#2563EB;}
.mmain-r .stat-n[style*="color:var(--purple)"] ~ .stat-l::before{background:#7C3AED;}
.mmain-r .stat-n[style*="color:var(--green)"]  ~ .stat-l::before{background:#059669;}
.mmain-r .stat-n[style*="color:var(--txt-muted)"] ~ .stat-l::before{background:#94A3B8;}
.mmain-r .stat-l{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;
  color:#64748B;
  margin-top:6px;
  display:inline-flex;align-items:center;gap:6px;
}
.mmain-r .stat-l::before{
  content:"";width:6px;height:6px;border-radius:50%;
  background:#94A3B8;flex-shrink:0;
}
body.dark .mmain-r .stat-l{color:#94A3B8;}
/* The flagged stat carries an amber number — keep its color visible
   since it doubles as a click target. */
.mmain-r .stat[data-action="showFlagged"] .stat-n{color:#D97706 !important;}
body.dark .mmain-r .stat[data-action="showFlagged"] .stat-n{color:#F59E0B !important;}

/* ── Filter panels (status chips, user, account, date, search) ── */
.mmain-r .chips,
.mmain-r .user-sort-row{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:10px;
  padding:12px 14px;
  margin-bottom:10px;
  box-shadow:none;
  gap:6px;
}
body.dark .mmain-r .chips,
body.dark .mmain-r .user-sort-row{
  background:#10151F;border-color:#1F2937;
}
.mmain-r .user-sort-label{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.20em;
  text-transform:uppercase;
  color:#64748B;
  width:100%;margin-bottom:6px;
}
body.dark .mmain-r .user-sort-label{color:#94A3B8;}

/* Chips — neutral default, navy active. Status chips keep a colored
   dot so the per-status signal stays visible without flooding the
   rail with color. */
.mmain-r .chip,
.mmain-r .user-chip{
  font-family:'Geist',sans-serif !important;
  font-size:12px !important;font-weight:500 !important;
  letter-spacing:0 !important;text-transform:none !important;
  padding:5px 11px !important;border-radius:6px !important;
  background:#FFFFFF !important;
  color:#475569 !important;
  border:1px solid #E4E6EB !important;
  transition:color .12s ease, border-color .12s ease, background .12s ease;
  cursor:pointer;
}
body.dark .mmain-r .chip,
body.dark .mmain-r .user-chip{
  background:#10151F !important;color:#94A3B8 !important;border-color:#27313F !important;
}
.mmain-r .chip:hover,
.mmain-r .user-chip:hover{
  color:#0B0F19 !important;
  border-color:#1E3A8A !important;
  background:rgba(30,58,138,.04) !important;
}
body.dark .mmain-r .chip:hover,
body.dark .mmain-r .user-chip:hover{
  color:#E5E7EB !important;
  border-color:#60A5FA !important;
  background:rgba(96,165,250,.06) !important;
}
.mmain-r .chip.on,
.mmain-r .user-chip.on{
  background:#1E3A8A !important;
  color:#FFFFFF !important;
  border-color:#1E3A8A !important;
}
body.dark .mmain-r .chip.on,
body.dark .mmain-r .user-chip.on{
  background:#3B5BDB !important;border-color:#3B5BDB !important;
}

/* Status chips: small colored dot before the label, mapped by inline
   bg color set in buildOrdersTab. The selectors are fragile but
   stable because the inline style strings come from the cc / co
   maps which haven't changed. */
.mmain-r .chips .chip[style*="--red"]::before,
.mmain-r .chips .chip[style*="--blue"]::before,
.mmain-r .chips .chip[style*="--purple"]::before,
.mmain-r .chips .chip[style*="--green"]::before,
.mmain-r .chips .chip[style*="--txt-muted"]::before,
.mmain-r .chips .chip[style*="#fdf4f4"]::before,
.mmain-r .chips .chip[style*="#fffbeb"]::before,
.mmain-r .chips .chip[style*="#8B4040"]::before,
.mmain-r .chips .chip[style*="#d97706"]::before{
  content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  margin-right:7px;vertical-align:1px;background:#94A3B8;
}
.mmain-r .chips .chip[style*="--red"]::before,
.mmain-r .chips .chip[style*="background:var(--red)"]::before{background:#DC2626;}
.mmain-r .chips .chip[style*="--blue"]::before,
.mmain-r .chips .chip[style*="background:var(--blue)"]::before{background:#2563EB;}
.mmain-r .chips .chip[style*="--purple"]::before,
.mmain-r .chips .chip[style*="background:var(--purple)"]::before{background:#7C3AED;}
.mmain-r .chips .chip[style*="--green"]::before,
.mmain-r .chips .chip[style*="background:var(--green)"]::before{background:#059669;}
.mmain-r .chips .chip[style*="--txt-muted"]::before{background:#94A3B8;}
.mmain-r .chips .chip[style*="#fdf4f4"]::before,
.mmain-r .chips .chip[style*="#8B4040"]::before{background:#8B4040;}
.mmain-r .chips .chip[style*="#fffbeb"]::before,
.mmain-r .chips .chip[style*="#d97706"]::before{background:#D97706;}

/* Search box ── refined */
.mmain-r .user-search-wrap{margin-bottom:10px;}
.mmain-r .usearch-icon{
  left:12px;font-size:13px;color:#94A3B8;
}
.mmain-r .user-search-input{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:10px;
  padding:11px 14px 11px 36px;
  font-family:'Geist',sans-serif;
  font-size:14px;
  color:#0B0F19;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.mmain-r .user-search-input:focus{
  outline:none;
  border-color:#1E3A8A;
  box-shadow:0 0 0 4px rgba(30,58,138,.12);
}
body.dark .mmain-r .user-search-input{
  background:#10151F;border-color:#1F2937;color:#E5E7EB;
}
body.dark .mmain-r .user-search-input:focus{
  border-color:#60A5FA;box-shadow:0 0 0 4px rgba(96,165,250,.16);
}
.mmain-r .user-search-input::placeholder{color:#94A3B8;}

/* Date range row ── lift the inline-styled label, refine the inputs */
.mmain-r .date-filter-row{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:10px;
  padding:10px 14px !important;
  margin-bottom:14px !important;
}
body.dark .mmain-r .date-filter-row{background:#10151F;border-color:#1F2937;}
.mmain-r .date-filter-row > span:first-child{
  font-family:'Geist Mono',ui-monospace,monospace !important;
  font-size:10px !important;font-weight:500 !important;
  letter-spacing:.20em !important;
  text-transform:uppercase !important;
  color:#64748B !important;
}
body.dark .mmain-r .date-filter-row > span:first-child{color:#94A3B8 !important;}
.mmain-r .date-input{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:8px;
  padding:6px 10px;
  font-family:'Geist',sans-serif;
  font-size:13px;
  color:#0B0F19;
}
.mmain-r .date-input:focus{
  outline:none;border-color:#1E3A8A;box-shadow:0 0 0 4px rgba(30,58,138,.12);
}
body.dark .mmain-r .date-input{
  background:#10151F;border-color:#1F2937;color:#E5E7EB;
}
body.dark .mmain-r .date-input:focus{
  border-color:#60A5FA;box-shadow:0 0 0 4px rgba(96,165,250,.16);
}
.mmain-r .date-filter-row .btn-ghost{
  font-family:'Geist',sans-serif;
  font-size:12px;font-weight:500;
  color:#475569;border:1px solid #E4E6EB;background:#FFFFFF;
  border-radius:6px;padding:5px 10px;
}
.mmain-r .date-filter-row .btn-ghost:hover{
  color:#0B0F19;border-color:#1E3A8A;background:rgba(30,58,138,.04);
}
body.dark .mmain-r .date-filter-row .btn-ghost{
  color:#94A3B8;background:#10151F;border-color:#1F2937;
}
body.dark .mmain-r .date-filter-row .btn-ghost:hover{
  color:#E5E7EB;border-color:#60A5FA;background:rgba(96,165,250,.06);
}

/* ── Order cards ───────────────────────────────────────────── */
.mmain-r #mgr-orders-list{margin-top:6px;}
.mmain-r .card{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:12px;
  margin-bottom:8px;
  box-shadow:0 1px 0 rgba(15,23,42,.02);
  transition:border-color .15s ease, box-shadow .15s ease;
}
.mmain-r .card:hover{
  border-color:#CBD5E1;
  box-shadow:0 1px 0 rgba(15,23,42,.02), 0 10px 24px -16px rgba(15,23,42,.18);
}
.mmain-r .card.flagged{
  border-color:#F59E0B;
  border-left:3px solid #F59E0B;
}
body.dark .mmain-r .card{
  background:#10151F;border-color:#1F2937;
}
body.dark .mmain-r .card:hover{border-color:#27313F;}

.mmain-r .card-hdr{
  padding:14px 16px;
  font-family:'Geist',sans-serif;
}
.mmain-r .card-hdr:hover{background:transparent;}
.mmain-r .card-hdr.open{border-bottom-color:#EEF0F3;}
body.dark .mmain-r .card-hdr.open{border-bottom-color:#1F2937;}

.mmain-r .ometa-user{
  font-family:'Geist',sans-serif !important;
  font-size:13px;font-weight:600;
  color:#0B0F19 !important;
  letter-spacing:0 !important;
}
body.dark .mmain-r .ometa-user{color:#E5E7EB !important;}

.mmain-r .acct-pill{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;
  background:rgba(30,58,138,.08);
  color:#1E3A8A;
  border:1px solid rgba(30,58,138,.18);
  padding:3px 8px;border-radius:5px;
}
body.dark .mmain-r .acct-pill{
  background:rgba(96,165,250,.10);
  color:#93C5FD;
  border-color:rgba(96,165,250,.22);
}

.mmain-r .ometa{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:11px;color:#64748B;
  letter-spacing:.02em;
}
body.dark .mmain-r .ometa{color:#94A3B8;}

.mmain-r .card-hdr [style*="font-family:var(--fm)"]{
  font-family:'Geist Mono',ui-monospace,monospace !important;
  font-size:10px !important;
  letter-spacing:.08em !important;
  color:#94A3B8 !important;
}

/* Status badges inside the card header ── muted rounded pills */
.mmain-r .badge{
  font-family:'Geist',sans-serif !important;
  font-size:11px !important;font-weight:500 !important;
  letter-spacing:0 !important;text-transform:none !important;
  padding:3px 9px !important;
  border-radius:999px !important;
}
.mmain-r .b-pending  {background:#FEF2F2 !important;color:#991B1B !important;border:1px solid #FECACA !important;}
.mmain-r .b-ordered  {background:#EFF6FF !important;color:#1E40AF !important;border:1px solid #BFDBFE !important;}
.mmain-r .b-shipped  {background:#F5F3FF !important;color:#5B21B6 !important;border:1px solid #DDD6FE !important;}
.mmain-r .b-delivered{background:#ECFDF5 !important;color:#065F46 !important;border:1px solid #A7F3D0 !important;}
.mmain-r .b-fulfilled{background:#F1F5F9 !important;color:#475569 !important;border:1px solid #E2E8F0 !important;text-decoration:line-through;}
.mmain-r .b-cancelled{background:#FAF5F5 !important;color:#7C2D2D !important;border:1px solid #E9D2D2 !important;text-decoration:line-through;}
.mmain-r .b-flagged  {background:#FFFBEB !important;color:#92400E !important;border:1px solid #FDE68A !important;}
body.dark .mmain-r .b-pending  {background:rgba(220,38,38,.10) !important;color:#FCA5A5 !important;border-color:rgba(220,38,38,.30) !important;}
body.dark .mmain-r .b-ordered  {background:rgba(37,99,235,.10) !important;color:#93C5FD !important;border-color:rgba(37,99,235,.30) !important;}
body.dark .mmain-r .b-shipped  {background:rgba(124,58,237,.10) !important;color:#C4B5FD !important;border-color:rgba(124,58,237,.30) !important;}
body.dark .mmain-r .b-delivered{background:rgba(5,150,105,.10) !important;color:#6EE7B7 !important;border-color:rgba(5,150,105,.30) !important;}
body.dark .mmain-r .b-fulfilled{background:rgba(148,163,184,.10) !important;color:#94A3B8 !important;border-color:rgba(148,163,184,.25) !important;}
body.dark .mmain-r .b-cancelled{background:rgba(139,64,64,.18) !important;color:#FCA5A5 !important;border-color:rgba(139,64,64,.40) !important;}
body.dark .mmain-r .b-flagged  {background:rgba(217,119,6,.12) !important;color:#FCD34D !important;border-color:rgba(217,119,6,.35) !important;}

/* Bulk select checkbox accent */
.mmain-r .bulk-chk{accent-color:#1E3A8A;}
body.dark .mmain-r .bulk-chk{accent-color:#3B5BDB;}

/* Chevron — quieter */
.mmain-r .chevron{color:#94A3B8;}
body.dark .mmain-r .chevron{color:#475569;}

/* Age warning — refined amber */
.mmain-r .age-warn{
  background:#FFFBEB;
  border-top:1px solid #FDE68A;
  color:#92400E;
  font-family:'Geist',sans-serif;
  font-size:12px;font-weight:500;
}
body.dark .mmain-r .age-warn{
  background:rgba(217,119,6,.08);border-top-color:rgba(217,119,6,.30);color:#FCD34D;
}

/* Locked alert ── refined */
.mmain-r .locked-alert{
  background:#FEF2F2;
  border:1px solid #FECACA;
  border-left:3px solid #DC2626;
  border-radius:10px;
  padding:12px 16px;
  font-family:'Geist',sans-serif;
}
.mmain-r .locked-alert-icon{color:#DC2626;}
.mmain-r .locked-alert-msg{color:#7F1D1D;font-size:13px;}
.mmain-r .locked-alert-link{color:#991B1B;font-weight:600;}
body.dark .mmain-r .locked-alert{
  background:rgba(220,38,38,.08);border-color:rgba(220,38,38,.30);
}
body.dark .mmain-r .locked-alert-msg{color:#FCA5A5;}
body.dark .mmain-r .locked-alert-link{color:#FCA5A5;}

/* Pagination ── refined ghost / navy active.
   :not(.bulk-bar) prevents this rule from accidentally matching the
   fixed-position bulk-bar when the orders list has no pagination
   (pagination div would be empty and the bulk-bar becomes the immediate
   next sibling of #mgr-orders-list). */
.mmain-r #mgr-orders-list + div:not(.bulk-bar) .btn{
  font-family:'Geist',sans-serif;
  font-weight:500;font-size:12px;
  border-radius:6px;
}
.mmain-r #mgr-orders-list + div:not(.bulk-bar) .btn-ghost{
  background:#FFFFFF;color:#475569;border:1px solid #E4E6EB;
}
.mmain-r #mgr-orders-list + div:not(.bulk-bar) .btn-ghost:hover{
  color:#0B0F19;border-color:#1E3A8A;background:rgba(30,58,138,.04);
}
.mmain-r #mgr-orders-list + div:not(.bulk-bar) .btn-pri{
  background:#1E3A8A;color:#FFFFFF;border-color:#1E3A8A;
}
.mmain-r #mgr-orders-list + div:not(.bulk-bar) .btn-pri:hover{background:#1E40AF;}
body.dark .mmain-r #mgr-orders-list + div:not(.bulk-bar) .btn-ghost{
  background:#10151F;color:#94A3B8;border-color:#1F2937;
}
body.dark .mmain-r #mgr-orders-list + div:not(.bulk-bar) .btn-ghost:hover{
  color:#E5E7EB;border-color:#60A5FA;background:rgba(96,165,250,.06);
}

/* ── MODALS — refined utility ──
   Restyles the shared modal infrastructure used app-wide (manager and
   tech surfaces both). The original .modal block earlier in this file
   stays as a fallback; these rules win because they come later and
   are more specific where it matters.
   Affects: .overlay, .modal-overlay, .modal, .modal-header / .mhdr,
   .modal-body / .mbody, .modal-footer / .mfoot, plus .force-overlay
   and .force-card (force password change). */

.overlay,
.modal-overlay{
  background:rgba(15,23,42,.55);
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
  padding:32px 20px;
  align-items:center;
}
body.dark .overlay,
body.dark .modal-overlay{
  background:rgba(2,6,15,.70);
}

.modal{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-top:1px solid #E4E6EB; /* drop the legacy 3px amber stripe */
  border-radius:14px;
  box-shadow:0 1px 0 rgba(15,23,42,.04),
             0 24px 48px -16px rgba(15,23,42,.30);
  font-family:'Geist','Geist Sans',system-ui,sans-serif;
  color:#0B0F19;
}
body.dark .modal{
  background:#10151F;
  border-color:#1F2937;
  border-top-color:#1F2937;
  box-shadow:0 1px 0 rgba(255,255,255,.02),
             0 24px 48px -16px rgba(0,0,0,.65);
  color:#E5E7EB;
}

/* Header — works for both .modal-header (single-line) and .mhdr (with h2+close) */
.modal .modal-header,
.modal .mhdr{
  font-family:'Geist',sans-serif;
  font-size:16px;font-weight:600;letter-spacing:0;
  color:#0B0F19;
  padding:18px 22px 14px;
  border-bottom:1px solid #EEF0F3;
}
body.dark .modal .modal-header,
body.dark .modal .mhdr{
  color:#E5E7EB;border-bottom-color:#1F2937;
}
.modal .mhdr h2{
  font-family:'Geist',sans-serif;
  font-size:16px;font-weight:600;letter-spacing:0;
  text-transform:none;
  color:inherit;
}
.modal .mhdr .btn-ghost{
  /* close (×) button — quiet, square, navy on hover */
  background:transparent;
  color:#94A3B8;
  border:1px solid transparent;
  font-size:14px;line-height:1;
  padding:6px 9px;border-radius:6px;
}
.modal .mhdr .btn-ghost:hover{
  color:#0B0F19;background:#F1F5F9;border-color:#E4E6EB;
}
body.dark .modal .mhdr .btn-ghost{color:#64748B;}
body.dark .modal .mhdr .btn-ghost:hover{
  color:#E5E7EB;background:#1A2332;border-color:#27313F;
}

.modal .modal-body,
.modal .mbody{
  padding:18px 22px;
  font-family:'Geist',sans-serif;
  color:#0B0F19;
  line-height:1.55;
}
body.dark .modal .modal-body,
body.dark .modal .mbody{color:#E5E7EB;}

.modal .modal-footer,
.modal .mfoot{
  padding:14px 22px 18px;
  border-top:1px solid #EEF0F3;
  background:transparent;
  display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;
}
body.dark .modal .modal-footer,
body.dark .modal .mfoot{border-top-color:#1F2937;}

/* ── Inputs / selects / textareas inside modals ── */
.modal input[type=text],
.modal input[type=password],
.modal input[type=number],
.modal input[type=email],
.modal input[type=tel],
.modal input[type=url],
.modal input[type=search],
.modal input[type=date],
.modal input[type=datetime-local],
.modal input[type=time],
.modal textarea,
.modal select{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:8px;
  font-family:'Geist',sans-serif;
  font-size:14px;font-weight:400;letter-spacing:0;
  text-transform:none;
  padding:9px 12px;
  color:#0B0F19;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.modal input:focus,
.modal textarea:focus,
.modal select:focus{
  outline:none;
  border-color:#1E3A8A;
  box-shadow:0 0 0 3px rgba(30,58,138,.12);
}
body.dark .modal input[type=text],
body.dark .modal input[type=password],
body.dark .modal input[type=number],
body.dark .modal input[type=email],
body.dark .modal input[type=tel],
body.dark .modal input[type=url],
body.dark .modal input[type=search],
body.dark .modal input[type=date],
body.dark .modal input[type=datetime-local],
body.dark .modal input[type=time],
body.dark .modal textarea,
body.dark .modal select{
  background:#0F1623;border-color:#27313F;color:#E5E7EB;
}
body.dark .modal input:focus,
body.dark .modal textarea:focus,
body.dark .modal select:focus{
  border-color:#60A5FA;
  box-shadow:0 0 0 3px rgba(96,165,250,.18);
}
.modal input::placeholder,
.modal textarea::placeholder{color:#94A3B8;}

/* PIN / uname inputs — keep their distinctive monospace tracking but in
   the refined family (Geist Mono) */
.modal input.pin,
.modal input.uname{
  font-family:'Geist Mono',ui-monospace,monospace;
}

/* Form labels in modals ── small mono uppercase, matches login pilot */
.modal .field label{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;
  color:#6B7280;
  margin-bottom:6px;
}
body.dark .modal .field label{color:#94A3B8;}

/* ── Buttons inside modals ── */
.modal .btn{
  font-family:'Geist',sans-serif;
  font-size:13px;font-weight:500;letter-spacing:0;
  text-transform:none;
  border-radius:8px;
  padding:9px 16px;
  transition:background .12s ease, color .12s ease, border-color .12s ease, transform .06s ease;
}
.modal .btn-sm{font-size:12px;padding:7px 13px;}
.modal .btn-xs{font-size:11px;padding:5px 10px;}

.modal .btn-pri{
  background:#1E3A8A;
  color:#FFFFFF;
  border:1px solid #1E3A8A;
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset, 0 1px 2px rgba(15,23,42,.10);
}
.modal .btn-pri:hover{background:#1E40AF;}
.modal .btn-pri:active{transform:translateY(1px);}
.modal .btn-pri:disabled{
  background:#94A3B8;border-color:#94A3B8;color:#FFFFFF;cursor:not-allowed;
}

.modal .btn-sec{
  background:#FFFFFF;
  color:#0B0F19;
  border:1px solid #E4E6EB;
}
.modal .btn-sec:hover{
  border-color:#1E3A8A;background:rgba(30,58,138,.04);
}

.modal .btn-ghost{
  background:transparent;
  color:#475569;
  border:1px solid #E4E6EB;
}
.modal .btn-ghost:hover{
  color:#0B0F19;
  border-color:#1E3A8A;
  background:rgba(30,58,138,.04);
}

.modal .btn-success{
  background:#059669;color:#FFFFFF;border:1px solid #059669;
}
.modal .btn-success:hover{background:#047857;}

.modal .btn-danger{
  background:transparent;color:#991B1B;border:1px solid #FECACA;
}
.modal .btn-danger:hover{
  background:#FEF2F2;color:#7F1D1D;border-color:#FCA5A5;
}

body.dark .modal .btn-sec{
  background:#10151F;color:#E5E7EB;border-color:#27313F;
}
body.dark .modal .btn-sec:hover{
  border-color:#60A5FA;background:rgba(96,165,250,.06);
}
body.dark .modal .btn-ghost{
  background:transparent;color:#94A3B8;border-color:#27313F;
}
body.dark .modal .btn-ghost:hover{
  color:#E5E7EB;border-color:#60A5FA;background:rgba(96,165,250,.06);
}
body.dark .modal .btn-pri{background:#3B5BDB;border-color:#3B5BDB;}
body.dark .modal .btn-pri:hover{background:#4263EB;}
body.dark .modal .btn-success{background:#10B981;border-color:#10B981;}
body.dark .modal .btn-success:hover{background:#059669;}
body.dark .modal .btn-danger{
  color:#FCA5A5;border-color:rgba(220,38,38,.30);
}
body.dark .modal .btn-danger:hover{
  background:rgba(220,38,38,.10);color:#FECACA;border-color:rgba(220,38,38,.50);
}

/* ── Refined alerts (used heavily inside modal bodies) ── */
.modal .alert{
  font-family:'Geist',sans-serif;
  font-size:13px;line-height:1.5;
  border-radius:10px;
  padding:10px 13px;
  margin-bottom:14px;
}
.modal .alert-err {background:#FEF2F2;border:1px solid #FECACA;color:#991B1B;}
.modal .alert-ok  {background:#ECFDF5;border:1px solid #A7F3D0;color:#065F46;}
.modal .alert-info{background:#EFF6FF;border:1px solid #BFDBFE;color:#1E40AF;}
.modal .alert-warn{background:#FFFBEB;border:1px solid #FDE68A;color:#92400E;}
body.dark .modal .alert-err {background:rgba(220,38,38,.10);border-color:rgba(220,38,38,.30);color:#FCA5A5;}
body.dark .modal .alert-ok  {background:rgba(5,150,105,.10);border-color:rgba(5,150,105,.30);color:#6EE7B7;}
body.dark .modal .alert-info{background:rgba(37,99,235,.10);border-color:rgba(37,99,235,.30);color:#93C5FD;}
body.dark .modal .alert-warn{background:rgba(217,119,6,.12);border-color:rgba(217,119,6,.35);color:#FCD34D;}

/* ── Force password change overlay / card — match the modal language ── */
.force-overlay{
  background:rgba(15,23,42,.65);
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
}
body.dark .force-overlay{background:rgba(2,6,15,.78);}
.force-card{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-top:1px solid #E4E6EB; /* drop legacy 3px red bar */
  border-radius:14px;
  box-shadow:0 1px 0 rgba(15,23,42,.04),
             0 24px 48px -16px rgba(15,23,42,.30);
  font-family:'Geist',sans-serif;
  color:#0B0F19;
  padding:32px 30px 26px;
}
.force-card h2{
  font-family:'Geist',sans-serif;
  font-size:18px;font-weight:600;letter-spacing:0;
  color:#991B1B;margin-bottom:6px;
}
.force-card .sub{
  font-size:13px;color:#475569;line-height:1.6;margin-bottom:20px;
}
body.dark .force-card{
  background:#10151F;border-color:#1F2937;color:#E5E7EB;
}
body.dark .force-card h2{color:#FCA5A5;}
body.dark .force-card .sub{color:#94A3B8;}

/* ── MANAGER FORMS — refined utility (forms outside modals) ──
   Scoped under .mmain-r so the tech surface stays in its current
   styling until that pass. Covers the inline order-controls panel
   that appears when an order is expanded, the items table, item
   rows in edit mode, the supplier-invoice well, the chat / internal
   notes panels, and the form-box / analytics KPI shells used by
   the settings and analytics tabs. */

/* Form labels everywhere on the manager surface */
.mmain-r .field label{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;
  color:#6B7280;
  margin-bottom:6px;
}
body.dark .mmain-r .field label{color:#94A3B8;}
.mmain-r .field{margin-bottom:12px;}

/* Generic inputs inside the manager surface (excludes the .mt-search
   in the toolbar and the .mgr-table inputs which already have their
   own treatment, and excludes the orders-list filter chips) */
.mmain-r .card-body input[type=text],
.mmain-r .card-body input[type=password],
.mmain-r .card-body input[type=number],
.mmain-r .card-body input[type=email],
.mmain-r .card-body input[type=tel],
.mmain-r .card-body input[type=url],
.mmain-r .card-body input[type=date],
.mmain-r .card-body input[type=datetime-local],
.mmain-r .card-body input[type=time],
.mmain-r .card-body textarea,
.mmain-r .card-body select,
.mmain-r .form-box input[type=text],
.mmain-r .form-box input[type=password],
.mmain-r .form-box input[type=number],
.mmain-r .form-box input[type=email],
.mmain-r .form-box input[type=tel],
.mmain-r .form-box input[type=url],
.mmain-r .form-box input[type=date],
.mmain-r .form-box textarea,
.mmain-r .form-box select{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:8px;
  font-family:'Geist',sans-serif;
  font-size:14px;font-weight:400;letter-spacing:0;
  text-transform:none;
  padding:9px 12px;
  color:#0B0F19;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.mmain-r .card-body input:focus,
.mmain-r .card-body textarea:focus,
.mmain-r .card-body select:focus,
.mmain-r .form-box input:focus,
.mmain-r .form-box textarea:focus,
.mmain-r .form-box select:focus{
  outline:none;
  border-color:#1E3A8A;
  box-shadow:0 0 0 3px rgba(30,58,138,.12);
}
body.dark .mmain-r .card-body input,
body.dark .mmain-r .card-body textarea,
body.dark .mmain-r .card-body select,
body.dark .mmain-r .form-box input,
body.dark .mmain-r .form-box textarea,
body.dark .mmain-r .form-box select{
  background:#0F1623;border-color:#27313F;color:#E5E7EB;
}
body.dark .mmain-r .card-body input:focus,
body.dark .mmain-r .card-body textarea:focus,
body.dark .mmain-r .card-body select:focus,
body.dark .mmain-r .form-box input:focus,
body.dark .mmain-r .form-box textarea:focus,
body.dark .mmain-r .form-box select:focus{
  border-color:#60A5FA;box-shadow:0 0 0 3px rgba(96,165,250,.18);
}

/* Order Controls panel ── the well inside the expanded order body */
.mmain-r .mgr-ctrl{
  background:transparent;
  border:none;
  border-top:1px solid #EEF0F3;
  border-radius:0;
  padding:18px 0 4px;
  margin-top:14px;
}
body.dark .mmain-r .mgr-ctrl{border-top-color:#1F2937;}
.mmain-r .mgr-ctrl-title{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.22em;
  text-transform:uppercase;
  color:#64748B;
  margin-bottom:14px;
}
body.dark .mmain-r .mgr-ctrl-title{color:#94A3B8;}
.mmain-r .ctrl-grid{
  grid-template-columns:1fr 1fr;
  gap:14px;
}
@media (max-width:560px){
  .mmain-r .ctrl-grid{grid-template-columns:1fr;}
}
.mmain-r .ckb-lbl{
  font-family:'Geist',sans-serif;
  font-size:13px;color:#475569;
}
body.dark .mmain-r .ckb-lbl{color:#94A3B8;}
.mmain-r .ckb-lbl input[type=checkbox]{accent-color:#1E3A8A;}
body.dark .mmain-r .ckb-lbl input[type=checkbox]{accent-color:#3B5BDB;}

/* Supplier Invoice well — small inline card sitting above Order Controls */
.mmain-r .mgr-supplier-block{
  display:flex;gap:8px;align-items:center;flex-wrap:wrap;
  margin:10px 0 0;
  padding:10px 14px;
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:10px;
  font-family:'Geist',sans-serif;
}
body.dark .mmain-r .mgr-supplier-block{
  background:#0F1623;border-color:#1F2937;
}
.mmain-r .mgr-supplier-label{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;
  color:#64748B;
  margin-right:4px;
}
body.dark .mmain-r .mgr-supplier-label{color:#94A3B8;}
.mmain-r .mgr-supplier-block a{
  color:#1E3A8A;font-weight:500;text-decoration:none;
}
.mmain-r .mgr-supplier-block a:hover{text-decoration:underline;}
body.dark .mmain-r .mgr-supplier-block a{color:#93C5FD;}

/* ── Items table inside the order body ── */
.mmain-r .itbl{
  width:100%;border-collapse:collapse;
  font-family:'Geist',sans-serif;
  font-size:13px;
}
.mmain-r .itbl th{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;
  color:#64748B;
  padding:8px 10px;
  text-align:left;
  border-bottom:1px solid #E4E6EB;
}
body.dark .mmain-r .itbl th{color:#94A3B8;border-bottom-color:#1F2937;}
.mmain-r .itbl td{
  padding:10px;
  border-bottom:1px solid #EEF0F3;
  vertical-align:top;
  color:#0B0F19;
}
body.dark .mmain-r .itbl td{border-bottom-color:#1F2937;color:#E5E7EB;}
.mmain-r .itbl tr:last-child td{border-bottom:none;}
.mmain-r .part-name{
  font-family:'Geist',sans-serif;
  color:#0B0F19;font-size:13px;font-weight:500;
}
body.dark .mmain-r .part-name{color:#E5E7EB;}
.mmain-r .photo-thumb{
  width:44px;height:44px;object-fit:cover;
  border-radius:8px;
  border:1px solid #E4E6EB;
}
body.dark .mmain-r .photo-thumb{border-color:#1F2937;background:#0F1623;}

/* ── Items being edited (item-row, item-grid, file-zone, add-item-btn) ── */
.mmain-r .item-row{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:10px;
  padding:14px;
  margin-bottom:10px;
}
body.dark .mmain-r .item-row{background:#0F1623;border-color:#1F2937;}
.mmain-r .item-label{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;
  color:#64748B;
}
body.dark .mmain-r .item-label{color:#94A3B8;}
.mmain-r .file-zone,
.mmain-r .add-item-btn{
  background:transparent;
  border:1px dashed #CBD5E1;
  border-radius:10px;
  font-family:'Geist',sans-serif;
  color:#64748B;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.mmain-r .file-zone:hover,
.mmain-r .add-item-btn:hover{
  border-color:#1E3A8A;
  color:#1E3A8A;
  background:rgba(30,58,138,.04);
}
body.dark .mmain-r .file-zone,
body.dark .mmain-r .add-item-btn{
  border-color:#27313F;color:#94A3B8;
}
body.dark .mmain-r .file-zone:hover,
body.dark .mmain-r .add-item-btn:hover{
  border-color:#60A5FA;color:#93C5FD;background:rgba(96,165,250,.06);
}

/* ── Chat / message threads ── */
.mmain-r .chat-msgs{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:10px;
  padding:10px;
  font-family:'Geist',sans-serif;
}
body.dark .mmain-r .chat-msgs{background:#0F1623;border-color:#1F2937;}
.mmain-r .chat-empty{color:#94A3B8;font-size:12px;}
.mmain-r .chat-bubble{
  font-family:'Geist',sans-serif;
  font-size:13px;line-height:1.45;
  border-radius:12px;
}
.mmain-r .chat-msg.mine .chat-bubble{
  background:#1E3A8A;color:#FFFFFF;
  border-bottom-right-radius:4px;
}
.mmain-r .chat-msg.theirs .chat-bubble{
  background:#F1F5F9;
  border:1px solid #E4E6EB;
  color:#0B0F19;
  border-bottom-left-radius:4px;
}
body.dark .mmain-r .chat-msg.mine .chat-bubble{
  background:#3B5BDB;color:#FFFFFF;
}
body.dark .mmain-r .chat-msg.theirs .chat-bubble{
  background:#0F1623;border-color:#1F2937;color:#E5E7EB;
}
.mmain-r .chat-meta{font-size:10px;}

.mmain-r .chat-input{margin-top:8px;}
.mmain-r .chat-input textarea{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:8px;
  font-family:'Geist',sans-serif;
  font-size:13px;
  padding:8px 12px;
  color:#0B0F19;
}
.mmain-r .chat-input textarea:focus{
  outline:none;
  border-color:#1E3A8A;
  box-shadow:0 0 0 3px rgba(30,58,138,.12);
}
body.dark .mmain-r .chat-input textarea{
  background:#0F1623;border-color:#1F2937;color:#E5E7EB;
}
body.dark .mmain-r .chat-input textarea:focus{
  border-color:#60A5FA;box-shadow:0 0 0 3px rgba(96,165,250,.18);
}

/* ── Internal notes panel ── */
.mmain-r .int-notes{
  background:#F8FAFC;
  border:1px solid #E4E6EB;
  border-radius:10px;
  padding:12px 14px;
  font-family:'Geist',sans-serif;
}
body.dark .mmain-r .int-notes{background:#0F1623;border-color:#1F2937;}
.mmain-r .int-notes-hdr{
  font-family:'Geist',sans-serif;
  font-size:13px;font-weight:500;
  color:#0B0F19;
  letter-spacing:0;text-transform:none;
  display:flex;align-items:center;gap:8px;
}
body.dark .mmain-r .int-notes-hdr{color:#E5E7EB;}
.mmain-r .int-notes-hdr .count-pip{
  background:#1E3A8A;color:#FFFFFF;
  font-family:'Geist',sans-serif;font-size:11px;font-weight:500;
  border-radius:999px;padding:1px 8px;
}
body.dark .mmain-r .int-notes-hdr .count-pip{background:#3B5BDB;}
.mmain-r .int-notes-hdr .chevron{
  margin-left:auto;color:#94A3B8;
}
body.dark .mmain-r .int-notes-hdr .chevron{color:#475569;}

/* ── Buttons inside the manager surface (outside modals / toolbar) ── */
.mmain-r .card-body .btn,
.mmain-r .form-box .btn{
  font-family:'Geist',sans-serif;
  font-size:13px;font-weight:500;letter-spacing:0;
  text-transform:none;
  border-radius:8px;
  padding:8px 14px;
  transition:background .12s ease, color .12s ease, border-color .12s ease, transform .06s ease;
}
.mmain-r .card-body .btn-sm,
.mmain-r .form-box .btn-sm{font-size:12px;padding:6px 12px;}
.mmain-r .card-body .btn-xs,
.mmain-r .form-box .btn-xs{font-size:11px;padding:4px 10px;}
.mmain-r .card-body .btn-pri,
.mmain-r .form-box .btn-pri{
  background:#1E3A8A;color:#FFFFFF;border:1px solid #1E3A8A;
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset, 0 1px 2px rgba(15,23,42,.10);
}
.mmain-r .card-body .btn-pri:hover,
.mmain-r .form-box .btn-pri:hover{background:#1E40AF;}
.mmain-r .card-body .btn-sec,
.mmain-r .form-box .btn-sec{
  background:#FFFFFF;color:#0B0F19;border:1px solid #E4E6EB;
}
.mmain-r .card-body .btn-sec:hover,
.mmain-r .form-box .btn-sec:hover{
  border-color:#1E3A8A;background:rgba(30,58,138,.04);
}
.mmain-r .card-body .btn-ghost,
.mmain-r .form-box .btn-ghost{
  background:transparent;color:#475569;border:1px solid #E4E6EB;
}
.mmain-r .card-body .btn-ghost:hover,
.mmain-r .form-box .btn-ghost:hover{
  color:#0B0F19;border-color:#1E3A8A;background:rgba(30,58,138,.04);
}
.mmain-r .card-body .btn-success,
.mmain-r .form-box .btn-success{
  background:#059669;color:#FFFFFF;border:1px solid #059669;
}
.mmain-r .card-body .btn-success:hover,
.mmain-r .form-box .btn-success:hover{background:#047857;}
.mmain-r .card-body .btn-danger,
.mmain-r .form-box .btn-danger{
  background:transparent;color:#991B1B;border:1px solid #FECACA;
}
.mmain-r .card-body .btn-danger:hover,
.mmain-r .form-box .btn-danger:hover{
  background:#FEF2F2;color:#7F1D1D;border-color:#FCA5A5;
}
body.dark .mmain-r .card-body .btn-pri,
body.dark .mmain-r .form-box .btn-pri{background:#3B5BDB;border-color:#3B5BDB;}
body.dark .mmain-r .card-body .btn-pri:hover,
body.dark .mmain-r .form-box .btn-pri:hover{background:#4263EB;}
body.dark .mmain-r .card-body .btn-sec,
body.dark .mmain-r .form-box .btn-sec{
  background:#10151F;color:#E5E7EB;border-color:#27313F;
}
body.dark .mmain-r .card-body .btn-sec:hover,
body.dark .mmain-r .form-box .btn-sec:hover{
  border-color:#60A5FA;background:rgba(96,165,250,.06);
}
body.dark .mmain-r .card-body .btn-ghost,
body.dark .mmain-r .form-box .btn-ghost{
  background:transparent;color:#94A3B8;border-color:#27313F;
}
body.dark .mmain-r .card-body .btn-ghost:hover,
body.dark .mmain-r .form-box .btn-ghost:hover{
  color:#E5E7EB;border-color:#60A5FA;background:rgba(96,165,250,.06);
}
body.dark .mmain-r .card-body .btn-success,
body.dark .mmain-r .form-box .btn-success{background:#10B981;border-color:#10B981;}
body.dark .mmain-r .card-body .btn-success:hover,
body.dark .mmain-r .form-box .btn-success:hover{background:#059669;}
body.dark .mmain-r .card-body .btn-danger,
body.dark .mmain-r .form-box .btn-danger{
  color:#FCA5A5;border-color:rgba(220,38,38,.30);
}
body.dark .mmain-r .card-body .btn-danger:hover,
body.dark .mmain-r .form-box .btn-danger:hover{
  background:rgba(220,38,38,.10);color:#FECACA;border-color:rgba(220,38,38,.50);
}

/* ── Form-box (settings, export tabs) ── */
.mmain-r .form-box{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:12px;
  padding:18px 20px;
  margin-bottom:14px;
  box-shadow:0 1px 0 rgba(15,23,42,.02);
  font-family:'Geist',sans-serif;
}
body.dark .mmain-r .form-box{background:#10151F;border-color:#1F2937;}
.mmain-r .form-box h3{
  font-family:'Geist',sans-serif;
  font-size:15px;font-weight:600;letter-spacing:0;
  text-transform:none;color:#0B0F19;
  margin-bottom:4px;
}
body.dark .mmain-r .form-box h3{color:#E5E7EB;}
.mmain-r .form-box p{
  font-size:12px;color:#64748B;line-height:1.6;margin-bottom:14px;
}
body.dark .mmain-r .form-box p{color:#94A3B8;}

/* ── Analytics KPIs ── */
.mmain-r .an-kpi{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:10px;
  padding:14px 16px;
  text-align:left;
  box-shadow:0 1px 0 rgba(15,23,42,.02);
}
body.dark .mmain-r .an-kpi{background:#10151F;border-color:#1F2937;}
.mmain-r .an-kpi-n{
  font-family:'Geist',sans-serif;
  font-variant-numeric:tabular-nums;
  font-size:24px;font-weight:600;
  color:#0B0F19;letter-spacing:-.01em;
  line-height:1.05;
}
body.dark .mmain-r .an-kpi-n{color:#E5E7EB;}
.mmain-r .an-kpi-l{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;
  color:#64748B;
  margin-top:6px;
}
body.dark .mmain-r .an-kpi-l{color:#94A3B8;}

/* Mobile: keep the legacy bottom-sheet behavior (modal docks to bottom
   edge, full-width, top-radius only). My refined .overlay rules above
   re-center it; restore the bottom-sheet here so the cascade order
   produces the same result as the original mobile behavior. */
@media (max-width:480px){
  .overlay,
  .modal-overlay{
    padding:0;
    align-items:flex-end;
  }
  .modal{
    border-radius:14px 14px 0 0;
    max-width:100%;
  }
  .force-card{border-radius:14px;}
}

/* ── Bulk action bar (fixed footer when one+ orders selected) ── */
.mmain-r .bulk-bar{
  background:#0F1623 !important;
  color:#FFFFFF;
  border-top:1px solid #1F2937;
  padding:12px 22px;
  box-shadow:0 -8px 24px -10px rgba(15,23,42,.45);
  font-family:'Geist',sans-serif;
}
.mmain-r .bulk-count{
  font-family:'Geist',sans-serif;
  font-size:13px;font-weight:500;letter-spacing:0;
  color:#E5E7EB;
}
.mmain-r .bulk-status-sel{
  -webkit-appearance:none;appearance:none;
  background:#1F2937
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%2394A3B8' d='M5 7L0 2h10z'/%3E%3C/svg%3E")
    no-repeat right 10px center;
  background-size:9px 9px;
  border:1px solid #374151;
  border-radius:8px;
  padding:7px 28px 7px 12px;
  font-family:'Geist',sans-serif;
  font-size:13px;font-weight:500;
  color:#E5E7EB;cursor:pointer;
}
.mmain-r .bulk-status-sel:hover,
.mmain-r .bulk-status-sel:focus{
  outline:none;border-color:#60A5FA;
}
.mmain-r .bulk-status-sel option{background:#1F2937;color:#E5E7EB;}

/* Apply Status — solid navy primary; overrides the legacy inline style */
.mmain-r #bulk-apply-btn{
  background:#1E3A8A !important;
  color:#FFFFFF !important;
  border:1px solid #1E3A8A !important;
  border-radius:8px !important;
  padding:7px 14px !important;
  font-family:'Geist',sans-serif !important;
  font-size:13px !important;font-weight:500 !important;
  letter-spacing:0 !important;text-transform:none !important;
  box-shadow:0 1px 2px rgba(15,23,42,.20);
}
.mmain-r #bulk-apply-btn:hover{background:#1E40AF !important;}

/* Delete and Clear — slate ghost on the dark bar; overrides inline white */
.mmain-r .bulk-controls .btn-ghost{
  background:transparent !important;
  color:#E5E7EB !important;
  border:1px solid #374151 !important;
  border-radius:8px !important;
  padding:7px 12px !important;
  font-family:'Geist',sans-serif !important;
  font-size:13px !important;font-weight:500 !important;
  letter-spacing:0 !important;text-transform:none !important;
}
.mmain-r .bulk-controls .btn-ghost:hover{
  color:#FFFFFF !important;
  border-color:#60A5FA !important;
  background:rgba(96,165,250,.08) !important;
}
/* Delete gets a clear danger affordance on hover */
.mmain-r .bulk-controls [data-action="bulkDelete"]:hover{
  color:#FCA5A5 !important;
  border-color:#7F1D1D !important;
  background:rgba(220,38,38,.12) !important;
}

/* Stock Order CTA shown inside .chips when status filter is "all" — ensure it
   is visually distinct from the chip cluster, not blending in */
.mmain-r .chips .btn-pri{
  background:#1E3A8A !important;
  color:#FFFFFF !important;
  border:1px solid #1E3A8A !important;
  border-radius:6px !important;
  font-family:'Geist',sans-serif !important;
  font-size:12px !important;font-weight:600 !important;
  padding:5px 11px !important;
}
.mmain-r .chips .btn-pri:hover{background:#1E40AF !important;}

/* Mobile tweaks for the refined dashboard */
@media (max-width:480px){
  .mmain-r{padding:14px 12px 60px;}
  .mmain-r .stats{grid-template-columns:repeat(4,1fr);gap:6px;}
  .mmain-r .stat{padding:8px 10px;}
  .mmain-r .stat-n{font-size:18px;}
  .mmain-r .stat-l{font-size:9px;letter-spacing:.14em;}
  .mmain-r .mt-search{flex:1 1 100%;}
  .mmain-r .mt-select{flex:1 1 calc(50% - 8px);min-width:0;max-width:none;}
  .mmain-r .mt-spacer{display:none;}
}

/* ── Compact filter toolbar (replaces the chip panels) ─────── */
.mmain-r .mgr-toolbar{
  display:flex;align-items:center;gap:8px;
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:10px;
  padding:8px 10px;
  margin:0 0 12px;
  box-shadow:0 1px 0 rgba(15,23,42,.02);
  font-family:'Geist',sans-serif;
  flex-wrap:wrap;
}
body.dark .mmain-r .mgr-toolbar{
  background:#10151F;border-color:#1F2937;
}
.mmain-r .mt-search{
  position:relative;flex:1 1 260px;min-width:220px;
}
.mmain-r .mt-search-icon{
  position:absolute;left:11px;top:50%;transform:translateY(-50%);
  font-size:13px;color:#94A3B8;pointer-events:none;
}
.mmain-r .mt-search-input{
  width:100%;
  background:#F8FAFC;
  border:1px solid #E4E6EB;
  border-radius:8px;
  padding:8px 12px 8px 32px;
  font-family:'Geist',sans-serif;
  font-size:13px;
  color:#0B0F19;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.mmain-r .mt-search-input::placeholder{color:#94A3B8;}
.mmain-r .mt-search-input:focus{
  outline:none;background:#FFFFFF;
  border-color:#1E3A8A;
  box-shadow:0 0 0 3px rgba(30,58,138,.12);
}
body.dark .mmain-r .mt-search-input{
  background:#0F1623;border-color:#1F2937;color:#E5E7EB;
}
body.dark .mmain-r .mt-search-input:focus{
  background:#10151F;border-color:#60A5FA;
  box-shadow:0 0 0 3px rgba(96,165,250,.16);
}

.mmain-r .mt-select{
  -webkit-appearance:none;appearance:none;
  background:#F8FAFC
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%2364748B' d='M5 7L0 2h10z'/%3E%3C/svg%3E")
    no-repeat right 10px center;
  background-size:9px 9px;
  border:1px solid #E4E6EB;
  border-radius:8px;
  padding:8px 28px 8px 12px;
  font-family:'Geist',sans-serif;
  font-size:13px;font-weight:500;
  color:#0B0F19;cursor:pointer;
  min-width:150px;max-width:240px;
  transition:border-color .15s ease, color .15s ease, background-color .15s ease;
}
.mmain-r .mt-select:hover{border-color:#1E3A8A;color:#1E3A8A;}
.mmain-r .mt-select:focus{
  outline:none;border-color:#1E3A8A;
  box-shadow:0 0 0 3px rgba(30,58,138,.12);
  color:#1E3A8A;
}
body.dark .mmain-r .mt-select{
  background-color:#0F1623;border-color:#1F2937;color:#E5E7EB;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%2394A3B8' d='M5 7L0 2h10z'/%3E%3C/svg%3E");
}
body.dark .mmain-r .mt-select:hover,
body.dark .mmain-r .mt-select:focus{
  border-color:#60A5FA;color:#93C5FD;
  background-color:#10151F;
}
body.dark .mmain-r .mt-select:focus{box-shadow:0 0 0 3px rgba(96,165,250,.16);}

.mmain-r .mt-spacer{flex:1;}

.mmain-r .mt-icon-btn{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:8px;
  width:34px;height:34px;
  font-size:14px;cursor:pointer;
  color:#475569;
  transition:color .12s ease, border-color .12s ease, background .12s ease;
}
.mmain-r .mt-icon-btn:hover{
  color:#1E3A8A;border-color:#1E3A8A;background:rgba(30,58,138,.04);
}
body.dark .mmain-r .mt-icon-btn{
  background:#10151F;border-color:#1F2937;color:#94A3B8;
}
body.dark .mmain-r .mt-icon-btn:hover{
  color:#93C5FD;border-color:#60A5FA;background:rgba(96,165,250,.06);
}
.mmain-r .mt-icon-btn.on{
  color:#1E3A8A;border-color:#1E3A8A;
  background:rgba(30,58,138,.08);
  box-shadow:inset 0 0 0 1px rgba(30,58,138,.12);
}
.mmain-r .mt-icon-btn.on:hover{
  background:rgba(30,58,138,.12);
}
body.dark .mmain-r .mt-icon-btn.on{
  color:#93C5FD;border-color:#60A5FA;
  background:rgba(96,165,250,.10);
  box-shadow:inset 0 0 0 1px rgba(96,165,250,.16);
}

/* Tighten the Create button when it sits inside .mgr-toolbar so it
   reads as part of the toolbar rather than overpowering it.        */
.mmain-r .mgr-toolbar > .btn.mt-cta{
  height:28px;padding:0 10px;border-radius:7px;
  font-family:'Geist',sans-serif;font-size:11.5px;font-weight:600;
  letter-spacing:.01em;
}

/* ── Cards / Table view toggle ─────────────────────────────── */
.mmain-r .mgr-view-toggle{
  display:flex;align-items:center;gap:4px;
  margin:0;
  font-family:'Geist',sans-serif;
  background:#F8FAFC;
  border:1px solid #E4E6EB;
  border-radius:8px;
  padding:2px;
}
body.dark .mmain-r .mgr-view-toggle{
  background:#0F1623;border-color:#1F2937;
}
.mmain-r .mvt-btn{
  font-family:'Geist',sans-serif;
  font-size:12px;font-weight:500;letter-spacing:0;
  background:transparent;color:#475569;
  border:0;
  padding:5px 10px;border-radius:6px;cursor:pointer;
  transition:color .12s ease, background .12s ease;
}
.mmain-r .mvt-btn:hover{color:#1E3A8A;background:rgba(30,58,138,.06);}
.mmain-r .mvt-btn.on{
  background:#FFFFFF;color:#1E3A8A;
  box-shadow:0 1px 2px rgba(15,23,42,.10), 0 0 0 1px rgba(30,58,138,.18);
}
body.dark .mmain-r .mvt-btn{color:#94A3B8;}
body.dark .mmain-r .mvt-btn:hover{color:#93C5FD;background:rgba(96,165,250,.10);}
body.dark .mmain-r .mvt-btn.on{
  background:#10151F;color:#93C5FD;
  box-shadow:0 1px 2px rgba(0,0,0,.4), 0 0 0 1px rgba(96,165,250,.30);
}

/* ── Manager TABLE view ────────────────────────────────────── */
.mmain-r .mgr-table-wrap{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 1px 0 rgba(15,23,42,.02);
}
body.dark .mmain-r .mgr-table-wrap{
  background:#10151F;border-color:#1F2937;
}
.mmain-r .mgr-table{
  width:100%;
  border-collapse:collapse;
  font-family:'Geist',sans-serif;
  font-size:13px;
  color:#0B0F19;
}
body.dark .mmain-r .mgr-table{color:#E5E7EB;}

/* Header row — sticky to viewport so the spreadsheet feel survives long lists */
.mmain-r .mgr-table thead th{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;
  color:#64748B;
  background:#F8FAFC;
  text-align:left;
  padding:10px 10px;
  border-bottom:1px solid #E4E6EB;
  position:sticky;top:0;z-index:1;
  white-space:nowrap;
}
body.dark .mmain-r .mgr-table thead th{
  background:#0F1623;color:#94A3B8;border-bottom-color:#1F2937;
}
.mmain-r .mgr-table th.mt-sortable{cursor:pointer;user-select:none;}
.mmain-r .mgr-table th.mt-sortable:hover{color:#1E3A8A;}
body.dark .mmain-r .mgr-table th.mt-sortable:hover{color:#93C5FD;}
.mmain-r .mt-arrow{
  display:inline-block;margin-left:4px;color:#1E3A8A;font-weight:600;
}
body.dark .mmain-r .mt-arrow{color:#93C5FD;}

/* Body cells */
.mmain-r .mgr-table td{
  padding:8px 10px;
  border-bottom:1px solid #EEF0F3;
  vertical-align:middle;
  white-space:nowrap;
}
body.dark .mmain-r .mgr-table td{border-bottom-color:#1A2030;}
.mmain-r .mgr-table tbody tr:last-child td{border-bottom:none;}
.mmain-r .mgr-table .mt-row{
  cursor:pointer;
  transition:background .10s ease;
}
.mmain-r .mgr-table .mt-row:hover{background:#F8FAFC;}
.mmain-r .mgr-table .mt-row.open{background:#F1F5F9;}
body.dark .mmain-r .mgr-table .mt-row:hover{background:#0F1623;}
body.dark .mmain-r .mgr-table .mt-row.open{background:#141B2A;}

/* Zebra-striping the body — quiet, doesn't fight the hover state */
.mmain-r .mgr-table tbody tr.mt-row:nth-child(4n+1){background:#FBFCFD;}
body.dark .mmain-r .mgr-table tbody tr.mt-row:nth-child(4n+1){background:#0E1421;}
.mmain-r .mgr-table tbody tr.mt-row:nth-child(4n+1):hover{background:#F1F5F9;}
body.dark .mmain-r .mgr-table tbody tr.mt-row:nth-child(4n+1):hover{background:#141B2A;}

/* Column-specific styling */
.mmain-r .mgr-table .mt-chk{width:36px;padding-left:14px;padding-right:0;}
.mmain-r .mgr-table .mt-flag{width:28px;text-align:center;color:#D97706;}
.mmain-r .mgr-table .mt-num{text-align:right;font-variant-numeric:tabular-nums;}
.mmain-r .mgr-table .mt-icons{
  width:54px;text-align:right;color:#94A3B8;
  font-size:12px;
}
.mmain-r .mgr-table .mt-icons .chevron{
  display:inline-block;margin-left:4px;transition:transform .15s ease;
  color:#94A3B8;
}
.mmain-r .mgr-table .mt-icons .chevron.open{transform:rotate(90deg);color:#1E3A8A;}
body.dark .mmain-r .mgr-table .mt-icons .chevron.open{color:#93C5FD;}

.mmain-r .mt-id{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:11px;letter-spacing:.06em;color:#475569;
}
body.dark .mmain-r .mt-id{color:#94A3B8;}
.mmain-r .mt-user{font-weight:500;color:#0B0F19;}
body.dark .mmain-r .mt-user{color:#E5E7EB;}
.mmain-r .mgr-table .mt-mono{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:12px;color:#475569;
}
body.dark .mmain-r .mgr-table .mt-mono{color:#94A3B8;}
.mmain-r .mt-mute{color:#CBD5E1;}
body.dark .mmain-r .mt-mute{color:#334155;}

/* Row state colors */
.mmain-r .mgr-table .mt-row.mt-flagged td:first-child{
  box-shadow:inset 3px 0 0 #F59E0B;
}
.mmain-r .mgr-table .mt-row.mt-fulfilled{opacity:.55;}
.mmain-r .mgr-table .mt-row.mt-fulfilled .mt-user{text-decoration:line-through;}
.mmain-r .mgr-table .mt-old-cell{
  color:#92400E;font-weight:600;
}
body.dark .mmain-r .mgr-table .mt-old-cell{color:#FCD34D;}

/* Status badge fits a row better when it's a touch smaller */
.mmain-r .mgr-table .badge{
  font-size:10px !important;
  padding:2px 8px !important;
}

/* Account pill in tighter row context */
.mmain-r .mgr-table .acct-pill{
  font-size:9px;padding:2px 6px;letter-spacing:.10em;
}

/* Bulk checkbox in tables — hairline bigger hit area */
.mmain-r .mgr-table .bulk-chk{
  width:14px;height:14px;
  accent-color:#1E3A8A;cursor:pointer;
}
body.dark .mmain-r .mgr-table .bulk-chk{accent-color:#3B5BDB;}

/* Expand row — embed the existing card-body underneath without disturbing it.
   We dedupe the visual chrome (no zebra, no hover, no top border) so the
   panel reads as a continuation of the row above. */
.mmain-r .mgr-table .mt-expand{background:#F8FAFC;}
body.dark .mmain-r .mgr-table .mt-expand{background:#0E1421;}
.mmain-r .mgr-table .mt-expand:hover{background:#F8FAFC;}
body.dark .mmain-r .mgr-table .mt-expand:hover{background:#0E1421;}
.mmain-r .mgr-table .mt-expand-cell{
  padding:0 !important;
  border-bottom:1px solid #E4E6EB !important;
  white-space:normal;
}
body.dark .mmain-r .mgr-table .mt-expand-cell{border-bottom-color:#1F2937 !important;}
.mmain-r .mgr-table .mt-expand-cell .card-body{
  border:none;border-radius:0;
  padding:18px 22px 22px;
  background:transparent;
  display:none;
}
.mmain-r .mgr-table .mt-expand-cell .card-body.open{display:block;}

/* Mobile: horizontal scroll the table; keep the expand panel readable */
@media (max-width:900px){
  .mmain-r .mgr-table-wrap{overflow-x:auto;}
  .mmain-r .mgr-table{min-width:900px;}
  .mmain-r .mgr-table .mt-expand-cell .card-body{padding:14px;}
}

/* ── REMAINING MANAGER TABS — refined utility ──
   Sweeps Users / Stores / Work Orders / Trash / Export / Security /
   Settings / Analytics / Invoicing tabs. Most reuse generic shells
   (.card, .form-box, .alert) which are already styled; this block
   covers the tab-specific shells (.utbl, .atbl, .sec-title,
   .count-pip, the .an-* analytics primitives) plus the global
   toast so notifications match the new aesthetic. */

/* Section titles + count pip */
.mmain-r .sec-title{
  font-family:'Geist',sans-serif;
  font-size:18px;font-weight:600;letter-spacing:0;
  text-transform:none;
  color:#0B0F19;
  border-bottom:1px solid #E4E6EB;
  padding-bottom:10px;
  margin-bottom:14px;
  display:flex;align-items:center;gap:10px;
}
body.dark .mmain-r .sec-title{
  color:#E5E7EB;border-bottom-color:#1F2937;
}
.mmain-r .count-pip{
  font-family:'Geist',sans-serif;
  font-size:11px;font-weight:500;letter-spacing:0;
  background:#1E3A8A;color:#FFFFFF;
  border-radius:999px;
  padding:1px 9px;height:auto;min-width:0;
}
body.dark .mmain-r .count-pip{background:#3B5BDB;}

/* Utility tables (utbl: users tab + similar; atbl: audit log) */
.mmain-r .utbl,
.mmain-r .atbl{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  font-family:'Geist',sans-serif;
  font-size:13px;
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 1px 0 rgba(15,23,42,.02);
}
.mmain-r .utbl thead th,
.mmain-r .atbl thead th{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;
  color:#64748B;
  background:#F8FAFC;
  text-align:left;
  padding:11px 14px;
  border-bottom:1px solid #E4E6EB;
}
.mmain-r .utbl td,
.mmain-r .atbl td{
  padding:10px 14px;
  border-bottom:1px solid #EEF0F3;
  color:#0B0F19;
  vertical-align:middle;
}
.mmain-r .atbl td{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:11px;
  color:#475569;
}
.mmain-r .utbl .mono{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:12px;color:#0B0F19;
}
.mmain-r .utbl tbody tr:last-child td,
.mmain-r .atbl tbody tr:last-child td{border-bottom:none;}
.mmain-r .utbl tr:hover td,
.mmain-r .atbl tr:hover td{background:#F8FAFC;}
body.dark .mmain-r .utbl,
body.dark .mmain-r .atbl{
  background:#10151F;border-color:#1F2937;
}
body.dark .mmain-r .utbl thead th,
body.dark .mmain-r .atbl thead th{
  background:#0F1623;color:#94A3B8;border-bottom-color:#1F2937;
}
body.dark .mmain-r .utbl td,
body.dark .mmain-r .atbl td{
  color:#E5E7EB;border-bottom-color:#1A2030;
}
body.dark .mmain-r .utbl .mono{color:#E5E7EB;}
body.dark .mmain-r .atbl td{color:#94A3B8;}
body.dark .mmain-r .utbl tr:hover td,
body.dark .mmain-r .atbl tr:hover td{background:#0F1623;}

/* Inline inputs that live inside .utbl rows (e.g. real-name editor) */
.mmain-r .utbl input[type=text]{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:6px;
  font-family:'Geist',sans-serif;
  font-size:13px;
  padding:6px 10px;
  color:#0B0F19;
}
.mmain-r .utbl input[type=text]:focus{
  outline:none;border-color:#1E3A8A;
  box-shadow:0 0 0 3px rgba(30,58,138,.12);
}
body.dark .mmain-r .utbl input[type=text]{
  background:#0F1623;border-color:#1F2937;color:#E5E7EB;
}
body.dark .mmain-r .utbl input[type=text]:focus{
  border-color:#60A5FA;box-shadow:0 0 0 3px rgba(96,165,250,.18);
}

/* Alerts on the manager surface (outside modals) */
.mmain-r .alert{
  font-family:'Geist',sans-serif;
  font-size:13px;line-height:1.5;
  border-radius:10px;
  padding:10px 13px;
  margin-bottom:14px;
}
.mmain-r .alert-err {background:#FEF2F2;border:1px solid #FECACA;color:#991B1B;}
.mmain-r .alert-ok  {background:#ECFDF5;border:1px solid #A7F3D0;color:#065F46;}
.mmain-r .alert-info{background:#EFF6FF;border:1px solid #BFDBFE;color:#1E40AF;}
.mmain-r .alert-warn{background:#FFFBEB;border:1px solid #FDE68A;color:#92400E;}
body.dark .mmain-r .alert-err {background:rgba(220,38,38,.10);border-color:rgba(220,38,38,.30);color:#FCA5A5;}
body.dark .mmain-r .alert-ok  {background:rgba(5,150,105,.10);border-color:rgba(5,150,105,.30);color:#6EE7B7;}
body.dark .mmain-r .alert-info{background:rgba(37,99,235,.10);border-color:rgba(37,99,235,.30);color:#93C5FD;}
body.dark .mmain-r .alert-warn{background:rgba(217,119,6,.12);border-color:rgba(217,119,6,.35);color:#FCD34D;}

/* HR — quiet hairline */
.mmain-r hr{
  border:none;border-top:1px solid #E4E6EB;
  margin:24px 0;
}
body.dark .mmain-r hr{border-top-color:#1F2937;}

/* Empty / loading states */
.mmain-r .empty{
  font-family:'Geist',sans-serif;
  color:#64748B;
}
.mmain-r .empty .icon{color:#CBD5E1;}
.mmain-r .empty h3{
  font-family:'Geist',sans-serif;
  font-weight:600;color:#0B0F19;
  font-size:18px;letter-spacing:0;
  text-transform:none;
}
.mmain-r .empty p{font-size:13px;color:#64748B;}
body.dark .mmain-r .empty h3{color:#E5E7EB;}
body.dark .mmain-r .empty p{color:#94A3B8;}
body.dark .mmain-r .empty .icon{color:#475569;}
.mmain-r .loading{
  font-family:'Geist',sans-serif;
  color:#94A3B8;
}

/* ── Analytics tab ── */
.mmain-r .an-section{
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:12px;
  padding:18px 20px;
  margin-bottom:14px;
  box-shadow:0 1px 0 rgba(15,23,42,.02);
}
body.dark .mmain-r .an-section{background:#10151F;border-color:#1F2937;}
.mmain-r .an-section-title{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.20em;
  text-transform:uppercase;
  color:#64748B;
  margin-bottom:16px;
}
body.dark .mmain-r .an-section-title{color:#94A3B8;}
.mmain-r .an-range-label{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.20em;
  text-transform:uppercase;
  color:#64748B;
}
body.dark .mmain-r .an-range-label{color:#94A3B8;}
.mmain-r .an-total-badge{
  font-family:'Geist',sans-serif;
  font-size:12px;font-weight:500;
  color:#475569;
}
body.dark .mmain-r .an-total-badge{color:#94A3B8;}
.mmain-r .an-vs{font-family:'Geist',sans-serif;font-weight:500;}
.mmain-r .an-vs-up{color:#059669;}
.mmain-r .an-vs-dn{color:#DC2626;}
body.dark .mmain-r .an-vs-up{color:#34D399;}
body.dark .mmain-r .an-vs-dn{color:#F87171;}
.mmain-r .an-empty,
.mmain-r .an-norm-note{
  font-family:'Geist',sans-serif;
  font-size:12px;color:#64748B;
}
body.dark .mmain-r .an-empty,
body.dark .mmain-r .an-norm-note{color:#94A3B8;}

/* Time-series bars — navy instead of amber */
.mmain-r .an-bar{
  background:#1E3A8A;
  border-radius:3px 3px 0 0;
}
body.dark .mmain-r .an-bar{background:#3B5BDB;}
.mmain-r .an-bar-lbl{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:#94A3B8;font-size:9px;letter-spacing:.10em;
}

/* Percent / horizontal-bar tracks */
.mmain-r .an-pct-wrap,
.mmain-r .an-hbar-track{
  background:#F1F5F9;
  border-radius:6px;
  height:10px;
}
body.dark .mmain-r .an-pct-wrap,
body.dark .mmain-r .an-hbar-track{background:#1A2030;}
.mmain-r .an-pct-fill,
.mmain-r .an-hbar-fill{border-radius:6px;}
.mmain-r .an-pct-label,
.mmain-r .an-hbar-label{
  font-family:'Geist',sans-serif;
  font-size:12px;color:#475569;
}
body.dark .mmain-r .an-pct-label,
body.dark .mmain-r .an-hbar-label{color:#94A3B8;}
.mmain-r .an-pct-lbl{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.10em;
  mix-blend-mode:normal;color:#0B0F19;
  font-weight:500;
}
body.dark .mmain-r .an-pct-lbl{color:#E5E7EB;}
.mmain-r .an-hbar-count{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:11px;color:#475569;
}
body.dark .mmain-r .an-hbar-count{color:#94A3B8;}
.mmain-r .an-open-badge{
  font-family:'Geist',sans-serif;
  background:#FEF2F2;color:#991B1B;border:1px solid #FECACA;
  font-weight:500;font-size:10px;
  padding:1px 7px;border-radius:999px;
  letter-spacing:0;text-transform:none;
}
body.dark .mmain-r .an-open-badge{
  background:rgba(220,38,38,.10);color:#FCA5A5;border-color:rgba(220,38,38,.30);
}

/* Form-row layout already sits inside .form-box (refined elsewhere) */
.mmain-r .form-row{
  grid-template-columns:1fr 1fr auto;
  gap:10px;
}

/* ── Users-tab card header pattern (Option A layout) ── */
.mmain-r .uc-section{margin-bottom:24px;}
.mmain-r .uc-section:last-child{margin-bottom:0;}
.mmain-r .uc-hdr{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex-wrap:wrap;
  margin-bottom:10px;
}
.mmain-r .uc-title{
  font-family:'Geist',sans-serif;
  font-size:16px;font-weight:600;letter-spacing:0;
  text-transform:none;
  color:#0B0F19;
  display:flex;align-items:center;gap:8px;
  margin:0;
}
body.dark .mmain-r .uc-title{color:#E5E7EB;}
.mmain-r .uc-actions{display:flex;gap:6px;align-items:center;}
.mmain-r .uc-hint{
  font-family:'Geist',sans-serif;
  font-size:12px;color:#64748B;
  line-height:1.55;
  margin:0 0 12px;
}
body.dark .mmain-r .uc-hint{color:#94A3B8;}

/* Role pills inside the People table */
.mmain-r .role-pill{
  font-family:'Geist',sans-serif;
  font-size:11px;font-weight:500;letter-spacing:0;
  padding:2px 9px;border-radius:999px;
  display:inline-block;
}
.mmain-r .role-mgr{
  background:rgba(30,58,138,.10);
  color:#1E3A8A;
  border:1px solid rgba(30,58,138,.22);
}
.mmain-r .role-user{
  background:#F1F5F9;
  color:#475569;
  border:1px solid #E2E8F0;
}
body.dark .mmain-r .role-mgr{
  background:rgba(96,165,250,.12);color:#93C5FD;border-color:rgba(96,165,250,.28);
}
body.dark .mmain-r .role-user{
  background:#1A2030;color:#94A3B8;border-color:#27313F;
}

/* Buttons in the .uc-actions header AND inside .utbl rows.
   These weren't covered by the .card-body / .form-box scoping earlier.
   The existing .modal/.bulk-bar/.toolbar selectors are more specific so
   they keep winning where they should. */
.mmain-r .uc-actions .btn,
.mmain-r .utbl .btn{
  font-family:'Geist',sans-serif;
  font-size:12px;font-weight:500;letter-spacing:0;
  text-transform:none;
  border-radius:6px;
  padding:6px 12px;
  transition:background .12s ease, color .12s ease, border-color .12s ease;
}
.mmain-r .uc-actions .btn-sm,
.mmain-r .utbl .btn-sm{font-size:12px;padding:6px 11px;}
.mmain-r .uc-actions .btn-xs,
.mmain-r .utbl .btn-xs{font-size:11px;padding:4px 10px;}

.mmain-r .uc-actions .btn-pri,
.mmain-r .utbl .btn-pri{
  background:#1E3A8A;color:#FFFFFF;border:1px solid #1E3A8A;
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset, 0 1px 2px rgba(15,23,42,.10);
}
.mmain-r .uc-actions .btn-pri:hover,
.mmain-r .utbl .btn-pri:hover{background:#1E40AF;}

.mmain-r .uc-actions .btn-sec,
.mmain-r .utbl .btn-sec{
  background:#FFFFFF;color:#0B0F19;border:1px solid #E4E6EB;
}
.mmain-r .uc-actions .btn-sec:hover,
.mmain-r .utbl .btn-sec:hover{
  border-color:#1E3A8A;background:rgba(30,58,138,.04);
}

.mmain-r .uc-actions .btn-ghost,
.mmain-r .utbl .btn-ghost{
  background:transparent;color:#475569;border:1px solid #E4E6EB;
}
.mmain-r .uc-actions .btn-ghost:hover,
.mmain-r .utbl .btn-ghost:hover{
  color:#0B0F19;border-color:#1E3A8A;background:rgba(30,58,138,.04);
}

.mmain-r .uc-actions .btn-danger,
.mmain-r .utbl .btn-danger{
  background:transparent;color:#991B1B;border:1px solid #FECACA;
}
.mmain-r .uc-actions .btn-danger:hover,
.mmain-r .utbl .btn-danger:hover{
  background:#FEF2F2;color:#7F1D1D;border-color:#FCA5A5;
}

body.dark .mmain-r .uc-actions .btn-pri,
body.dark .mmain-r .utbl .btn-pri{background:#3B5BDB;border-color:#3B5BDB;}
body.dark .mmain-r .uc-actions .btn-pri:hover,
body.dark .mmain-r .utbl .btn-pri:hover{background:#4263EB;}
body.dark .mmain-r .uc-actions .btn-sec,
body.dark .mmain-r .utbl .btn-sec{
  background:#10151F;color:#E5E7EB;border-color:#27313F;
}
body.dark .mmain-r .uc-actions .btn-sec:hover,
body.dark .mmain-r .utbl .btn-sec:hover{
  border-color:#60A5FA;background:rgba(96,165,250,.06);
}
body.dark .mmain-r .uc-actions .btn-ghost,
body.dark .mmain-r .utbl .btn-ghost{
  background:transparent;color:#94A3B8;border-color:#27313F;
}
body.dark .mmain-r .uc-actions .btn-ghost:hover,
body.dark .mmain-r .utbl .btn-ghost:hover{
  color:#E5E7EB;border-color:#60A5FA;background:rgba(96,165,250,.06);
}
body.dark .mmain-r .uc-actions .btn-danger,
body.dark .mmain-r .utbl .btn-danger{
  color:#FCA5A5;border-color:rgba(220,38,38,.30);
}
body.dark .mmain-r .uc-actions .btn-danger:hover,
body.dark .mmain-r .utbl .btn-danger:hover{
  background:rgba(220,38,38,.10);color:#FECACA;border-color:rgba(220,38,38,.50);
}

/* ── Toast (global; lives at body level) ── */
.toast{
  font-family:'Geist',sans-serif;
  background:#10151F;
  color:#FFFFFF;
  border:1px solid #1F2937;
  border-left:3px solid #1E3A8A;
  border-radius:10px;
  font-size:13px;
  padding:11px 16px;
  box-shadow:0 12px 28px -10px rgba(15,23,42,.40);
}
body.dark .toast{
  background:#0A0F1A;border-color:#1F2937;
}

/* ── Invoice card grid ────────────────────────────────────────
   Auto-fit grid: 3-5 cards per row depending on viewport width. Each
   card is its own self-contained financial-instrument: status edge,
   header strip, customer headline, two-line description, prominent
   monospace dollar total, references, and meta footer.
   Aesthetic: refined-utility, money-as-typography. The dollar total
   in Geist Mono ~20px is the visual anchor on every card.            */
/* Flex-wrap with fixed-size cards: every card is exactly 290 × 184px
   regardless of how much content it has or how many cards live in its
   row/section. Partial rows leave trailing whitespace on the right
   instead of stretching the cards — visual consistency over fill. */
.mmain-r .inv-cards-grid{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 14px;
}

.mmain-r .inv-card{
  position:relative;
  display:flex;align-items:stretch;
  width:290px;
  max-width:100%;
  height:184px;
  flex:0 0 auto;
  background:#FFFFFF;
  border:1px solid #E4E6EB;
  border-radius:10px;
  cursor:pointer;
  overflow:hidden;
  font-family:'Geist',sans-serif;
  transition:border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}
.mmain-r .inv-card:hover{
  border-color:#94A3B8;
  box-shadow:0 4px 14px -8px rgba(15,23,42,.18), 0 1px 0 rgba(15,23,42,.04);
  transform:translateY(-1px);
}
body.dark .mmain-r .inv-card{background:#10151F;border-color:#1F2937;}
body.dark .mmain-r .inv-card:hover{
  border-color:#475569;
  box-shadow:0 4px 14px -8px rgba(0,0,0,.55), 0 1px 0 rgba(0,0,0,.30);
}

/* 3px status edge runs the full card height — color carries the status. */
.mmain-r .ic-edge{flex:0 0 3px;background:#CBD5E1;}
body.dark .mmain-r .ic-edge{background:#334155;}
.mmain-r .inv-card-finalized .ic-edge{background:#0EA5E9;}
.mmain-r .inv-card-priced    .ic-edge{background:#16A34A;}
.mmain-r .inv-card-submitted .ic-edge{background:#F59E0B;}
.mmain-r .inv-card-draft     .ic-edge{background:#94A3B8;}
.mmain-r .inv-card-abandoned .ic-edge{background:#DC2626;}
.mmain-r .inv-card-flagged   .ic-edge{background:#D97706;}

.mmain-r .ic-inner{
  flex:1 1 auto;min-width:0;
  display:flex;flex-direction:column;
  padding:11px 14px 12px;
  gap:6px;
}

/* Header — invoice#, status, optional flag — laid out on a baseline. */
.mmain-r .ic-head{
  display:flex;align-items:center;justify-content:space-between;
  gap:8px;min-width:0;
}
.mmain-r .ic-num{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:12px;font-weight:500;letter-spacing:.02em;
  color:#0B0F19;font-variant-numeric:tabular-nums;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  flex:0 1 auto;min-width:0;
}
body.dark .mmain-r .ic-num{color:#E5E7EB;}
.mmain-r .ic-status{
  display:inline-flex;align-items:center;
  font-size:10.5px;font-weight:500;letter-spacing:.05em;
  color:#64748B;text-transform:uppercase;
  flex:0 0 auto;
}
body.dark .mmain-r .ic-status{color:#94A3B8;}
.mmain-r .ic-dot{
  display:inline-block;width:6px;height:6px;border-radius:50%;
  background:#94A3B8;margin-right:6px;
}
.mmain-r .inv-card-finalized .ic-dot{background:#0EA5E9;}
.mmain-r .inv-card-priced    .ic-dot{background:#16A34A;}
.mmain-r .inv-card-submitted .ic-dot{background:#F59E0B;}
.mmain-r .inv-card-draft     .ic-dot{background:#94A3B8;}
.mmain-r .inv-card-abandoned .ic-dot{background:#DC2626;}

.mmain-r .ic-flag{
  color:#D97706;font-size:14px;line-height:1;flex:0 0 auto;
  margin-left:auto;
}
body.dark .mmain-r .ic-flag{color:#FB923C;}

/* Customer headline. */
.mmain-r .ic-cust{
  font-size:14px;font-weight:500;color:#0B0F19;
  line-height:1.3;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  margin-top:2px;
}
body.dark .mmain-r .ic-cust{color:#F1F5F9;}

/* Description — clamped to 2 lines so card heights stay aligned. */
.mmain-r .ic-desc{
  font-size:11.5px;color:#64748B;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;
  min-height:32px;
}
body.dark .mmain-r .ic-desc{color:#94A3B8;}

/* Money line — the spotlight. Total set in Geist Mono with tabular
   numerals; age chip on the far right.                                */
.mmain-r .ic-money{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:8px;
  margin-top:auto;
  padding-top:6px;
}
.mmain-r .ic-total{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:20px;font-weight:600;
  color:#0B0F19;letter-spacing:-.015em;
  font-variant-numeric:tabular-nums;
  line-height:1.1;
  white-space:nowrap;
}
body.dark .mmain-r .ic-total{color:#F1F5F9;}
.mmain-r .ic-total-empty{
  font-family:'Geist',sans-serif;
  font-weight:400;color:#CBD5E1;font-size:15px;
}
body.dark .mmain-r .ic-total-empty{color:#475569;}

/* References row (WO# / PO#) — monospace, slightly lower contrast. */
.mmain-r .ic-refs{
  display:flex;align-items:center;gap:8px;flex-wrap:nowrap;
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:11px;color:#475569;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  min-height:14px;
}
body.dark .mmain-r .ic-refs{color:#94A3B8;}
.mmain-r .ic-refs > span{flex:0 0 auto;}
.mmain-r .ic-po{color:#64748B;}
body.dark .mmain-r .ic-po{color:#94A3B8;}

/* Meta row (mechanic / parts / date) — small, slate, scannable. */
.mmain-r .ic-meta{
  display:flex;align-items:center;gap:8px;flex-wrap:nowrap;
  font-size:11px;color:#64748B;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  min-height:14px;
}
body.dark .mmain-r .ic-meta{color:#94A3B8;}
.mmain-r .ic-meta > span{flex:0 0 auto;}
.mmain-r .ic-mech{color:#475569;font-weight:500;}
body.dark .mmain-r .ic-mech{color:#CBD5E1;}
.mmain-r .ic-parts{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-variant-numeric:tabular-nums;
}
.mmain-r .ic-date{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:#94A3B8;font-variant-numeric:tabular-nums;
  margin-left:auto;
}
body.dark .mmain-r .ic-date{color:#64748B;}

.mmain-r .ic-sep{
  color:#CBD5E1;font-size:9px;line-height:1;flex:0 0 auto;
}
body.dark .mmain-r .ic-sep{color:#334155;}

/* ── Reusable utility classes used by the card grid ─────────── */

/* Quiet field-label prefix (e.g. "Inv #" before 1042). */
.mmain-r .ig-label{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:400;letter-spacing:.05em;
  color:#94A3B8;
  margin-right:5px;
  text-transform:uppercase;
}
body.dark .mmain-r .ig-label{color:#64748B;}

/* Soft fallback for customer-less drafts — italicized, low-contrast. */
.mmain-r .ig-untitled{
  font-style:italic;font-weight:400;color:#94A3B8;
}
body.dark .mmain-r .ig-untitled{color:#64748B;}

.mmain-r .ig-mute{color:#CBD5E1;}
body.dark .mmain-r .ig-mute{color:#475569;}

/* Aging chip — neutral / amber mid / red warn. */
.mmain-r .inv-age{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10.5px;font-weight:600;letter-spacing:.02em;
  padding:2px 7px;border-radius:999px;
  background:#F1F5F9;color:#475569;border:1px solid #E2E8F0;
  font-variant-numeric:tabular-nums;line-height:1.2;
  flex:0 0 auto;
}
body.dark .mmain-r .inv-age{
  background:rgba(148,163,184,.10);color:#CBD5E1;border-color:rgba(148,163,184,.20);
}
.mmain-r .inv-age-mid{
  background:#FEF3C7;color:#92400E;border-color:#FDE68A;
}
body.dark .mmain-r .inv-age-mid{
  background:rgba(245,158,11,.14);color:#FCD34D;border-color:rgba(245,158,11,.30);
}
.mmain-r .inv-age-warn{
  background:#FEE2E2;color:#991B1B;border-color:#FECACA;
}
body.dark .mmain-r .inv-age-warn{
  background:rgba(248,113,113,.14);color:#FCA5A5;border-color:rgba(248,113,113,.30);
}

/* Responsive: cards stay fixed-size at all viewports so consistency
   holds. On phone-narrow widths the card's max-width:100% lets it
   shrink to the container, and the row wraps to one card per line. */
@media (max-width: 720px){
  .mmain-r .inv-cards-grid{gap:8px;}
}
@media (max-width: 480px){
  .mmain-r .inv-card{width:100%;}
}

/* ── Invoice table view ───────────────────────────────────────
   Reuses the .mgr-table family. Adds:
     - .inv-pill status pills (one row, ~10x card density)
     - .inv-cust two-line cell (customer + truncated job desc)
     - column hide-points so the table degrades gracefully on narrow widths */
.mmain-r .inv-table-wrap{margin:0 0 12px;}
.mmain-r .inv-table thead th{
  font-size:10px;letter-spacing:.10em;
}
.mmain-r .inv-table .mt-row{cursor:pointer;}
.mmain-r .inv-table .mt-row td{
  padding-top:9px;padding-bottom:9px;font-size:13px;
}
.mmain-r .inv-table .mt-id{font-weight:500;color:#475569;}
body.dark .mmain-r .inv-table .mt-id{color:#94A3B8;}

.mmain-r .inv-table .inv-cust{line-height:1.35;}
.mmain-r .inv-table .inv-cust strong{
  display:block;font-weight:400;color:#475569;
}
body.dark .mmain-r .inv-table .inv-cust strong{color:#94A3B8;}
.mmain-r .inv-table .inv-cust .inv-desc{
  display:block;font-size:11px;color:#64748B;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:34ch;
}
body.dark .mmain-r .inv-table .inv-cust .inv-desc{color:#94A3B8;}

.mmain-r .inv-table .inv-mech{color:#475569;}
body.dark .mmain-r .inv-table .inv-mech{color:#94A3B8;}

.mmain-r .inv-table .inv-total{
  font-weight:600;color:#0B0F19;font-variant-numeric:tabular-nums;
}
body.dark .mmain-r .inv-table .inv-total{color:#E5E7EB;}

.mmain-r .inv-table .inv-date{color:#64748B;}
body.dark .mmain-r .inv-table .inv-date{color:#94A3B8;}

.mmain-r .inv-table .mt-mute{color:#94A3B8;}

/* Status pills — match each invoice status to the surrounding palette
   without copying the heavier .badge styling. Pills are subtle in light
   mode (tinted background, saturated text) and slightly bolder in dark. */
.mmain-r .inv-pill{
  display:inline-block;
  font-family:'Geist',sans-serif;
  font-size:10px;font-weight:600;
  letter-spacing:.04em;text-transform:uppercase;
  padding:3px 8px;border-radius:999px;
  border:1px solid transparent;
  white-space:nowrap;
  line-height:1.2;
}
.mmain-r .inv-pill-finalized{background:#E0F2FE;color:#075985;border-color:#BAE6FD;}    /* Open */
.mmain-r .inv-pill-priced   {background:#DCFCE7;color:#166534;border-color:#BBF7D0;}    /* Processed */
.mmain-r .inv-pill-draft    {background:#F1F5F9;color:#475569;border-color:#E2E8F0;}    /* Draft */
.mmain-r .inv-pill-abandoned{background:#FEE2E2;color:#991B1B;border-color:#FECACA;}    /* Abandoned */

body.dark .mmain-r .inv-pill-finalized{background:rgba(56,189,248,.12);color:#7DD3FC;border-color:rgba(56,189,248,.28);}
body.dark .mmain-r .inv-pill-priced   {background:rgba(34,197,94,.12);color:#86EFAC;border-color:rgba(34,197,94,.28);}
body.dark .mmain-r .inv-pill-draft    {background:rgba(148,163,184,.12);color:#CBD5E1;border-color:rgba(148,163,184,.22);}
body.dark .mmain-r .inv-pill-abandoned{background:rgba(248,113,113,.12);color:#FCA5A5;border-color:rgba(248,113,113,.30);}

/* Flag column on invoices uses the same orange as orders. */
.mmain-r .inv-table .mt-row.mt-flagged td:first-child{
  box-shadow:inset 3px 0 0 #D97706;
}

/* Hover/zebra inherited from .mgr-table; no overrides needed. */

/* Responsive: drop the lowest-priority columns first as width tightens. */
@media (max-width: 920px){
  .mmain-r .inv-table .inv-mech{display:none;}
}
@media (max-width: 720px){
  .mmain-r .inv-table thead th:nth-child(4),
  .mmain-r .inv-table tbody td:nth-child(4){display:none;}  /* WO# */
  .mmain-r .inv-table .inv-cust .inv-desc{display:none;}
}
@media (max-width: 560px){
  .mmain-r .inv-table thead th:last-child,
  .mmain-r .inv-table tbody td:last-child{display:none;}    /* Date */
}

/* ── PM (Preventative Maintenance) cards ───────────────────────────────────
   Shared by manager (full UI: status pills, expected-tick, contributors)
   and tech (simplified: just hours bar + log-visit CTA). */
.pm-card{position:relative;border-left:3px solid var(--line);}
.pm-card.is-ontrack  {border-left-color:#1E3A8A;}
.pm-card.is-atrisk   {border-left-color:#D97706;}
.pm-card.is-critical {border-left-color:#B91C1C;}
.pm-card.is-fulfilled{border-left-color:#16A34A;}

.pm-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;color:var(--txt-muted);}
.pm-eyebrow-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#1E3A8A;}
.pm-card.is-atrisk    .pm-eyebrow-dot{background:#D97706;}
.pm-card.is-critical  .pm-eyebrow-dot{background:#B91C1C;}
.pm-card.is-fulfilled .pm-eyebrow-dot{background:#16A34A;}

.pm-customer{font-size:17px;font-weight:600;letter-spacing:-.15px;color:var(--txt);line-height:1.25;}
.pm-meta{font-size:12px;color:var(--txt-muted);margin-top:3px;font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.pm-meta-wo{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;background:#F8FAFC;border:1px solid #EEF1F4;padding:1px 6px;border-radius:4px;color:var(--txt);letter-spacing:.3px;}
body.dark .pm-meta-wo{background:rgba(148,163,184,.10);border-color:rgba(148,163,184,.20);color:var(--txt);}

.pm-hours-line{display:flex;align-items:baseline;justify-content:space-between;margin:16px 0 9px;}
.pm-hours-num{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.6px;color:var(--txt);}
.pm-hours-of{font-size:13px;color:var(--txt-muted);font-variant-numeric:tabular-nums;margin-left:5px;}
.pm-pct-pill{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;padding:2px 8px;border-radius:999px;background:rgba(30,58,138,.08);color:#1E3A8A;letter-spacing:.2px;}
.pm-card.is-atrisk    .pm-pct-pill{background:#FEF3C7;color:#92400E;}
.pm-card.is-critical  .pm-pct-pill{background:#FEE2E2;color:#B91C1C;}
.pm-card.is-fulfilled .pm-pct-pill{background:#DCFCE7;color:#166534;}

.pm-bar{position:relative;height:5px;background:#F1F5F9;border-radius:3px;}
body.dark .pm-bar{background:rgba(148,163,184,.18);}
.pm-bar-fill{position:absolute;left:0;top:0;bottom:0;background:#1E3A8A;border-radius:3px;transition:width .35s cubic-bezier(.2,.8,.2,1);}
.pm-card.is-atrisk    .pm-bar-fill{background:#D97706;}
.pm-card.is-critical  .pm-bar-fill{background:#B91C1C;}
.pm-card.is-fulfilled .pm-bar-fill{background:#16A34A;}
.pm-bar-tick{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--txt);opacity:.55;border-radius:1px;pointer-events:none;}
.pm-bar-foot{display:flex;justify-content:space-between;font-size:10px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;color:var(--txt-muted);margin-top:5px;font-variant-numeric:tabular-nums;}
.pm-bar-foot .delta{font-weight:700;}
.pm-bar-foot .delta.is-warning {color:#D97706;}
.pm-bar-foot .delta.is-critical{color:#B91C1C;}
.pm-bar-foot .delta.is-good    {color:#16A34A;}

.pm-detail-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px;padding-top:11px;border-top:1px dashed #EEF1F4;font-size:12px;}
body.dark .pm-detail-row{border-top-color:rgba(148,163,184,.18);}
.pm-detail-label{display:inline-flex;align-items:center;gap:6px;color:var(--txt-muted);font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;}
.pm-detail-label svg{flex-shrink:0;opacity:.7;}
.pm-detail-value{font-variant-numeric:tabular-nums;font-weight:500;color:var(--txt);text-align:right;}
.pm-detail-value.is-warning {color:#D97706;font-weight:700;}
.pm-detail-value.is-critical{color:#B91C1C;font-weight:700;}
.pm-detail-value .secondary{color:var(--txt-muted);font-weight:400;margin-left:4px;}

.pm-techs-line{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px;padding-top:11px;border-top:1px dashed #EEF1F4;}
body.dark .pm-techs-line{border-top-color:rgba(148,163,184,.18);}
.pm-tech-stack{display:flex;align-items:center;}
.pm-tech-chip{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:#fff;font-size:9px;font-weight:700;letter-spacing:.3px;border:2px solid #fff;margin-right:-7px;font-family:ui-monospace,monospace;}
body.dark .pm-tech-chip{border-color:#0F172A;}
.pm-tech-chip-1{background:#1E3A8A;}
.pm-tech-chip-2{background:#5B21B6;}
.pm-tech-chip-3{background:#047857;}
.pm-tech-chip-4{background:#B45309;}
.pm-tech-chip-more{background:#F1F5F9;color:var(--txt-muted);border-color:#E4E6EB;font-family:inherit;letter-spacing:0;}
body.dark .pm-tech-chip-more{background:rgba(148,163,184,.15);}
.pm-tech-names{font-size:11px;color:var(--txt-muted);text-align:right;flex:1;min-width:0;}

.pm-actions{display:flex;gap:6px;padding:9px 12px;border-top:1px solid var(--line);background:#F8FAFC;}
body.dark .pm-actions{background:rgba(148,163,184,.05);}
.pm-cta-row{display:flex;gap:6px;padding:9px 12px;border-top:1px solid var(--line);}
.pm-cta-row .btn-pri{flex:1;}

.pm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;}

/* ── PM entry-point strip on the WO Queue (refined utility) ─────────
   One glanceable row that summarises contract portfolio status and
   links into the PM Contracts sub-page. Calm navy by default; takes
   amber/red on the left stripe when any contract needs attention. */
.pm-strip{
  display:flex;align-items:stretch;gap:0;
  background:#FFFFFF;border:1px solid #E4E6EB;border-left:3px solid #1E3A8A;
  border-radius:10px;box-shadow:0 1px 0 rgba(15,23,42,.02);
  padding:11px 14px;margin-bottom:22px;
  font-family:'Geist','Geist Sans',system-ui,sans-serif;
  text-decoration:none;color:inherit;cursor:pointer;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.pm-strip:hover{border-color:#CBD5E1;box-shadow:0 1px 0 rgba(15,23,42,.02), 0 8px 20px -14px rgba(15,23,42,.18);}
.pm-strip.is-atrisk  {border-left-color:#D97706;}
.pm-strip.is-critical{border-left-color:#B91C1C;}
body.dark .pm-strip{background:#10151F;border-color:#1F2937;}
body.dark .pm-strip:hover{border-color:#27313F;}

.pm-strip-l{display:flex;flex-direction:column;justify-content:center;flex:1;min-width:0;gap:7px;}
.pm-strip-eyebrow{display:inline-flex;align-items:center;gap:6px;
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:#64748B;}
body.dark .pm-strip-eyebrow{color:#94A3B8;}
.pm-strip-eyebrow::before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:#1E3A8A;}
.pm-strip.is-atrisk   .pm-strip-eyebrow::before{background:#D97706;}
.pm-strip.is-critical .pm-strip-eyebrow::before{background:#B91C1C;}
.pm-strip-headline{font-size:14.5px;font-weight:500;color:#0B0F19;
  display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;letter-spacing:-.005em;}
body.dark .pm-strip-headline{color:#E5E7EB;}
.pm-strip-headline .num{font-weight:600;font-variant-numeric:tabular-nums;}
.pm-strip-headline .sub{font-weight:400;color:#64748B;font-variant-numeric:tabular-nums;}
body.dark .pm-strip-headline .sub{color:#94A3B8;}
.pm-strip-meter{display:flex;height:3px;border-radius:99px;overflow:hidden;background:#EEF1F4;max-width:560px;}
body.dark .pm-strip-meter{background:#1F2937;}
.pm-strip-meter > span{display:block;}
.pm-strip-meter .seg-fulfilled{background:#16A34A;}
.pm-strip-meter .seg-ontrack  {background:#1E3A8A;}
.pm-strip-meter .seg-atrisk   {background:#D97706;}
.pm-strip-meter .seg-critical {background:#B91C1C;}
.pm-strip-r{display:flex;align-items:center;gap:14px;padding-left:16px;margin-left:16px;border-left:1px solid #EEF1F4;}
body.dark .pm-strip-r{border-left-color:#1F2937;}
.pm-strip-stats{display:flex;gap:14px;}
.pm-strip-stat{display:flex;flex-direction:column;align-items:flex-end;gap:3px;}
.pm-strip-stat .n{font-size:18px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums;color:#0B0F19;letter-spacing:-.01em;}
body.dark .pm-strip-stat .n{color:#E5E7EB;}
.pm-strip-stat .l{font-family:'Geist Mono',ui-monospace,monospace;font-size:9.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#64748B;}
body.dark .pm-strip-stat .l{color:#94A3B8;}
.pm-strip-stat.is-fulfilled .n{color:#16A34A;}
.pm-strip-stat.is-atrisk    .n{color:#D97706;}
.pm-strip-stat.is-critical  .n{color:#B91C1C;}
.pm-strip-go{width:28px;height:28px;border-radius:50%;border:1px solid #E4E6EB;background:#FFFFFF;
  display:grid;place-items:center;color:#94A3B8;
  transition:transform .15s ease, border-color .15s ease, color .15s ease, background .15s ease;}
body.dark .pm-strip-go{background:#0F141C;border-color:#1F2937;color:#64748B;}
.pm-strip:hover .pm-strip-go{transform:translateX(2px);color:#1E3A8A;border-color:#1E3A8A;background:rgba(30,58,138,.06);}
body.dark .pm-strip:hover .pm-strip-go{color:#93C5FD;border-color:#3B5BDB;background:rgba(59,91,219,.10);}

@media (max-width:680px){
  .pm-strip{flex-direction:column;}
  .pm-strip-r{padding-left:0;margin-left:0;margin-top:10px;padding-top:10px;border-left:0;border-top:1px solid #EEF1F4;justify-content:space-between;}
  body.dark .pm-strip-r{border-top-color:#1F2937;}
}

/* ── PM Contracts sub-page header ─────────────────────────────────── */
.pm-sub-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  padding:0 0 16px;border-bottom:1px solid #EEF1F4;margin-bottom:18px;
  font-family:'Geist','Geist Sans',system-ui,sans-serif;}
body.dark .pm-sub-head{border-bottom-color:#1F2937;}
.pm-crumbs{display:flex;align-items:center;gap:7px;
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10.5px;color:#64748B;text-transform:uppercase;letter-spacing:.18em;margin-bottom:8px;}
body.dark .pm-crumbs{color:#94A3B8;}
.pm-crumbs a, .pm-crumbs .pm-crumb-link{color:#64748B;text-decoration:none;display:inline-flex;align-items:center;gap:5px;
  border-bottom:1px dashed transparent;padding-bottom:1px;
  transition:color .12s, border-color .12s;
  background:none;border-top:0;border-left:0;border-right:0;
  font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;padding:0 0 1px;}
body.dark .pm-crumbs a, body.dark .pm-crumbs .pm-crumb-link{color:#94A3B8;}
.pm-crumbs a:hover, .pm-crumbs .pm-crumb-link:hover{color:#0B0F19;border-bottom-color:#CBD5E1;}
body.dark .pm-crumbs a:hover, body.dark .pm-crumbs .pm-crumb-link:hover{color:#E5E7EB;border-bottom-color:#27313F;}
.pm-crumbs .sep{opacity:.55;}
.pm-crumbs .here{color:#0B0F19;}
body.dark .pm-crumbs .here{color:#E5E7EB;}
.pm-sub-title{font-size:24px;font-weight:600;letter-spacing:-.015em;margin:0;color:#0B0F19;line-height:1.1;}
body.dark .pm-sub-title{color:#E5E7EB;}
.pm-sub-summary{font-size:12.5px;color:#64748B;margin-top:5px;font-variant-numeric:tabular-nums;}
body.dark .pm-sub-summary{color:#94A3B8;}
.pm-sub-summary b{color:#0B0F19;font-weight:600;}
body.dark .pm-sub-summary b{color:#E5E7EB;}
.pm-sub-summary .warn{color:#D97706;font-weight:600;}
.pm-sub-summary .crit{color:#B91C1C;font-weight:600;}
.pm-sub-actions{display:flex;align-items:center;gap:8px;}

@media (max-width:680px){
  .pm-sub-head{flex-direction:column;align-items:flex-start;}
  .pm-sub-title{font-size:20px;}
}

/* PM modal form niceties */
.pm-form .field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;}
.pm-form .field-label{font-size:11px;font-weight:700;letter-spacing:.45px;text-transform:uppercase;color:var(--txt-muted);}
.pm-form .field-input,.pm-form .field-textarea{font:inherit;border:1px solid var(--line);border-radius:6px;padding:9px 11px;background:#fff;color:var(--txt);width:100%;}
body.dark .pm-form .field-input,body.dark .pm-form .field-textarea{background:rgba(148,163,184,.04);}
.pm-form .field-input:focus,.pm-form .field-textarea:focus{outline:none;border-color:#1E3A8A;box-shadow:0 0 0 3px rgba(30,58,138,.12);}
.pm-form .field-input.mono{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;letter-spacing:.3px;}
.pm-form .field-textarea{resize:vertical;min-height:70px;}
.pm-form .field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.pm-form .field-help{font-size:11px;color:var(--txt-muted);margin-top:2px;}

@media (max-width:560px){
  .pm-grid{grid-template-columns:1fr;}
  .pm-form .field-row{grid-template-columns:1fr;}
}

/* ─── QUOTES (Phase 3 — merged in from QuoteRequest) ──────────────────────── */
/* Per-status bullets for quote tiles now live in the shared .stat block
   above. Quote-specific overrides only here. */

.qtoolbar{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  background:#FFFFFF;border:1px solid #E4E6EB;border-radius:12px;
  padding:10px 12px;margin-bottom:12px;
  position:sticky;top:8px;z-index:4;
  box-shadow:0 1px 0 rgba(15,23,42,.02);
}
body.dark .qtoolbar{background:#10151F;border-color:#1F2937;}
.qtoolbar-search{position:relative;flex:1 1 240px;min-width:200px;}
.qtoolbar-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:#94A3B8;pointer-events:none;}
.qtoolbar-search input{
  width:100%;background:#FFFFFF;border:1px solid #E4E6EB;border-radius:8px;
  padding:8px 12px 8px 32px;font-family:'Geist',sans-serif;font-size:13px;color:#0B0F19;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.qtoolbar-search input:focus{outline:none;border-color:#1E3A8A;box-shadow:0 0 0 3px rgba(30,58,138,.12);}
body.dark .qtoolbar-search input{background:#0F1623;border-color:#27313F;color:#E5E7EB;}
body.dark .qtoolbar-search input::placeholder{color:#64748B;}
.qtoolbar select{
  appearance:none;
  background:#FFFFFF url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path d='M2 3.5L5 6.5L8 3.5' stroke='%2364748B' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 10px center;
  border:1px solid #E4E6EB;border-radius:8px;padding:8px 28px 8px 12px;
  font-family:'Geist',sans-serif;font-size:13px;color:#0B0F19;cursor:pointer;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.qtoolbar select:focus{outline:none;border-color:#1E3A8A;box-shadow:0 0 0 3px rgba(30,58,138,.12);}
body.dark .qtoolbar select{background-color:#0F1623;border-color:#27313F;color:#E5E7EB;}
.qtoolbar-spacer{flex:1 1 auto;}

.qtable-wrap{background:#FFFFFF;border:1px solid #E4E6EB;border-radius:14px;overflow:auto;box-shadow:0 1px 0 rgba(15,23,42,.02);}
body.dark .qtable-wrap{background:#10151F;border-color:#1F2937;}
.qtable{width:100%;border-collapse:collapse;font-family:'Geist',sans-serif;font-size:13px;color:#0B0F19;}
body.dark .qtable{color:#E5E7EB;}
.qtable thead th{
  font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:#64748B;background:#F8FAFC;
  text-align:left;padding:11px 14px;border-bottom:1px solid #E4E6EB;white-space:nowrap;
}
body.dark .qtable thead th{background:#0F1623;color:#94A3B8;border-bottom-color:#1F2937;}
.qtable td{padding:11px 14px;border-bottom:1px solid #EEF0F3;vertical-align:middle;white-space:nowrap;}
body.dark .qtable td{border-bottom-color:#1A2030;}
.qtable tbody tr{transition:background .10s ease;cursor:pointer;}
.qtable tbody tr:hover{background:#F8FAFC;}
body.dark .qtable tbody tr:hover{background:#0F1623;}
.qtable tbody tr:nth-child(4n+1){background:#FBFCFD;}
body.dark .qtable tbody tr:nth-child(4n+1){background:#0E1421;}
.qtable tbody tr:last-child td{border-bottom:none;}
.qtable .num{text-align:right;font-variant-numeric:tabular-nums;}
.qtable .ref{font-family:'Geist Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.06em;color:#475569;}
body.dark .qtable .ref{color:#94A3B8;}
.qtable .customer{font-weight:500;color:#0B0F19;}
body.dark .qtable .customer{color:#E5E7EB;}
.qtable .customer .email{display:block;font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;letter-spacing:.04em;color:#94A3B8;font-weight:400;margin-top:2px;}
.qtable .summary{color:#475569;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
body.dark .qtable .summary{color:#94A3B8;}
.qtable .age{color:#64748B;font-variant-numeric:tabular-nums;}
.qtable .age.old{color:#92400E;font-weight:500;}
body.dark .qtable .age.old{color:#FCD34D;}
.qtable .empty{padding:42px 14px;text-align:center;color:#94A3B8;font-size:13px;cursor:default;}

.qpill{display:inline-flex;align-items:center;gap:6px;font-family:'Geist',sans-serif;
  font-size:11px;font-weight:500;padding:3px 9px 3px 8px;border-radius:999px;border:1px solid transparent;white-space:nowrap;}
.qpill::before{content:"";width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.qpill[data-status="new"]{background:#F1F5F9;color:#475569;border-color:#E2E8F0;}
.qpill[data-status="new"]::before{background:#94A3B8;}
.qpill[data-status="in_progress"]{background:#FFFBEB;color:#92400E;border-color:#FEF3C7;}
.qpill[data-status="in_progress"]::before{background:#D97706;}
.qpill[data-status="quoted"]{background:rgba(30,58,138,.08);color:#1E3A8A;border-color:rgba(30,58,138,.18);}
.qpill[data-status="quoted"]::before{background:#1E3A8A;}
.qpill[data-status="accepted"]{background:#ECFDF5;color:#065F46;border-color:#D1FAE5;}
.qpill[data-status="accepted"]::before{background:#059669;}
.qpill[data-status="declined"]{background:#FEF2F2;color:#991B1B;border-color:#FECACA;}
.qpill[data-status="declined"]::before{background:#DC2626;}
.qpill[data-status="work_complete"]{background:#E7EAF4;color:#1E3A8A;border-color:#c8d1ed;}
.qpill[data-status="work_complete"]::before{background:#1E3A8A;}
.qpill[data-status="cancelled"]{background:#F1F5F9;color:#64748B;border-color:#E2E8F0;}
.qpill[data-status="cancelled"]::before{background:#64748B;}
body.dark .qpill[data-status="new"]{background:#1A2230;color:#CBD5E1;border-color:#27313F;}
body.dark .qpill[data-status="new"]::before{background:#64748B;}
body.dark .qpill[data-status="in_progress"]{background:#2A1F0F;color:#FCD34D;border-color:#3E2D14;}
body.dark .qpill[data-status="in_progress"]::before{background:#F59E0B;}
body.dark .qpill[data-status="quoted"]{background:rgba(96,165,250,.10);color:#93C5FD;border-color:rgba(96,165,250,.24);}
body.dark .qpill[data-status="quoted"]::before{background:#60A5FA;}
body.dark .qpill[data-status="accepted"]{background:#0E2820;color:#6EE7B7;border-color:#15402F;}
body.dark .qpill[data-status="accepted"]::before{background:#10B981;}
body.dark .qpill[data-status="declined"]{background:#2C1517;color:#FCA5A5;border-color:#42191D;}
body.dark .qpill[data-status="declined"]::before{background:#EF4444;}
body.dark .qpill[data-status="work_complete"]{background:rgba(96,165,250,.10);color:#93C5FD;border-color:rgba(96,165,250,.24);}
body.dark .qpill[data-status="work_complete"]::before{background:#60A5FA;}
body.dark .qpill[data-status="cancelled"]{background:#1A2230;color:#94A3B8;border-color:#27313F;}
body.dark .qpill[data-status="cancelled"]::before{background:#64748B;}

/* Detail view */
.qdetail-back{
  display:inline-flex;align-items:center;gap:6px;font-family:'Geist',sans-serif;
  font-size:13px;color:#475569;text-decoration:none;
  margin:18px 0 12px;padding:6px 10px;border-radius:8px;border:1px solid transparent;
  cursor:pointer;background:transparent;
  transition:color .14s ease, border-color .14s ease, background .14s ease;
}
.qdetail-back:hover{color:#1E3A8A;border-color:#E4E6EB;background:#FFFFFF;}
body.dark .qdetail-back{color:#94A3B8;}
body.dark .qdetail-back:hover{color:#93C5FD;border-color:#27313F;background:#10151F;}

.qdetail-actionbar{
  background:#FFFFFF;border:1px solid #E4E6EB;border-radius:14px;
  padding:14px 18px;display:flex;flex-wrap:wrap;align-items:center;gap:14px;
  margin-bottom:14px;box-shadow:0 1px 0 rgba(15,23,42,.02);
}
body.dark .qdetail-actionbar{background:#10151F;border-color:#1F2937;}
.qdetail-id{display:flex;flex-direction:column;gap:3px;padding-right:18px;border-right:1px solid #EEF0F3;}
body.dark .qdetail-id{border-right-color:#1F2937;}
.qdetail-id .ref{font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;font-weight:500;letter-spacing:.20em;text-transform:uppercase;color:#64748B;}
body.dark .qdetail-id .ref{color:#94A3B8;}
.qdetail-id .name{font-family:'Geist',sans-serif;font-size:16px;font-weight:600;color:#0B0F19;letter-spacing:-.005em;}
body.dark .qdetail-id .name{color:#E5E7EB;}

.qstatus-control,.qamount-control{display:flex;align-items:center;gap:8px;}
.qstatus-control label,.qamount-control label{font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#64748B;}
body.dark .qstatus-control label,body.dark .qamount-control label{color:#94A3B8;}
.qstatus-control select{
  appearance:none;
  background:#FFFFFF url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path d='M2 3.5L5 6.5L8 3.5' stroke='%2364748B' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 10px center;
  border:1px solid #E4E6EB;border-radius:8px;padding:7px 28px 7px 11px;
  font-family:'Geist',sans-serif;font-size:13px;color:#0B0F19;cursor:pointer;
}
.qstatus-control select:focus{outline:none;border-color:#1E3A8A;box-shadow:0 0 0 3px rgba(30,58,138,.12);}
body.dark .qstatus-control select{background-color:#0F1623;border-color:#27313F;color:#E5E7EB;}
.qamount-input{position:relative;}
.qamount-input::before{content:"$";position:absolute;left:11px;top:50%;transform:translateY(-50%);font-family:'Geist Mono',ui-monospace,monospace;font-size:12px;color:#94A3B8;font-weight:500;}
.qamount-input input{
  width:120px;background:#FFFFFF;border:1px solid #E4E6EB;border-radius:8px;
  padding:7px 12px 7px 22px;font-family:'Geist',sans-serif;font-size:13px;
  font-variant-numeric:tabular-nums;color:#0B0F19;
}
.qamount-input input:focus{outline:none;border-color:#1E3A8A;box-shadow:0 0 0 3px rgba(30,58,138,.12);}
body.dark .qamount-input input{background:#0F1623;border-color:#27313F;color:#E5E7EB;}
.qaction-spacer{flex:1 1 auto;}

.qbtn{
  appearance:none;cursor:pointer;font-family:'Geist',sans-serif;font-size:13px;font-weight:500;
  padding:8px 14px;border-radius:8px;display:inline-flex;align-items:center;gap:7px;
  transition:background .14s ease, border-color .14s ease, color .14s ease, transform .06s ease;
  letter-spacing:-.005em;
}
.qbtn:active{transform:translateY(.5px);}
.qbtn[disabled]{opacity:.55;cursor:not-allowed;transform:none;}
.qbtn-primary{background:#1E3A8A;color:#FFFFFF;border:1px solid #1E3A8A;}
.qbtn-primary:hover{background:#1E40AF;border-color:#1E40AF;}
body.dark .qbtn-primary{background:#3B5BDB;border-color:#3B5BDB;}
body.dark .qbtn-primary:hover{background:#4F6FE3;border-color:#4F6FE3;}
.qbtn-ghost{background:#FFFFFF;color:#475569;border:1px solid #E4E6EB;}
.qbtn-ghost:hover{color:#0B0F19;border-color:#1E3A8A;background:rgba(30,58,138,.04);}
body.dark .qbtn-ghost{background:#10151F;color:#94A3B8;border-color:#27313F;}
body.dark .qbtn-ghost:hover{color:#E5E7EB;border-color:#60A5FA;background:rgba(96,165,250,.06);}
.qbtn-danger{background:#FFFFFF;color:#991B1B;border:1px solid #FECACA;}
.qbtn-danger:hover{background:#FEF2F2;border-color:#DC2626;color:#7F1D1D;}
body.dark .qbtn-danger{background:#10151F;color:#FCA5A5;border-color:#42191D;}
body.dark .qbtn-danger:hover{background:#2C1517;border-color:#EF4444;}

.qdetail-grid{display:grid;grid-template-columns:minmax(0, 1.05fr) minmax(0, 1fr);gap:14px;}
@media (max-width:1100px){.qdetail-grid{grid-template-columns:1fr;}}

.qcard{background:#FFFFFF;border:1px solid #E4E6EB;border-radius:14px;box-shadow:0 1px 0 rgba(15,23,42,.02);}
body.dark .qcard{background:#10151F;border-color:#1F2937;}
.qcard-h{
  padding:14px 18px;border-bottom:1px solid #EEF0F3;
  display:flex;align-items:center;justify-content:space-between;
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:#64748B;
}
body.dark .qcard-h{border-bottom-color:#1F2937;color:#94A3B8;}
.qcard-h .meta{font-family:'Geist',sans-serif;font-size:11px;font-weight:500;letter-spacing:0;text-transform:none;color:#94A3B8;}
.qcard-body{padding:18px;}

.qfields{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 22px;}
.qfield-label{font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#64748B;margin-bottom:5px;}
body.dark .qfield-label{color:#94A3B8;}
.qfield-value{font-family:'Geist',sans-serif;font-size:14px;color:#0B0F19;line-height:1.45;}
body.dark .qfield-value{color:#E5E7EB;}
.qfield-value.mono{font-family:'Geist Mono',ui-monospace,monospace;font-size:12px;letter-spacing:.04em;color:#475569;}
body.dark .qfield-value.mono{color:#94A3B8;}
.qfield--full{grid-column:1 / -1;}
.qfield-prose{font-size:14px;color:#0B0F19;line-height:1.6;white-space:pre-wrap;}
body.dark .qfield-prose{color:#E5E7EB;}

.qsep{height:1px;background:#EEF0F3;margin:18px 0;border:0;}
body.dark .qsep{background:#1F2937;}

.qphoto-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.qphoto{
  aspect-ratio:1 / 1;border-radius:10px;border:1px solid #E4E6EB;
  background-size:cover;background-position:center;background-color:#F8FAFC;
  position:relative;overflow:hidden;cursor:zoom-in;
  transition:transform .15s ease, border-color .15s ease;
}
.qphoto:hover{border-color:#1E3A8A;}
body.dark .qphoto{border-color:#1F2937;background-color:#0F1623;}
body.dark .qphoto:hover{border-color:#60A5FA;}

.qthread{display:flex;flex-direction:column;gap:14px;padding:18px;max-height:520px;overflow-y:auto;}
.qthread-msg{display:flex;flex-direction:column;gap:6px;max-width:82%;}
.qthread-msg.from-mgr{align-self:flex-end;align-items:flex-end;}
.qthread-meta{display:flex;align-items:center;gap:8px;font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#64748B;}
body.dark .qthread-meta{color:#94A3B8;}
.qthread-meta .name{color:#0B0F19;letter-spacing:.10em;}
body.dark .qthread-meta .name{color:#CBD5E1;}
.qthread-msg.from-mgr .qthread-meta .name{color:#1E3A8A;}
body.dark .qthread-msg.from-mgr .qthread-meta .name{color:#93C5FD;}
.qbubble{background:#F8FAFC;border:1px solid #E4E6EB;border-radius:12px;padding:11px 14px;font-size:13.5px;line-height:1.5;color:#0B0F19;white-space:pre-wrap;}
body.dark .qbubble{background:#0F1623;border-color:#1F2937;color:#E5E7EB;}
.qthread-msg.from-mgr .qbubble{background:rgba(30,58,138,.06);border-color:rgba(30,58,138,.18);color:#0B0F19;}
body.dark .qthread-msg.from-mgr .qbubble{background:rgba(96,165,250,.10);border-color:rgba(96,165,250,.24);color:#E5E7EB;}
.qthread-empty{text-align:center;color:#94A3B8;font-size:12px;padding:32px 0;}

.qthread-input{display:flex;gap:8px;padding:14px 18px;border-top:1px solid #EEF0F3;}
body.dark .qthread-input{border-top-color:#1F2937;}
.qthread-input textarea{
  flex:1 1 auto;background:#FFFFFF;border:1px solid #E4E6EB;border-radius:10px;
  padding:9px 12px;font-family:'Geist',sans-serif;font-size:13.5px;line-height:1.5;
  resize:none;min-height:40px;max-height:160px;color:#0B0F19;
}
.qthread-input textarea:focus{outline:none;border-color:#1E3A8A;box-shadow:0 0 0 3px rgba(30,58,138,.12);}
body.dark .qthread-input textarea{background:#0F1623;border-color:#27313F;color:#E5E7EB;}

.qnotes{
  background:#FFFCF5;border:1px solid #FDE7BD;border-left:3px solid #D97706;
  border-radius:14px;margin-top:14px;
  box-shadow:0 1px 0 rgba(15,23,42,.02);overflow:hidden;
}
body.dark .qnotes{background:#1F1A0E;border-color:#3E2D14;border-left-color:#F59E0B;}
.qnotes-h{padding:11px 18px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #FDE7BD;}
body.dark .qnotes-h{border-bottom-color:#3E2D14;}
.qnotes-label{font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#92400E;display:inline-flex;align-items:center;gap:8px;}
body.dark .qnotes-label{color:#FCD34D;}
.qnotes-label::before{content:"";width:6px;height:6px;border-radius:50%;background:#D97706;flex-shrink:0;}
body.dark .qnotes-label::before{background:#F59E0B;}
.qnotes-sub{font-family:'Geist Mono',ui-monospace,monospace;font-size:9px;font-weight:500;letter-spacing:.20em;text-transform:uppercase;color:#B45309;}
body.dark .qnotes-sub{color:#D97706;}
.qnotes-list{padding:14px 18px;display:flex;flex-direction:column;gap:12px;}
.qnotes-empty{padding:18px;text-align:center;color:#B45309;font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;}
body.dark .qnotes-empty{color:#D97706;}
.qnote-item{background:rgba(255,255,255,0.6);border:1px solid rgba(217,119,6,.18);border-radius:10px;padding:10px 12px;}
body.dark .qnote-item{background:rgba(0,0,0,.20);border-color:rgba(245,158,11,.20);}
.qnote-meta{display:flex;align-items:center;gap:8px;font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#92400E;margin-bottom:4px;}
body.dark .qnote-meta{color:#D97706;}
.qnote-body{font-family:'Geist',sans-serif;font-size:13px;color:#451A03;line-height:1.5;white-space:pre-wrap;}
body.dark .qnote-body{color:#FEF3C7;}
.qnotes-input{padding:0 18px 14px;display:flex;gap:8px;}
.qnotes-input textarea{
  flex:1 1 auto;background:#FFFFFF;border:1px solid #FDE7BD;border-radius:10px;
  padding:9px 12px;font-family:'Geist',sans-serif;font-size:13px;line-height:1.5;
  resize:none;min-height:38px;max-height:160px;color:#0B0F19;
}
.qnotes-input textarea:focus{outline:none;border-color:#D97706;box-shadow:0 0 0 3px rgba(217,119,6,.16);}
body.dark .qnotes-input textarea{background:#0F0A03;border-color:#3E2D14;color:#FEF3C7;}
.qbtn-note{background:#D97706;color:#FFFFFF;border:1px solid #D97706;}
.qbtn-note:hover{background:#B45309;border-color:#B45309;}
body.dark .qbtn-note{background:#F59E0B;border-color:#F59E0B;color:#1F1A0E;}
body.dark .qbtn-note:hover{background:#FCD34D;border-color:#FCD34D;}

/* Submission form */
.qform-wrap{max-width:760px;margin:24px auto 0;}
.qform-head{margin-bottom:24px;text-align:left;}
.qform-head h2{font-family:'Geist',sans-serif;font-weight:600;font-size:24px;letter-spacing:-.015em;margin:0 0 4px;color:#0B0F19;}
body.dark .qform-head h2{color:#E5E7EB;}
.qform-head p{font-size:14px;color:#475569;margin:0;}
body.dark .qform-head p{color:#94A3B8;}
.qform-card{background:#FFFFFF;border:1px solid #E4E6EB;border-radius:14px;padding:28px 30px 24px;
  box-shadow:0 1px 0 rgba(15,23,42,.02), 0 6px 18px -14px rgba(15,23,42,.18);}
body.dark .qform-card{background:#10151F;border-color:#1F2937;}
.qform-section{display:flex;flex-direction:column;gap:18px;}
.qform-section + .qform-section{margin-top:22px;padding-top:22px;border-top:1px solid #EEF0F3;}
body.dark .qform-section + .qform-section{border-top-color:#1F2937;}
.qform-section-title{font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:#64748B;display:inline-flex;align-items:center;gap:8px;margin-bottom:6px;}
body.dark .qform-section-title{color:#94A3B8;}
.qform-section-title::before{content:"";width:6px;height:6px;border-radius:50%;background:#1E3A8A;flex-shrink:0;}
body.dark .qform-section-title::before{background:#60A5FA;}

.qfield2{display:flex;flex-direction:column;gap:6px;}
.qfield2 label{font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#6B7280;display:inline-flex;align-items:center;gap:7px;}
body.dark .qfield2 label{color:#94A3B8;}
.qfield2 .req{color:#1E3A8A;font-weight:600;}
body.dark .qfield2 .req{color:#60A5FA;}
/* The .req class is also used by the password-requirements panel where
   ::before draws a status dot. Suppress it here — in the quote form,
   .req is just the asterisk marking a required field. */
.qfield2 .req::before{content:none;}
.qfield2 input,.qfield2 textarea,.qfield2 select{
  background:#FFFFFF;border:1px solid #E4E6EB;border-radius:8px;padding:10px 13px;
  font-family:'Geist',sans-serif;font-size:14px;font-weight:400;color:#0B0F19;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.qfield2 textarea{resize:vertical;min-height:100px;line-height:1.5;}
.qfield2 input:focus,.qfield2 textarea:focus,.qfield2 select:focus{outline:none;border-color:#1E3A8A;box-shadow:0 0 0 3px rgba(30,58,138,.12);}
body.dark .qfield2 input,body.dark .qfield2 textarea,body.dark .qfield2 select{background:#0F1623;border-color:#27313F;color:#E5E7EB;}
.qfield2-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.qfield2-row3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
@media (max-width:640px){.qfield2-row,.qfield2-row3{grid-template-columns:1fr;}}
.qfield2 select{
  appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path d='M2 3.5L5 6.5L8 3.5' stroke='%2364748B' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat;background-position:right 12px center;padding-right:34px;
}

.qdrop{
  border:1.5px dashed #CBD5E1;border-radius:12px;padding:28px 20px;text-align:center;
  background:#F8FAFC;cursor:pointer;transition:border-color .15s ease, background .15s ease;
}
.qdrop:hover{border-color:#1E3A8A;background:rgba(30,58,138,.04);}
.qdrop.is-active{border-color:#1E3A8A;background:rgba(30,58,138,.06);}
body.dark .qdrop{background:#0F1623;border-color:#334155;}
body.dark .qdrop:hover{border-color:#60A5FA;background:rgba(96,165,250,.06);}
.qdrop-title{font-family:'Geist',sans-serif;font-size:14px;font-weight:500;color:#0B0F19;margin-bottom:4px;}
body.dark .qdrop-title{color:#E5E7EB;}
.qdrop-sub{font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#94A3B8;}
.qdrop-thumbs{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;}
.qdrop-thumb{aspect-ratio:1/1;border-radius:8px;border:1px solid #E4E6EB;background-size:cover;background-position:center;position:relative;}
.qdrop-thumb-x{
  position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:6px;
  background:rgba(11,15,25,.85);color:#FFFFFF;border:0;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  font-family:'Geist',sans-serif;font-size:11px;font-weight:500;
}
.qdrop-thumb-x:hover{background:#0B0F19;}

.qform-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;padding-top:18px;border-top:1px solid #EEF0F3;}
body.dark .qform-actions{border-top-color:#1F2937;}
.qform-error{margin-top:14px;padding:10px 14px;border-radius:10px;background:#FEF2F2;border:1px solid #FECACA;color:#991B1B;font-family:'Geist',sans-serif;font-size:13px;}
body.dark .qform-error{background:#2C1517;border-color:#42191D;color:#FCA5A5;}

/* ── Pricing Workbench ─────────────────────────────────────────────────── */
/* Replaces the old "Linked Parts Orders" cards on the manager's draft invoice
   view. Lives in #pwb-mount, populated async by _loadPricingWorkbench(). */
.pwb-skeleton{padding:14px;border:1px dashed var(--bdr);border-radius:var(--r);color:var(--txt-muted);font-size:13px;background:var(--surf2);}
.pwb{
  background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);
  box-shadow:var(--card-shadow);overflow:hidden;
}
.pwb-hdr{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:12px 14px;border-bottom:1px solid var(--bdr);background:var(--surf2);
}
.pwb-title{font-family:var(--fh);font-size:16px;font-weight:700;flex-shrink:0;margin:0;}
.pwb-acct{
  font-family:var(--fm);font-size:11px;color:var(--blue);
  background:#E7EAF4;padding:3px 9px;border-radius:99px;border:1px solid #c8d1ed;
}
body.dark .pwb-acct{background:rgba(96,165,250,.12);border-color:rgba(96,165,250,.25);}
.pwb-tag{
  font-family:var(--fm);font-size:9px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  padding:3px 9px;border-radius:99px;
}
.pwb-tag-strict{background:var(--amber-bg);color:#8a5c00;border:1px solid var(--amber-lo);}
body.dark .pwb-tag-strict{color:#FFB347;}
.pwb-summary{
  margin-left:auto;font-size:12px;color:var(--txt-dim);
  font-family:var(--fm);letter-spacing:.02em;
}
.pwb-summary b{color:var(--txt);font-weight:500;}
.pwb-sep{color:var(--bdr2);margin:0 6px;}
.pwb-warn{color:var(--red);font-weight:500;}

.pwb-grid{width:100%;border-collapse:collapse;font-size:13px;}
.pwb-grid thead th{
  font-family:var(--fb);font-size:10px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--txt-muted);
  padding:9px 10px;text-align:left;border-bottom:1px solid var(--bdr);
  background:var(--surf2);white-space:nowrap;
}
.pwb-grid thead th.pwb-c-num,
.pwb-grid thead th.pwb-c-edit{text-align:right;}
.pwb-grid tbody tr{transition:background .15s;}
.pwb-grid tbody tr:hover{background:var(--surf2);}
.pwb-grid tbody tr.sel{background:#fff8e7;}
.pwb-grid tbody tr.sel:hover{background:#fff3cd;}
body.dark .pwb-grid tbody tr.sel{background:rgba(255,153,0,.08);}
body.dark .pwb-grid tbody tr.sel:hover{background:rgba(255,153,0,.14);}
.pwb-grid tbody tr.blocked{opacity:.55;}
.pwb-grid td{padding:10px;border-bottom:1px solid var(--bdr);vertical-align:middle;}
.pwb-grid tbody tr:last-child td{border-bottom:0;}
.pwb-c-inc{width:32px;}
.pwb-c-inc input{width:15px;height:15px;accent-color:var(--blue);cursor:pointer;}
.pwb-name{font-weight:600;color:var(--txt);}
.pwb-qty{font-family:var(--fm);font-size:11px;color:var(--txt-dim);margin-top:2px;}
.pwb-qty b{color:var(--txt);font-weight:500;}
.pwb-c-num{text-align:right;font-family:var(--fm);font-variant-numeric:tabular-nums;white-space:nowrap;}
.pwb-lbl{
  display:block;font-family:var(--fb);font-size:9px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--txt-muted);margin-bottom:2px;font-weight:700;
}
.pwb-vendor{color:var(--txt-dim);font-size:13px;}
.pwb-total{color:var(--green);font-size:14px;font-weight:500;}
.pwb-c-edit{text-align:right;width:120px;}
.pwb-c-edit input{
  width:100px;padding:5px 8px;text-align:right;
  font-family:var(--fm);font-variant-numeric:tabular-nums;font-size:14px;
  background:var(--surf);border:1px solid var(--bdr2);border-radius:var(--r);
  color:var(--txt);outline:none;transition:border-color .15s,box-shadow .15s;
}
.pwb-c-edit input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,113,133,.15);}
.pwb-c-edit input.pwb-dirty{border-color:var(--amber);background:#fffaee;}
body.dark .pwb-c-edit input.pwb-dirty{background:rgba(255,153,0,.06);}

/* Markup chip */
.pwb-mu{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--fm);font-size:10px;font-weight:500;
  letter-spacing:.04em;padding:4px 9px;border-radius:99px;
  border:1px solid transparent;white-space:nowrap;
}
.pwb-mu-rule{font-size:9px;color:var(--txt-muted);text-transform:uppercase;letter-spacing:.18em;}
.pwb-mu-pct{font-size:10px;font-weight:600;}
.pwb-mu-contract{background:#E7EAF4;border-color:#c8d1ed;color:var(--blue);}
.pwb-mu-contract .pwb-mu-rule{color:rgba(0,113,133,.6);}
.pwb-mu-tier{background:var(--surf2);border-color:var(--bdr);color:var(--txt-dim);}
body.dark .pwb-mu-contract{background:rgba(0,168,201,.10);border-color:rgba(0,168,201,.25);color:#80E2F0;}

/* Receipt link */
.pwb-rcp{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--fm);font-size:11px;color:var(--blue);
  cursor:pointer;padding:4px 8px 4px 4px;border-radius:var(--r);
  transition:background .15s,transform .15s;
}
.pwb-rcp:hover{background:#E7EAF4;transform:translateY(-1px);}
body.dark .pwb-rcp:hover{background:rgba(0,168,201,.10);}
.pwb-rcp-thumb{
  width:28px;height:34px;border:1px solid var(--bdr2);border-radius:2px;background:#fff;
  background-image:linear-gradient(180deg,transparent 0,transparent 5px,
    var(--bdr) 5px,var(--bdr) 6px,transparent 6px,transparent 11px,
    var(--bdr) 11px,var(--bdr) 12px,transparent 12px,transparent 17px,
    var(--bdr) 17px,var(--bdr) 18px,transparent 18px,transparent 23px,
    var(--bdr) 23px,var(--bdr) 24px);
  background-size:100% 100%;flex-shrink:0;
  box-shadow:0 1px 2px rgba(0,0,0,.05);transition:transform .2s;
  position:relative;
}
.pwb-rcp:hover .pwb-rcp-thumb{transform:scale(1.08);}
.pwb-rcp-thumb::after{
  content:"PDF";position:absolute;bottom:-1px;right:-1px;
  background:var(--red);color:#fff;font-size:6px;font-weight:700;
  padding:1px 3px;border-radius:1px;letter-spacing:.06em;
}
.pwb-rcp-missing{font-family:var(--fm);font-size:11px;color:var(--red);}
.pwb-rcp-none{font-family:var(--fm);font-size:11px;color:var(--txt-muted);}

/* Footer */
.pwb-foot{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:12px 14px;border-top:1px solid var(--bdr);background:var(--surf2);
}
.pwb-totals{
  display:flex;align-items:center;gap:20px;font-size:12px;color:var(--txt-dim);
  font-family:var(--fm);letter-spacing:.02em;
}
.pwb-totals .pwb-v{font-family:var(--fm);font-variant-numeric:tabular-nums;}
.pwb-totals b{color:var(--txt);font-weight:500;}
.pwb-totals .pwb-sum{font-size:14px;font-weight:600;color:var(--green);}
.pwb-actions{margin-left:auto;display:flex;gap:8px;}

/* ── Diagnostic-fee yes/no toggle (manager invoice edit) ───────────────── */
.diag-toggle{
  display:inline-flex;
  border:1px solid var(--bdr2);border-radius:var(--r);overflow:hidden;
  margin-right:8px;
}
.diag-btn{
  appearance:none;background:transparent;border:0;border-right:1px solid var(--bdr2);
  padding:4px 14px;cursor:pointer;
  font-family:var(--fb);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--txt-dim);transition:background .12s,color .12s;min-width:46px;
}
.diag-btn:last-child{border-right:0;}
.diag-btn:hover{background:var(--surf2);color:var(--txt);}
.diag-btn.active.yes{background:#067D62;color:#fff;}
.diag-btn.active.no{background:#94A3B8;color:#fff;}
body.dark .diag-btn{color:var(--txt-dim);}
body.dark .diag-btn:hover{background:var(--surf2);color:var(--txt);}
.diag-unset{
  color:var(--red);font-style:italic;font-size:11px;font-weight:600;
}
.diag-needs-answer{
  background:rgba(177,39,4,.10);
  animation:diagPulse 1.4s ease-in-out 2;
}
@keyframes diagPulse{
  0%,100%{background:rgba(177,39,4,.10);}
  50%{background:rgba(177,39,4,.22);}
}

/* ── Pricing-workbench billed-status chips ──────────────────────────── */
.pwb-billed-chip,
.pwb-avail-chip{
  display:inline-block; margin-left:8px; vertical-align:middle;
  font-family:var(--fm); font-size:9px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  padding:2px 8px; border-radius:99px; border:1px solid transparent;
}
.pwb-avail-chip{
  color:var(--green); background:var(--green-bg); border-color:var(--green-lo);
}
.pwb-billed-chip{
  color:var(--txt-muted); background:var(--surf2); border-color:var(--bdr);
}

/* ── Provenance badge on auto-filled invoice line items ─────────────── */
.inv-prov-badge{
  display:inline-block; margin-left:6px; vertical-align:middle;
  font-family:'Geist Mono',ui-monospace,monospace; font-size:9px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  padding:2px 7px; border-radius:99px;
  background:#E7EAF4; color:#1E3A8A; border:1px solid #c8d1ed;
  white-space:nowrap;
}
body.dark .inv-prov-badge{
  background:rgba(96,165,250,.10); color:#93C5FD; border-color:rgba(96,165,250,.25);
}

/* ── Parts-writeoffs analytics section ─────────────────────────────── */
.wo-strip{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));
  border:1px solid var(--bdr); border-radius:var(--r);
  background:var(--surf); margin-bottom:6px;
}
.wo-stat{
  padding:14px 18px; position:relative; border-right:1px solid var(--bdr);
}
.wo-stat:last-child{border-right:0;}
.wo-stat::before{
  content:""; position:absolute; left:18px; right:18px; top:0; height:1px;
  background:var(--red); opacity:.5;
}
.wo-stat-n{
  font-family:'Geist',sans-serif; font-variant-numeric:tabular-nums;
  font-size:22px; font-weight:500; letter-spacing:-.02em; line-height:1; color:var(--red);
}
.wo-stat-l{
  font-family:'Geist Mono',ui-monospace,monospace; font-size:9px; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase; color:#64748B; margin-top:8px;
}
.wo-tbl{
  width:100%; border-collapse:collapse; font-size:13px; background:var(--surf);
  border:1px solid var(--bdr); border-radius:var(--r); overflow:hidden;
}
.wo-tbl thead th{
  font-family:var(--fb); font-size:10px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--txt-muted);
  padding:8px 10px; text-align:left; background:var(--surf2);
  border-bottom:1px solid var(--bdr);
}
.wo-tbl tbody td{padding:7px 10px; border-bottom:1px solid var(--bdr);}
.wo-tbl tbody tr:last-child td{border-bottom:0;}
.wo-tbl tbody tr:hover{background:var(--surf2);}
.wo-tbl .num{
  text-align:right; font-family:'Geist Mono',ui-monospace,monospace;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.wo-tbl .mono{font-family:'Geist Mono',ui-monospace,monospace; font-size:12px;}
.wo-empty{
  padding:18px; text-align:center; color:var(--txt-muted); font-size:13px; font-style:italic;
  border:1px dashed var(--bdr); border-radius:var(--r); background:var(--surf2);
}

/* ── WO queue: view toggle + table view ─────────────────────────────── */
.woq-viewbar{
  display:flex;align-items:center;gap:8px;
  margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--bdr);
}
.view-toggle{
  display:inline-flex;
  border:1px solid var(--bdr2);border-radius:var(--r);overflow:hidden;
  background:var(--surf);
}
.view-btn{
  appearance:none;background:transparent;border:0;border-right:1px solid var(--bdr2);
  padding:6px 12px;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--fb);font-size:11px;font-weight:600;letter-spacing:.04em;
  color:var(--txt-dim);transition:background .12s,color .12s;
}
.view-btn:last-child{border-right:0;}
.view-btn:hover{background:var(--surf2);color:var(--txt);}
.view-btn.active{background:var(--blue);color:#fff;}
.view-btn.active svg{stroke:#fff;}
body.dark .view-btn{color:var(--txt-dim);}
body.dark .view-btn:hover{background:var(--surf2);color:var(--txt);}

.woq-tbl{
  width:100%;border-collapse:collapse;font-size:13px;
  background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);
  overflow:hidden;box-shadow:var(--card-shadow);
}
.woq-tbl thead th{
  font-family:var(--fb);font-size:10px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--txt-muted);
  padding:9px 12px;text-align:left;border-bottom:1px solid var(--bdr);
  background:var(--surf2);white-space:nowrap;
}
.woq-tbl tbody td{padding:10px 12px;border-bottom:1px solid var(--bdr);vertical-align:middle;}
.woq-tbl tbody tr:last-child td{border-bottom:0;}
.woq-tbl tbody tr{transition:background .12s;}
.woq-tbl tbody tr:hover{background:var(--surf2);}
.woq-tbl .mono{font-family:'Geist Mono',ui-monospace,monospace;font-size:12px;}
.woq-tbl .woq-c-wo{cursor:pointer;color:var(--txt);font-weight:600;}
.woq-tbl .woq-c-addr{
  color:var(--txt-dim);max-width:300px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;
}
.woq-tbl .woq-c-assigned{color:var(--txt-dim);}
.woq-tbl .woq-c-sched{color:var(--txt-dim);}
.woq-tbl .woq-c-status{white-space:nowrap;}
.woq-tbl .woq-c-actions{
  text-align:right;white-space:nowrap;
  display:flex;gap:4px;justify-content:flex-end;flex-wrap:wrap;
}
.woq-tbl .woq-tr-dim{opacity:.7;}
.woq-tbl .woq-tr-followup{box-shadow:inset 3px 0 0 var(--red);}
.woq-tbl .woq-tr-scheduled{box-shadow:inset 3px 0 0 var(--blue);}
.woq-tbl .woq-tr-completed{box-shadow:inset 3px 0 0 var(--green);}

/* ── WO queue invoice-count chip + invoice sibling chip ─────────────── */
.wo-inv-count{
  display:inline-block; margin-left:6px; vertical-align:middle;
  font-family:'Geist Mono',ui-monospace,monospace; font-size:10px; font-weight:600;
  letter-spacing:.04em;
  padding:2px 8px; border-radius:99px;
  background:var(--blue-bg); color:var(--blue); border:1px solid var(--blue-lo);
  white-space:nowrap;
}
body.dark .wo-inv-count{background:rgba(0,168,201,.10); color:#80E2F0; border-color:rgba(0,168,201,.25);}

.inv-sibling-chip{
  display:inline-block; margin-left:6px; vertical-align:middle;
  font-family:'Geist Mono',ui-monospace,monospace; font-size:9px; font-weight:600;
  letter-spacing:.10em;
  padding:1px 6px; border-radius:99px;
  background:var(--amber-bg); color:#8a5c00; border:1px solid var(--amber-lo);
  white-space:nowrap;
}
body.dark .inv-sibling-chip{color:#FFB347;}

.inv-table tr.inv-sibling-row td:first-child{
  box-shadow:inset 3px 0 0 var(--amber);
}

/* ── Manager quote-detail editable contact fields ─────────────────────── */
.qfield-edit{
  width:100%;background:var(--surf);
  border:1px solid #E4E6EB;border-radius:6px;
  padding:7px 10px;font-family:'Geist Mono',ui-monospace,monospace;font-size:13px;
  color:var(--txt);outline:none;transition:border-color .12s,box-shadow .12s;
}
.qfield-edit:hover{border-color:#1E3A8A;}
.qfield-edit:focus{border-color:#1E3A8A;box-shadow:0 0 0 3px rgba(30,58,138,.12);}
.qfield-edit:disabled{background:var(--surf2);color:var(--txt-muted);cursor:not-allowed;}
body.dark .qfield-edit{background:#0F1623;border-color:#27313F;color:#E5E7EB;}
body.dark .qfield-edit:focus{border-color:#60A5FA;box-shadow:0 0 0 3px rgba(96,165,250,.12);}
.qfield-edit-area{
  font-family:'Geist',sans-serif;font-size:13.5px;line-height:1.5;
  resize:vertical;min-height:60px;
}
