/* Winsome Concrete Finishes — brand design system
   ink #0a0a0a · concrete #f2f2f0 · steel #5c5c5c · paper #fafafa
   brass #b08d57 (light #c9a97a, deep #8a6d3f)
   Archivo (sturdy grotesk) headings, Inter body.
   Steady, local, accountable. Mobile-first, big tap targets.

   The token NAMES are inherited (--slate, --orange) and are kept so every
   existing var() reference keeps working; only the VALUES are Winsome's. The
   palette used to be the previous client's slate-blue and safety-orange, which
   meant every screen except the call board still rendered in another company's
   colours. --brass/--ink-* are the names to use in new code. */
:root{
  --ink:#0a0a0a; --concrete:#f2f2f0; --steel:#5c5c5c; --paper-white:#fafafa;
  --brass:#b08d57; --brass-light:#c9a97a; --brass-deep:#8a6d3f;

  /* Inherited names, Winsome values. */
  --slate:#0a0a0a; --slate2:#8a6d3f; --orange:#b08d57; --orange-d:#8a6d3f;
  --paper:#f2f2f0; --muted:#5c5c5c; --line:#dcdcd9;
  --ok:#1f7a4d; --warn:#b4741f; --bad:#c0392b; --card:#ffffff;
  --shadow:0 1px 2px rgba(10,10,10,.06),0 6px 18px rgba(10,10,10,.07);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--ink);background:var(--paper);line-height:1.5;
  font-size:16px;
}
h1,h2,h3,.brandfont{font-family:Archivo,'Arial Narrow',system-ui,sans-serif;
  font-weight:700;letter-spacing:-.015em}
a{color:var(--slate2)}
.wrap{max-width:900px;margin:0 auto;padding:0 16px 96px}

/* ===== Sidebar (desktop) / drawer (mobile) ===== */
.sidebar{position:fixed;top:0;left:0;bottom:0;width:220px;background:var(--slate);
  color:var(--paper);z-index:40;display:flex;flex-direction:column;
  transform:translateX(-100%);transition:transform .2s ease;overflow-y:auto}
.sidebar .brand{display:flex;align-items:center;gap:9px;padding:16px 16px 12px;
  font-family:Archivo,system-ui,sans-serif;font-weight:800;font-size:15px;
  color:var(--paper);letter-spacing:-.01em;line-height:1.15}
.sidebar .brand .dot{width:11px;height:11px;border-radius:3px;background:var(--orange);flex:0 0 auto}
.sidebar nav{display:flex;flex-direction:column;padding:6px 0 16px}
.sidebar a{display:flex;align-items:center;gap:11px;padding:10px 16px;color:#aeb9c7;
  text-decoration:none;font-size:14px;font-weight:500}
.sidebar a .ic{font-size:17px;width:22px;text-align:center}
.sidebar a.active{color:var(--paper);background:rgba(228,87,46,.16);box-shadow:inset 3px 0 0 var(--orange)}
.sidebar a .badge{margin-left:auto;background:var(--orange);color:#fff;border-radius:20px;
  font-size:10px;font-weight:700;padding:1px 6px}
.sidebar .foot{margin-top:auto;padding:12px 16px;border-top:1px solid rgba(255,255,255,.08)}
.drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:39;display:none;pointer-events:none}
body.drawer-open .sidebar{transform:translateX(0)}
body.drawer-open .drawer-overlay{display:block;pointer-events:auto}

/* ===== Widget grid (Home) ===== */
.widgets{display:grid;grid-template-columns:1fr;gap:12px;margin-top:14px}
@media(min-width:640px){ .widgets{grid-template-columns:1fr 1fr} }
.widget{background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column}
.widget.span2{grid-column:1/-1}
@media(min-width:640px){ .widget.wide{grid-column:span 2} }
.widget .whead{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.widget .whead h3{margin:0;font-size:14px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.widget .big{font-family:Archivo,system-ui,sans-serif;font-size:30px;font-weight:800;color:var(--slate);line-height:1}
.widget .wfoot{margin-top:auto;padding-top:10px}
.widget a.go{font-size:13px;font-weight:600;color:var(--orange-d);text-decoration:none}
.minibar{display:flex;height:8px;border-radius:5px;overflow:hidden;background:#f2f2f0;margin-top:8px}
.minibar span{display:block;height:100%}
.stageflow{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.stageflow .st{flex:1;min-width:60px;text-align:center;background:#f4f6f9;border-radius:8px;padding:6px 2px}
.stageflow .st .n{font-family:Archivo;font-weight:800;font-size:18px;color:var(--slate)}
.stageflow .st .l{font-size:10px;color:var(--muted)}
.wrow{display:flex;align-items:center;gap:8px;padding:5px 0;border-top:1px solid var(--line);font-size:13px}
.wthumbs{display:flex;gap:6px}
.wthumbs img{width:52px;height:52px;object-fit:cover;border-radius:7px;border:1px solid var(--line)}

/* Top bar */
.topbar{background:var(--slate);color:var(--paper);position:sticky;top:0;z-index:20;
  box-shadow:var(--shadow)}
.topbar .inner{max-width:820px;margin:0 auto;display:flex;align-items:center;
  justify-content:space-between;padding:12px 16px;gap:12px}
.topbar .logo{display:flex;align-items:center;gap:10px;font-family:Archivo,system-ui,sans-serif;
  font-weight:600;font-size:19px;color:var(--paper);text-decoration:none}
.topbar .logo .dot{width:12px;height:12px;border-radius:3px;background:var(--orange);
  box-shadow:0 0 0 3px rgba(228,87,46,.30)}
.topbar form{margin:0}
.linkbtn{background:none;border:1px solid rgba(241,235,218,.35);color:var(--paper);
  padding:7px 12px;border-radius:9px;font-size:13px;cursor:pointer}

/* Bottom nav (mobile primary) */
.bottomnav{position:fixed;left:0;right:0;bottom:0;background:var(--slate2);
  display:flex;z-index:30;box-shadow:0 -2px 12px rgba(30,42,56,.22)}
.bottomnav a{flex:1;text-align:center;color:#aeb9c7;text-decoration:none;
  padding:9px 4px 10px;font-size:11px;font-weight:500}
.bottomnav a .ic{display:block;font-size:20px;line-height:1.4}
.bottomnav a.active{color:var(--paper)}
.bottomnav a.active .ic{filter:drop-shadow(0 0 6px rgba(228,87,46,.6))}
.bottomnav .badge{display:inline-block;min-width:17px;background:var(--orange);
  color:#fff;border-radius:20px;font-size:10px;font-weight:700;padding:0 5px;
  margin-left:3px;vertical-align:top}

/* Cards & layout */
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:16px;margin:14px 0;box-shadow:var(--shadow)}
.card h2{margin:.1em 0 .5em;font-size:20px}
.card h3{margin:.1em 0 .4em;font-size:17px}
.section-title{font-size:14px;text-transform:uppercase;letter-spacing:.08em;
  color:var(--muted);margin:22px 4px 6px;font-weight:600}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:560px){.grid2{grid-template-columns:1fr}}
.muted{color:var(--muted)}
.small{font-size:13px}
.right{text-align:right}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.spread{display:flex;justify-content:space-between;align-items:center;gap:10px}
hr{border:none;border-top:1px solid var(--line);margin:14px 0}

/* Buttons — big tap targets */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  min-height:46px;padding:11px 18px;border-radius:11px;border:1px solid transparent;
  font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;
  background:var(--slate);color:var(--paper);line-height:1.1}
.btn:active{transform:translateY(1px)}
.btn.brass{background:var(--orange);color:#fff}
.btn.ghost{background:transparent;color:var(--slate);border-color:var(--line)}
.btn.bad{background:#fff;color:var(--bad);border-color:#e6c6c0}
.btn.wide{width:100%}
.btn.lg{min-height:56px;font-size:17px;border-radius:13px}
.btn.sm{min-height:38px;padding:7px 12px;font-size:13px}
.btnrow{display:flex;gap:9px}
.btnrow .btn{flex:1}

/* Forms */
label{display:block;font-size:13px;font-weight:600;color:var(--slate2);
  margin:10px 0 4px}
input[type=text],input[type=tel],input[type=email],input[type=password],
input[type=date],input[type=number],select,textarea{
  width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;
  font-size:16px;background:#fff;font-family:inherit;color:var(--ink)}
textarea{min-height:90px;resize:vertical}
input:focus,textarea:focus,select:focus{outline:2px solid var(--orange);
  outline-offset:0;border-color:var(--orange)}

/* Pills / badges */
.pill{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;
  font-weight:600;border:1px solid var(--line);background:#fff}
.pill.green{background:#e9f2ec;color:var(--ok);border-color:#bfe0cc}
.pill.amber{background:#faf0dd;color:var(--warn);border-color:#e6d3a8}
.pill.red{background:#f7e5e1;color:var(--bad);border-color:#e6c6c0}
.pill.grey{background:#efeee7;color:var(--muted)}
.pill.forest{background:var(--slate);color:var(--paper);border-color:var(--slate)}
.pill.res{background:#e9f2ec;color:#1f7a4d;border-color:#bfe0cc}
.pill.com{background:#eae6f1;color:#4a3d6b;border-color:#cfc6e0}
.pill.ind{background:var(--orange);color:#fff;border-color:var(--orange);
  box-shadow:0 0 0 2px rgba(228,87,46,.18)}

/* Flash + banners */
.flash{padding:12px 14px;border-radius:11px;margin:12px 0;font-weight:500}
.flash.ok{background:#e9f2ec;color:#1f7a4d;border:1px solid #bfe0cc}
.flash.err{background:#f7e5e1;color:var(--bad);border:1px solid #e6c6c0}
.flash.warn{background:#faf0dd;color:#7a5410;border:1px solid #e6d3a8}
.banner-dnc{background:#f7e5e1;border:1px solid #e6c6c0;color:var(--bad);
  padding:10px 12px;border-radius:10px;font-weight:600;margin:8px 0}

/* Big stat tiles (dashboard) */
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:16px;box-shadow:var(--shadow);text-decoration:none;color:inherit;display:block}
.tile .n{font-family:Archivo,system-ui,sans-serif;font-size:34px;font-weight:600;color:var(--slate)}
.tile .l{font-size:13px;color:var(--muted);font-weight:600}
.tile.hero{grid-column:1/-1;background:var(--slate);color:var(--paper);
  border-color:var(--slate)}
.tile.hero .n{color:var(--paper);font-size:46px}
.tile.hero .l{color:#b5b5b0;font-size:15px}
.tile.hero .cta{margin-top:8px;display:inline-block;background:var(--orange);
  color:#fff;padding:8px 14px;border-radius:10px;font-weight:700;font-size:14px}

/* Copy card (manual SMS) */
.copycard{border:1px dashed var(--orange);background:#fff8f4;border-radius:12px;padding:14px}
.copytext{white-space:pre-wrap;background:#fff;border:1px solid var(--line);
  border-radius:9px;padding:11px;font-size:14px;margin:8px 0}

/* Lists */
.itemlink{display:block;padding:13px 14px;border:1px solid var(--line);
  border-radius:12px;background:var(--card);text-decoration:none;color:inherit;
  margin:8px 0;box-shadow:var(--shadow)}
.itemlink:active{background:#f4f6f9}
.stack{margin:6px 0}

/* PDF preview iframe */
.pdfframe{width:100%;height:420px;border:1px solid var(--line);border-radius:10px;background:#fff}

/* Countdown */
.count{font-variant-numeric:tabular-nums;font-weight:700;color:var(--warn)}
.footnote{font-size:12px;color:var(--muted);margin-top:26px;text-align:center}

/* ===== Desktop shell overrides (must come LAST to beat base rules) ===== */
@media(min-width:900px){
  .sidebar{transform:translateX(0)}
  .topbar{display:none}
  .bottomnav{display:none}
  .drawer-overlay{display:none !important}
  .app-main{margin-left:220px}
  .wrap{padding-bottom:40px}
}

/* ---- Lead list table (priority sort + valuation/date columns) ---------- */
.leadtable{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.leadrow{display:grid;grid-template-columns:1fr 78px 92px 110px 44px;gap:10px;align-items:center}
.leadrow .lr-main{min-width:0}
.leadrow .lr-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.leadrow .lr-val,.leadrow .lr-date{text-align:right;font-weight:600;font-size:14px}
.leadrow .lr-val .small,.leadrow .lr-date .small{font-weight:400}
.leadrow .lr-tags{display:flex;flex-direction:column;gap:3px;align-items:flex-end}
.leadrow .lr-score{
  text-align:center;font-weight:800;font-size:17px;color:#fff;background:var(--slate);
  border-radius:9px;padding:6px 0;
}
@media (max-width:760px){
  .leadrow{grid-template-columns:1fr auto 44px;grid-template-areas:"main val score" "main date score" "tags tags score"}
  .leadrow .lr-main{grid-area:main}
  .leadrow .lr-val{grid-area:val}
  .leadrow .lr-date{grid-area:date}
  .leadrow .lr-tags{grid-area:tags;flex-direction:row;align-items:center;margin-top:4px}
  .leadrow .lr-score{grid-area:score}
  .leadrow .lr-val .small,.leadrow .lr-date .small{display:none}
}

/* ---- Call-first home: big tap targets, used one-handed in a truck -------- */
.callstats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px;
  background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 10px}
.callstats > div{text-align:center}
.callstats .n{font-size:22px;font-weight:800;color:var(--slate);line-height:1.1}
.callstats .l{font-size:11px;color:#6b7885;text-transform:uppercase;letter-spacing:.04em}

.callcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin-top:10px}
.callcard.due{border-color:var(--orange);background:#fff8f4}
.cc-flag{font-size:12px;font-weight:800;color:var(--orange);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.cc-head{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}
.cc-addr{font-weight:700;font-size:17px;line-height:1.25}
.cc-sub{font-size:13px;color:#6b7885;margin-top:2px}
.cc-size{font-weight:800;font-size:18px;color:var(--slate);white-space:nowrap}
.cc-co{font-size:13px;color:#41505f;margin-top:6px}
.cc-who{font-size:14px;margin-top:6px}
.cc-angle{font-size:13px;color:#41505f;background:#f4f6f8;border-radius:9px;padding:8px 10px;margin-top:8px;line-height:1.45}
.cc-more{margin-top:8px}
.cc-more summary{font-size:13px;color:var(--slate);cursor:pointer;padding:6px 0;font-weight:600}
.cc-job{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--line);
  font-size:13px;color:inherit;text-decoration:none}

.cc-call{display:block;text-align:center;margin-top:10px;background:var(--orange);color:#fff;
  font-weight:800;font-size:17px;padding:15px;border-radius:12px;text-decoration:none}
.cc-call.disabled{background:#e4e8ec;color:#8a97a3;font-weight:600;font-size:14px}

.cc-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
.cc-act{border:1px solid var(--line);background:#fff;border-radius:11px;padding:13px 4px;
  font-size:13px;font-weight:700;cursor:pointer;color:var(--slate)}
.cc-act.called{border-color:#1f7a4d;color:#1f7a4d}
.cc-act.cb{border-color:#b8860b;color:#8a6508}
.cc-act.dead{border-color:#b4331f;color:#b4331f}
.cc-act:active{transform:scale(.97)}

.logback{position:fixed;inset:0;background:rgba(20,28,38,.55);display:none;align-items:flex-end;z-index:60}
.logback.open{display:flex}
.logbox{background:#fff;width:100%;max-width:560px;margin:0 auto;border-radius:16px 16px 0 0;padding:18px}
@media (min-width:700px){ .logback{align-items:center} .logbox{border-radius:16px} }
.lr-reason{font-size:12px;color:#6b7885;background:#f4f6f8;border-radius:0 0 10px 10px;
  padding:6px 12px;margin:-6px 0 2px;border:1px solid var(--line);border-top:0}
.lr-reason.junk{background:#f7f2f1;color:#8a5548}
.lr-reason.review{background:#fdf8ef;color:#8a6508}

/* ---- All Leads: compact toolbar + spreadsheet-style CRM table ----------- */
.setupline{display:flex;align-items:center;gap:10px;background:#fff8f4;border:1px solid var(--orange);
  border-radius:10px;padding:7px 12px;margin-top:10px;font-size:13px}
.setupline a{color:#8a4b32;font-weight:600;text-decoration:none;flex:1}
.setupline button{background:none;border:0;color:#8a6508;cursor:pointer;font-size:15px;padding:0 4px}

.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px;
  background:#fff;border:1px solid var(--line);border-radius:12px;padding:9px 10px}
.toolbar input[type=search]{flex:1;min-width:180px;min-height:36px;padding:6px 10px;font-size:14px;margin:0}
.toolbar select{width:auto;min-height:36px;padding:6px 10px;font-size:13px;margin:0}

.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.chip{display:inline-flex;align-items:center;gap:6px;background:#f2f2f0;border:1px solid var(--line);
  border-radius:999px;padding:4px 10px;font-size:12px;color:var(--slate);text-decoration:none}
.chip span{color:#8a97a3;font-weight:700}
.chip.clear{background:none;border-style:dashed}

.filterpanel{display:none;background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:12px;margin-top:8px}
.filterpanel.open{display:block}
.fp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.fp-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;
  color:#6b7885;margin-bottom:6px}
.fp-grid .pill{margin:0 4px 4px 0;display:inline-block}

.tablewrap{margin-top:10px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:auto;max-height:72vh}
table.crm{width:100%;border-collapse:collapse;font-size:13px}
table.crm thead th{position:sticky;top:0;z-index:2;background:#f4f6f8;text-align:left;
  padding:9px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;
  color:#6b7885;border-bottom:1px solid var(--line);white-space:nowrap}
table.crm thead th a{color:inherit;text-decoration:none}
table.crm thead th.on{color:var(--slate)}
table.crm tbody tr{border-bottom:1px solid #f2f2f0;cursor:pointer}
table.crm tbody tr:hover{background:#f9fbfc}
table.crm td{padding:8px 10px;vertical-align:top}
table.crm td a{color:var(--slate)}
.c-addr{max-width:280px}
.c-addr .sub{font-size:11px;color:#8a97a3;margin-top:1px}
.c-num,.c-score{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.c-date{white-space:nowrap;font-variant-numeric:tabular-nums;color:#41505f}
.c-co{max-width:180px}
.c-score{font-weight:800;color:var(--slate)}
.empty{text-align:center;padding:26px;color:#8a97a3}

.qdot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:middle}
.qdot.qualified{background:#1f7a4d}
.qdot.review{background:#d9a520}
.qdot.junk{background:#c9ced4}
.rc{display:inline-block;width:6px;height:6px;border-radius:2px;margin-left:6px;vertical-align:middle}
.rc.b2b{background:#b08d57}        /* brass — B2B partner track */
.rc.homeowner{background:#5c5c5c}  /* steel — homeowner track */

tr.reasonrow td{font-size:11px;color:#6b7885;padding:3px 10px 7px 26px;background:#fbfcfd}
tr.reasonrow.junk td{color:#8a5548}
tr.reasonrow.review td{color:#8a6508}

@media (max-width:820px){
  /* Collapse to the columns that matter on a phone rather than side-scrolling. */
  table.crm .c-co,table.crm .c-contact,table.crm .c-email,table.crm .c-date{display:none}
}

/* ---- Today: two call tracks -------------------------------------------- */
.tracktabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.tracktab{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:10px 12px;text-decoration:none;color:var(--slate)}
.tracktab.on{border-color:var(--orange);background:#fff8f4;box-shadow:inset 0 -3px 0 var(--orange)}
.tracktab .tt-label{display:block;font-weight:700;font-size:14px;line-height:1.25}
.tracktab .tt-count{display:block;font-size:24px;font-weight:800;line-height:1.1;margin-top:2px}
.tracktab .tt-new{display:block;font-size:11px;color:#6b7885;margin-top:1px}
.tracktab.on .tt-new{color:#8a4b32}

/* Filters as a proper sheet, so the default view is toolbar + table only. */
.filterpanel{display:none;position:fixed;inset:0;background:rgba(20,28,38,.5);z-index:70;
  align-items:flex-end;justify-content:center;padding:0}
.filterpanel.open{display:flex}
.fp-sheet{background:#fff;width:100%;max-width:820px;max-height:86vh;overflow:auto;
  border-radius:16px 16px 0 0;padding:16px 16px 22px}
.fp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;
  position:sticky;top:-16px;background:#fff;padding:6px 0 10px;border-bottom:1px solid var(--line)}
.fp-close{background:var(--slate);color:#fff;border:0;border-radius:9px;padding:8px 16px;
  font-weight:700;font-size:13px;cursor:pointer}
@media (min-width:760px){ .filterpanel{align-items:center} .fp-sheet{border-radius:16px} }
.listmeta{margin-top:12px;align-items:baseline}


/* =======================================================================
   VISUAL SYSTEM — 2026-08-04
   One type scale, one spacing rhythm, one set of surfaces. Everything below
   overrides the older ad-hoc rules so pages stop reading as stacked divs.
   ======================================================================= */
:root{
  --sp-1:4px;  --sp-2:8px;  --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px;
  --fs-xs:11px; --fs-sm:13px; --fs-md:15px; --fs-lg:18px; --fs-xl:22px; --fs-2xl:28px;
  --r-sm:8px; --r-md:12px; --r-lg:16px;
  /* This block is LATER in the file than the brand tokens at the top, so these
     values win. They were the previous client's cool navy ramp; they are now
     Winsome's warm neutral ramp. */
  --ink:#0a0a0a; --ink-2:#3a3a3a; --ink-3:#6b6b66; --ink-4:#9c9c96;
  --surface:#fff; --surface-2:#f7f7f5; --hair:#e4e4e0;
  --shadow-1:0 1px 2px rgba(10,10,10,.05);
  --shadow-2:0 4px 16px rgba(10,10,10,.07);
}

body{background:#f7f9fb;color:var(--ink);-webkit-font-smoothing:antialiased}
.wrap{padding-bottom:var(--sp-6)}

/* --- type scale + vertical rhythm ------------------------------------- */
h1{font-family:var(--brand,'Archivo'),system-ui,sans-serif;font-size:var(--fs-2xl);
   font-weight:800;letter-spacing:-.02em;line-height:1.15;margin:0}
h3{font-size:var(--fs-md);font-weight:700;letter-spacing:-.01em;margin:0}
.small{font-size:var(--fs-sm);line-height:1.5}
.muted{color:var(--ink-3)}
.section-title{font-size:var(--fs-xs);font-weight:800;text-transform:uppercase;
  letter-spacing:.07em;color:var(--ink-4);margin:var(--sp-5) 0 var(--sp-2)}

/* --- surfaces ---------------------------------------------------------- */
.card{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-md);
  padding:var(--sp-4);margin-top:var(--sp-3);box-shadow:var(--shadow-1)}
.itemlink{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-md);
  padding:var(--sp-3) var(--sp-4);margin-top:var(--sp-2);display:block;
  text-decoration:none;color:inherit;box-shadow:var(--shadow-1);transition:border-color .12s,transform .12s}
.itemlink:hover{border-color:#cfd8e0;transform:translateY(-1px)}

/* --- buttons ----------------------------------------------------------- */
.btn{border-radius:var(--r-sm);font-weight:700;font-size:var(--fs-sm);
  padding:10px 16px;transition:filter .12s,transform .06s}
.btn:active{transform:scale(.985)}
.btn:hover{filter:brightness(1.04)}
.pill{border-radius:999px;font-size:12px;font-weight:600;padding:4px 11px;
  line-height:1.5;display:inline-block}

/* --- STAT ROW (was unstyled stacked text) ------------------------------ */
.callstats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:var(--sp-4);
  background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-md);
  padding:var(--sp-4) var(--sp-2);box-shadow:var(--shadow-1);position:relative}
.callstats > div{text-align:center;position:relative;padding:0 var(--sp-2)}
.callstats > div + div:not(:last-child)::before{content:'';position:absolute;left:0;top:12%;
  height:76%;width:1px;background:var(--hair)}
.callstats .n{font-family:var(--brand,'Archivo'),system-ui,sans-serif;font-size:26px;
  font-weight:800;color:var(--ink);line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.callstats .l{font-size:var(--fs-xs);color:var(--ink-4);text-transform:uppercase;
  letter-spacing:.06em;margin-top:3px;font-weight:700}

/* --- TAB BAR (was a run-on line of text) ------------------------------- */
.tracktabs{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);margin-top:var(--sp-3)}
.tracktab{display:block;background:var(--surface);border:1px solid var(--hair);
  border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);text-decoration:none;
  color:var(--ink-2);box-shadow:var(--shadow-1);position:relative;
  transition:border-color .12s,box-shadow .12s}
.tracktab:hover{border-color:#cfd8e0}
.tracktab.on{border-color:var(--orange);background:#fffaf7;box-shadow:var(--shadow-2)}
.tracktab.on::after{content:'';position:absolute;left:var(--sp-4);right:var(--sp-4);bottom:-1px;
  height:3px;background:var(--orange);border-radius:3px 3px 0 0}
.tracktab .tt-label{display:block;font-size:var(--fs-sm);font-weight:700;color:var(--ink-3);
  line-height:1.3;letter-spacing:-.005em}
.tracktab.on .tt-label{color:var(--slate)}
.tracktab .tt-count{display:block;font-family:var(--brand,'Archivo'),system-ui,sans-serif;
  font-size:30px;font-weight:800;line-height:1.05;margin-top:2px;letter-spacing:-.02em;
  color:var(--ink);font-variant-numeric:tabular-nums}
.tracktab .tt-new{display:block;font-size:var(--fs-xs);color:var(--ink-4);margin-top:2px;font-weight:600}
.tracktab.on .tt-new{color:#a05a38}

/* --- CALL CARD hierarchy ----------------------------------------------- */
.callcard{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-lg);
  padding:var(--sp-4);margin-top:var(--sp-3);box-shadow:var(--shadow-1);
  transition:box-shadow .12s,border-color .12s}
.callcard:hover{box-shadow:var(--shadow-2)}
.callcard.due{border-color:var(--orange);background:#fffaf7}
.cc-flag{display:inline-block;font-size:var(--fs-xs);font-weight:800;color:#fff;
  background:var(--orange);text-transform:uppercase;letter-spacing:.05em;
  padding:3px 9px;border-radius:999px;margin-bottom:var(--sp-2)}
.cc-head{display:flex;gap:var(--sp-3);align-items:flex-start;justify-content:space-between}
.cc-addr{font-family:var(--brand,'Archivo'),system-ui,sans-serif;font-weight:700;
  font-size:var(--fs-lg);line-height:1.25;letter-spacing:-.015em;color:var(--ink)}
.cc-sub{font-size:var(--fs-sm);color:var(--ink-3);margin-top:3px}
.cc-size{font-family:var(--brand,'Archivo'),system-ui,sans-serif;font-weight:800;
  font-size:var(--fs-lg);color:var(--slate);white-space:nowrap;font-variant-numeric:tabular-nums}
.cc-co{font-size:var(--fs-sm);color:var(--ink-2);margin-top:var(--sp-2)}
.cc-who{font-size:var(--fs-md);margin-top:var(--sp-1);color:var(--ink)}
.cc-angle{font-size:var(--fs-sm);color:var(--ink-2);background:var(--surface-2);
  border-radius:var(--r-sm);padding:10px 12px;margin-top:var(--sp-3);line-height:1.5;
  border-left:3px solid #d6dde4}
.cc-more{margin-top:var(--sp-3)}
.cc-more summary{font-size:var(--fs-sm);color:var(--slate);cursor:pointer;
  padding:var(--sp-2) 0;font-weight:700;list-style:none}
.cc-more summary::-webkit-details-marker{display:none}
.cc-more summary::before{content:'▸ ';color:var(--ink-4)}
.cc-more[open] summary::before{content:'▾ '}
.cc-job{display:flex;justify-content:space-between;gap:var(--sp-3);padding:8px 0;
  border-top:1px solid var(--hair);font-size:var(--fs-sm);color:inherit;text-decoration:none}
.cc-call{display:block;text-align:center;margin-top:var(--sp-3);background:var(--orange);
  color:#fff;font-weight:800;font-size:17px;padding:16px;border-radius:var(--r-md);
  text-decoration:none;letter-spacing:-.01em;box-shadow:0 2px 8px rgba(228,87,46,.28)}
.cc-call:hover{filter:brightness(1.05)}
.cc-call.disabled{background:var(--surface-2);color:var(--ink-4);font-weight:600;
  font-size:var(--fs-sm);box-shadow:none}
.cc-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2);margin-top:var(--sp-2)}
.cc-act{border:1px solid var(--hair);background:var(--surface);border-radius:var(--r-sm);
  padding:13px 4px;font-size:var(--fs-sm);font-weight:700;cursor:pointer;color:var(--ink-2);
  transition:background .12s,border-color .12s}
.cc-act:hover{background:var(--surface-2)}
.cc-act.called:hover{border-color:#1f7a4d;color:#1f7a4d}
.cc-act.cb:hover{border-color:#b8860b;color:#8a6508}
.cc-act.dead:hover{border-color:#b4331f;color:#b4331f}

/* --- TABLE refinement --------------------------------------------------- */
.tablewrap{margin-top:var(--sp-3);border:1px solid var(--hair);border-radius:var(--r-md);
  background:var(--surface);overflow:auto;max-height:72vh;box-shadow:var(--shadow-1)}
table.crm{font-size:var(--fs-sm)}
table.crm thead th{background:var(--surface-2);padding:10px 12px;font-size:var(--fs-xs);
  letter-spacing:.06em;font-weight:800;color:var(--ink-4);border-bottom:1px solid var(--hair)}
table.crm thead th.on{color:var(--slate)}
table.crm tbody tr{border-bottom:1px solid #f0f3f6;transition:background .1s}
table.crm tbody tr:hover{background:#f7fafc;box-shadow:inset 3px 0 0 var(--orange)}
table.crm td{padding:10px 12px;line-height:1.45}
.c-addr a{font-weight:600;text-decoration:none}
.c-addr .sub{font-size:var(--fs-xs);color:var(--ink-4);margin-top:2px}
.c-score{font-family:var(--brand,'Archivo'),system-ui,sans-serif;font-size:var(--fs-md)}

/* --- TOOLBAR ------------------------------------------------------------ */
.toolbar{gap:var(--sp-2);margin-top:var(--sp-3);border-radius:var(--r-md);
  padding:10px 12px;box-shadow:var(--shadow-1)}
.toolbar input[type=search]{border-radius:var(--r-sm);border:1px solid var(--hair)}
.toolbar select{border-radius:var(--r-sm)}
.chip{transition:background .12s}
.chip:hover{background:#e2e7ed}

/* --- SCOUT as a conversation surface ------------------------------------ */
.scout-widget,.scoutbox{background:var(--surface);border:1px solid var(--hair);
  border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:var(--sp-4);margin-top:var(--sp-3)}
.msg{border-radius:14px;padding:10px 13px;margin:var(--sp-2) 0;font-size:var(--fs-sm);
  line-height:1.55;max-width:86%}
.msg.assistant{background:var(--surface-2);color:var(--ink);border-bottom-left-radius:4px}
.msg.user{background:var(--slate);color:#fff;margin-left:auto;border-bottom-right-radius:4px}
.scout-hint{font-size:var(--fs-sm);color:var(--ink-4);text-align:center;padding:var(--sp-4)}

/* --- MOBILE: one-handed in a truck -------------------------------------- */
@media (max-width:760px){
  h1{font-size:var(--fs-xl)}
  .wrap{padding-left:var(--sp-3);padding-right:var(--sp-3)}
  .callstats{padding:var(--sp-3) var(--sp-1)}
  .callstats .n{font-size:21px}
  .tracktab .tt-count{font-size:25px}
  .cc-addr{font-size:var(--fs-md)}
  .cc-call{padding:17px;font-size:var(--fs-lg)}
  .cc-act{padding:15px 2px}
  .card{padding:var(--sp-3)}
}

/* ---------- Calendar (/calendar) ------------------------------------------
   Month grid. Three feeds share one surface, colour-coded by kind:
   brass = a scheduled job, steel = a callback promised on the phone,
   green = a queued review request.                                          */
.calwrap{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.calgrid{display:grid;grid-template-columns:repeat(7,1fr)}
.calhead{background:var(--concrete,#f2f2f0);border-bottom:1px solid var(--line)}
.calhead>div{padding:7px 8px;font-size:11px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:#5c5c5c;text-align:center}
.calcell{min-height:104px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:4px;display:flex;flex-direction:column;gap:2px}
.calcell:nth-child(7n){border-right:0}
.calcell.out{background:#fafafa}
.calcell.out .cd{color:#c4c4c4}
.calcell.today{background:#fdfbf7;box-shadow:inset 0 0 0 2px #b08d57}
.calcell .cd{font-size:12px;font-weight:700;color:#5c5c5c;padding:1px 3px}
.calcell.today .cd{color:#8a6d3f}
.calitem{display:block;font-size:11px;line-height:1.3;padding:3px 5px;border-radius:5px;
  text-decoration:none;color:#0a0a0a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  border-left:3px solid transparent}
.calitem .t{font-weight:700;margin-right:4px;opacity:.75}
.calitem.job{background:#f6efe4;border-left-color:#b08d57}
.calitem.callback{background:#eeeeee;border-left-color:#5c5c5c}
.calitem.review{background:#e9f4ee;border-left-color:#1f7a4d}
.calitem:hover{filter:brightness(.96)}
.cal-key{display:inline-block;width:9px;height:9px;border-radius:3px;vertical-align:middle;margin:0 1px 0 4px}
.cal-key.job{background:#b08d57}
.cal-key.callback{background:#5c5c5c}
.cal-key.review{background:#1f7a4d}
@media (max-width:720px){
  .calcell{min-height:74px}
  .calitem{font-size:10px;padding:2px 4px}
  .calhead>div{font-size:10px;padding:5px 2px}
}
