/* Ango brand theme — light-first, per BRAND-RESTYLE-HANDOFF.md.
   ALL colors live in this :root block; nothing hard-coded below it. */
:root{
  /* brand */
  --primary:#3D5A7E;            /* Ango Blue */
  --navy:#384257;               /* Ango Navy */
  --bg:#F5F5FA;                 /* Ango White */
  /* derived tints (Blue/Navy family only) */
  --surface:#FFFFFF;
  --panel2:#EAECF2;
  --border:#D7DCE6;
  --border2:#C9CFDB;
  --text:#384257;
  --muted:#616B83;
  --row-hover:#EEF1F7;
  --primary-soft:#8FA5C1;       /* Blue 40% — gradient start */
  --accent:#3D5A7E;             /* Blue as text/marks; lightened in dark mode */
  --chart-outline:#384257;
  --primary-tint:#E8EBF0;
  --on-primary:#FFFFFF;
  --on-navy:#F5F5FA;
  --navy-nav-dim:rgba(245,245,250,.62);
  /* semantic (functional only) */
  --success:#2E7D5B;
  --warning:#986419;
  --danger:#B3475A;
  --success-tint:#EEF5F2;
  --warning-tint:#F7F3ED;
  --danger-tint:#F9F0F2;
  --pin-untouched:#C9CFDB;
  /* calendar event fills (fixed across themes: all pass white text AA) */
  --ev-install:#3D5A7E;
  --ev-training:#6D5A9E;
  --ev-service:#384257;
  --ev-fu:#986419;
  --fu-bg:#F4E8D3;
  --fu-text:#7A5310;
  /* composites */
  --goal-gradient:linear-gradient(90deg,var(--primary-soft),var(--accent));
  --shadow:0 1px 3px rgba(56,66,87,.07),0 1px 2px rgba(56,66,87,.05);
  --watermark:rgba(56,66,87,.05);
  /* type */
  --font-display:'Michroma','Eurocine',sans-serif;
  --font-body:'Jost','Nizzoli',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  /* shape */
  --radius:12px; --radius-sm:8px;
  /* legacy aliases (old token names still referenced in markup/JS) */
  --topbar:var(--navy);
  --panel:var(--surface);
  --blue:var(--accent);
  --blue-hi:var(--accent);
  --green:var(--success);
  --amber:var(--warning);
  --red:var(--danger);
  --gold:var(--warning);
  --violet:var(--primary);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:var(--font-body);font-size:15px;line-height:1.5}
a{color:var(--accent);cursor:pointer;text-decoration:none}
a:hover{text-decoration:underline}
/* ---- navy header with the white wordmark ---- */
.topbar{height:56px;background:var(--navy);border-bottom:0;display:flex;align-items:center;justify-content:space-between;padding:0 22px}
.brand{display:flex;align-items:center;gap:12px;font-weight:600;font-size:15px;color:var(--on-navy)}
.brand a.brandlink{display:flex;align-items:center;text-decoration:none}
.brand a.brandlink:hover{text-decoration:none;opacity:.85}
.brand img.wordmark{height:18px;display:block}
.brand small{font-weight:400;color:var(--navy-nav-dim);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.topright{display:flex;align-items:center;gap:14px;color:var(--navy-nav-dim);font-size:14px}
.topright a{color:var(--navy-nav-dim)}
.topright a:hover{color:var(--on-navy)}
.topright .who{color:var(--on-navy);font-weight:500}
.wrap{max-width:1060px;margin:0 auto;padding:20px 20px 60px}
/* ---- tab bar: uppercase display labels, blue underline on active ---- */
.nav{display:flex;gap:2px;flex-wrap:wrap;margin-bottom:18px;border-bottom:1px solid var(--border)}
.nav button{background:transparent;color:var(--muted);border:0;border-bottom:3px solid transparent;
  padding:10px 14px 9px;font-size:10.5px;cursor:pointer;font-family:var(--font-display);
  text-transform:uppercase;letter-spacing:.08em}
.nav button:hover{color:var(--text)}
.nav button.active{color:var(--text);border-bottom-color:var(--accent);font-weight:400}
.nav .spacer{flex:1}
.nav .ext{background:transparent;border:0;color:var(--accent);font-family:var(--font-body);
  font-size:13px;text-transform:none;letter-spacing:0;text-decoration:none;padding:10px 10px}
.nav .ext:hover{text-decoration:underline}
.controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.lbl{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
select.repsel,select.sort{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-family:var(--font-body);font-size:14px}
input.repsel{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:14px}
/* timeframe pills */
.seg{display:inline-flex;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:3px}
.seg button{background:transparent;border:0;color:var(--muted);padding:6px 14px;border-radius:999px;font-size:13px;cursor:pointer;font-family:var(--font-body)}
.seg button.active{background:var(--primary);color:var(--on-primary)}
/* panels / cards */
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.panel+.panel{margin-top:16px}
.panel h2{margin:0 0 4px;font-size:12px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--text);font-weight:400}
.panel .sub{color:var(--muted);font-size:13px;margin-bottom:16px}
/* goal bars */
.goals{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}
.goal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.goal .gh{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px}
.goal .gt{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.goal .gv{font-size:15px;font-weight:600}
.goal .gv small{color:var(--muted);font-weight:400;font-size:12px}
.gtrack{position:relative;height:12px;border-radius:999px;background:var(--panel2);overflow:hidden}
.gfill{position:relative;height:100%;border-radius:999px;background:var(--goal-gradient);transition:width .3s}
.gfill.hit{background:var(--goal-gradient)}
.gpct{font-size:11.5px;color:var(--muted);margin-top:6px}
.gpct b{color:var(--text)}
.gpct b.hit{color:var(--success)}
/* KPI cards */
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.kpis.four{grid-template-columns:repeat(4,1fr)}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.kpi .k{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.kpi .v{font-size:20px;font-family:var(--font-display);color:var(--text);margin-top:10px}
.kpi .d{font-size:12px;margin-top:8px;color:var(--muted)}
.kpi .d.under{color:var(--success)}.kpi .d.over{color:var(--danger)}
.kpi.accent .v{color:var(--success)}
.kpi.onboard .v{color:var(--warning)}
.hint{color:var(--muted);font-size:12.5px;margin-top:14px}
.stub{color:var(--muted);text-align:center;padding:50px 20px}
.stub b{color:var(--text)}
/* table */
table{width:100%;border-collapse:collapse;font-size:14px;font-family:var(--font-body)}
.right{text-align:right}.money{font-variant-numeric:tabular-nums}
th{text-align:left;color:var(--muted);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:10px;border-bottom:1px solid var(--border);background:var(--surface)}
td{padding:10px;border-bottom:1px solid var(--panel2)}tr:last-child td{border-bottom:0}
tbody tr.click{cursor:pointer}
tbody tr.click:hover{background:var(--row-hover)}
/* pipeline list */
.search{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:10px 16px;color:var(--text);font-family:var(--font-body);font-size:14px;margin-bottom:14px}
.search::placeholder{color:var(--muted)}
.complete{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:16px;box-shadow:var(--shadow)}
.complete .ch{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px}
.complete .ct{font-size:12px;font-weight:400;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em}
.complete .cv{font-size:20px;font-family:var(--font-display)}
.complete .cv.hit{color:var(--success)}
.csub{display:flex;gap:18px;margin-top:10px;font-size:12px;color:var(--muted);flex-wrap:wrap}.csub b{color:var(--text)}
/* stage mini-bar: done=blue fill · current=blue outline · future=neutral */
.sstage{display:flex;gap:3px;width:120px}
.sseg{flex:1;height:8px;border-radius:3px;background:var(--border)}
.sseg.done{background:var(--accent)}
.sseg.cur{background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--accent)}
.sseg.deal{background:var(--success)}
.slbl{font-size:11px;color:var(--muted);margin-top:4px}
.slbl b{color:var(--text)}
/* temperature badges: tint bg + full-strength text */
.temp{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}
.temp.Hot{color:var(--danger);background:var(--danger-tint)}
.temp.Warm{color:var(--warning);background:var(--warning-tint)}
.temp.Cold{color:var(--accent);background:var(--primary-tint)}
.tg{font-size:11.5px;padding:2px 8px;border-radius:999px;background:var(--panel2);color:var(--muted)}
.empty{color:var(--muted);text-align:center;padding:30px}
/* business list (datasheet) */
.chips{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.chip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 16px;min-width:96px;box-shadow:var(--shadow)}
.chip .n{font-size:20px;font-family:var(--font-display)}
.chip .l{font-size:11px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.06em}
.chip.p .n{color:var(--muted)} .chip.l2 .n{color:var(--accent)} .chip.d .n{color:var(--success)}
.fpills{display:inline-flex;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:3px}
.fpills button{background:transparent;border:0;color:var(--muted);padding:7px 14px;border-radius:999px;cursor:pointer;font-family:var(--font-body);font-size:13px}
.fpills button.active{background:var(--primary);color:var(--on-primary)}
.sys.none{color:var(--success);background:var(--success-tint)}
.sys.cash{color:var(--warning);background:var(--warning-tint)}
.sys.clover{color:var(--danger);background:var(--danger-tint)}
.goalmini{width:120px}
.goalmini .gtrack{height:8px}
.gnum{font-size:11px;color:var(--muted);margin-top:4px}
.fu{font-size:12.5px}
.fu.soon{color:var(--warning);font-weight:600;border-left:3px solid var(--warning);padding-left:7px}
.muted{color:var(--muted)}
/* profile */
.back{color:var(--muted);font-size:13px;display:inline-block;margin-bottom:14px}
.head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
h1{margin:0;font-size:23px;font-weight:600;color:var(--text)}
.hsub{color:var(--muted);font-size:14px;margin-top:5px}
/* status pills: ~12% tint bg + full-strength color text */
.pill{display:inline-block;font-size:11px;font-weight:600;padding:4px 12px;border-radius:999px;vertical-align:middle;margin-left:10px;letter-spacing:.04em}
.pill.stage-Prospect{color:var(--muted);background:var(--panel2)}
.pill.stage-Lead{color:var(--accent);background:var(--primary-tint)}
.pill.stage-Deal{color:var(--success);background:var(--success-tint)}
.pill.stage-Disqualified{color:var(--danger);background:var(--danger-tint)}
.flag{display:inline-block;font-size:11px;font-weight:600;color:var(--warning);background:var(--warning-tint);border-radius:999px;padding:3px 9px;margin-left:6px}
.headright{text-align:right;font-size:13px;color:var(--muted);min-width:150px}
.headright .rep{color:var(--text);font-weight:600}
.journey{margin:18px 0;background:var(--panel2);border-radius:var(--radius-sm);padding:16px 18px}
/* stepper: completed=blue fill · current=blue outline · future=neutral */
.stepper{display:flex;gap:6px;margin-bottom:16px}
.stepper .step{flex:1;text-align:center;padding:9px 0;border-radius:var(--radius-sm);font-size:13px;font-weight:600;background:var(--surface);border:1px solid var(--border);color:var(--muted)}
.stepper .step.done{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}
.stepper .step.current{background:var(--surface);border:1.5px solid var(--accent);color:var(--accent)}
.goalrow{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;margin-bottom:7px}
.goallbl{color:var(--muted)}
.goalnum{font-weight:600;font-size:14px}
.goalhint{color:var(--muted);font-size:12px;margin-top:7px}
.map{margin:18px 0;height:120px;border-radius:var(--radius-sm);border:1px solid var(--border);
  background:
    repeating-linear-gradient(0deg,transparent,transparent 23px,var(--panel2) 23px,var(--panel2) 24px),
    repeating-linear-gradient(90deg,transparent,transparent 23px,var(--panel2) 23px,var(--panel2) 24px),
    var(--surface);
  position:relative;overflow:hidden}
.map .r1{position:absolute;left:0;right:0;top:64px;height:8px;background:var(--panel2)}
.map .r2{position:absolute;top:0;bottom:0;left:58%;width:8px;background:var(--panel2)}
.pinwrap{position:absolute;left:58%;top:64px;transform:translate(-50%,-100%);text-align:center}
.pin{width:18px;height:18px;border-radius:50% 50% 50% 0;background:var(--primary);transform:rotate(-45deg);
  border:2px solid var(--surface);box-shadow:var(--shadow);margin:0 auto}
.map .coords{position:absolute;bottom:8px;left:12px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.map .open{position:absolute;bottom:8px;right:12px;font-size:12px}
.next{margin-bottom:18px;background:var(--primary-tint);border:1px solid var(--primary-soft);border-radius:var(--radius-sm);padding:12px 16px;font-size:14px}
.next b{color:var(--accent)}
.cols{display:grid;grid-template-columns:340px 1fr;gap:18px}
@media(max-width:760px){.cols{grid-template-columns:1fr}}
.sect{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 12px;font-family:var(--font-display)}
.intel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 14px}
.intel .row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--panel2)}
.intel .row:last-child{border-bottom:0}
.intel .k{color:var(--muted);font-size:13px}
.intel .v{text-align:right;font-weight:600;font-size:13.5px}
.v .hot{color:var(--success)}
.v .warn{color:var(--warning)}
/* touch timeline */
.touch{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;margin-bottom:12px;box-shadow:var(--shadow)}
.touch .when{font-size:12.5px;color:var(--muted);margin-bottom:8px}
.touch .when b{color:var(--text)}
.badges{margin-bottom:8px;display:flex;gap:6px;flex-wrap:wrap}
.badge{font-size:11.5px;padding:3px 9px;border-radius:999px;background:var(--panel2);color:var(--muted)}
.badge.o{color:var(--accent);background:var(--primary-tint)}
.badge.cb{color:var(--warning);background:var(--warning-tint)}
.badge.hot{color:var(--danger);background:var(--danger-tint);font-weight:600}
.badge.warm{color:var(--warning);background:var(--warning-tint);font-weight:600}
.badge.cold{color:var(--accent);background:var(--primary-tint);font-weight:600}
.touch .spoke{font-size:13px;margin-bottom:8px}
.touch .spoke b{color:var(--text)}
.touch .note{font-size:13.5px;color:var(--text);background:var(--panel2);border-radius:var(--radius-sm);padding:10px 12px}
/* actions: primary blue / warning outline / success fill */
.logbtn{width:100%;background:var(--primary);color:var(--on-primary);border:0;border-radius:var(--radius-sm);
  padding:12px;font-size:14px;font-weight:600;cursor:pointer;font-family:var(--font-body);margin-top:4px}
.logbtn:hover{background:var(--navy)}
.btn2{background:var(--surface);border:1px solid var(--accent);color:var(--accent);border-radius:var(--radius-sm);
  padding:12px 16px;font-size:14px;cursor:pointer;font-family:var(--font-body)}
.btn2:hover{background:var(--primary-tint)}
.dealbtn{width:100%;background:var(--success);color:var(--on-primary);border:0;border-radius:var(--radius-sm);
  padding:10px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:var(--font-body);margin-top:10px}
.dealbtn:hover{opacity:.92}
.dealbtn.onboard{background:var(--surface);color:var(--warning);border:1px solid var(--warning)}
.dealbtn.onboard:hover{background:var(--warning-tint);opacity:1}
.dealbtn.undo{background:var(--surface);color:var(--muted);border:1px solid var(--border)}
.dealbtn.undo:hover{background:var(--panel2);opacity:1}
.chint{color:var(--muted);font-size:12px;text-align:center;margin-top:10px}
/* toast: navy, white text */
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--navy);
  color:var(--on-navy);padding:10px 18px;border-radius:999px;font-size:13.5px;opacity:0;pointer-events:none;transition:opacity .25s;z-index:99;box-shadow:var(--shadow)}
.toast.show{opacity:1}
/* log-touch form */
.tform{background:var(--panel2);border-radius:var(--radius-sm);padding:16px;margin-top:4px}
.tform .fld{margin-bottom:12px}
.tform label{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
.tform input,.tform select,.tform textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:9px 12px;color:var(--text);font-family:var(--font-body);font-size:14px}
.tform textarea{min-height:70px;resize:vertical}
.tform .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tform .seg{width:100%;display:flex}
.tform .seg button{flex:1}
.tform .actions{display:flex;gap:10px;margin-top:4px}
.tform .actions .logbtn{margin-top:0}
.tempnote{font-size:12px;color:var(--muted);margin-top:-6px;margin-bottom:12px}
/* mini map */
#miniMap{height:280px;background:var(--panel2)}
/* pending-sync badge (sits on the navy bar) */
#pendingBadge{color:var(--warning-tint);font-size:12px}
@media(max-width:820px){.goals,.kpis,.kpis.four{grid-template-columns:1fr}}

/* ---- theme toggle ---- */
.themebtn{background:transparent;border:0;color:var(--navy-nav-dim);cursor:pointer;padding:4px;display:flex;align-items:center}
.themebtn:hover{color:var(--on-navy)}
.themebtn svg{width:17px;height:17px;display:block}
/* ---- dark mode (brand handoff §2 v1.1: Navy-derived surfaces) ---- */
:root[data-theme="dark"]{
  --bg:#232B3A;
  --surface:#2C3547;
  --panel2:#39445C;
  --border:#414D66;
  --border2:#4C5975;
  --text:#F5F5FA;
  --muted:#A5B3C9;
  --row-hover:#333E55;
  --accent:#9DB3CF;
  --primary-tint:#3A4457;
  --chart-outline:#F5F5FA;
  --success:#76C0A0;
  --warning:#DBA857;
  --danger:#E09FAB;
  --success-tint:#354652;
  --warning-tint:#414349;
  --danger-tint:#424253;
  --pin-untouched:#55617A;
  --fu-bg:#414349;
  --fu-text:#DBA857;
  --shadow:0 1px 3px rgba(0,0,0,.35),0 1px 2px rgba(0,0,0,.25);
  --watermark:rgba(245,245,250,.05);
}

/* ---- Calendar tab (cv- prefix; mockup-faithful, token-driven) ---- */
.cv-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.cv-views,.cv-reps{display:flex;gap:6px;flex-wrap:wrap}
.cv-modes{display:flex;gap:0;background:var(--panel2);border-radius:18px;padding:3px}
.cv-pill{background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:16px;padding:5px 14px;font-size:13px;cursor:pointer;font-family:var(--font-body)}
.cv-pill.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:500}
.cv-modes .cv-pill{border:none;background:transparent}
.cv-modes .cv-pill.on{background:var(--navy);color:var(--on-navy)}
.cv-nav{margin-left:auto;display:flex;align-items:center;gap:10px}
.cv-nav button{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:30px;height:30px;cursor:pointer;color:var(--text);font-size:15px}
.cv-range{font-weight:600;font-size:14px;min-width:150px;text-align:center}
.cv-legend{display:flex;gap:14px;font-size:12px;color:var(--muted);margin:0 0 10px;flex-wrap:wrap}
.cv-dot{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;vertical-align:1px}
.cv-cap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;margin-bottom:14px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow)}
.cv-caplbl{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.cv-captrack{flex:1;height:14px;border-radius:7px;background:var(--panel2);overflow:hidden;position:relative}
.cv-capfill{height:100%;border-radius:7px;background:linear-gradient(90deg,#2E7D5B,#8BA83B,#C99A2C,#C0653F,#B3475A);background-size:var(--gradw,600px) 100%;transition:width .35s}
.cv-capstat{font-size:13px;font-weight:600;white-space:nowrap}
.cv-capstat small{color:var(--muted);font-weight:400}
.cv-cols{display:grid}
.cv-scrollx{overflow-x:auto}
.cv-dayhead{padding:8px 10px 6px;border-bottom:1px solid var(--border);border-left:1px solid var(--border);font-size:12px;color:var(--muted);text-align:center}
.cv-dayhead b{color:var(--text);font-size:15px;margin-left:4px}
.cv-dayhead.cv-today b{color:var(--accent)}
.cv-minitrack{height:5px;border-radius:3px;background:var(--panel2);margin-top:5px;overflow:hidden}
.cv-minifill{height:100%;border-radius:3px}
.cv-allday{border-left:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg);min-height:34px;padding:4px}
.cv-gutter{font-size:10px;color:var(--muted);text-align:right;padding:2px 6px 0 0}
.cv-slotcol{position:relative;border-left:1px solid var(--border)}
.cv-hline{height:44px;border-bottom:1px solid var(--panel2)}
.cv-ev{position:absolute;left:4px;right:4px;border-radius:7px;padding:4px 7px;font-size:12px;line-height:1.25;color:#fff;overflow:hidden;cursor:pointer;border-left:3px solid rgba(0,0,0,.25)}
.cv-ev small{display:block;opacity:.85;font-size:10px}
.cv-fu{display:inline-block;background:var(--fu-bg);color:var(--fu-text);border-left:3px solid var(--ev-fu);border-radius:6px;font-size:11.5px;padding:2px 7px;margin:2px;cursor:pointer}
.cv-lday{border-bottom:1px solid var(--border)}
.cv-lday:last-child{border-bottom:none}
.cv-lhead{display:flex;align-items:center;gap:12px;background:var(--bg);padding:8px 16px;font-weight:600;flex-wrap:wrap}
.cv-cappct{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600}
.cv-litem{display:flex;align-items:center;gap:12px;padding:9px 16px;border-top:1px solid var(--panel2);cursor:pointer}
.cv-litem:hover{background:var(--row-hover)}
.cv-ltime{width:130px;font-size:13px;color:var(--muted);white-space:nowrap;flex-shrink:0}
.cv-lbar{width:4px;align-self:stretch;border-radius:2px;flex-shrink:0}
.cv-ltitle b{font-weight:600}
.cv-ltitle small{display:block;color:var(--muted);font-size:12px}
.cv-lrep{margin-left:auto;font-size:12px;color:var(--muted)}
.cv-empty{padding:10px 16px;color:var(--muted);font-size:13px;font-style:italic}
.cv-grid14{display:grid;grid-template-columns:repeat(7,1fr)}
.cv-cell{border-left:1px solid var(--border);border-bottom:1px solid var(--border);min-height:100px;padding:6px 8px;font-size:12px;display:flex;flex-direction:column}
.cv-cell .cv-d{color:var(--muted);font-weight:600}
.cv-cell.cv-today .cv-d{color:var(--on-primary);background:var(--primary);border-radius:10px;padding:0 7px;display:inline-block}
.cv-cnt{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px;flex:1}
.cv-chip{border-radius:9px;padding:1px 7px;font-size:11px;color:#fff;height:fit-content}
@media(max-width:600px){
  .cv-nav{margin-left:0;width:100%;justify-content:space-between}
  .cv-range{min-width:0;flex:1}
  .cv-ltime{width:auto;min-width:86px}
  .cv-lrep{display:none}
  .cv-cap{flex-wrap:wrap}
  .cv-capstat{width:100%}
}

/* ---- Pipeline/datasheet: Date entered + Freshness (pipeline.freshness_days) ---- */
.tablewrap{overflow-x:auto}
.fchip{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;cursor:default}
.fchip.fresh{color:var(--success);background:var(--success-tint)}
.fchip.aged{color:var(--warning);background:var(--warning-tint)}
.lt-date{font-size:12.5px;white-space:nowrap}
/* payout status pills: Paid once the pay date has passed, else Pending */
.paystat{font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;white-space:nowrap}
.paystat.paid{color:var(--success);background:var(--success-tint)}
.paystat.pending{color:var(--warning);background:var(--warning-tint)}
.notouch{color:var(--muted);font-size:12px;font-style:italic}
.temp{white-space:nowrap}

/* ---- overdue follow-ups strip (calendar) ---- */
.od-strip{background:var(--surface);border:1px solid var(--warning);border-radius:var(--radius);margin-bottom:14px;box-shadow:var(--shadow);overflow:hidden}
.od-head{width:100%;display:flex;justify-content:space-between;align-items:center;background:var(--warning-tint);border:0;padding:10px 14px;font-family:var(--font-body);font-size:13.5px;font-weight:600;color:var(--warning);cursor:pointer}
.od-chev{font-size:11px}
.od-row{display:flex;align-items:center;gap:10px;padding:9px 14px;border-top:1px solid var(--panel2);flex-wrap:wrap}
.od-name{font-weight:600;font-size:14px}
.od-due{font-size:12.5px;color:var(--muted);margin-left:auto;white-space:nowrap}
.od-due b{color:var(--danger)}
.od-btn{background:var(--primary);color:var(--on-primary);border:0;border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:var(--font-body)}
.od-btn:hover{background:var(--navy)}
@media(max-width:600px){.od-due{margin-left:0;width:100%}.od-btn{margin-left:auto}}

/* ---- guided re-book wizard ---- */
.rb-overlay{position:fixed;inset:0;z-index:80;background:rgba(56,66,87,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.rb-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);width:100%;max-width:440px;overflow:hidden}
.rb-ptrack{height:6px;background:var(--panel2)}
.rb-pfill{height:100%;background:var(--goal-gradient);transition:width .3s}
.rb-ptext{font-size:11px;color:var(--muted);padding:9px 18px 0;text-transform:uppercase;letter-spacing:.06em}
.rb-inner{padding:10px 18px 18px}
.rb-headrow{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.rb-name{margin:0;font-size:17px;font-weight:600}
.rb-name a{color:var(--text)}
.rb-x{background:transparent;border:0;color:var(--muted);font-size:15px;cursor:pointer;padding:2px 6px}
.rb-duetxt{font-size:12.5px;color:var(--muted);margin:3px 0 14px}
.rb-duetxt b{color:var(--danger)}
.rb-steplbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.rb-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.rb-opt{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 8px;cursor:pointer;font-family:var(--font-body);text-align:center}
.rb-opt:hover{border-color:var(--primary);background:var(--primary-tint)}
.rb-opt b{display:block;font-size:14px;color:var(--text)}
.rb-opt small{color:var(--muted);font-size:11.5px}
.rb-sel{font-size:13.5px;background:var(--primary-tint);border-radius:var(--radius-sm);padding:9px 12px;margin-bottom:10px}
.rb-change{background:transparent;border:0;color:var(--accent);cursor:pointer;font-size:12px;text-decoration:underline;font-family:var(--font-body)}
.rb-card textarea{width:100%;min-height:76px;resize:vertical;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 12px;color:var(--text);font-family:var(--font-body);font-size:14px;margin-bottom:6px}
.rb-note-hint{font-size:11.5px;color:var(--muted);margin-bottom:10px}
.rb-primary{width:100%;background:var(--primary);color:var(--on-primary);border:0;border-radius:var(--radius-sm);padding:11px;font-size:14px;font-weight:600;cursor:pointer;font-family:var(--font-body)}
.rb-primary:hover{background:var(--navy)}
.rb-primary:disabled{opacity:.6;cursor:default}
.rb-skip{display:block;width:100%;background:transparent;border:0;color:var(--muted);font-size:12.5px;cursor:pointer;margin-top:10px;font-family:var(--font-body);text-decoration:underline}
.rb-done{font-size:19px;font-weight:600;color:var(--success);margin:10px 0 4px}
.rb-donesub{font-size:13px;color:var(--muted);margin-bottom:14px}
@media(max-width:480px){.rb-opts{grid-template-columns:1fr}}

/* ---- muted portal-reschedule entries in the profile timeline ---- */
.touch.rebook{opacity:.72;background:var(--bg);border-style:dashed;box-shadow:none}
.touch.rebook .rbk{color:var(--muted)}
.touch.rebook .note{background:transparent;padding:2px 0 0;color:var(--muted);font-style:italic}

/* ---- feedback button + modal ---- */
.fb-btn{position:fixed;bottom:16px;right:16px;z-index:60;background:var(--navy);color:var(--on-navy);
  border:0;border-radius:999px;padding:10px 16px;font-size:13px;font-weight:600;cursor:pointer;
  font-family:var(--font-body);box-shadow:var(--shadow)}
.fb-btn:hover{background:var(--primary)}
.fb-overlay{position:fixed;inset:0;z-index:70;background:rgba(56,66,87,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.fb-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);
  width:100%;max-width:420px;padding:20px}
.fb-title{margin:0 0 14px;font-size:12px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;font-weight:400}
.fb-kind{display:flex;gap:8px;margin-bottom:12px}
.fb-kind button{flex:1;background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:var(--radius-sm);
  padding:9px;font-size:13px;cursor:pointer;font-family:var(--font-body)}
.fb-kind button.on{border-color:var(--primary);color:var(--accent);background:var(--primary-tint);font-weight:600}
.fb-card textarea{width:100%;min-height:110px;resize:vertical;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:10px 12px;color:var(--text);font-family:var(--font-body);font-size:14px}
.fb-note{color:var(--muted);font-size:12px;margin:10px 0 14px}
.fb-actions{display:flex;gap:10px}
.fb-send{flex:1;background:var(--primary);color:var(--on-primary);border:0;border-radius:var(--radius-sm);
  padding:11px;font-size:14px;font-weight:600;cursor:pointer;font-family:var(--font-body)}
.fb-send:hover{background:var(--navy)}
.fb-cancel{background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:var(--radius-sm);
  padding:11px 16px;font-size:14px;cursor:pointer;font-family:var(--font-body)}
@media(max-width:600px){.fb-btn{bottom:12px;right:12px;padding:9px 14px}}
