/* ==========================================================================
   MilesBuyer Operations Dashboard — "Daylight" design system
   One light theme, defined once, applied everywhere. No dark surfaces.
   Chart categorical palette (CVD-validated order, always direct-labeled):
   #2a78d6 #eb6834 #1baf7a #eda100 #e87ba4 #008300 #4a3aa7 #e34948
   ========================================================================== */

:root{
  color-scheme:light;
  /* surfaces */
  --bg:#f3f5f9;
  --surface:#ffffff;
  --surface-2:#f8fafc;
  --surface-3:#eef2f7;
  /* ink */
  --ink:#101828;
  --ink-2:#344054;
  --muted:#5f6f84;
  --faint:#8a99ad;
  /* lines */
  --line:#e4e9f0;
  --line-strong:#cfd8e3;
  /* accent */
  --accent:#3d52d5;
  --accent-strong:#2c3eb0;
  --accent-soft:#eef1fd;
  --accent-line:#c7cff4;
  /* semantic */
  --green-ink:#146c43;
  --green-bg:#e7f6ee;
  --green-line:#b8e2ca;
  --amber-ink:#92500a;
  --amber-bg:#fdf3e1;
  --amber-line:#f0d9a8;
  --red-ink:#b3261e;
  --red-bg:#fdecec;
  --red-line:#f3c3c0;
  --info-ink:#175b8f;
  --info-bg:#e9f3fb;
  --info-line:#bcd9ef;
  /* chart series */
  --s1:#2a78d6; --s2:#eb6834; --s3:#1baf7a; --s4:#eda100;
  --s5:#e87ba4; --s6:#008300; --s7:#4a3aa7; --s8:#e34948;
  /* geometry */
  --r-card:16px;
  --r-ctl:10px;
  --shadow-1:0 1px 2px rgba(16,24,40,.05);
  --shadow-2:0 1px 3px rgba(16,24,40,.06),0 8px 24px rgba(16,24,40,.06);
  --shadow-pop:0 12px 32px rgba(16,24,40,.16);
  --font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-display:"Iowan Old Style",Palatino,Georgia,ui-serif,serif;
  font-family:var(--font);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 14px/1.5 var(--font)}
a{color:inherit}
::selection{background:var(--accent-soft);color:var(--accent-strong)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}

h1,h2,h3{margin:0;color:var(--ink)}
h1{font-family:var(--font-display);font-weight:600;font-size:clamp(26px,3vw,38px);line-height:1.08;letter-spacing:-.02em;text-wrap:balance}
h2{font-family:var(--font-display);font-weight:600;font-size:21px;line-height:1.15;letter-spacing:-.015em}
h3{font-size:15px;font-weight:700}
p{margin:.4em 0}
small{font-size:12px}
code{padding:2px 6px;border-radius:6px;background:var(--surface-3);font-size:12px}
.muted{color:var(--muted)}
.large-copy{font-size:16px;color:var(--ink-2);max-width:64ch}
.eyebrow{margin:0 0 4px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.hidden{display:none!important}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* ---------------------------------------------------------------- shell -- */
.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
main,.inventory-main,.customer-ledger-main,.sales-form-main,.vendor-detail-main{min-width:0;padding:22px 26px 48px}
.sidebar{position:sticky;top:0;z-index:30;height:100vh;overflow:auto;padding:20px 14px;background:var(--surface);border-right:1px solid var(--line)}
.brand{display:flex;gap:11px;align-items:center;margin:2px 6px 22px;text-decoration:none}
.logo{width:38px;height:38px;flex:none;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),#6a7ce8);color:#fff;font-weight:800;font-size:15px;letter-spacing:.02em;box-shadow:var(--shadow-1)}
.brand strong{display:block;font-size:14.5px;letter-spacing:-.01em}
.brand span{display:block;font-size:11px;color:var(--muted)}
nav{display:grid;gap:2px}
.module-nav a{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 8px auto;gap:8px;align-items:center;padding:8px 10px;border-radius:9px;text-decoration:none;color:var(--ink-2);font-weight:600;font-size:13px;transition:background .12s ease,color .12s ease}
.module-nav a:hover{background:var(--surface-2);color:var(--ink)}
.module-nav a.active{background:var(--accent-soft);color:var(--accent-strong)}
.module-nav a.active:before{content:"";position:absolute;left:-14px;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}
.nav-label{min-width:0;line-height:1.2}
.readiness-dot{width:7px;height:7px;border-radius:999px;background:var(--line-strong)}
.nav-status.ready .readiness-dot,.module-nav a[data-tone="live"] .readiness-dot{background:#12b76a}
.nav-status.not-ready .readiness-dot,.module-nav a[data-tone="error"] .readiness-dot{background:#f04438}
.module-nav a[data-tone="empty"] .readiness-dot{background:#8b5cf6}
.readiness-text{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);white-space:nowrap}
.nav-status.ready .readiness-text,.module-nav a[data-tone="live"] .readiness-text{color:#0f8a58}
.nav-status.not-ready .readiness-text,.module-nav a[data-tone="error"] .readiness-text{color:var(--red-ink)}
.role-card{margin-top:20px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.role-card span{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.role-card small{display:block;color:var(--muted);margin-top:6px;line-height:1.45}
.role-card select{width:100%;margin-top:8px}

.topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:2px 0 18px;flex-wrap:wrap}

/* ------------------------------------------------------------- sections -- */
.section{position:relative;margin:0 0 18px;padding:20px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-1)}
.section.no-top{margin-top:0}
.section-heading{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.section-heading h2{margin:0}
.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.grid-two>*,.inventory-layout>*,.inventory-flight-layout>*{min-width:0}
.full-span{grid-column:1/-1}
.stack{display:grid;gap:10px}
.panel{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.placeholder-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:12px}

.readiness-banner{display:flex;justify-content:space-between;gap:10px 16px;align-items:center;flex-wrap:wrap;margin:0 0 18px;padding:12px 16px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-weight:700}
.readiness-banner span{font-weight:500;color:var(--muted);overflow-wrap:anywhere}
.readiness-banner.ready{background:var(--green-bg);border-color:var(--green-line);color:var(--green-ink)}
.readiness-banner.ready span{color:#2b6a4c}
.readiness-banner.not-ready{background:var(--red-bg);border-color:var(--red-line);color:var(--red-ink)}
.readiness-banner.not-ready span{color:#a04a45}
.card-readiness{display:inline-flex!important;margin:4px 0 8px;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.card-readiness.ready{background:var(--green-bg);color:var(--green-ink)}
.card-readiness.not-ready{background:var(--red-bg);color:var(--red-ink)}

/* ------------------------------------------------------ pills & statuses -- */
.status,.tag,.live-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:3px 9px;font-size:11.5px;font-weight:600;background:var(--surface-2);color:var(--ink-2);line-height:1.25}
.status.ok,.live-pill.ok{background:var(--green-bg);border-color:var(--green-line);color:var(--green-ink)}
.status.warn,.live-pill.warn,.status.sale{background:var(--amber-bg);border-color:var(--amber-line);color:var(--amber-ink)}
.status.bad,.live-pill.bad,.status.danger,.status.risk{background:var(--red-bg);border-color:var(--red-line);color:var(--red-ink)}
.status.neutral{background:var(--surface-3);color:var(--muted)}
.tag.info{background:var(--info-bg);border-color:var(--info-line);color:var(--info-ink);white-space:normal;line-height:1.3}
tr[class*="queue-status-blocked"] td:first-child,tr[class*="queue-status-rejected"] td:first-child{box-shadow:inset 3px 0 0 var(--s8)}
tr[class*="queue-status-purchased"] td:first-child{box-shadow:inset 3px 0 0 var(--s1)}
tr[class*="queue-status-completed"] td:first-child{box-shadow:inset 3px 0 0 #12b76a}
tr[class*="queue-status-working"] td:first-child,tr[class*="queue-status-pending"] td:first-child{box-shadow:inset 3px 0 0 var(--s4)}
.queue-row.source-inventory{box-shadow:inset 3px 0 0 #79d3a6}
.queue-row.source-street{box-shadow:inset 3px 0 0 var(--s4)}
.queue-row.source-waitlist{box-shadow:inset 3px 0 0 var(--s1)}
.queue-table .risk{display:block;margin-top:6px;font-size:11px;font-weight:700}
.queue-table .risk.bad{color:var(--red-ink)}
.queue-table .risk.warn{color:var(--amber-ink)}
.queue-table .risk.ok{color:var(--green-ink)}

/* --------------------------------------------------------------- buttons -- */
button{font-family:inherit}
.button-link,.form-actions button[type="submit"],.search-card button,.import-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 16px;border:0;border-radius:var(--r-ctl);background:var(--accent);color:#fff;font-weight:600;font-size:13px;text-decoration:none;cursor:pointer;transition:background .12s ease;box-shadow:var(--shadow-1)}
.button-link:hover,.form-actions button[type="submit"]:hover,.search-card button:hover{background:var(--accent-strong)}
.button-link.secondary,.form-actions button[type="button"],.spreadsheet-action-toolbar button,.inventory-grid-toolbar button,.icon-button,.inventory-hero-link,.mini-action-link,.history-button,.ap-edit-button,.queue-action,.queue-actions button,.statement-row-button,.statement-row-link,.invoice-pdf-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);background:var(--surface);color:var(--ink-2);font-weight:600;font-size:12.5px;text-decoration:none;cursor:pointer;transition:background .12s ease,border-color .12s ease}
.button-link.secondary:hover,.form-actions button[type="button"]:hover,.spreadsheet-action-toolbar button:hover,.inventory-grid-toolbar button:hover,.mini-action-link:hover,.history-button:hover,.queue-action:hover,.queue-actions button:hover,.statement-row-button:hover,.invoice-pdf-button:hover{background:var(--surface-2);border-color:var(--faint)}
.mini-action-link,.history-button{min-height:26px;padding:0 8px;font-size:11.5px;border-radius:7px}
.icon-button{min-height:30px;min-width:30px;padding:0;font-size:16px;border-radius:8px;line-height:1}
.queue-action.danger{border-color:var(--red-line);background:var(--red-bg);color:var(--red-ink)}
.payment-button,.finance-table .payment-button,.customer-mark-paid,.approve-admin,.queue-table .admin-actions button.approve-admin{border:0;border-radius:999px;background:#16a34a;color:#fff;font-weight:700;font-size:12.5px;padding:7px 14px;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-1);transition:background .12s ease}
.payment-button:hover,.customer-mark-paid:hover,.approve-admin:hover{background:#118a3f}
.payment-button:disabled{background:var(--line-strong);color:var(--muted);cursor:not-allowed;box-shadow:none}
button:disabled{opacity:.55;cursor:not-allowed}
.inventory-share-cta,.request-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent-strong);font-weight:700;font-size:12.5px;text-decoration:none;transition:background .12s ease;white-space:nowrap}
.inventory-share-cta:hover,.request-link:hover{background:#e2e7fb}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.invoice-open-inline{display:block;margin-top:6px;color:var(--accent-strong);font-weight:700;text-decoration:none;font-size:12px}
.invoice-open-inline:hover{text-decoration:underline}

/* ----------------------------------------------------------------- forms -- */
input,select,textarea{font-family:inherit;font-size:13.5px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:9px 11px;transition:border-color .12s ease,box-shadow .12s ease}
input::placeholder,textarea::placeholder{color:var(--faint)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
input[type="checkbox"],input[type="radio"]{width:15px;height:15px;padding:0;margin:0;flex:none;accent-color:var(--accent)}
label{font-size:12px;font-weight:600;color:var(--ink-2)}
textarea{resize:vertical}

.sales-rep-form,.queue-edit-grid,.mark-sold-form-grid,.manual-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.vendor-form,.vendor-edit-form{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:13px;align-items:end}
.vendor-form .form-wide,.vendor-form .form-actions,.vendor-edit-form .form-wide{grid-column:1/-1}
.sales-rep-form label,.queue-edit-grid label,.mark-sold-form-grid label,.manual-form-grid label,.vendor-form label,.vendor-edit-form label,.import-form label{display:grid;gap:6px;min-width:0;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.sales-rep-form input,.sales-rep-form select,.sales-rep-form textarea,
.queue-edit-grid input,.queue-edit-grid select,.queue-edit-grid textarea,
.mark-sold-form-grid input,.mark-sold-form-grid select,.mark-sold-form-grid textarea,
.manual-form-grid input,.manual-form-grid select,
.vendor-form input,.vendor-form textarea,.vendor-edit-form input,.vendor-edit-form textarea{width:100%;font-size:14px;text-transform:none;letter-spacing:0}
.form-wide{grid-column:1/-1}
.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.inline-add-control{display:flex;gap:8px}
.inline-add-control input{flex:1;min-width:0}
.inline-add-control button{flex:none;min-height:36px;padding:0 12px;border:1px solid var(--accent-line);border-radius:var(--r-ctl);background:var(--accent-soft);color:var(--accent-strong);font-weight:700;cursor:pointer}
.sales-form-preview,.queue-form-preview{margin-top:4px;padding:13px 15px;border:1px solid var(--info-line);border-radius:12px;background:var(--info-bg);color:var(--info-ink);font-weight:600;font-size:13px}
.sales-form-preview.ok,.queue-form-preview.ok{border-color:var(--green-line);background:var(--green-bg);color:var(--green-ink)}
.sales-form-preview.warn,.queue-form-preview.warn{border-color:var(--amber-line);background:var(--amber-bg);color:var(--amber-ink)}
.sales-form-preview.bad,.queue-form-preview.bad{border-color:var(--red-line);background:var(--red-bg);color:var(--red-ink)}
.sales-form-preview small,.queue-form-preview small{display:block;margin-top:6px;font-weight:500}
.sales-form-review-note{padding:12px 14px;border:1px solid var(--info-line);border-radius:12px;background:var(--info-bg);color:var(--info-ink);font-weight:600;line-height:1.4;font-size:13px}
.sales-form-review-note.warn{border-color:var(--amber-line);background:var(--amber-bg);color:var(--amber-ink)}
.sales-rep-workflow-page [data-source-field][hidden]{display:none!important}
.secure-import-note,.dedupe-hint,.filter-hint{font-size:12px;color:var(--muted)}
.dedupe-hint{display:inline-flex;margin-top:6px;padding:4px 8px;border-radius:999px;background:var(--amber-bg);color:var(--amber-ink);font-weight:700;font-size:11px}
.dedupe-warning-row td{background:#fdf8ec!important}
.street-no-inventory-guard{padding:12px 14px;border:1px solid var(--amber-line);border-radius:12px;background:var(--amber-bg);color:var(--amber-ink);font-size:13px}

/* ---------------------------------------------------------- search/filters */
.search-card{display:flex;gap:8px;min-width:0}
.search-card input{flex:1;min-width:0}
/* Reset clears the operator's filters — it is a secondary action, so it should not
   outrank the search field or the primary actions further down the page. */
.search-card button{min-height:38px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);box-shadow:none;flex:0 0 auto}
.search-card button:hover{background:var(--surface-2);border-color:var(--faint)}
.inventory-controls{display:grid;grid-template-columns:minmax(240px,1.4fr) repeat(3,minmax(130px,1fr));gap:10px;align-items:end}
.inventory-controls label,.manifest-controls label,.founder-os-controls label{display:grid;gap:5px;min-width:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.inventory-controls input,.inventory-controls select,.manifest-controls input,.manifest-controls select,.founder-os-controls input,.founder-os-controls select{width:100%;min-width:0;font-size:13.5px;text-transform:none;letter-spacing:0}
.manifest-controls{display:grid;grid-template-columns:minmax(280px,1.6fr) repeat(4,minmax(120px,1fr));gap:10px;align-items:end}
.founder-os-controls{display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(3,minmax(140px,1fr));gap:10px;align-items:end;margin:14px 0}
.sales-queue-page .founder-os-controls{grid-template-columns:minmax(260px,1.6fr) repeat(5,minmax(118px,1fr))}
.customer-accounts-page .founder-os-controls{grid-template-columns:minmax(240px,1.6fr) repeat(3,minmax(150px,.8fr)) minmax(160px,.8fr)}

/* multi-select lens menus */
.lens-check-menu{position:relative;min-width:0}
.lens-menu-toggle{display:grid;gap:3px;width:100%;text-align:left;padding:7px 11px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);background:var(--surface);cursor:pointer;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.lens-menu-toggle span{display:block;font-size:12.5px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lens-menu-toggle:hover{border-color:var(--faint)}
.lens-check-menu.open .lens-menu-toggle{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.lens-menu-panel{position:absolute;z-index:40;top:calc(100% + 6px);left:0;min-width:220px;max-height:280px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-pop)}
.lens-check-menu:not(.open) .lens-menu-panel{display:none}
label.lens-check-option,.lens-check-option{display:flex;gap:8px;align-items:center;min-height:32px;max-height:40px;padding:5px 9px;border-radius:8px;font-size:13px;cursor:pointer;text-transform:none;letter-spacing:0;font-weight:500;color:var(--ink)}
.lens-check-option input{width:15px;height:15px;padding:0;flex:none}
.lens-check-option span{min-width:0;line-height:1.3}
.lens-check-option:hover{background:var(--surface-2)}
.lens-empty{padding:8px;color:var(--muted);font-size:12.5px}
.dynamic-lens-panel{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.dynamic-lens-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px;flex-wrap:wrap}
.dynamic-lens-title{display:flex;min-width:0;padding-left:11px;border-left:3px solid var(--accent)}
.dynamic-lens-title>div{display:grid;gap:2px;min-width:0}
.dynamic-lens-title span{font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}
.dynamic-lens-title strong{font-size:12.5px;color:var(--muted);font-weight:500;line-height:1.35}
.dynamic-lens-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:7px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted);font-size:12px;font-weight:600}
.dynamic-lens-meta strong{color:var(--ink)}
.dynamic-lens-chips{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.lens-chip{display:inline-flex;align-items:center;gap:7px;min-height:28px;padding:4px 10px;border:1px solid var(--accent-line);border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:12px;font-weight:600}
.lens-chip b{color:var(--accent);font-size:9.5px;text-transform:uppercase;letter-spacing:.07em}
.lens-chip.muted-chip{background:var(--surface);border-color:var(--line);color:var(--muted)}
.removable-lens-chip{cursor:pointer}
.removable-lens-chip span{display:inline-grid;place-items:center;width:16px;height:16px;margin-left:2px;border-radius:999px;background:#dfe4fa;color:var(--accent-strong);font-weight:800}
.removable-lens-chip:hover{border-color:var(--red-line);background:var(--red-bg);color:var(--red-ink)}
.removable-lens-chip:hover span{background:#f6d3d0;color:var(--red-ink)}
.portfolio-filter-deck{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.filter-deck-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0 0 10px;flex-wrap:wrap}
.filter-deck-heading span{font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}
.filter-deck-heading strong{font-size:12.5px;color:var(--muted);font-weight:500}

/* ------------------------------------------------------------------ KPIs -- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.kpi{position:relative;display:grid;gap:3px;align-content:start;min-width:0;padding:14px 15px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-1)}
/* A number the underlying data cannot fully support. */
.kpi-caution{border-color:var(--amber-line);background:var(--amber-bg)}
.kpi-caution small{color:var(--amber-ink);font-weight:600}
.kpi span{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.kpi strong{display:block;margin:2px 0;font-size:clamp(21px,1.8vw,27px);font-weight:650;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.kpi small{display:block;color:var(--faint);font-size:11.5px;line-height:1.3}
.loading-kpi strong{color:var(--faint)}
.compact-kpis .kpi strong{font-size:clamp(19px,1.6vw,24px)}
.inventory-instrument-grid .kpi:after{display:none;content:none}

/* ---------------------------------------------------------------- tables -- */
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface);scrollbar-gutter:stable}
table{border-collapse:separate;border-spacing:0;width:100%}
th{position:sticky;top:0;z-index:2;background:var(--surface-2);color:var(--muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:9px 11px;border-bottom:1px solid var(--line);line-height:1.25}
td{padding:10px 11px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:top;font-variant-numeric:tabular-nums;line-height:1.35}
tbody tr:last-child td{border-bottom:0}
tbody tr{transition:background .1s ease}
tbody tr:hover{background:#f6f8fe}
td small{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.3;overflow-wrap:anywhere}
td strong{font-weight:650}
.num-cell,.commission-cell{text-align:right;white-space:nowrap}
.commission-cell strong{display:block}
.commission-cell small{display:block;font-size:11px}
.loading-row{color:var(--muted);height:52px}
.program-name-cell strong{font-size:13.5px}
.header-sort-button{border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-transform:inherit;letter-spacing:inherit}
.header-sort-button:hover{color:var(--ink)}
.inventory-table{min-width:1180px}
.inventory-table tbody tr{cursor:pointer}
.inventory-table th:first-child,.inventory-table td:first-child{position:sticky;left:0;z-index:1;background:var(--surface);box-shadow:1px 0 0 var(--line)}
.inventory-table th:first-child{z-index:3;background:var(--surface-2)}
.inventory-table tbody tr:hover td:first-child{background:#f6f8fe}
.inventory-table tbody tr.needs-review-row td:first-child{box-shadow:inset 3px 0 0 var(--s8),1px 0 0 var(--line)}
.inventory-table tbody tr.clean-row td:first-child{box-shadow:inset 3px 0 0 #79d3a6,1px 0 0 var(--line)}
.inventory-table-wrap{max-height:680px;overflow:auto;overscroll-behavior:contain}
.spreadsheet-table-wrap{max-height:72vh;overflow:auto;resize:vertical;min-height:320px}
.spreadsheet-inventory-table{min-width:1680px;table-layout:fixed}
.spreadsheet-inventory-table th,.spreadsheet-inventory-table td{padding:8px 9px;font-size:12.5px;white-space:normal;overflow:hidden;text-overflow:ellipsis}
.spreadsheet-inventory-table th{white-space:nowrap;padding-right:18px}
.spreadsheet-inventory-table th:nth-child(1),.spreadsheet-inventory-table td:nth-child(1){width:150px}
.spreadsheet-inventory-table th:nth-child(2),.spreadsheet-inventory-table td:nth-child(2){width:120px}
.spreadsheet-inventory-table th:nth-child(4),.spreadsheet-inventory-table td:nth-child(4){width:120px}
.spreadsheet-inventory-table th:nth-child(5),.spreadsheet-inventory-table td:nth-child(5){width:180px}
.spreadsheet-inventory-table th:nth-child(14),.spreadsheet-inventory-table td:nth-child(14){width:250px}
.spreadsheet-inventory-table th:nth-child(15),.spreadsheet-inventory-table td:nth-child(15){width:130px}
.spreadsheet-inventory-table .available-cell strong{color:var(--green-ink)}
/* Founder preference (encoded in tests): spreadsheet desk first column scrolls with the sheet — no pinning */
.spreadsheet-inventory-table th:first-child,.spreadsheet-inventory-table td:first-child{position:static;left:auto;box-shadow:none}
.spreadsheet-inventory-table th:first-child{position:sticky;left:auto;top:0}
.spreadsheet-sticky-cell{position:sticky;left:0;background:var(--surface)}
.column-resizer{position:absolute;top:0;right:0;width:10px;height:100%;padding:0;border:0;border-radius:0;background:transparent;cursor:col-resize}
.column-resizer:after{content:"";position:absolute;top:8px;bottom:8px;left:4px;width:2px;border-radius:99px;background:var(--line-strong)}
.column-resizer:hover:after,.column-resizer:focus-visible:after{background:var(--accent)}
.draft-row td{background:#fdfaf0}
.sheet-draft-input{width:100%;min-width:76px;font-size:12.5px;padding:6px 8px}
.sheet-blue{color:var(--info-ink)}
/* Usually holds the constant "Credentials redacted"; a 180px floor pushed the money
   columns off-screen. Let longer notes wrap instead of reserving the width up front. */
.user-pass-cell{min-width:96px;max-width:150px;white-space:normal;overflow-wrap:anywhere}
.notes-cell span{display:block;max-width:230px;overflow:hidden;text-overflow:ellipsis}
.inventory-notes-cell{min-width:230px}
.inventory-note-input{width:100%;min-width:180px;font-size:12px;padding:6px 8px}
.note-actions{display:flex;align-items:center;gap:8px;margin-top:6px}
.save-note-button{min-height:26px;padding:3px 9px;font-size:11px;border:1px solid var(--accent-line);border-radius:7px;background:var(--accent-soft);color:var(--accent-strong);font-weight:700;cursor:pointer}
.save-note-button:hover{background:#e2e7fb}
.action-cell{display:flex;gap:6px;flex-wrap:wrap}
.mark-sold-button{min-height:28px;padding:0 10px;font-size:11.5px;border:0;border-radius:8px;background:var(--accent);color:#fff;font-weight:700;cursor:pointer}
.mark-sold-button:hover{background:var(--accent-strong)}
.mark-sold-button:disabled{background:var(--line-strong);color:var(--muted)}
.finance-actions,.queue-actions,.admin-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.queue-actions{min-width:200px}
.account-holder-table{min-width:1260px}
.queue-table{min-width:1420px}
.queue-table th:first-child,.queue-table td:first-child{min-width:250px;max-width:320px}
.queue-table td:first-child small{max-height:76px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}
/* Was pinned to 1560px while the 15 columns only need ~1320px of content — the extra
   240px was empty padding that pushed Profit/Buyer/Rep off-screen. */
.sales-sheet-table{min-width:1320px}
.sales-sheet-table td{white-space:normal}
/* The sheet still scrolls sideways on a laptop, so keep the date anchored: without it
   you lose track of which sale a row belongs to once you scroll to Profit. */
.sales-sheet-table thead th:first-child,.sales-sheet-table tbody td:first-child{position:sticky;left:0;z-index:2;background:var(--surface);box-shadow:1px 0 0 var(--line)}
.sales-sheet-table thead th:first-child{z-index:3;background:var(--surface-2)}
.finance-table{min-width:1000px}
.vendors-table{min-width:1120px}
.vendor-history-table{max-height:360px;overflow:auto}
.vendor-history-table .inventory-table{min-width:860px}
.customer-table{min-width:880px}
.customer-invoice-detail-table{min-width:1100px}
.finance-table a,.vendor-mini a{color:var(--accent-strong);text-decoration:none}
.finance-table a:hover,.vendor-mini a:hover{text-decoration:underline}
.vendor-detail-link{font-weight:650;color:var(--accent-strong);text-decoration:none}
.vendor-detail-link:hover{text-decoration:underline}

/* spreadsheet toolbar + selection */
.inventory-grid-toolbar,.spreadsheet-action-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 10px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);font-size:12.5px}
.inventory-grid-toolbar span,.spreadsheet-action-toolbar span{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}
.inventory-grid-toolbar strong,.spreadsheet-action-toolbar strong{font-weight:500;color:var(--muted);margin-right:auto}
.inventory-grid-toolbar button[data-state="loading"]{opacity:.7;cursor:wait}
.inventory-grid-toolbar button[data-state="ok"]{background:var(--green-bg);border-color:var(--green-line);color:var(--green-ink)}
.inventory-grid-toolbar button[data-state="error"]{background:var(--red-bg);border-color:var(--red-line);color:var(--red-ink)}
.selection-sum-box{display:flex;gap:4px 14px;flex-wrap:wrap;margin:0 0 10px;padding:8px 12px;border:1px dashed var(--line-strong);border-radius:10px;background:var(--surface);color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}

/* ------------------------------------------------------------ layout grids */
.inventory-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.inventory-layout-full,.inventory-flight-layout{grid-template-columns:minmax(0,1fr)}
.insight-panel,.inventory-tower-panel{position:sticky;top:18px}
/* The sales sheets are 15-column tables that need ~1560px on their own. Pairing them
   with the 320px readout rail below that width hid half the columns behind a scrollbar,
   so stack instead: readout first as a strip, then the table at full width. */
@media (max-width:1599px){
  .sales-os-page .inventory-layout{grid-template-columns:minmax(0,1fr)}
  .sales-os-page .inventory-layout .insight-panel{position:static;order:-1}
  .sales-os-page .inventory-layout .insight-panel .stack{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
}
.insight-card{padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.insight-card strong{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--accent)}
.insight-card p{margin:5px 0 2px;font-size:14px;font-weight:600;color:var(--ink);line-height:1.35;overflow-wrap:anywhere}
.insight-card small{color:var(--muted);line-height:1.35}
.lead-mini{padding:9px 0;border-bottom:1px solid var(--line)}
.lead-mini:last-child{border-bottom:0}
.margin-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.margin-row:last-child{border-bottom:0}
.margin-row small{display:block;margin-top:3px}
.detail-box{padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.detail-box h3{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:6px}
.program-detail{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.linked-records{display:grid;gap:6px;font-size:12px}
.vendor-mini{padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:12.5px}
.vendor-mini strong,.vendor-mini small{display:block}
.vendor-mini small{margin-top:3px;color:var(--muted);line-height:1.35;overflow-wrap:anywhere}
.timeline-row{padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);margin:8px 0;font-size:12.5px}
.timeline-row strong,.timeline-row small{display:block}
.timeline-row.sale{border-color:var(--green-line);background:var(--green-bg)}
.timeline-row.movement{border-color:var(--info-line);background:var(--info-bg)}
.movement{font-size:12px;color:var(--muted)}

/* ------------------------------------------------- founder studio / hero -- */
.founder-inventory-studio{margin:0 0 18px;padding:20px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-1)}
.founder-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap;margin-bottom:6px}
.founder-heading h2,#founderWidgetsTitle{font-size:clamp(22px,2.4vw,30px)}
.founder-snapshot{min-width:190px;padding:12px 15px;border:1px solid var(--green-line);border-radius:14px;background:var(--green-bg);text-align:right}
.founder-snapshot span,.founder-snapshot small{display:block;color:#3d7a5c;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.founder-snapshot strong{display:block;font-size:29px;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--green-ink);white-space:nowrap}
.founder-snapshot small{text-transform:none;letter-spacing:0;font-weight:500;font-size:11.5px;color:#4c8266}
.inventory-share-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.founder-decision-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));gap:12px;margin:16px 0 2px}
.founder-decision-card{position:relative;display:grid;gap:5px;align-content:start;min-width:0;min-height:112px;padding:14px 15px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.founder-decision-card span{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.founder-decision-card strong{display:block;margin:2px 0;font-size:clamp(17px,1.4vw,21px);font-weight:650;line-height:1.2;color:var(--ink);text-wrap:balance;overflow-wrap:anywhere}
.founder-decision-card.cash strong,.founder-decision-card.sell strong,.founder-decision-card.fix strong{font-variant-numeric:tabular-nums}
.founder-decision-card small{display:block;color:var(--muted);line-height:1.35}
.founder-decision-card:after{content:"";position:absolute;left:15px;bottom:10px;width:26px;height:3px;border-radius:99px;background:var(--accent-line)}
.founder-decision-card.fix:after,.founder-decision-card.risk:after{background:var(--s8)}
.founder-action-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:14px}
.founder-action-card{display:grid;gap:5px;align-content:start;min-width:0;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);text-decoration:none;font-size:12.5px;transition:border-color .12s ease,background .12s ease}
.founder-action-card:hover{border-color:var(--accent-line);background:var(--accent-soft)}
.founder-action-card span{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}
.founder-action-card strong{font-size:17px;line-height:1.2;color:var(--ink)}
.founder-action-card small{color:var(--muted);line-height:1.35}
.founder-action-card em{align-self:end;color:var(--green-ink);font-style:normal;font-size:12px;font-weight:700}
.founder-empty-state{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.55fr);gap:18px;margin:14px 0 0;padding:16px;border:1px dashed var(--accent-line);border-radius:14px;background:var(--accent-soft)}
.founder-empty-state[hidden]{display:none!important}
.founder-empty-state span{color:var(--accent);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em}
.founder-empty-state strong{display:block;margin-top:4px;font-size:19px}
.founder-empty-state p{margin:6px 0 0;color:var(--ink-2)}
.founder-empty-state ul{margin:0;padding-left:18px;color:var(--muted);line-height:1.55}
.founder-os-top{margin:0 0 18px;padding:22px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-1)}
.founder-os-copy{max-width:820px;display:grid;gap:6px}
.founder-os-subcopy{color:var(--muted);font-size:14px;max-width:70ch;line-height:1.45;margin:0}
.founder-os-health{display:flex;gap:10px 14px;align-items:center;flex-wrap:wrap;margin:14px 0 2px;padding:11px 14px;border:1px solid var(--green-line);border-radius:12px;background:var(--green-bg)}
.founder-os-health strong{color:var(--green-ink);font-size:13px}
.founder-os-health small{color:#4c8266;min-width:0;overflow-wrap:anywhere}
.founder-os-health em{margin-left:auto;color:var(--green-ink);font-style:normal;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}
.founder-os-kpis{margin-top:14px}
.founder-os-link-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:14px}
.founder-os-link-row .muted{font-size:12.5px;line-height:1.35}
.live-source-card,.source-strip{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;padding:11px 14px;border:1px solid var(--green-line);border-radius:12px;background:var(--green-bg);margin-bottom:14px}
.live-source-card strong,.source-strip strong{font-size:13.5px;color:var(--green-ink)}
.live-source-card small,.source-strip small{color:#4c8266;font-weight:500;min-width:0;overflow-wrap:anywhere}
.live-source-note{color:var(--muted);font-size:11.5px}
.chart-context{font-size:12.5px;color:var(--muted);max-width:56ch}
.live-inventory-hero{display:grid;gap:14px}
.inventory-hero{padding:18px 20px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);margin-bottom:18px}
.customer-payment-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 12px;padding:12px 14px;border:1px solid var(--green-line);border-radius:14px;background:var(--green-bg);color:var(--green-ink)}
.customer-payment-panel strong,.customer-payment-panel span,.customer-payment-panel small{display:block}
.customer-payment-panel small{color:#4c8266}

/* ---------------------------------------------------------------- charts -- */
.founder-chart-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:14px;margin-top:16px;align-items:stretch}
.founder-chart-card .eyebrow{font-size:15px;font-weight:800;letter-spacing:.08em}
.founder-chart-card{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.founder-chart-card h3{font-size:16px;margin:2px 0 4px;font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}

.market-map-pie-layout{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;margin-top:12px}
.market-map-pie{position:relative;width:184px;height:184px;border-radius:50%;display:grid;place-content:center;text-align:center;background:conic-gradient(var(--surface-3) 0 100%)}
.market-map-pie:before{content:"";position:absolute;inset:21%;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-1)}
.market-map-pie span,.market-map-pie strong,.market-map-pie small{position:relative;z-index:1}
.market-map-pie span{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.market-map-pie strong{font-size:16.5px;font-weight:650;font-variant-numeric:tabular-nums;color:var(--ink)}
.market-map-pie small{font-size:10px;color:var(--faint)}
.market-map-pie-legend{display:grid;gap:4px;min-width:0}
.market-map-pie-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:5px 8px;border:0;border-radius:8px;background:none;font:inherit;font-size:12.5px;cursor:pointer;text-align:left;color:var(--ink-2)}
.market-map-pie-row:hover{background:var(--surface-2)}
.market-map-pie-row i{width:10px;height:10px;border-radius:3px}
.market-map-pie-row strong{font-variant-numeric:tabular-nums;color:var(--ink)}

.program-exposure-track,.portfolio-bucket-track{display:grid;gap:8px;margin-top:12px}
.program-exposure-bar,.portfolio-bucket-bar{display:grid;gap:5px;width:100%;min-width:0;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:var(--surface);font:inherit;text-align:left;cursor:pointer;text-decoration:none;transition:border-color .12s ease,background .12s ease}
.program-exposure-bar:hover,.portfolio-bucket-bar:hover{border-color:var(--accent-line);background:#fafbff}
.program-exposure-head,.portfolio-bucket-bar-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.program-exposure-head span{font-weight:700;font-size:12.5px;color:var(--ink)}
.program-exposure-head strong{font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--ink-2)}
.portfolio-bucket-bar-head span{font-weight:700;font-size:15px;color:var(--ink)}
.portfolio-bucket-bar-head strong{font-variant-numeric:tabular-nums;font-size:20px;font-weight:650;color:var(--ink)}
.program-exposure-meter,.portfolio-bucket-meter{height:8px;border-radius:99px;background:var(--surface-3);overflow:hidden}
/* --w keeps the true share-of-total percent (read by acceptance tests);
   --fill-scale (set on the track container) stretches the display so the
   largest entry reads ~92% of its track. */
.program-exposure-fill,.portfolio-bucket-fill{display:block;height:100%;width:min(100%,calc(var(--w,0%) * var(--fill-scale,1)));min-width:2px;border-radius:99px;background:var(--color,var(--s1));animation:fillSweep .8s cubic-bezier(.25,.7,.3,1) both;animation-delay:calc(var(--i,0)*70ms + 120ms)}
.program-exposure-meta,.portfolio-bucket-meta{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.portfolio-bucket-meta span:first-child{font-size:16px;font-weight:650;color:var(--ink)}
.portfolio-buckets-graph{margin-top:4px}

.bad-data-heatmap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px}
@media (max-width:760px){.bad-data-heatmap{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bad-data-cell{display:grid;gap:5px;justify-items:center;align-content:start;text-align:center;min-width:0}
.bad-data-bubble{display:grid;gap:2px;place-content:center;text-align:center;width:min(100%,150px);min-width:0;overflow:hidden;aspect-ratio:1;padding:10px 8px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);font:inherit;cursor:pointer;transition:border-color .12s ease}
.bad-data-bubble.hot{background:hsl(4 75% calc(96% - var(--intensity,0)*13%));border-color:var(--red-line)}
.bad-data-bubble.hot .bad-data-count{color:var(--red-ink)}
.bad-data-bubble.clean{background:var(--green-bg);border-color:var(--green-line)}
.bad-data-bubble.clean .bad-data-count{color:var(--green-ink)}
.bad-data-bubble:hover{border-color:var(--faint)}
.bad-data-program{font-size:18px;font-weight:750;letter-spacing:.01em;color:var(--ink)}
.bad-data-count{font-size:22px;font-weight:650;font-variant-numeric:tabular-nums}
.bad-data-lots{font-size:10.5px;color:var(--muted);text-align:center}
.market-map-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}
.market-map-stat{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);min-width:0}
.market-map-stat span{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);white-space:nowrap}
.market-map-stat strong{display:block;margin:4px 0 2px;font-size:18px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.market-map-stat small{display:block;color:var(--faint);line-height:1.3}
.market-map-empty{padding:14px;color:var(--muted)}
.market-map-bands,.market-map-cleanup-list{display:grid;gap:10px}
.market-map-band{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:11px 12px;display:flex;justify-content:space-between;gap:10px}
.market-map-band i{position:absolute;left:0;bottom:0;height:3px;width:var(--w);background:var(--accent);border-radius:0 999px 999px 0}
.market-map-band strong{display:block;font-size:13px;color:var(--ink)}
.market-map-band small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.market-map-band span{color:var(--ink-2);font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}
.market-map-cleanup-row{text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:11px 12px;display:grid;grid-template-columns:1fr auto;gap:4px 10px;cursor:pointer;font:inherit}
.market-map-cleanup-row span{display:block;font-size:13px;font-weight:650;color:var(--ink)}
.market-map-cleanup-row small{display:block;color:var(--muted);font-size:11px}
.market-map-cleanup-row strong{grid-column:2;grid-row:1/3;align-self:center;font-size:22px;font-weight:650;font-variant-numeric:tabular-nums}
.market-map-cleanup-row.clean strong{color:var(--green-ink)}
.market-map-cleanup-row.review strong{color:var(--amber-ink)}
.market-map-cleanup-row:hover{border-color:var(--faint)}
.market-map-radar{position:relative;min-height:340px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2);overflow:hidden}
.market-map-rings{position:absolute;inset:20px;display:grid;place-items:center;pointer-events:none}
.market-map-rings i{position:absolute;border:1px solid var(--line);border-radius:999px}
.market-map-rings i:nth-child(1){width:82%;height:82%}
.market-map-rings i:nth-child(2){width:56%;height:56%}
.market-map-rings i:nth-child(3){width:30%;height:30%}
.market-map-program-nodes{position:absolute;inset:20px;pointer-events:none}
.market-map-node{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);transform:translate(-50%,-50%);border-radius:999px;border:1px solid var(--accent-line);background:var(--surface);box-shadow:var(--shadow-2);color:var(--ink);display:grid;place-items:center;padding:0;pointer-events:auto;cursor:pointer;overflow:hidden}
.market-map-node.review{border-color:var(--amber-line);background:var(--amber-bg)}
.market-map-node strong{font-size:12px;font-weight:750}
.market-map-node small{font-size:10px;color:var(--muted);margin-top:2px}
.inventory-intelligence-grid{align-items:stretch}
.inventory-chart-card h2,.inventory-quality-card h2{margin-bottom:4px}

/* --------------------------------------------------------------- modals -- */
.modal-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(16,24,40,.44);backdrop-filter:blur(3px)}
.modal-backdrop[hidden]{display:none}
.modal-card{width:min(760px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-pop)}
.modal-heading{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}
.modal-heading h2{font-size:24px}
.sale-lot-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.sale-lot-summary div{padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.sale-lot-summary span{display:block;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.sale-lot-summary strong{display:block;margin-top:4px;font-size:16px;font-variant-numeric:tabular-nums}
.mark-sold-form-grid{margin:12px 0}
.inventory-history-body{display:grid;gap:8px;margin-bottom:8px}
.inventory-history-body h3{margin:14px 0 6px}
.queue-edit-modal{width:min(920px,94vw);border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);padding:22px;box-shadow:var(--shadow-pop)}
.queue-edit-modal::backdrop{background:rgba(16,24,40,.44);backdrop-filter:blur(3px)}
.queue-edit-form{display:grid;gap:16px}
.stock-match-control{display:grid;gap:5px;min-width:200px}
.stock-match-control select{width:100%;max-width:280px;font-size:12.5px}
.stock-match-current{display:block;font-size:12px;color:var(--green-ink);line-height:1.3}
.package-preview{display:grid;gap:4px;min-width:230px;padding:10px 12px;border:1px solid var(--green-line);border-radius:12px;background:var(--green-bg);font-size:12.5px}
.package-preview strong{color:var(--green-ink);font-size:12px}
.package-preview span{color:var(--ink-2);line-height:1.35}
.approval-success-panel{margin-top:12px;padding:14px 16px;border:1px solid var(--green-line);border-radius:14px;background:var(--green-bg);color:var(--green-ink)}
.approval-success-panel.hidden{display:none}
.approval-success-panel strong{display:block;margin-bottom:8px}
.approval-success-links{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.approval-success-links a,.approval-success-links span{padding:5px 10px;border:1px solid var(--green-line);border-radius:999px;background:var(--surface);color:var(--green-ink);text-decoration:none;font-size:12px;font-weight:700}

/* ----------------------------------------------------------- page shells -- */
.sales-form-shell{max-width:1180px;margin:0 auto}
.sales-form-main{max-width:1080px;margin:0 auto;width:100%}
.sales-form-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;flex-wrap:wrap;margin-bottom:18px}
.sales-form-top h1{max-width:640px}
.sales-form-card{padding:22px}
.sales-form-link-card{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap;margin:0 0 16px;padding:13px 16px;border:1px solid var(--accent-line);border-radius:14px;background:var(--accent-soft)}
.sales-form-link-card a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;background:var(--accent);color:#fff;text-decoration:none;font-weight:700;font-size:12.5px}
.sales-form-link-card small{display:block;color:var(--muted);margin-top:3px}

.account-holder-controls{grid-template-columns:minmax(240px,1.5fr) repeat(4,minmax(130px,1fr))}
.account-holder-layout{grid-template-columns:minmax(0,1fr) 330px}
.holder-detail{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:12px}
.account-holder-card,.customer-account-layout,.customer-invoice-grid{align-items:start}
.customer-account-layout>*,.customer-invoice-grid>*{min-width:0}

.imports-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;align-items:start}
.import-card,.import-choice-card{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.import-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.import-choice-card{cursor:pointer;transition:border-color .12s ease,background .12s ease}
.import-choice-card:hover{border-color:var(--accent-line);background:var(--accent-soft)}
.import-launchpad,.import-form,.import-summary{display:grid;gap:12px}
.import-actions{display:flex;gap:10px;flex-wrap:wrap}
.import-preview-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;max-height:420px}
.import-preview{min-width:760px}
.import-status{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);font-size:12.5px}
.import-mode-slider{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2)}
.import-mode-slider button{border:0;border-radius:999px;padding:7px 14px;background:none;font-weight:600;font-size:12.5px;color:var(--muted);cursor:pointer}
.import-mode-slider button.active,.import-mode-slider button[aria-pressed="true"]{background:var(--surface);color:var(--accent-strong);box-shadow:var(--shadow-1)}
.simple-steps{display:grid;gap:8px}
.simplified-imports .section{max-width:980px}

.vendor-directory{display:grid;gap:9px;max-height:280px;overflow:auto;padding-right:4px}
.vendor-directory-card{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.vendor-directory-card h3{margin:4px 0 12px;font-size:16px}
.vendor-add-card,.vendor-edit-card,.compact-vendor-add{margin:14px 0 18px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.vendor-add-card .live-pill{justify-self:end;align-self:start}
.vendor-detail-main{max-width:1180px;margin:0 auto}
.vendor-history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.vendor-history-grid article{min-width:0}
.vendor-history-grid article h3{margin:0 0 10px;font-size:16px}
.manual-vendor-affordance{padding:12px;border:1px dashed var(--line-strong);border-radius:12px;background:var(--surface-2)}

.customer-invoice-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px}

.customer-mark-paid{margin-top:6px}
.customer-payment-panel small{min-width:0}
.customer-ledger-card,.customer-invoices-card,.customer-statement-card{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.customer-statement-card{position:sticky;top:18px}
.customer-row,.customer-table tr{cursor:pointer}
.statement-share-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.statement-body{border:1px solid var(--line);border-radius:14px;background:var(--surface-2);padding:16px}
.statement-header{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}
.statement-header strong{display:block}
.statement-header small,.statement-header span{display:block;color:var(--muted)}
.statement-table tfoot th{border-top:2px solid var(--accent-line);font-size:14px;position:static;background:var(--accent-soft);color:var(--accent-strong)}
.statement-note{margin-top:12px;color:var(--muted);font-size:12px;line-height:1.5}
.statement-balance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.statement-open-table{min-width:920px}
.statement-open-table th:nth-child(6),.statement-open-table td:nth-child(6),.statement-open-table th:nth-child(7),.statement-open-table td:nth-child(7){text-align:right}
.statement-title-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:4px 0 18px}

/* ------------------------------------------- customer-safe share page ---- */
.customer-inventory-page{min-height:100vh;background:var(--bg);color:var(--ink)}
.customer-inventory-shell{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:28px 0 52px}
.customer-inventory-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:start;padding:24px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,var(--surface) 55%,var(--accent-soft));box-shadow:var(--shadow-1)}
.customer-inventory-header h1{max-width:720px;margin:8px 0 10px}
.customer-inventory-header p{max-width:70ch;color:var(--muted);line-height:1.55}
.customer-inventory-logo{display:flex;gap:11px;align-items:center;margin-bottom:14px;text-decoration:none}
.customer-inventory-logo strong,.customer-inventory-logo span{display:block}
.customer-inventory-logo span{color:var(--muted);font-size:12px}
.customer-safe-badge{justify-self:end;padding:9px 13px;border:1px solid var(--green-line);border-radius:999px;background:var(--green-bg);color:var(--green-ink);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}
.customer-inventory-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.customer-inventory-actions a,.customer-inventory-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border-radius:999px;font-weight:700;font-size:13px;text-decoration:none;cursor:pointer;font-family:inherit}
.customer-inventory-actions a{background:var(--accent);color:#fff;border:0}
.customer-inventory-actions a:hover{background:var(--accent-strong)}
.customer-inventory-actions button{background:var(--surface);color:var(--ink-2);border:1px solid var(--line-strong)}
.customer-inventory-actions button:hover{background:var(--surface-2)}
.customer-safe-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}
.customer-safe-strip>div{padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.customer-safe-strip strong{display:block;font-size:12.5px}
.customer-safe-strip small{display:block;margin-top:4px;color:var(--muted);line-height:1.4}
.customer-inventory-controls{display:grid;grid-template-columns:minmax(240px,1fr) minmax(180px,260px) auto;gap:10px;margin:16px 0;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.customer-inventory-controls button{border:1px solid var(--line-strong);border-radius:var(--r-ctl);background:var(--surface-2);font-weight:600;padding:0 16px;cursor:pointer}
.customer-inventory-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 2px;color:var(--muted);font-size:12.5px}
.customer-inventory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}
.customer-inventory-card{display:grid;gap:12px;min-height:220px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-1)}
.customer-inventory-card h2{margin:0;font-size:20px}
.customer-inventory-card p{margin:0;color:var(--muted);line-height:1.45}
.customer-inventory-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.customer-inventory-stats div{padding:10px;border-radius:11px;background:var(--surface-2);border:1px solid var(--line)}
.customer-inventory-stats span,.customer-inventory-stats small{display:block;color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;font-weight:700}
.customer-inventory-stats strong{display:block;margin-top:3px;font-size:18px;font-variant-numeric:tabular-nums}
.customer-inventory-card .request-link{align-self:end;background:var(--accent);border:0;color:#fff}
.customer-inventory-card .request-link:hover{background:var(--accent-strong)}
.customer-inventory-empty,.customer-inventory-error{grid-column:1/-1;padding:24px;border:1px dashed var(--line-strong);border-radius:16px;background:var(--surface);color:var(--muted);text-align:center}
.customer-inventory-footer{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--muted);line-height:1.5;font-size:12.5px}

/* --------------------------------------------- invoice & statement docs -- */
.invoice-document-page,.statement-document-page{background:var(--surface-3);color:var(--ink)}
.invoice-document-shell{max-width:940px;margin:0 auto;padding:26px 18px 60px}
.invoice-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.invoice-toolbar-actions{display:flex;gap:10px;flex-wrap:wrap}
.invoice-back-link{color:var(--muted);text-decoration:none;font-weight:600;font-size:13px}
.invoice-back-link:hover{color:var(--ink)}
.invoice-letterhead-card,.statement-letterhead-card{min-height:960px;padding:46px 48px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow-2)}
.invoice-letterhead{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;border-bottom:3px solid var(--accent);padding-bottom:22px}
.invoice-brand-lockup{display:flex;gap:14px;align-items:center}
.invoice-brand-lockup strong{display:block;font-size:26px;letter-spacing:-.02em;font-family:var(--font-display)}
.invoice-brand-lockup span,.invoice-entity-block span,.invoice-entity-block small{display:block;color:var(--muted)}
.invoice-logo-mark{width:56px;height:56px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),#6a7ce8);color:#fff;font-weight:800;font-size:21px}
.invoice-entity-block{text-align:right;font-size:13px;line-height:1.55}
.invoice-entity-block strong{display:block;font-size:16px;color:var(--ink)}
.invoice-title-row{display:flex;justify-content:space-between;gap:24px;margin:36px 0 26px}
.invoice-title-row h1{margin:.1em 0;font-size:34px}
.invoice-total-card{min-width:240px;background:var(--ink);color:#fff;border-radius:16px;padding:20px}
.invoice-total-card span,.invoice-total-card small{display:block;color:#b9c3d4;text-transform:uppercase;letter-spacing:.09em;font-size:11px;font-weight:700}
.invoice-total-card strong{display:block;font-size:30px;margin:8px 0;color:#fff;font-variant-numeric:tabular-nums}
.invoice-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 28px}
.invoice-meta-grid div{border:1px solid var(--line);border-radius:12px;padding:13px;background:var(--surface-2)}
.invoice-meta-grid span{display:block;color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.invoice-meta-grid strong{display:block;margin-top:5px;font-size:14.5px}
.invoice-line-table{width:100%;margin:18px 0 26px}
.invoice-line-table th{background:var(--ink);color:#fff;position:static;padding:12px 14px}
.invoice-line-table td{padding:14px;vertical-align:top}
.invoice-line-table td small{display:block;color:var(--muted);margin-top:5px;line-height:1.45}
.invoice-line-table tfoot th{background:var(--accent-soft);color:var(--accent-strong);font-size:14px}
.invoice-number-cell{text-align:right;white-space:nowrap}
.invoice-number-cell strong{display:block}
.invoice-footer-note{display:grid;gap:7px;border-top:1px solid var(--line);padding-top:20px;color:var(--muted);font-size:12.5px;line-height:1.5}
.invoice-loading,.invoice-error{padding:40px;border:1px dashed var(--line-strong);border-radius:14px;text-align:center;color:var(--muted)}

/* ------------------------------------------------------------- overview -- */
.overview-hero{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr);gap:18px;align-items:stretch;margin-bottom:18px}
.overview-hero-copy{padding:24px;border:1px solid var(--line);border-radius:var(--r-card);background:linear-gradient(135deg,var(--surface) 55%,var(--accent-soft));box-shadow:var(--shadow-1)}
.overview-hero-copy h1{margin:2px 0 8px}
.overview-date{font-size:12.5px;color:var(--muted)}
.overview-hero-number{margin-top:18px}
.overview-hero-number span{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.overview-hero-number strong{display:block;font-size:clamp(38px,4.4vw,54px);font-weight:650;letter-spacing:-.03em;line-height:1.05;font-variant-numeric:tabular-nums;color:var(--ink)}
.overview-hero-number small{color:var(--muted);font-size:13px}
.overview-hero-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}
.overview-attention{display:grid;align-content:start;gap:8px;padding:18px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-1)}
.overview-attention h2{font-size:16px;margin-bottom:2px}
.attention-row{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:8px 11px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2);text-decoration:none;transition:border-color .12s ease,background .12s ease}
.attention-row:hover{border-color:var(--accent-line);background:var(--accent-soft)}
.attention-count{min-width:44px;padding:4px 8px;border-radius:9px;text-align:center;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums;background:var(--surface);border:1px solid var(--line)}
.attention-row.tone-bad .attention-count{background:var(--red-bg);border-color:var(--red-line);color:var(--red-ink)}
.attention-row.tone-warn .attention-count{background:var(--amber-bg);border-color:var(--amber-line);color:var(--amber-ink)}
.attention-row.tone-ok .attention-count{background:var(--green-bg);border-color:var(--green-line);color:var(--green-ink)}
/* A cleared signal is reassurance, not a task — keep it readable but quiet. */
.attention-row.is-clear{background:var(--surface);border-style:dashed}
.attention-row.is-clear .attention-label strong{font-weight:600;color:var(--ink-2)}
.attention-label{min-width:0}
.attention-label strong{display:block;font-size:13px;color:var(--ink)}
.attention-label small{color:var(--muted);font-size:11.5px}
.attention-go{color:var(--faint);font-weight:700}
.overview-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;align-items:start}
.overview-grid>*{min-width:0}
.overview-list{display:grid}
.overview-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:baseline;padding:9px 2px;border-bottom:1px solid var(--line);font-size:13px}
.overview-list-row:last-child{border-bottom:0}
.overview-list-row strong{font-variant-numeric:tabular-nums;white-space:nowrap}
.overview-split{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.overview-foot{margin-top:6px;font-size:12px;color:var(--faint)}

/* ---------------------------------------------------------------- print -- */
@media print{
  body,.invoice-document-page,.statement-document-page{background:#fff}
  .no-print,.sidebar,.statement-share-actions,.customer-payment-panel,.customer-mark-paid,.filter-hint,.invoice-pdf-button,.invoice-open-inline{display:none!important}
  .app-shell{display:block}
  .invoice-document-shell{max-width:none;padding:0}
  .invoice-letterhead-card,.statement-letterhead-card{border:0;box-shadow:none;border-radius:0;padding:0;min-height:auto}
  body.customer-accounts-page .customer-os-top,body.customer-accounts-page .customer-account-layout,body.customer-accounts-page .customer-invoices-card{display:none!important}
  body.customer-accounts-page .app-shell,body.customer-accounts-page .customer-ledger-main,body.customer-accounts-page .customer-invoice-grid{display:block!important;margin:0!important;padding:0!important}
  body.customer-accounts-page .customer-statement-card{position:static!important;box-shadow:none!important;border:none!important}
}

/* ----------------------------------------------------------- responsive -- */
@media (max-width:1180px){
  .app-shell{grid-template-columns:216px minmax(0,1fr)}
  .grid-two,.overview-grid,.founder-chart-grid,.vendor-history-grid{grid-template-columns:1fr}
  .inventory-layout,.account-holder-layout,.customer-invoice-grid{grid-template-columns:1fr}
  .insight-panel,.inventory-tower-panel,.customer-statement-card{position:static}
  .holder-detail{grid-template-columns:1fr}
  .manifest-controls,.account-holder-controls,.founder-os-controls,.sales-queue-page .founder-os-controls,.customer-accounts-page .founder-os-controls,.inventory-controls,.vendor-form,.vendor-edit-form{grid-template-columns:1fr 1fr}
  .manifest-controls .search-card,.founder-os-controls .search-card,.inventory-controls .search-card{grid-column:1/-1}
  .overview-hero{grid-template-columns:1fr}
  .market-map-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .founder-empty-state{grid-template-columns:1fr}
}
@media (max-width:760px){
  body{font-size:13.5px}
  .app-shell{display:block}
  main,.inventory-main,.customer-ledger-main,.sales-form-main,.vendor-detail-main{padding:12px 12px 40px}
  .sidebar{position:sticky;top:0;z-index:100;height:auto;padding:10px 12px 8px;border-right:0;border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);backdrop-filter:blur(12px)}
  .brand{margin:0 0 8px}
  .brand span,.role-card,.readiness-text,.readiness-dot{display:none}
  .module-nav{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  .module-nav::-webkit-scrollbar{display:none}
  .module-nav a{display:inline-flex;grid-template-columns:none;flex:0 0 auto;white-space:nowrap;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
  .module-nav a.active{border-color:var(--accent-line)}
  .module-nav a.active:before{display:none}
  .section,.founder-inventory-studio,.founder-os-top,.sales-form-card{padding:14px;border-radius:14px}
  .section-heading,.founder-heading,.sales-form-top{display:grid;grid-template-columns:1fr;gap:8px}
  .manifest-controls,.inventory-controls,.founder-os-controls,.sales-queue-page .founder-os-controls,.customer-accounts-page .founder-os-controls,.account-holder-controls,.customer-inventory-controls,.vendor-form,.vendor-edit-form,.sales-rep-form,.queue-edit-grid,.mark-sold-form-grid,.manual-form-grid{grid-template-columns:1fr}
  .search-card{display:grid;grid-template-columns:minmax(0,1fr) auto}
  input,select,textarea,button{font-size:16px}
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi{padding:11px 12px}
  .kpi strong{font-size:19px;white-space:normal;overflow-wrap:anywhere}
  .founder-decision-grid,.founder-action-strip,.overview-split,.customer-safe-strip,.customer-inventory-grid,.overview-hero-kpis,.market-map-stats,.statement-balance-grid{grid-template-columns:1fr}
  .founder-snapshot{text-align:left;min-width:0;width:100%}
  .founder-snapshot strong{white-space:normal}
  .inventory-share-actions{justify-content:flex-start}
  .market-map-pie-layout{grid-template-columns:1fr;justify-items:center}
  .sale-lot-summary{grid-template-columns:1fr 1fr}
  .form-actions{display:grid;grid-template-columns:1fr}
  .form-actions button{width:100%}
  .table-wrap,.inventory-table-wrap,.spreadsheet-table-wrap{max-height:62vh}
  .inventory-table,.spreadsheet-inventory-table,.account-holder-table,.queue-table,.sales-sheet-table{min-width:980px}
  .finance-table,.vendors-table{min-width:900px}
  .invoice-letterhead-card,.statement-letterhead-card{padding:22px 18px;min-height:auto}
  .invoice-toolbar,.invoice-title-row,.invoice-letterhead{display:grid;gap:12px}
  .invoice-entity-block{text-align:left}
  .modal-backdrop{padding:10px;align-items:start;overflow:auto}
  .modal-card,.queue-edit-modal{width:100%;max-height:calc(100vh - 20px);padding:14px;border-radius:14px}
  /* Reps fill this in one-handed on a phone: keep submit reachable without scrolling back. */
  .sales-rep-form .form-actions,.queue-edit-form .founder-os-link-row{position:sticky;bottom:0;z-index:4;background:var(--surface);padding:10px 0;border-top:1px solid var(--line)}
  .sales-rep-form .form-actions button,.queue-edit-form .founder-os-link-row button{min-height:44px}
  .sales-rep-form select,.sales-rep-form input,.queue-edit-grid select,.queue-edit-grid input{min-height:42px;font-size:16px}
  .overview-hero-number strong{font-size:34px}
  .sales-form-link-card,.customer-inventory-meta{display:grid}
  
  .customer-inventory-header{grid-template-columns:1fr}
  .customer-safe-badge{justify-self:start}
  .customer-inventory-actions{display:grid}
  .customer-inventory-actions a,.customer-inventory-actions button{width:100%}
  .inventory-market-map,.inventory-intelligence-grid{display:none}
  .queue-actions{min-width:0;display:grid;grid-template-columns:1fr;width:100%}
}
@media (max-width:430px){
  main,.inventory-main{padding:8px 8px 32px}
  .kpi-grid{grid-template-columns:1fr 1fr}
  .kpi strong{font-size:17px}
}
/* ---------------------------------------------------------------- motion -- */
@keyframes riseIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fillSweep{from{width:0}}
.anim-rise{animation:riseIn .5s cubic-bezier(.22,.8,.32,1) both;animation-delay:calc(var(--i,0)*55ms)}
/* Pie itself must stay animation-free (acceptance constraint) — the layout
   wrapper and legend rows carry the entrance instead. */
.market-map-pie-layout{animation:fadeIn .55s ease both}
.market-map-pie-row{animation:riseIn .45s cubic-bezier(.22,.8,.32,1) both;animation-delay:calc(var(--i,0)*45ms + 150ms)}
.bad-data-bubble{animation:fadeIn .45s ease both;animation-delay:var(--delay,0ms)}
.bad-data-lots{animation:fadeIn .45s ease both;animation-delay:calc(var(--delay,0ms) + 120ms)}
.program-detail .detail-box{animation:riseIn .45s cubic-bezier(.22,.8,.32,1) both}
.program-detail .detail-box:nth-child(2){animation-delay:70ms}
.program-detail .detail-box:nth-child(3){animation-delay:140ms}
.founder-chart-card{animation:riseIn .5s cubic-bezier(.22,.8,.32,1) both}
.founder-chart-grid>article:nth-child(2){animation-delay:80ms}
.founder-chart-grid>article:nth-child(3){animation-delay:160ms}
.insight-card{animation:riseIn .45s cubic-bezier(.22,.8,.32,1) both}
.founder-snapshot{animation:riseIn .5s cubic-bezier(.22,.8,.32,1) both}
.attention-row{animation:riseIn .45s cubic-bezier(.22,.8,.32,1) both;animation-delay:calc(var(--i,0)*60ms)}
.overview-hero-copy,.overview-attention{animation:riseIn .55s cubic-bezier(.22,.8,.32,1) both}
.overview-attention{animation-delay:90ms}
.overview-list-row{animation:fadeIn .4s ease both}
.founder-chart-card canvas,.inventory-chart-card canvas{animation:fadeIn .6s ease both;animation-delay:.25s}
tbody tr .status,tbody tr .tag{transition:transform .12s ease}
.kpi:hover,.founder-decision-card:hover{border-color:var(--line-strong)}

@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{transition:none!important;animation:none!important}
}

/* page-background aliases — every shell shares the same light ground */
.inventory-design-page,.founder-os-page,.sales-os-page,.sales-queue-page,.account-holders-page,
.customer-accounts-page,.imports-os-page,.competitor-os-page,.sales-rep-workflow-page{background:var(--bg)}
.inventory-main:before{content:none}
.page-top{margin-top:0}
.redirect-page{min-height:100vh;display:grid;place-content:center;gap:16px;text-align:center;padding:40px}
.redirect-page p{color:var(--muted)}


/* --------------------------------------------------------------- auth -- */
.login-page{min-height:100vh;background:linear-gradient(135deg,#eef1fd 0%,#f8fafc 45%,#ffffff 100%)}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:32px 18px}
.login-card{width:min(100%,520px);padding:30px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.94);box-shadow:var(--shadow-pop)}
.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px;color:var(--ink);text-decoration:none}
.login-brand strong{display:block;font-size:18px}.login-brand span{display:block;color:var(--muted);font-size:13px}
.auth-form{display:grid;gap:13px;margin-top:18px}.compact-auth-form{padding-top:18px;border-top:1px solid var(--line)}
.auth-form label{display:grid;gap:6px;font-weight:750;color:var(--ink-2)}
.auth-form input{width:100%;min-height:44px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:10px 12px;font:inherit;background:#fff;color:var(--ink)}
.auth-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}
.auth-message{min-height:22px;margin:16px 0 0;font-weight:750}.auth-message[data-type="success"]{color:var(--green-ink)}.auth-message[data-type="error"]{color:var(--red-ink)}


/* ---------------------------------------------------------- accounts tabs -- */
.accounts-tabs-shell{margin:0 0 18px;padding:14px;border:1px solid var(--line);border-radius:var(--r-card);background:linear-gradient(135deg,var(--surface),var(--surface-2));box-shadow:var(--shadow-1)}
.accounts-tabs-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px;flex-wrap:wrap}
.accounts-tabs-heading h2{margin:0;font-size:18px}
.accounts-horizontal-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 2px;scrollbar-width:thin}
.account-tab{display:flex;min-width:150px;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink-2);text-decoration:none;box-shadow:0 1px 0 rgba(15,23,42,.03)}
.account-tab:hover{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}
.account-tab.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong);box-shadow:inset 0 0 0 1px rgba(47,91,255,.12)}
.account-tab strong{font-size:13px;line-height:1.15}
.account-tab small{font-size:11px;color:var(--muted);line-height:1.25}
.accounts-home-grid .account-home-card{display:block;color:inherit;text-decoration:none;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}
.accounts-home-grid .account-home-card:hover{transform:translateY(-1px);border-color:var(--accent);box-shadow:var(--shadow-2)}
.accounts-home-grid .account-home-card h2{margin:4px 0 8px}
.accounts-home-grid .account-home-card p:last-child{margin-bottom:0;color:var(--muted)}
@media (max-width:720px){.account-tab{min-width:132px}.accounts-tabs-heading .button-link{width:100%}}


.role-notice{margin:0 0 14px;padding:10px 12px;border:1px solid var(--amber-line);border-radius:12px;background:var(--amber-bg);color:var(--amber-ink);font-weight:750}
.role-disabled{opacity:.55;pointer-events:none}.sales-view .admin-actions .approve-admin{display:none}.sales-read-only-mode [data-sales-readonly]{opacity:.55}

/* Sortable table headers — AR / AP / Vendors finance tables and inventory spreadsheet */
th[data-sort-key]{cursor:pointer;user-select:none}
th[data-sort-key] .header-sort-button{display:inline-flex;align-items:center;justify-content:space-between;gap:6px;width:100%;text-align:left}
th[data-sort-key] .header-sort-button::after{content:'\2195';font-size:10px;line-height:1;opacity:.4;transition:opacity .12s ease,color .12s ease}
th[data-sort-key]:hover .header-sort-button::after{opacity:.8}
th[data-sort-key][data-sort-dir="asc"] .header-sort-button::after{content:'\25B2';opacity:1;color:var(--accent)}
th[data-sort-key][data-sort-dir="desc"] .header-sort-button::after{content:'\25BC';opacity:1;color:var(--accent)}
.inventory-table th[data-sort-key][data-sort-dir="asc"],.inventory-table th[data-sort-key][data-sort-dir="desc"],
th[data-sort-key][data-sort-dir="asc"],th[data-sort-key][data-sort-dir="desc"]{color:var(--ink);background:var(--accent-soft);box-shadow:inset 0 -2px 0 var(--accent)}
th[data-sort-key] .header-sort-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}

/* Customer Accounts — invoice drawer controls, selected row, manual invoice form */
.invoice-drawer-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.invoice-scope-toggle{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);cursor:pointer;white-space:nowrap}
.invoice-scope-toggle input{accent-color:var(--accent);width:14px;height:14px;cursor:pointer}
.invoice-scope-toggle:hover{color:var(--ink)}
.new-invoice-form[hidden]{display:none}
.new-invoice-form{margin:0 0 14px;padding:14px;border:1px solid var(--accent-line);border-radius:var(--r-card);background:var(--accent-soft)}
.new-invoice-form select{width:100%;font-size:14px;text-transform:none;letter-spacing:0}
.new-invoice-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.new-invoice-actions #newInvoiceStatus{font-size:12px;text-transform:none;letter-spacing:0}
.customer-table tbody tr.selected-customer-row td{background:var(--accent-soft)}
.customer-table tbody tr.selected-customer-row td:first-child{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent),1px 0 0 var(--line)}

/* Customer Accounts — invoice drawer + statement were clipped inside a 2-col grid.
   Stack them so both get the full main width, and let the statement table scroll rather than clip. */
.customer-invoice-grid{grid-template-columns:minmax(0,1fr)}
.customer-invoices-card,.customer-statement-card{min-width:0}
.statement-body{overflow-x:auto}
.statement-table{min-width:760px}
.customer-invoice-detail-table{min-width:940px}

/* Sales sheet — sticky header while scrolling, and all 15 columns fit without scrolling right */
.sales-os-page .table-wrap{max-height:calc(100vh - 200px)}
.sales-os-page .sales-sheet-table{min-width:0;width:100%;table-layout:fixed}
.sales-os-page .sales-sheet-table th,.sales-os-page .sales-sheet-table td{padding:8px 7px;font-size:12px;overflow-wrap:anywhere}
.sales-os-page .sales-sheet-table td small{font-size:10.5px;margin-top:2px}
.sales-os-page .sales-sheet-table .commission-cell{white-space:normal;text-align:right}
.sales-os-page .sales-sheet-table .user-pass-cell{font-size:10.5px;color:var(--muted)}
.sales-os-page .sales-sheet-table th .header-sort-button{font-size:9.5px}
.sales-os-page .sales-sheet-table th:nth-child(1),.sales-os-page .sales-sheet-table td:nth-child(1){width:6.5%}
.sales-os-page .sales-sheet-table th:nth-child(2),.sales-os-page .sales-sheet-table td:nth-child(2){width:8%}
.sales-os-page .sales-sheet-table th:nth-child(3),.sales-os-page .sales-sheet-table td:nth-child(3){width:6%}
.sales-os-page .sales-sheet-table th:nth-child(4),.sales-os-page .sales-sheet-table td:nth-child(4){width:8.5%}
.sales-os-page .sales-sheet-table th:nth-child(5),.sales-os-page .sales-sheet-table td:nth-child(5){width:6.5%}
.sales-os-page .sales-sheet-table th:nth-child(6),.sales-os-page .sales-sheet-table td:nth-child(6){width:6%}
.sales-os-page .sales-sheet-table th:nth-child(7),.sales-os-page .sales-sheet-table td:nth-child(7){width:7%}
.sales-os-page .sales-sheet-table th:nth-child(8),.sales-os-page .sales-sheet-table td:nth-child(8){width:5.5%}
.sales-os-page .sales-sheet-table th:nth-child(9),.sales-os-page .sales-sheet-table td:nth-child(9){width:5.5%}
.sales-os-page .sales-sheet-table th:nth-child(10),.sales-os-page .sales-sheet-table td:nth-child(10){width:7%}
.sales-os-page .sales-sheet-table th:nth-child(11),.sales-os-page .sales-sheet-table td:nth-child(11){width:6.5%}
.sales-os-page .sales-sheet-table th:nth-child(12),.sales-os-page .sales-sheet-table td:nth-child(12){width:6.5%}
.sales-os-page .sales-sheet-table th:nth-child(13),.sales-os-page .sales-sheet-table td:nth-child(13){width:7.5%}
.sales-os-page .sales-sheet-table th:nth-child(14),.sales-os-page .sales-sheet-table td:nth-child(14){width:6.5%}
.sales-os-page .sales-sheet-table th:nth-child(15),.sales-os-page .sales-sheet-table td:nth-child(15){width:6.5%}

/* Sales — drag rows to organize */
.sales-table-heading-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.sales-os-page .sales-sheet-table tbody tr[draggable="true"]{cursor:grab}
.sales-os-page .sales-sheet-table tbody tr.dragging{opacity:.45;cursor:grabbing}
.sales-os-page .sales-sheet-table tbody tr.drag-over td{box-shadow:inset 0 2px 0 var(--accent)}

/* Imports — snapshot replace warning and confirm gate */
.snapshot-warning{display:grid;gap:5px;margin:0 0 12px;padding:12px 14px;border:1px solid var(--amber-line);border-radius:var(--r-card);background:var(--amber-bg);color:var(--amber-ink)}
.snapshot-warning strong{font-size:13.5px}
.snapshot-warning span{font-size:12.5px;line-height:1.45}
.snapshot-warning small{font-size:11.5px;opacity:.85}
.snapshot-confirm{display:flex;align-items:center;gap:8px;margin:10px 0 4px;font-size:12.5px;font-weight:650;color:var(--ink-2);cursor:pointer}
.snapshot-confirm input{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}
