/* SI CRM (CRM13, 2026-10-10). Colors and font from client-portal/src/theme.css (the live platform look). */
*{box-sizing:border-box}
[hidden]{display:none !important}
:root{
  --bg:#0a1c30;--nav-bg:#114069;--card:#0e2540;--card2:#123258;--border:#1c3a5e;--border-l:rgba(247,245,236,.14);
  --orange:#fd5100;--orange-dim:rgba(253,81,0,.14);--green:#3ecf6a;--green-dim:rgba(62,207,106,.12);
  --red:#f76359;--red-dim:rgba(232,84,74,.12);--blue:#6fb3ff;--blue-dim:rgba(111,179,255,.12);
  --text:#f7f5ec;--text2:#a9b9c9;--text3:#869cb4;--r:10px;--r-sm:6px;
}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:'Poppins',sans-serif;font-size:15px;line-height:1.5}
button,input,select,textarea{font:inherit;color:inherit}
.muted{color:var(--text3)}
.center{text-align:center;padding:60px 16px}
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:10px 16px;background:var(--nav-bg);border-bottom:1px solid var(--border)}
.brand{font-weight:800;font-size:18px;display:flex;align-items:center;gap:8px}
.logo{background:var(--orange);color:#fff;border-radius:6px;padding:0 6px;font-size:14px}
#company{font-weight:500;font-size:14px}
nav{display:flex;gap:4px;flex:1}
nav button{background:none;border:0;padding:6px 12px;border-radius:var(--r-sm);color:var(--text2);cursor:pointer;font-weight:600}
nav button.on{background:var(--orange-dim);color:var(--orange)}
.who{font-size:13px}
main{padding:16px;max-width:1280px;margin:0 auto}
h2{font-size:20px;font-weight:800;margin:0 0 12px}
h3{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--orange);margin:20px 0 10px;padding-bottom:8px;border-bottom:1px solid var(--border-l)}
.bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.grow{flex:1}
.btn{background:var(--orange);color:#fff;border:0;border-radius:var(--r-sm);padding:8px 14px;font-weight:600;cursor:pointer}
.btn:disabled{opacity:.5;cursor:default}
.btn.ghost{background:transparent;border:1px solid var(--border-l);color:var(--text)}
.btn.small{padding:4px 10px;font-size:13px}
.btn.green{background:var(--green);color:#06210f}
.btn.red{background:transparent;border:1px solid var(--red);color:var(--red)}
.link{background:none;border:0;color:var(--text2);cursor:pointer;text-decoration:underline;padding:0}
input,select,textarea{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 10px;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--orange-glow,rgba(253,81,0,.35));border-color:var(--orange)}
label{display:block;font-size:12px;color:var(--text3);margin:8px 0 4px;font-weight:600}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:12px}
.cards{display:flex;flex-direction:column;gap:8px}
.job{cursor:pointer;border-left:3px solid var(--border-l)}
.job:hover{border-color:var(--orange)}
.job .t{font-weight:700}
.job .s{font-size:13px;color:var(--text2)}
.grid2{display:grid;grid-template-columns:minmax(260px,1fr) 3fr;gap:16px}
.lanes{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.lane h4{margin:0 0 8px;font-size:14px}
.chip{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:20px;padding:2px 8px;background:var(--card2);color:var(--text2)}
.chip.unscheduled{background:var(--orange-dim);color:var(--orange)}
.chip.scheduled{background:var(--blue-dim);color:var(--blue)}
.chip.in_progress{background:rgba(255,206,84,.14);color:#ffce54}
.chip.completed,.chip.won{background:var(--green-dim);color:var(--green)}
.chip.canceled,.chip.lost,.chip.closed{background:var(--red-dim);color:var(--red)}
.chip.unsold{background:var(--orange-dim);color:var(--orange)}
table{width:100%;border-collapse:collapse}
td,th{padding:8px;border-bottom:1px solid var(--border);text-align:left;font-size:14px}
th{color:var(--text3);font-size:12px;text-transform:uppercase;letter-spacing:.06em}
tr.click{cursor:pointer}
tr.click:hover td{background:var(--card2)}
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.tier{border-top:3px solid var(--border-l)}
.tier.Premium{border-top-color:var(--orange)}.tier.Standard{border-top-color:var(--blue)}.tier.Economy{border-top-color:var(--text3)}
.tier .amt{font-size:22px;font-weight:800}
.li{display:grid;grid-template-columns:1fr 60px 100px 28px;gap:4px;margin-bottom:4px}
.li button{background:none;border:0;color:var(--text3);cursor:pointer}
.events{font-size:13px;color:var(--text2)}
.events div{padding:2px 0}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:20;display:flex;align-items:flex-start;justify-content:center;padding:40px 12px;overflow:auto}
.modal[hidden]{display:none}
.sheet{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:20px;width:100%;max-width:760px}
.x{position:absolute;right:12px;top:8px;background:none;border:0;color:var(--text2);font-size:24px;cursor:pointer}
.toast{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);background:var(--card2);border:1px solid var(--border-l);padding:10px 16px;border-radius:var(--r);z-index:30}
.toast.err{border-color:var(--red);color:var(--red)}
.empty{color:var(--text3);font-size:14px;padding:8px 0}
.pick{max-height:220px;overflow:auto;border:1px solid var(--border);border-radius:var(--r-sm)}
.pick div{padding:8px 10px;cursor:pointer;border-bottom:1px solid var(--border)}
.pick div:hover,.pick div.on{background:var(--card2)}
@media (max-width:760px){.grid2{grid-template-columns:1fr}.who{width:100%}}

/* ---- dispatch board (CRM19). Status colors follow ServiceTitan: scheduled light blue, dispatched purple,
   working green, done gray; red outline = late / running over; amber = double-booked. */
.red{color:var(--red)}.amber{color:#ffb547}
.summary{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px;margin:-4px 0 12px;padding:8px 12px;background:var(--card);border:1px solid var(--border);border-radius:var(--r)}
.placing{margin:-4px 0 12px;padding:8px 12px;border:1px dashed var(--orange);border-radius:var(--r);background:var(--orange-dim)}
.dboard{display:grid;grid-template-columns:270px 1fr;gap:12px;align-items:start}
.queue{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:10px;max-height:calc(100vh - 220px);overflow:auto;position:sticky;top:70px}
.qhead{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--orange);margin-bottom:8px}
.qdrop{display:none;border:2px dashed var(--orange);border-radius:var(--r-sm);padding:10px;text-align:center;font-size:13px;color:var(--orange);margin-bottom:8px}
.qdrop.on{display:block}
.qcard{background:var(--bg);border:1px solid var(--border);border-left:4px solid var(--text3);border-radius:var(--r-sm);padding:8px 10px;margin-bottom:8px;cursor:grab;font-size:13px}
.qcard .t{font-weight:700;font-size:14px}.qcard .s{color:var(--text2)}
.qcard.prio-emergency{border-left-color:var(--red)}.qcard.prio-high{border-left-color:#ffb547}
.qcard.sel{outline:2px solid var(--orange)}
.chip.emergency{background:var(--red-dim);color:var(--red)}.chip.high{background:rgba(255,181,71,.14);color:#ffb547}
.chip.dispatched{background:rgba(180,140,255,.16);color:#c3a6ff}
/* CRM43: the grid scrolls inside its own box, so the time header (and week day header) stays in view while scrolling techs. */
.gridwrap{overflow:auto;max-height:calc(100vh - 220px);background:var(--card);border:1px solid var(--border);border-radius:var(--r)}
.tgrid{width:calc(var(--w) + 190px)}
.trow{display:grid;grid-template-columns:190px var(--w);border-bottom:1px solid var(--border)}
.tname{position:sticky;left:0;z-index:2;background:var(--card);padding:8px 10px;border-right:1px solid var(--border);font-size:12px}
.tname b{font-size:14px;display:block}
.cap{height:4px;background:var(--border);border-radius:2px;margin:4px 0}.cap div{height:4px;background:var(--orange);border-radius:2px}
.tlane{position:relative;min-height:74px;background-image:repeating-linear-gradient(90deg,var(--border-l) 0 1px,transparent 1px calc(var(--hw) / 2),rgba(247,245,236,.05) calc(var(--hw) / 2) calc(var(--hw) / 2 + 1px),transparent calc(var(--hw) / 2 + 1px) var(--hw))}
.tlane.over{background-color:var(--orange-dim)}
.thead .tlane{min-height:28px;background-image:none}
.thead{position:sticky;top:0;z-index:3;background:var(--card2)}
.hcell{position:absolute;top:6px;font-size:12px;color:var(--text3);padding-left:4px;border-left:1px solid var(--border-l);height:22px}
.now{position:absolute;top:0;bottom:0;width:2px;background:var(--red);z-index:1}
.blk{position:absolute;top:4px;height:66px;border-radius:6px;padding:4px 7px;font-size:12px;line-height:1.3;overflow:hidden;cursor:pointer;color:#0a1c30;border:2px solid transparent;box-shadow:0 1px 3px rgba(0,0,0,.35);z-index:1}
.blk .bt{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.blk .bs{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.85}
/* One fill per stage (Mark 10/10): not started blue, en route purple, in progress amber, completed green. */
.blk.st-scheduled{background:#9fd0ff;cursor:grab}.blk.st-dispatched{background:#c9b0ff}.blk.st-in_progress{background:#ffc94d}.blk.st-completed{background:#6fd98f}
.blk .tags{display:flex;gap:4px;flex-wrap:nowrap;overflow:hidden;margin-bottom:1px}
.stag,.ftag{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;border-radius:3px;padding:0 5px;line-height:16px;white-space:nowrap;background:rgba(10,28,48,.82);color:#fff}
.blk.st-scheduled .stag{color:#9fd0ff}.blk.st-dispatched .stag{color:#c9b0ff}.blk.st-in_progress .stag{color:#ffc94d}.blk.st-completed .stag{color:#6fd98f}
.ftag.f-late,.ftag.f-over{background:#b3261e;color:#fff}.ftag.f-overlap{background:#8a5a00;color:#fff}
.legend{flex-basis:100%;display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--text2);border-top:1px solid var(--border);padding-top:6px;margin-top:2px}
.lg{display:inline-flex;align-items:center;gap:6px}.lg i{width:14px;height:14px;border-radius:3px;display:inline-block}
.lg.st-scheduled i{background:#9fd0ff}.lg.st-dispatched i{background:#c9b0ff}.lg.st-in_progress i{background:#ffc94d}.lg.st-completed i{background:#6fd98f}
.blk.prio-emergency{box-shadow:inset 4px 0 0 var(--red),0 1px 3px rgba(0,0,0,.35)}.blk.prio-high{box-shadow:inset 4px 0 0 #ffb547,0 1px 3px rgba(0,0,0,.35)}
.blk.f-overlap{border-color:#ffb547}.blk.f-late,.blk.f-over{border-color:var(--red)}
.blk .warn{color:#b3261e}
.blk.ghost{background:repeating-linear-gradient(135deg,rgba(159,208,255,.35) 0 6px,rgba(159,208,255,.18) 6px 12px)!important;color:var(--text);box-shadow:none;border:1px dashed #9fd0ff;cursor:pointer}
.blk.ghost{z-index:0}
.blk.dragsrc{opacity:.4}
.rz{position:absolute;right:0;top:0;bottom:0;width:8px;cursor:ew-resize;background:rgba(10,28,48,.18)}
@media (max-width:900px){.dboard{grid-template-columns:1fr}.queue{position:static;max-height:none}.trow{grid-template-columns:120px var(--w)}.tgrid{width:calc(var(--w) + 120px)}}

.inl{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:13px;color:var(--text2)}
.texts{display:flex;flex-direction:column;gap:8px;font-size:13px}.txt{border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 10px}.txt .tbody{margin:4px 0;color:var(--text)}

/* Working hours / time off (CRM27) */
.offshift{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,rgba(0,0,0,.28) 0 8px,rgba(0,0,0,.18) 8px 16px);z-index:0;pointer-events:none}
.timeoff{position:absolute;top:0;bottom:0;background:rgba(134,156,180,.28);border-left:3px solid var(--text3);z-index:0;pointer-events:none}
.offshift span,.timeoff span{position:absolute;left:8px;top:6px;font-size:12px;font-weight:700;color:var(--text2);white-space:nowrap}
.ftag.f-outside{background:#8a5a00;color:#fff}.ftag.f-off{background:#b3261e;color:#fff}.blk.f-off{border-color:var(--red)}
.tlink{background:none;border:0;padding:0;font-weight:700;font-size:14px;color:var(--text);cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px;text-align:left}
.hgrid{display:grid;grid-template-columns:90px 1fr 1fr;gap:6px 10px;align-items:center;max-width:420px}
.hday{display:flex;gap:6px;align-items:center;margin:0;font-size:14px;color:var(--text)}
/* Week view (CRM28) */
.seg{display:inline-flex;gap:0}.seg .btn{border-radius:0}.seg .btn:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}.seg .btn:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0}
.wgrid{min-width:760px}
.wrow{display:grid;grid-template-columns:170px repeat(7,minmax(0,1fr));border-bottom:1px solid var(--border)}
.whead{position:sticky;top:0;z-index:3;background:var(--card2)}
.whd{background:none;border:0;border-left:1px solid var(--border);color:var(--text2);font-weight:700;font-size:13px;padding:8px 6px;cursor:pointer;text-align:left}
.whd:hover{color:var(--orange)}.whd.today{color:var(--orange)}
.wcell{border-left:1px solid var(--border);padding:4px;min-height:84px;display:flex;flex-direction:column;gap:3px}
.wcell.today{background:rgba(253,81,0,.06)}.wcell.over{background:var(--orange-dim)}
.wcell.woff{background:repeating-linear-gradient(135deg,rgba(0,0,0,.25) 0 8px,rgba(0,0,0,.15) 8px 16px)}
.wtag{font-size:11px;font-weight:700;color:var(--text2)}
.wchip{font-size:11px;font-weight:700;border-radius:4px;padding:2px 5px;color:#0a1c30;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.wchip.st-scheduled{background:#9fd0ff;cursor:grab}.wchip.st-dispatched{background:#c9b0ff}.wchip.st-in_progress{background:#ffc94d}.wchip.st-completed{background:#6fd98f}
.wchip.prio-emergency{box-shadow:inset 3px 0 0 var(--red)}
.wchip.ghost{background:repeating-linear-gradient(135deg,rgba(159,208,255,.35) 0 6px,rgba(159,208,255,.18) 6px 12px);color:var(--text);border:1px dashed #9fd0ff}
.wcap{margin-top:auto;font-size:11px;color:var(--text3);text-align:right}.wcap.red{color:var(--red)}
.consent{border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px;margin-top:12px;display:flex;flex-direction:column;gap:6px}.consent .script{color:var(--text);font-size:14px;line-height:1.4}
.lmap{position:relative;z-index:0;isolation:isolate;height:calc(100vh - 250px);min-height:420px;border-radius:var(--r);background:#1b2433}
.pin{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font:700 12px/1 Poppins,system-ui,sans-serif;color:#10151f;border:2px solid #10151f;box-shadow:0 0 0 3px var(--rc,transparent),0 1px 4px rgba(0,0,0,.5);flex:none}
.pin.st-scheduled{background:#9fd0ff}.pin.st-dispatched{background:#c9b0ff}.pin.st-in_progress{background:#ffc94d}.pin.st-completed{background:#6fd98f}.pin.st-unscheduled{background:#ff9f43}
.lg.st-unscheduled i{background:#ff9f43}
.mroute{margin-bottom:10px}.mroute>div:first-child{display:flex;align-items:center;gap:6px;margin-bottom:4px}.mroute i{width:14px;height:4px;border-radius:2px;display:inline-block}
.mstop{display:flex;gap:8px;align-items:center;font-size:13px;padding:4px 2px;cursor:pointer;border-radius:6px}.mstop:hover{background:rgba(255,255,255,.05)}
.leaflet-popup-content{font:13px/1.45 Poppins,system-ui,sans-serif;color:#10151f}.leaflet-popup-content .btn{margin-top:6px}

/* Light mode (CRM34, Mark 10/10): same brand orange and navy accents on a light page. Header toggle, remembered per browser. */
:root[data-theme="light"]{
  --bg:#f3f5f8;--nav-bg:#ffffff;--card:#ffffff;--card2:#e9eef4;--border:#d6dee7;--border-l:rgba(10,28,48,.13);
  --orange:#e04a00;--orange-dim:rgba(253,81,0,.12);--green:#1c8a43;--green-dim:rgba(28,138,67,.12);
  --red:#c5362c;--red-dim:rgba(197,54,44,.1);--blue:#1f67b8;--blue-dim:rgba(31,103,184,.1);
  --text:#10233a;--text2:#46596e;--text3:#66788c;
}
:root[data-theme="light"] .top{box-shadow:0 1px 3px rgba(10,28,48,.08)}
:root[data-theme="light"] .chip.in_progress{background:rgba(214,158,0,.15);color:#8a6400}
:root[data-theme="light"] .chip.high{background:rgba(214,120,0,.14);color:#9a5300}
:root[data-theme="light"] .chip.dispatched{background:rgba(120,80,210,.12);color:#5b3bb0}
:root[data-theme="light"] .blk,:root[data-theme="light"] .wchip{box-shadow:0 1px 2px rgba(10,28,48,.25)}
:root[data-theme="light"] .offshift{background:repeating-linear-gradient(135deg,rgba(10,28,48,.07) 0 8px,rgba(10,28,48,.03) 8px 16px)}
:root[data-theme="light"] .mstop:hover{background:rgba(10,28,48,.05)}
:root[data-theme="light"] .lmap{background:#e8ecf1}
:root[data-theme="light"] .modal{background:rgba(10,28,48,.35)}
.themebtn{background:none;border:1px solid var(--border-l);color:var(--text2);border-radius:20px;padding:2px 10px;font-size:12px;cursor:pointer;margin-right:8px}
:root[data-theme="light"] .amber{color:#a35a00}
.pin.approx{border-style:dashed;opacity:.88}
.tprof{display:flex;gap:16px;align-items:flex-start}.tphoto{width:120px;height:120px;border-radius:50%;overflow:hidden;background:var(--card2);display:flex;align-items:center;justify-content:center;flex:none;font-size:12px}.tphoto img{width:100%;height:100%;object-fit:cover}
@media (max-width:600px){.tprof{flex-direction:column}}
.tcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.tcard{display:flex;gap:14px;align-items:flex-start;text-align:left;background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:14px;cursor:pointer;color:var(--text)}
.tcard:hover{border-color:var(--orange)}.tcard .tinfo{min-width:0}.tcard b{font-size:15px}.tcard .s{font-size:13px;color:var(--text2);margin-top:3px}.tcard .bio{font-style:italic}
.tphoto.sm{width:64px;height:64px;font-size:22px;font-weight:700;color:var(--text2)}
.ttrade{display:inline-block;font-size:11px;font-weight:700;color:var(--blue);margin:2px 0}.ttrade.none{color:var(--text3);font-weight:500}
.ftag.f-trade{background:#8a5a00;color:#fff}.blk.f-trade{border-color:#ffb547}
.slots{display:flex;flex-direction:column;gap:6px;max-height:280px;overflow:auto;border:1px solid var(--border);border-radius:var(--r-sm);padding:8px}
.slotrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.slotrow .sname{min-width:220px;font-size:14px}.sbtns{display:flex;gap:6px;flex-wrap:wrap}
.sbtns .btn.on{background:var(--orange);color:#fff;border-color:var(--orange)}
.ttrade.off{color:#ffb547}:root[data-theme="light"] .ttrade.off{color:#a35a00}
.whead{position:sticky;top:0;z-index:3;background:var(--card2)}
/* Book a call: When (CRM44) */
.pickedbox{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--orange-dim);border:1px solid var(--orange);border-radius:var(--r-sm);padding:10px 12px;margin-bottom:8px}
.best{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.whenwrap{display:flex;gap:16px;align-items:flex-start}.whenwrap .grow{min-width:0}
.cal{width:280px;flex:none}.calhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cdow{text-align:center;font-size:11px;color:var(--text3)}
.cday{position:relative;height:38px;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:6px;cursor:pointer;font-size:13px;padding:2px}
.cday i{position:absolute;right:4px;bottom:2px;font-style:normal;font-size:10px;font-weight:700;color:var(--green)}
.cday.none i{color:var(--text3)}.cday.other{opacity:.5}.cday:disabled{opacity:.3;cursor:default}
.cday.today{border-color:var(--text3)}.cday.sel{background:var(--orange);border-color:var(--orange);color:#fff}.cday.sel i{color:#fff}
.cday:not(:disabled):hover{border-color:var(--orange)}
.calnote{font-size:11px;margin-top:4px}.dayhead{margin:8px 0 6px;font-size:14px}
@media (max-width:760px){.whenwrap{flex-direction:column}.cal{width:100%}}
.ghead{background:var(--card2)}.ghead .tname{background:var(--card2);padding:4px 10px;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.ghead .tlane{min-height:0;background-image:none}
/* Estimate outcome (CRM45) */
.ochoices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:6px 0 12px}
.ochoice{display:flex;flex-direction:column;gap:4px;text-align:left;padding:14px;border-radius:var(--r);border:2px solid var(--border);background:var(--card);color:var(--text);cursor:pointer}
.ochoice span{font-size:13px;color:var(--text2)}.ochoice.yes.on{border-color:var(--green);background:var(--green-dim)}.ochoice.no.on{border-color:var(--red);background:var(--red-dim)}
.ochoice.later.on{border-color:var(--blue);background:var(--blue-dim)}.ochoice:hover{border-color:var(--text3)}
.ocheck{display:flex;gap:8px;align-items:center;color:var(--text);font-size:15px}.ocheck input{width:auto}
@media (max-width:600px){.ochoices{grid-template-columns:1fr}}
/* Customer value (CRM46) */
.vtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.vtile{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:12px}.vl{font-size:12px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em}
.vv{font-size:20px;font-weight:800;margin-top:2px}.vs{font-size:12px;color:var(--text2);margin-top:2px}
.vnot{margin-top:12px;border:1px solid var(--border);border-radius:var(--r);padding:10px 12px}
.vrow{display:grid;grid-template-columns:1fr auto 220px;gap:12px;padding:6px 0;border-top:1px solid var(--border);font-size:14px;align-items:center}.vrow:first-of-type{border-top:0}
@media (max-width:700px){.vrow{grid-template-columns:1fr auto}.vrow .muted{grid-column:1/-1}}
.dupbox{border:1px solid #ffb547;background:rgba(255,181,71,.1);border-radius:var(--r-sm);padding:8px 10px;margin:8px 0;font-size:14px}
.duprow{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:6px}
/* Photo crop (CRM50) */
.cropov{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:40;display:flex;align-items:center;justify-content:center;padding:16px}
.cropbox{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:18px;width:100%;max-width:360px;display:flex;flex-direction:column;gap:10px}
.cropbox h2{margin:0}.cropview{position:relative;overflow:hidden;border-radius:50%;margin:6px auto;background:#000;cursor:grab;touch-action:none;border:3px solid var(--border)}
.cropview img{position:absolute;user-select:none;max-width:none;pointer-events:none}.cropzoom{width:100%}
/* Equipment (CRM54) */
.eqloc{border:1px solid var(--border);border-radius:var(--r);padding:12px;margin-bottom:12px}
.eqsys{background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px;margin:8px 0}
.eqhead{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.eqlist{margin:6px 0}
.eqrow{display:flex;gap:10px;align-items:center;padding:5px 0;border-top:1px solid var(--border);cursor:pointer;font-size:14px}.eqrow:hover{background:rgba(255,255,255,.03)}
.plate{width:44px;height:32px;object-fit:cover;border-radius:4px;flex:none;border:1px solid var(--border)}.plate.none{display:inline-flex;align-items:center;justify-content:center;background:var(--card2)}.plate.f{font-weight:700;color:var(--text3)}
.platebig{max-width:100%;max-height:260px;border-radius:6px;margin-top:6px}
.eqhome,.eqadd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;font-size:14px}.eqhome select{width:auto}
.achip{border:1px solid var(--border);background:var(--card2);color:var(--text);border-radius:20px;padding:3px 10px;font-size:12px;cursor:pointer}
.achip.has{border-color:var(--green);color:var(--green)}.achip.quoted{border-color:var(--blue);color:var(--blue)}.achip.declined{color:var(--text3)}
.finder{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-bottom:12px}
/* Settings (CRM57) */
.setnote{margin:-4px 0 10px}.setgrp{margin-bottom:10px}.setgrp .bar{margin-bottom:6px}
.settbl th{text-align:left;font-size:11px;color:var(--text3);font-weight:600;padding:4px 8px}.settbl td{padding:6px 8px;border-top:1px solid var(--border-l)}
.settbl td:nth-child(2),.settbl td:nth-child(3){white-space:nowrap}.settbl tr.retired td{opacity:.55}
.settbl{table-layout:fixed}.settbl th:nth-child(1){width:34%}.settbl th:nth-child(2){width:10%}.settbl th:nth-child(3){width:14%}.settbl th:nth-child(5){width:64px}
.unitpick{display:flex;flex-wrap:wrap;gap:6px 16px;margin:4px 0}.unitpick .ocheck{margin:0}
.settbl.lst th:nth-child(2){width:40%}.settbl.lst th:nth-child(3){width:16%}.settbl.lst th:nth-child(4){width:64px}
/* Tags (CRM61) */
.tg{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;line-height:18px;white-space:nowrap;border:1px solid currentColor}
.tg.c-red{color:#e5484d;background:rgba(229,72,77,.12)}.tg.c-orange{color:#f76b15;background:rgba(247,107,21,.12)}.tg.c-gold{color:#d4a017;background:rgba(212,160,23,.14)}
.tg.c-green{color:#30a46c;background:rgba(48,164,108,.12)}.tg.c-blue{color:#3e8ed0;background:rgba(62,142,208,.12)}.tg.c-purple{color:#9a5cd0;background:rgba(154,92,208,.12)}
.tg.c-gray{color:#8b8d98;background:rgba(139,141,152,.12)}
.tagline{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0 4px}
.tagpick,.colorpick{display:flex;flex-wrap:wrap;gap:8px 14px;margin:4px 0}.tgopt{display:inline-flex;align-items:center;gap:6px;margin:0;cursor:pointer}.tgopt input{width:auto}
.scopepick{display:flex;gap:16px}
.tdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:3px;vertical-align:1px;background:currentColor}
.tdot.c-red{color:#e5484d}.tdot.c-orange{color:#f76b15}.tdot.c-gold{color:#d4a017}.tdot.c-green{color:#30a46c}.tdot.c-blue{color:#3e8ed0}.tdot.c-purple{color:#9a5cd0}.tdot.c-gray{color:#8b8d98}
/* Description templates (CRM65) */
.dtpl{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}.tplbtn{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer}
.tplbtn:hover{border-color:var(--orange)}.tplbtn.on{border-color:var(--orange);color:var(--orange)}
/* Hot hand (CRM68) */
.hot{display:inline-block;margin-left:4px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:700;color:#f76b15;background:rgba(247,107,21,.14);border:1px solid rgba(247,107,21,.5);white-space:nowrap;cursor:help}
.hot.red{color:#fff;background:#e5484d;border-color:#e5484d}
/* Goals (CRM74) */
.goalstbl td:nth-child(2),.goalstbl td:nth-child(3){white-space:nowrap}.ginput{display:inline-flex;align-items:center;gap:4px}.ginput input{width:110px}
/* Hot hand panel (CRM75) */
.hot{cursor:pointer}
.hottip{position:fixed;z-index:60;max-width:340px;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 12px;box-shadow:0 8px 24px rgba(0,0,0,.35);font-size:13px}
.hottip-h{font-weight:700;font-size:14px;margin-bottom:2px}.hottip-score{font-weight:700;font-size:16px;margin:6px 0 4px;color:#f76b15}
.hottip table{width:100%;border-collapse:collapse}.hottip td{padding:3px 4px;border-top:1px solid var(--border-l);white-space:nowrap}.hottip td:first-child{white-space:normal}
.hottip td.ok{color:#30a46c;font-weight:700}.hottip td.amber{color:#ffb547;font-weight:700}.hottip-f{margin-top:6px;font-size:11px}
/* Dashboard (CRM77) */
.dperiod{margin:-4px 0 10px}
.dtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-bottom:12px}
.dtile{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:4px}
.dtl{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);font-weight:700}.dtv{font-size:24px;font-weight:700;line-height:1.15}
.dts{font-size:12px}.dtd{font-size:11px;color:var(--text3);margin-top:auto;padding-top:4px}
.dup{color:var(--green);font-weight:700}.ddown{color:var(--red);font-weight:700}.ok{color:var(--green)}
.tchip{display:inline-block;align-self:flex-start;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;white-space:nowrap}
.tchip.ok{color:var(--green);background:var(--green-dim)}.tchip.near{color:#c98a12;background:rgba(255,181,71,.14)}.tchip.under{color:var(--red);background:var(--red-dim)}
.dgrid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:10px;margin-bottom:12px}
.dgrid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px;margin:12px 0}
.dpace .dpv{font-size:15px;margin:8px 0 6px}.dpv b{font-size:22px}
.dpbar{position:relative;height:12px;border-radius:6px;background:var(--border-l);overflow:visible;margin:6px 0 8px}.dpbar i{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:var(--orange)}
.dpbar em{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--text);border-radius:1px}
.dpl{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px}
.dact{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:13px}
.dmt{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0}
.dsc td{white-space:nowrap}.dlb td:nth-child(n+3){white-space:nowrap}
.dbars{display:flex;flex-direction:column;gap:6px;margin-top:8px}.dbar{display:grid;grid-template-columns:minmax(90px,38%) 1fr auto;gap:8px;align-items:center;font-size:12px}
.dbk{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dbt{height:10px;background:var(--border-l);border-radius:5px;overflow:hidden}.dbt i{display:block;height:100%;background:var(--orange);border-radius:0 5px 5px 0}
.dbv{white-space:nowrap;color:var(--text2,inherit)}
@media (max-width:600px){.dmt{grid-template-columns:1fr}.dtv{font-size:20px}}
.dscroll{overflow-x:auto;margin-top:6px}.dtbl{width:100%;border-collapse:collapse;font-size:13px}.dtbl th{text-align:left;font-size:11px;color:var(--text3);font-weight:600;padding:4px 8px;white-space:nowrap}
.dtbl td{padding:6px 8px;border-top:1px solid var(--border-l);white-space:nowrap}
/* Phones: the tab bar scrolls sideways inside itself instead of widening the page (CRM77). */
nav{min-width:0;overflow-x:auto;scrollbar-width:none}nav::-webkit-scrollbar{display:none}nav button{white-space:nowrap;flex:0 0 auto}
@media (max-width:600px){.top nav{flex:1 1 100%;order:3}.ginput input{width:84px}}
/* Levers (CRM78) */
.dcol{display:flex;flex-direction:column;gap:10px}.dlev{margin:8px 0 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:13px}.dlv{color:var(--green)}
/* Enterprise (CRM80) */
.coswitch{background:var(--orange-dim);color:var(--orange);border:1px solid transparent;border-radius:999px;padding:3px 10px;font-weight:700;cursor:pointer;font-size:13px}
.cocards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.cocard{text-align:left;background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:6px;cursor:pointer;color:var(--text);font:inherit}
.cocard:hover,.cocard.on{border-color:var(--orange)}.cocard.off{cursor:default;opacity:.6}.coname{font-size:18px;font-weight:700}
.robar{background:rgba(255,181,71,.16);color:var(--text);border-bottom:1px solid rgba(255,181,71,.45);padding:6px 16px;font-size:13px}
body.ro #newjob,body.ro #nj,body.ro #ne,body.ro #edit,body.ro #addloc,body.ro #ctags,body.ro [data-addsys]{display:none!important}

/* Review notes (CRM84): floating, collapsible, on every page for the people testing the build */
.rnotes{position:fixed;right:16px;bottom:16px;z-index:25;max-width:calc(100vw - 32px)}
.rnpill{background:var(--orange);color:#fff;border:0;border-radius:999px;padding:9px 14px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.3)}
.rnpill b{background:#fff;color:var(--orange);border-radius:999px;padding:0 7px;margin-left:6px;font-size:12px}
.rnpanel{width:360px;max-width:calc(100vw - 32px);max-height:min(560px,calc(100vh - 100px));display:flex;flex-direction:column;background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:0 8px 28px rgba(0,0,0,.35)}
.rnhead{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}
.rnhead b{flex:1}
.rnseg button{background:none;border:1px solid var(--border);color:var(--text2,inherit);padding:3px 8px;font-size:12px;cursor:pointer}
.rnseg button:first-child{border-radius:6px 0 0 6px}.rnseg button:last-child{border-radius:0 6px 6px 0;border-left:0}
.rnseg button.on{background:var(--orange-dim);color:var(--orange);border-color:var(--orange)}
.rnx{background:none;border:0;font-size:18px;line-height:1;cursor:pointer;color:inherit;padding:2px 4px}
.rnnew{padding:10px 12px;border-bottom:1px solid var(--border)}
.rnnew textarea{width:100%;min-height:64px;resize:vertical}
.rnnew .rnctx{font-size:12px;margin:4px 0 6px}
.rnlist{overflow:auto;padding:4px 12px 10px}
.rnitem{padding:8px 0;border-bottom:1px solid var(--border-l)}
.rnitem:last-child{border-bottom:0}
.rnitem .rnbody{white-space:pre-wrap;word-break:break-word}
.rnitem.done .rnbody{text-decoration:line-through;opacity:.6}
.rnmeta{font-size:12px;margin-top:3px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rnmeta .grow{flex:1}
@media (max-width:600px){.rnotes{right:16px;left:16px;pointer-events:none}.rnotes>*{pointer-events:auto}.rnpanel{width:auto;max-height:55vh}.rnnew textarea{min-height:44px}.rnpill{float:right}}
@media print{.rnotes{display:none}}

/* Team logins (CRM86) */
.pinshow{font-size:36px;font-weight:700;letter-spacing:.2em;text-align:center;padding:16px;margin:8px 0 12px;border:1px dashed var(--orange);border-radius:var(--r);user-select:all}
.teamtbl{width:100%}.teamtbl td,.teamtbl th{white-space:nowrap;vertical-align:middle}.teamtbl td:nth-child(4){white-space:normal;word-break:break-all;min-width:160px}.teamtbl tr.retired td{opacity:.55}.teamtbl td:last-child{text-align:right}
/* Compact board (CRM89): one line per tech and per job */
.tgrid.compact .tlane{min-height:38px}.tgrid.compact .tname{padding:3px 10px;line-height:1.25}
.tgrid.compact .tname .cap,.tgrid.compact .tname .ttrade{display:none}
.tgrid.compact .tname .muted{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tgrid.compact .blk{top:3px;height:32px;padding:2px 6px;line-height:1.2}
.tgrid.compact .blk .tags{display:none}.tgrid.compact .blk .bs{font-size:11px}
.tgrid.compact .blk .rz{height:32px}
/* Opportunity chips (CRM90) */
.ochip{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.02em;line-height:1;padding:2px 4px;border-radius:3px;margin-right:3px;vertical-align:1px;color:#fff;background:#4b5b70}
.ochip.o-age{background:#2f3e52}.ochip.o-replace{background:#c2410c}.ochip.o-maint{background:#a16207}.ochip.o-repeat{background:#111827}.ochip.o-est{background:#7c3aed}.ochip.o-member{background:#15803d}.ochip.o-visit{background:#0e7490}
/* Board events (CRM91) */
.evt{position:absolute;top:4px;height:66px;border-radius:6px;padding:4px 7px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:#334155;
  border:1px solid #1e293b;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;z-index:0;opacity:.92}
.evt.k-shop{background:#475569}.evt.k-training{background:#3730a3}.evt.k-other{background:#52525b}
.tgrid.compact .evt{top:3px;height:32px;padding:2px 6px}
.wtag.wev{background:#334155;color:#fff;border-radius:4px;padding:1px 4px;margin-bottom:2px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.ro #newev{display:none!important}
/* Hold / Paused (CRM90) */
.blk.st-paused{background:repeating-linear-gradient(135deg,#ffc94d 0 8px,#ffe29a 8px 16px)}.blk.st-paused .stag{color:#a16207}
.lg.st-paused i{background:repeating-linear-gradient(135deg,#ffc94d 0 4px,#ffe29a 4px 8px)}
.wchip.st-paused{background:repeating-linear-gradient(135deg,#ffc94d 0 6px,#ffe29a 6px 12px);color:#0a1c30}
.chip.paused{background:rgba(255,206,84,.14);color:#a16207}.chip.on_hold{background:rgba(124,58,237,.12);color:#7c3aed}
.holdbox{border-left:3px solid #7c3aed}
.btabs{margin-top:12px;background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:8px 10px}
.btabbar{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-bottom:6px}
.btab{background:none;border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:13px;cursor:pointer;color:inherit}
.btab b{margin-left:4px}.btab.on{background:var(--orange-dim);border-color:var(--orange);color:var(--orange)}.btab.hasn:not(.on) b{color:#7c3aed}
.btabnote{margin-left:auto;font-size:12px}
.btbl tr[data-bopen]{cursor:pointer}.btbl tr[data-bopen]:hover td{background:var(--orange-dim)}.btbl td{vertical-align:top}
.opprules .opprow{padding:6px 0;border-top:1px solid var(--border-l)}.opprules .opprow:first-child{border-top:0}
.opprules .oppsub{margin:4px 0 0 26px;font-size:13px}.opprules .ocheck{display:inline-flex;align-items:center;gap:6px}
/* Service zones (CRM93) */
.ztag{display:inline-block;font-size:10px;font-weight:700;line-height:1;padding:2px 5px;border-radius:999px;margin-right:4px;vertical-align:1px;border:1px solid currentColor;background:rgba(255,255,255,.55)}
.ztag.z-red{color:#b91c1c}.ztag.z-orange{color:#c2410c}.ztag.z-gold{color:#a16207}.ztag.z-green{color:#15803d}.ztag.z-blue{color:#1d4ed8}
.ztag.z-purple{color:#7c3aed}.ztag.z-gray{color:#475569}.ztag.z-teal{color:#0f766e}.ztag.z-pink{color:#be185d}
:root[data-theme="dark"] .ztag{background:rgba(0,0,0,.25);filter:brightness(1.6)}
.zsug{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 8px}
/* Collapsible board groups (CRM94) */
.ghead[data-ghead]{cursor:pointer}.ghead[data-ghead]:hover .tname{color:var(--orange)}.gcar{display:inline-block;width:12px}
/* Revenue trend (CRM95) */
.trend{width:100%;height:auto;display:block;margin-top:6px}
.trend .tr-bar{fill:var(--orange)}.trend .tr-bar.tr-cur{fill:var(--orange);opacity:.45}.trend .tr-g:hover .tr-bar{opacity:.8}
.trend .tr-none{fill:var(--border)}.trend .tr-grid{stroke:var(--border-l);stroke-width:1}
.trend .tr-ax{font-size:11px;fill:var(--text3,#6b7280)}.trend .tr-goal{stroke:var(--text,#111);stroke-width:1.5;stroke-dasharray:5 4;opacity:.7}
.trend .tr-gl{font-size:11px;font-weight:700;fill:var(--text,#111)}
/* CRM99 memberships */
.mline{margin:4px 0;line-height:1.5}.mprice{font-size:13px;margin-top:4px}.mprice .ok{color:#15803d;font-weight:700}
.mbox{border-color:#15803d}.mbox .ochip{vertical-align:middle}
/* CRM100 huddle + Today's Focus */
.huddle .htbl td{vertical-align:top}.htbl tr.hmiss td{border-bottom:0}.htbl tr.hcoach td{padding-top:0;font-size:13px;line-height:1.5;white-space:normal}
.hwhy,.hhow{display:inline-block;min-width:40px;font-size:11px;letter-spacing:.05em}.hwhy{color:#b45309}.hhow{color:#15803d}
.focus .fwhat{font-size:18px;font-weight:700;margin:6px 0}.focus .fwins{margin:6px 0;display:flex;flex-wrap:wrap;gap:6px}.focus .fgaps{margin:6px 0;padding-left:20px}.focus .fhow{margin-top:6px}
.hflags{margin-top:10px;padding-top:8px;border-top:1px solid var(--line,#e3e8ee)}.hflag{margin:6px 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
/* CRM102 dashboard layout: Today band, Performance section, grouped tiles */
.dhead h2 .dsub{font-size:14px;font-weight:500;margin-left:8px}
.dsect{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--text3);margin:18px 0 8px}.dsect .muted{text-transform:none;letter-spacing:0;font-weight:500;margin-left:6px}
.dtoday{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;align-items:start}
.dtoday .card{margin:0}.dtoday .dcol{gap:12px}
.dperf{margin-top:18px;align-items:center;flex-wrap:wrap;gap:8px}.dperf .dsect{margin:0}
.dgroup{margin-bottom:10px}.dgt{font-size:12px;font-weight:700;color:var(--text2,#46596e);margin:0 0 6px 2px}
.dgroup .dtiles{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:0}
.dgroup .dtile{padding:10px 12px;cursor:default}.dgroup .dtv{font-size:22px}
.dinfo{font-size:11px;color:var(--text3);opacity:.7;margin-left:2px}
.dnone{margin:4px 0 12px;font-size:13px}
.htbl th:nth-child(2),.htbl th:nth-child(3){width:90px}.htbl th:nth-child(4){width:64px}
@media (max-width:1000px){.dtoday{grid-template-columns:minmax(0,1fr)}}
.dtoday>.dcol{min-width:0}.focus .bar,.huddle .bar{flex-wrap:wrap;gap:6px}
@media (max-width:700px){.dgroup .dtiles{grid-template-columns:repeat(2,minmax(0,1fr))}.dperf .seg{overflow-x:auto;max-width:100%}}
@media (max-width:700px){.htbl th:nth-child(2),.htbl th:nth-child(3){width:58px}.htbl th:nth-child(4){width:44px}.htbl td,.htbl th{padding-left:6px;padding-right:6px}}
.htbl td{white-space:normal}
/* CRM105 dials, sparklines, bullets; desktop-first width for Dashboard and Dispatch */
:root{--st-ok:#3ecf6a;--st-near:#ffb547;--st-under:#f76359;--track:rgba(247,245,236,.12)}
:root[data-theme="light"]{--st-ok:#1f8a4c;--st-near:#b08800;--st-under:#c8382e;--track:#e4e9ef}
body[data-view="dashboard"] main,body[data-view="dispatch"] main{max-width:1680px}
.dials{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-top:8px}
.dialc{background:transparent;border:1px solid var(--border);border-radius:var(--r);padding:10px 10px 8px;text-align:center;cursor:pointer;color:var(--text);font:inherit;display:flex;flex-direction:column;gap:4px;align-items:center}
.dialc:hover{border-color:var(--orange)}.dialt{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text3)}
.dialw{font-size:12px;color:var(--text2);min-height:30px}
svg.dial{width:100%;max-width:200px;height:auto;display:block}
.dg-track{fill:none;stroke:var(--track);stroke-width:14;stroke-linecap:round}
.dg-fill{fill:none;stroke-width:14;stroke-linecap:round}.dg-fill.st-ok{stroke:var(--st-ok)}.dg-fill.st-near{stroke:var(--st-near)}.dg-fill.st-under{stroke:var(--st-under)}.dg-fill.st-none{stroke:var(--text3)}
.dg-tick{stroke:var(--text);stroke-width:2.5;stroke-linecap:round}
.dg-val{font-size:22px;font-weight:800;fill:var(--text)}.dg-sub{font-size:11px;fill:var(--text3)}
.dpdial{max-width:240px;margin:6px auto 2px}
svg.spark{width:120px;height:30px;display:block;margin-top:6px}svg.spark polyline{fill:none;stroke:var(--orange);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}svg.spark circle{fill:var(--orange)}
.sparkl{font-size:11px;color:var(--text3)}
.bullets{display:flex;flex-direction:column;gap:8px;margin:12px 0}.bul{display:grid;grid-template-columns:140px 1fr 190px;gap:10px;align-items:center}
.bult{position:relative;height:12px;background:var(--track);border-radius:6px}.bult i{position:absolute;left:0;top:0;bottom:0;border-radius:6px}
.bult i.st-ok{background:var(--st-ok)}.bult i.st-near{background:var(--st-near)}.bult i.st-under{background:var(--st-under)}.bult i.st-none{background:var(--text3)}
.bult em{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--text)}.bulv{font-size:13px}
@media (min-width:1400px){.dgroup .dtiles{grid-template-columns:repeat(4,minmax(0,1fr))}.dtoday{grid-template-columns:minmax(0,2.2fr) minmax(0,1fr)}}
@media (max-width:700px){.bul{grid-template-columns:90px 1fr}.bulv{grid-column:1/-1}}
/* Coaching cards (CRM107) */
.ccards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:12px;margin-bottom:12px}
.ccard{margin:0;display:flex;flex-direction:column;gap:6px;min-width:0}.ccard .bar{flex-wrap:wrap;gap:6px}.ccname{font-weight:700;font-size:15px}
.ccwin{margin-top:2px}.ccday{font-size:12px}.ccgap b{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--st-under)}
.ccwhy,.cchow{font-size:13px;line-height:1.45}.ccflags{display:flex;flex-wrap:wrap;gap:6px}.ccwk{font-size:12px}
.ccdials{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:4px;padding-top:8px;border-top:1px solid var(--border)}
.ccdial{text-align:center;min-width:0}.ccdial svg.dial{max-width:130px;margin:0 auto}.ccdl{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text3)}
.ccstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:4px;padding-top:8px;border-top:1px solid var(--border);text-align:center}
.ccsv{font-size:18px;font-weight:700}.ccsk{font-size:11px;color:var(--text3)}.cclev{font-size:12px;padding-top:6px;border-top:1px dashed var(--border)}
.ccone{border:0;padding:0;box-shadow:none}.ccone>.bar{padding-right:34px}.ccdial .dg-sub{font-size:17px}.ccdial .dg-val{font-size:26px}.ccone .ccdial svg.dial{max-width:170px}
/* 3-day call board (CRM108) */
:root{--st-over:#6aa8ff}:root[data-theme="light"]{--st-over:#2f6fd6}
.tchip.over{color:var(--st-over);background:rgba(80,140,255,.14)}.capover{color:var(--st-over)}
.capgrid{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(0,1fr);gap:12px;align-items:start}
.capgrid .card{margin:0}.capgrid>.dcol{min-width:0}
@media (max-width:1100px){.capgrid{grid-template-columns:minmax(0,1fr)}}
.captbl{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
.captbl th,.captbl td{padding:8px 10px;border-top:1px solid var(--border);vertical-align:top;text-align:left}
.captbl tr:first-child th{border-top:0;vertical-align:bottom}.captbl tr>th:first-child{width:130px;color:var(--text3);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.captbl .capsel{background:var(--orange-dim)}.capd{font-size:15px;font-weight:800}.capwhy{font-size:12px;color:var(--text2,var(--text3));margin-top:4px;font-weight:400;text-transform:none;letter-spacing:0}
.captr{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0}
.capbar{position:relative;height:12px;border-radius:6px;background:var(--track);overflow:hidden;margin:2px 0 4px}
.capbar .capband{position:absolute;top:0;bottom:0;background:rgba(127,127,127,.22);border-left:2px solid var(--text3);border-right:2px solid var(--text3)}
.capbar i{position:absolute;top:0;bottom:0;left:0}.capbar .capbk.st-ok{background:var(--st-ok)}.capbar .capbk.st-near{background:var(--st-near)}.capbar .capbk.st-under{background:var(--st-under)}.capbar .capbk.st-over{background:var(--st-over)}.capbar .capbk.st-none{background:var(--text3)}
.capbar .capex{background:repeating-linear-gradient(135deg,var(--text3) 0 3px,transparent 3px 7px);opacity:.55}
.capzh th{font-size:12px;text-transform:none!important;letter-spacing:0!important;color:var(--text)!important;padding-top:12px!important}
.capz{display:inline-block;font-weight:700;padding:1px 7px;border-radius:999px;font-size:12px}.capz.st-ok{color:var(--st-ok)}.capz.st-near{color:var(--st-near)}.capz.st-under{color:var(--st-under);background:var(--red-dim)}.capz.st-over{color:var(--st-over)}.capz.st-none{color:var(--text3)}
.zdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;margin-right:6px;vertical-align:1px;color:#94a3b8}
.zdot.z-red{color:#dc2626}.zdot.z-orange{color:#ea580c}.zdot.z-gold{color:#ca8a04}.zdot.z-green{color:#16a34a}.zdot.z-blue{color:#2563eb}.zdot.z-purple{color:#7c3aed}.zdot.z-teal{color:#0d9488}.zdot.z-pink{color:#db2777}
.capahead{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:8px;font-size:13px}
.capacc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:8px;font-size:13px}
.capbf .bfg{margin-top:12px;padding-top:8px;border-top:1px solid var(--border)}.capbf .dact{margin-top:6px}
.capset{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:10px 0}.capset label{display:flex;flex-direction:column;gap:4px;font-size:13px}
.capft{display:flex;align-items:center;gap:6px}.capft input{width:70px}.capchk{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 10px}.capchk .ocheck{font-size:13px}
@media (max-width:700px){.capahead,.capacc{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Next calls (CRM112): one calm row per call */
.nchead{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline;justify-content:space-between;margin:4px 0 12px}
.ncres{font-size:13px}
.nclist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.nckind{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text3)}
@media (max-width:900px){.ncrow{grid-template-columns:24px minmax(0,1fr) auto}.ncact{grid-column:2 / -1;justify-content:flex-start;max-width:none}}
/* CRM112 streamlining: folds, team rows, alerts, headline tiles */
.fold{margin:10px 0}.foldh{display:flex;gap:8px;align-items:baseline;width:100%;text-align:left;background:transparent;border:0;border-top:1px solid var(--border);padding:12px 2px;color:var(--text);cursor:pointer;font:inherit}
.foldh:hover b{color:var(--orange)}.foldc{display:inline-block;width:12px;color:var(--text3)}.foldb{padding-top:4px}
.card.huddle .fold{margin:0}.card.huddle .foldh{border-top:0;padding:2px 0}.card.huddle .foldh b{font-size:15px}
.dteam .tmrow{display:grid;grid-template-columns:minmax(140px,1.1fr) auto minmax(0,3fr);gap:12px;align-items:baseline;padding:10px 0;border-top:1px solid var(--border)}
.dteam .tmrow:first-of-type{border-top:0}.tmhow{font-size:14px}
@media (max-width:800px){.dteam .tmrow{grid-template-columns:1fr}}
.dalert{border-color:var(--st-under)}.dalert .dact{margin-top:6px}
.dhead4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:900px){.dhead4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dnext .nclist{margin-top:8px}.dnext .ncrow{background:transparent;border-width:0 0 1px 0;border-radius:0;padding:10px 0}.dnext .ncrow:last-child{border-bottom:0}

#huddlew,#coachw,#nextw{margin-top:12px}#nextw:empty,#huddlew:empty,#coachw:empty{margin:0}.dtoday #nextw{margin-top:0}
/* CRM112: the 3-day board as day cards; the full table folds away */
.capdays{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:4px 0 12px}
.capday{text-align:left;background:var(--card,var(--bg2));border:1px solid var(--border);border-top:4px solid var(--text3);border-radius:var(--r);padding:12px 14px;cursor:pointer;color:var(--text);font:inherit;display:flex;flex-direction:column;gap:4px}
.capday.st-ok{border-top-color:var(--st-ok)}.capday.st-near{border-top-color:var(--st-near)}.capday.st-under{border-top-color:var(--st-under)}.capday.st-over{border-top-color:var(--st-over)}
.capday.sel{box-shadow:0 0 0 2px var(--orange)}.capday:hover{border-color:var(--orange)}
.capdh{font-size:14px}.capdp{font-size:28px;font-weight:800;line-height:1.1}.capdg{font-size:13px}.capdw{font-size:12px}
.capbfn{margin:6px 0 10px;font-size:14px}
.capgrid.capg2{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
@media (max-width:900px){.capdays{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1100px){.capgrid.capg2{grid-template-columns:minmax(0,1fr)}}
.settabs{display:flex;flex-wrap:wrap;margin:4px 0 14px}
@media (max-width:600px){.seg{max-width:100%;overflow-x:auto;flex-wrap:nowrap}.seg .btn{flex:0 0 auto}}
/* CRM113: top bar = daily pages + one search + Notes + a menu for the rest */
.gsearch{position:relative;flex:0 1 340px;min-width:180px}
.gsearch input{width:100%;padding:7px 12px 7px 32px;border-radius:999px;font-size:14px;background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E") no-repeat 11px center}
.gsr{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:320px;max-height:70vh;overflow:auto;background:var(--card,var(--bg2));border:1px solid var(--border);border-radius:var(--r);box-shadow:0 10px 30px rgba(0,0,0,.18);z-index:30;padding:4px}
.gsi{display:grid;grid-template-columns:76px minmax(0,1fr);column-gap:8px;width:100%;text-align:left;background:none;border:0;border-radius:var(--r-sm);padding:8px 10px;color:var(--text);cursor:pointer;font:inherit}
.gsi b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gsi .muted{grid-column:2;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gsi .gsk{grid-row:span 2;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text3);padding-top:2px}
.gsi.on,.gsi:hover{background:var(--orange-dim)}.gsnone{padding:10px 12px;font-size:14px}
.topbtn{background:none;border:1px solid var(--border);color:var(--text2);border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.topbtn:hover,.topbtn.on{color:var(--orange);border-color:var(--orange)}.topbtn b{background:var(--orange);color:#fff;border-radius:999px;padding:0 6px;margin-left:4px;font-size:11px}
.menuw{position:relative}.menubtn{min-width:36px;padding:6px 10px;letter-spacing:.03em}
.menupop{position:absolute;right:0;top:calc(100% + 6px);min-width:200px;background:var(--card,var(--bg2));border:1px solid var(--border);border-radius:var(--r);box-shadow:0 10px 30px rgba(0,0,0,.18);z-index:30;padding:6px;display:flex;flex-direction:column}
.menupop button{background:none;border:0;text-align:left;padding:8px 10px;border-radius:var(--r-sm);color:var(--text);font:inherit;font-size:14px;cursor:pointer}.menupop button:hover{background:var(--orange-dim)}
.menuwho{font-size:12px;padding:6px 10px 8px;border-bottom:1px solid var(--border);margin-bottom:4px}
.rnotes{top:64px;bottom:auto}
.tipi{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;margin-left:6px;border-radius:50%;border:1px solid var(--text3);background:none;color:var(--text3);font:italic 700 11px Georgia,serif;cursor:help;position:relative;vertical-align:middle;text-transform:none;letter-spacing:0;padding:0}
.tipi:hover::after,.tipi:focus::after{content:attr(data-tip);position:absolute;left:0;top:calc(100% + 6px);width:max-content;max-width:min(360px,80vw);white-space:normal;background:var(--text);color:var(--bg);font:400 13px/1.45 Poppins,system-ui,-apple-system,'Segoe UI',sans-serif;font-style:normal;text-align:left;padding:8px 10px;border-radius:var(--r-sm);z-index:40;box-shadow:0 6px 18px rgba(0,0,0,.2)}
@media (max-width:600px){.gsearch{order:2;flex:1 1 auto;min-width:0}.gsr{min-width:0;position:fixed;left:8px;right:8px;top:auto}.brand{flex:0 0 auto}}
/* CRM113: a selected tab is a state, not an action: dark neutral, so orange is left for the one action on the screen */
.seg .btn:not(.ghost){background:var(--text);border-color:var(--text);color:var(--bg)}
/* CRM114: one line per call; the call being worked opens with the number and what to say */
.nclist{gap:6px}
.ncrow{display:grid;grid-template-columns:24px minmax(150px,230px) minmax(0,1fr) 76px auto;gap:6px 14px;align-items:center;background:var(--card,var(--bg2));border:1px solid var(--border);border-radius:var(--r);padding:8px 12px;cursor:default}
.ncq .ncrow{cursor:pointer}.ncq .ncrow:hover{border-color:var(--border-l,var(--text3))}
.ncrow.act{border-color:var(--orange);box-shadow:inset 3px 0 0 var(--orange);padding:12px 12px 14px}
.ncrank{font-weight:700;color:var(--text3);font-size:13px;text-align:center}
.ncwho{display:flex;flex-direction:column;min-width:0}.ncname{font-weight:700;font-size:15px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nckind{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text3)}
.ncwhy{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ncval{text-align:right;font-size:15px;font-weight:700}
.ncact{display:flex;flex-wrap:nowrap;gap:6px;justify-content:flex-end}
.ncdet{grid-column:2/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding-top:4px}
.ncdial{font-size:22px;font-weight:800;color:var(--text);text-decoration:none;letter-spacing:.01em}.ncdial:hover{color:var(--orange)}
.ncsay{font-size:14px;color:var(--text2);font-style:italic;flex:1 1 320px}
.ncsm .ncrow{grid-template-columns:22px minmax(0,1fr) auto;padding:8px 10px}
.ncsm .ncwhy{grid-column:2;grid-row:2;font-size:13px;color:var(--text2)}.ncsm .ncval{display:none}
.ncsm .ncact{grid-column:3;grid-row:1/span 2}
@media (max-width:760px){.ncrow{grid-template-columns:22px minmax(0,1fr) auto}.ncwhy{grid-column:2/-1;grid-row:2;white-space:normal;font-size:13px}.ncval{grid-column:3;grid-row:1}
  .ncact{grid-column:2/-1;grid-row:3;justify-content:flex-start}.ncsm .ncact{grid-column:2/-1;grid-row:3}.ncdet{grid-row:4}}
/* CRM115: Dispatch toolbar = view, date, Filters, Book; the 3-day board as a strip over the Day view */
.pop{position:relative;display:inline-block}
.poppanel{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:260px;background:var(--card,var(--bg2));border:1px solid var(--border);border-radius:var(--r);box-shadow:0 10px 30px rgba(0,0,0,.18);padding:12px;display:flex;flex-direction:column;gap:10px}
.poppanel label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--text2)}.poppanel label.ocheck{flex-direction:row;align-items:center;font-weight:400}
.poppanel select{width:100%}.popnote{font-size:12px;border-top:1px solid var(--border);padding-top:8px}
.fltn{background:var(--orange);color:#fff;border-radius:999px;padding:0 6px;margin-left:4px;font-size:11px}
.capstrip{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;margin:0 0 10px}
.capchip{display:flex;align-items:baseline;gap:8px;background:var(--card,var(--bg2));border:1px solid var(--border);border-left:4px solid var(--text3);border-radius:var(--r-sm);padding:6px 12px;font:inherit;font-size:13px;color:var(--text);cursor:pointer}
.capchip.st-ok{border-left-color:var(--st-ok)}.capchip.st-near{border-left-color:var(--st-near)}.capchip.st-under{border-left-color:var(--st-under)}.capchip.st-over{border-left-color:var(--st-over)}
.capchip.sel{box-shadow:0 0 0 2px var(--orange)}.capchip:hover{border-color:var(--orange)}.capcp{font-weight:800;font-size:15px}
.capall{font-size:13px;align-self:center;margin-left:4px}
.btab.lg{display:inline-flex;gap:6px}
/* CRM116: the owner's call-list card: results, not rows */
.dncnums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:8px}.dncnums .muted{font-size:12px}.dtvs{font-size:14px;font-weight:400}
@media (max-width:600px){.dncnums{grid-template-columns:repeat(2,minmax(0,1fr))}}
#focusw:empty{display:none}
/* CRM117: Techs as the people page; Members plan line */
.tcard{cursor:default}.tcard:hover{border-color:var(--border)}.tnm{font-weight:700;font-size:15px;text-align:left}
.tcard .tnums{color:var(--text)}.tcard .tmove{line-height:1.5}
.mplan{margin:0 0 8px;font-size:13px}
/* CRM118: job window More menu */
.popmenu{padding:6px;gap:0;min-width:200px}.popmenu button{background:none;border:0;text-align:left;padding:8px 10px;border-radius:var(--r-sm);color:var(--text);font:inherit;font-size:14px;cursor:pointer}
.popmenu button:hover{background:var(--orange-dim)}.popmenu button.red{color:var(--red,#c0392b)}
/* CRM118: customer contact in one compact card */
.ccontact{padding:12px 16px}.ccl{padding:3px 0;font-size:14px}.ccphone{font-size:18px;font-weight:700;color:var(--text);text-decoration:none}.ccphone:hover{color:var(--orange)}
.ccnote{white-space:pre-wrap;color:var(--text2);border-top:1px solid var(--border);margin-top:6px;padding-top:6px}.eqhomeo{font-size:13px;margin:6px 0}
.cdup{border-top:1px solid var(--border);margin-top:6px;padding-top:8px}.mres{display:flex;flex-direction:column;gap:2px;margin-top:8px;max-height:50vh;overflow:auto}
.accbox{display:flex;flex-direction:column;gap:4px;margin:4px 0 0 24px}
body.ro #bookcall,body.ro #newc,body.ro #cmerge,body.ro [data-cmrg],body.ro #jpay,body.ro [data-ipay],body.ro #jreopen{display:none!important}
.invlink{display:flex;gap:8px}.invlink input{flex:1;font-size:13px}
/* Test checklist (CRM125) */
.tcprog{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 8px}
.tcbar{flex:0 0 180px;height:6px;border-radius:999px;background:var(--border-l);overflow:hidden}.tcbar span{display:block;height:100%;background:var(--green)}
.tcsec{margin-bottom:12px}.tctag{font-weight:400;font-size:12px}.tcwhere{font-size:13px;margin:-4px 0 6px}
.tcitem{padding:10px 0;border-top:1px solid var(--border-l)}
.tcrow{display:flex;gap:10px;align-items:flex-start}
.tcid{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--text3);min-width:30px;padding-top:2px}
.tcexp{font-size:13px;margin-top:2px}
.tcbtns{display:flex;gap:6px;align-items:center;flex-shrink:0}
.tcitem.pass .tcid{color:var(--green)}.tcitem.issue .tcid{color:var(--red)}
.tcta{width:100%;min-height:54px;margin:8px 0 0 40px;max-width:calc(100% - 40px)}
.tcsaved{font-size:12px;margin-left:40px;min-height:14px}
.tcothers{margin:6px 0 0 40px;display:flex;flex-direction:column;gap:4px}
.tcother{font-size:13px}.tcnote{white-space:pre-wrap;word-break:break-word;margin-top:2px}
@media (max-width:640px){.tcrow{flex-wrap:wrap}.tcrow .grow{flex:1 1 calc(100% - 40px)}.tcbtns{margin-left:40px}}
/* Your data: import + export (CRM127) */
.impgrid{display:grid;grid-template-columns:repeat(2,120px minmax(150px,230px) minmax(0,1fr));gap:6px 10px;align-items:center}
@media (max-width:1100px){.impgrid{grid-template-columns:120px minmax(150px,230px) minmax(0,1fr)}}
.impgrid label{margin:0}.impex{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.impres{margin-top:12px;padding:10px 12px;border-radius:var(--r-sm);background:var(--bg2,rgba(127,127,127,.06))}
.impwhy{max-height:240px;overflow:auto;font-size:13px;margin-top:6px}
@media (max-width:640px){.impgrid{grid-template-columns:1fr 1fr}.impex{display:none}}
.tcdates{font-size:13px;margin:-2px 0 6px}.tcwhen{font-size:12px;margin:4px 0 0 40px}
/* Price book (CRM129) */
.pbrates{display:flex;gap:8px;flex-wrap:wrap}
.pbrate{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 12px;border:1px solid var(--border-l);border-radius:var(--r-sm);background:none;color:var(--text);font:inherit;cursor:pointer;min-width:120px;text-align:left}
.pbrate:hover:not([disabled]){border-color:var(--orange)}.pbrate .muted{font-size:12px}.pbrate[disabled]{cursor:default}
.pbline{font-size:13px;margin-top:10px}
.pbstale{margin-top:10px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:#c98a12}
.pbtbl td{vertical-align:top}
.pbcalc{margin:10px 0;padding:8px 10px;border-radius:var(--r-sm);background:var(--bg2,rgba(127,127,127,.06));font-size:14px}
/* CRM167: price book markup window (own names: Marketing's .mktbl/.mkpct later took the old ones) */
.pbmktbl input{width:110px;display:inline-block}.pbmktbl .pbmkpct{width:70px}
.pbfil{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 10px}.pbfil input{width:220px;margin:0}.pbfil select{width:auto;margin:0}
.pbspec{font-size:12px;color:var(--green);margin-top:2px}
.spcard .bar{margin-bottom:4px}.spcard details{margin-top:6px}
.spoff{display:flex;gap:8px;align-items:center}.spoff input{width:110px;margin:0}
.spquick{font-size:13px;margin:4px 0 6px}
.spcov{margin-top:8px}.spitems{max-height:180px;overflow:auto;border:1px solid var(--border-l);border-radius:var(--r-sm);padding:4px 8px;margin-top:6px}
/* Marketing (CRM131) */
.mkcard .bar{margin-bottom:2px}.mktiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin:10px 0}
.mktile{display:flex;flex-direction:column;padding:8px 10px;border:1px solid var(--border-l);border-radius:var(--r-sm)}.mktile b{font-size:18px}.mktile .muted{font-size:12px}.mksub{font-size:11px!important}
.mkfoot{font-size:13px}.mkch{display:flex;flex-wrap:wrap;gap:4px 14px}
/* Estimates from the price book (CRM132) */
.li.pbli .pbnote{grid-column:1 / -1;font-size:12px;margin:-2px 0 4px}
.pbpick{margin:6px 0;border:1px solid var(--border-l);border-radius:var(--r-sm);padding:6px}.pbpick .pbs{margin:0 0 6px}
.pbres{max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.pbhit{display:flex;gap:8px;align-items:center;background:none;border:0;padding:6px 8px;border-radius:var(--r-sm);text-align:left;color:var(--text);font:inherit;cursor:pointer}.pbhit:hover{background:var(--orange-dim)}
/* Build map (CRM133) */
.mapov{position:fixed;inset:0;background:rgba(10,20,30,.45);z-index:60;display:flex;align-items:center;justify-content:center;padding:3vh 3vw}
.mapov[hidden]{display:none}
.mappanel{background:var(--card,var(--bg2));color:var(--text);border-radius:var(--r);box-shadow:0 20px 60px rgba(0,0,0,.35);width:min(1200px,100%);height:min(860px,100%);display:flex;flex-direction:column;overflow:hidden}
.maptop{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-l);flex-wrap:wrap}.maptop b{font-size:18px}.maptop input{width:220px;margin:0}
.mapclose{background:none;border:0;font-size:26px;color:var(--text3);cursor:pointer;line-height:1;padding:0 4px}.mapnav button .muted{white-space:nowrap}
.mapbody{flex:1;display:flex;min-height:0}
.mapnav{width:230px;flex-shrink:0;border-right:1px solid var(--border-l);overflow:auto;padding:8px;display:flex;flex-direction:column;gap:2px}
.mapnav button{display:flex;justify-content:space-between;gap:8px;background:none;border:0;text-align:left;padding:8px 10px;border-radius:var(--r-sm);color:var(--text);font:inherit;font-size:14px;cursor:pointer}
.mapnav button:hover{background:var(--orange-dim)}.mapnav button.on{background:var(--text);color:var(--bg)}.mapnav button.on .muted{color:inherit;opacity:.7}
.mapmain{flex:1;overflow:auto;padding:14px 18px}
.mappin{display:flex;flex-wrap:wrap;gap:6px 16px;padding:10px 12px;border-radius:var(--r-sm);background:var(--orange-dim);margin-bottom:12px;font-size:14px}
.mapsec h3{margin:4px 0 10px}.mapsec+.mapsec{margin-top:18px;border-top:1px solid var(--border-l);padding-top:12px}
.mapcols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.maph{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.mapit{display:flex;gap:8px;align-items:flex-start;padding:6px 0;border-bottom:1px solid var(--border-l);font-size:14px}
.mapok{color:var(--green);font-weight:700;width:16px;flex-shrink:0}
.mapref{display:block;font-size:12px;color:var(--text3);margin-top:1px}
.mapst{flex-shrink:0;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;white-space:nowrap;margin-top:1px}
.mapst.next{background:var(--orange);color:#fff}.mapst.planned{background:var(--blue-dim);color:var(--blue)}.mapst.waiting{background:rgba(255,181,71,.16);color:#c98a12}.mapst.paused{background:var(--border-l);color:var(--text3)}
.mapsel{display:none;width:auto;margin:0}
@media (max-width:760px){.mapnav{display:none}.mapsel{display:block}.mapcols{grid-template-columns:1fr}.mapov{padding:0}.mappanel{height:100%;border-radius:0}}
/* Price book import (CRM134) */
.pbirep{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:13px}
.pbimess{margin-top:6px;font-size:13px;color:#c98a12}.pbimess b{margin-right:6px}
.pbib{margin-top:14px;font-size:13px}.pbibr{padding:4px 0;border-bottom:1px solid var(--border-l)}
/* Send to customers (CRM137) */
.snrow{display:flex;gap:8px;align-items:center;padding:6px 8px;border-bottom:1px solid var(--border-l);font-size:14px;cursor:pointer;margin:0}.snrow .muted{font-size:12px;white-space:nowrap}
.snch,.snwhen{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.snwhen input[type=datetime-local]{width:auto;margin:0}
.snpv{margin-top:8px;font-size:14px}.sntest{margin-top:14px;padding:10px 12px;border:1px dashed var(--border-l);border-radius:var(--r-sm)}.sntest .row{margin-top:6px;align-items:center}
.mksends{margin:4px 0 8px;font-size:13px}.mksend{padding:4px 0;border-top:1px solid var(--border-l)}
.snrow input{width:auto;margin:0;flex-shrink:0}.snrow .grow{flex:1;font-weight:400;color:var(--text);text-transform:none;letter-spacing:0}
/* Sign-in (CRM138): brand panel + form card. Mark 10/21: "add design aesthetic to the login page with logo etc". */
.logoimg{width:24px;height:24px;display:block;border-radius:6px}
body.gate header.top,body.gate #robar{display:none}
body.gate main#app{max-width:none;padding:0;margin:0}
.signin{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,1fr);background:var(--bg)}
.signin.solo{grid-template-columns:1fr}
.sipanel{position:relative;overflow:hidden;color:#eef3f8;padding:56px 64px;display:flex;flex-direction:column;justify-content:center;
  background:radial-gradient(1200px 600px at -10% 110%,rgba(253,81,0,.28),transparent 60%),linear-gradient(160deg,#0b1d31 0%,#12304e 55%,#1a4067 100%)}
.silogo{width:260px;max-width:70%;height:auto;margin-bottom:42px;position:relative;z-index:1}
.sipanel h1{font-size:44px;line-height:1.08;margin:0 0 18px;font-weight:800;letter-spacing:-.01em;position:relative;z-index:1;color:#fff}
.sipanel h1 span{color:#ff8a45}
.sipanel p{font-size:17px;line-height:1.5;max-width:460px;color:#c7d4e2;margin:0 0 22px;position:relative;z-index:1}
.sipanel ul{list-style:none;padding:0;margin:0;position:relative;z-index:1;display:flex;flex-direction:column;gap:12px}
.sipanel li{padding-left:30px;position:relative;font-size:15px;color:#e1e9f1}
.sipanel li::before{content:'';position:absolute;left:0;top:3px;width:16px;height:16px;border-radius:50%;background:#fd5100;box-shadow:0 0 0 4px rgba(253,81,0,.22)}
.siwater{position:absolute;right:-90px;bottom:-90px;width:420px;opacity:.09;pointer-events:none;filter:grayscale(1) invert(1);mix-blend-mode:screen}
.siside{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;gap:16px}
.sicard{width:100%;max-width:380px;background:var(--card,var(--bg2));border:1px solid var(--border-l);border-radius:16px;padding:32px 30px;box-shadow:0 18px 50px rgba(10,25,45,.12)}
.siicon{width:56px;height:56px;display:block;margin-bottom:10px;border-radius:14px}
.sicard h2{margin:0 0 4px;font-size:24px}.simsg{color:var(--text2);margin:6px 0 2px}
.sicard input{font-size:16px}
.sifoot{font-size:12px;margin-top:14px;line-height:1.45}.sicopy{font-size:12px}
@media (max-width:860px){.signin{grid-template-columns:1fr}.sipanel{padding:28px 22px 30px}.silogo{width:190px;margin-bottom:18px}.sipanel h1{font-size:30px}.sipanel p{font-size:15px;margin-bottom:14px}.sipanel ul{display:none}.siwater{width:220px;right:-50px;bottom:-60px}.siside{padding:24px 16px 32px;justify-content:flex-start}}
/* Proof (CRM139) */
.pfrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}
.pfbig{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:var(--r);border:1px solid var(--border-l);background:var(--card,var(--bg2))}
.pfbig b{font-size:32px;line-height:1.1}.pfl{font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.05em}.pfbig .muted{font-size:13px}
.pfbig.unk{border-top:4px solid #c98a12}.pfbig.ina{border-top:4px solid var(--red)}.pfbig.ina b{color:var(--red)}.pfbig.rec{border-top:4px solid var(--green)}
.pfbars{display:flex;align-items:flex-end;gap:3px;height:90px;margin-top:8px}.pfbars span{flex:1;background:var(--orange);border-radius:3px 3px 0 0;min-width:4px;opacity:.8}
.pfg{color:var(--green)}.pfmiss{display:flex;gap:12px;align-items:center;padding:7px 0;border-top:1px solid var(--border-l);font-size:14px}
@media (max-width:760px){.pfrow{grid-template-columns:1fr}}
/* Build map notes (CRM139) */
.mapnotes{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-l)}
.mapnote{display:flex;gap:8px;align-items:flex-start;padding:6px 0;border-bottom:1px solid var(--border-l);font-size:14px}.mapnote.done{opacity:.6}
.mapnk{flex-shrink:0;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;margin-top:1px}.mapnk.question{background:var(--blue-dim);color:var(--blue)}.mapnk.idea{background:var(--orange-dim);color:var(--orange)}.mapnk.note{background:var(--border-l);color:var(--text3)}
.mapadd{display:flex;gap:8px;align-items:flex-start;margin-top:10px}.mapadd select{width:auto;margin:0}.mapadd textarea{flex:1;margin:0;min-height:38px}
.mapnb{background:var(--orange);color:#fff;border-radius:999px;padding:0 6px;font-size:11px;margin-left:4px}
/* Public front + Get demo (CRM140): ServiceTitan's pattern, SI's colors. One orange button: Get demo in the top bar. */
.sihome{position:relative;z-index:1;align-self:flex-start;color:#c7d4e2;font-size:13px;text-decoration:none;margin:-24px 0 28px}.sihome:hover{color:#fff}
.sicopy a{color:var(--orange)}
.fr{min-height:100vh;background:var(--bg);color:var(--text)}
.frin{max-width:1160px;margin:0 auto;padding:0 32px}
.frtop{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:28px;padding:12px 32px;background:#0d2440;border-bottom:1px solid rgba(255,255,255,.08);color:#f2f5f8}
.frlogo{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-weight:800;font-size:19px}.frlogo img{border-radius:8px}
.frnav{display:flex;gap:4px;flex:1}
.mm{position:relative}
.mmbtn{background:none;border:0;color:#e3eaf2;font-weight:600;padding:10px 12px;border-radius:8px;cursor:pointer}.mmbtn span{font-size:11px;opacity:.7}
.mm.open .mmbtn,.mmbtn:hover{background:rgba(255,255,255,.08);color:#fff}
.mmpanel{position:absolute;top:calc(100% + 6px);left:0;min-width:560px;background:var(--card);color:var(--text);border:1px solid var(--border-l);border-radius:14px;box-shadow:0 24px 60px rgba(5,15,30,.35);padding:14px}
.mmcol{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.mmitem{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;color:inherit;text-decoration:none}.mmitem:hover{background:var(--card2)}
.mmitem b{font-size:14px}.mmitem span{font-size:13px;color:var(--text3);line-height:1.35}
.mmall{grid-column:1/-1;padding:10px 12px 4px;border-top:1px solid var(--border-l);margin-top:6px;color:var(--orange);font-weight:600;text-decoration:none;font-size:14px}
.frright{display:flex;align-items:center;gap:14px;margin-left:auto}
.frlink{background:none;border:0;color:inherit;font-weight:600;cursor:pointer;padding:6px 4px}.frlink:hover{text-decoration:underline}
.frdemo{padding:10px 20px;font-size:15px;border-radius:8px}
.frburger{display:none;background:none;border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:8px;padding:4px 10px;font-size:18px;cursor:pointer}
.frhero{position:relative;overflow:hidden;color:#eef3f8;padding:84px 0 92px;background:radial-gradient(1200px 600px at -10% 110%,rgba(253,81,0,.28),transparent 60%),linear-gradient(160deg,#0b1d31 0%,#12304e 55%,#1a4067 100%)}
.frhero .frin{position:relative;z-index:1}
.frherologo{width:240px;max-width:60%;height:auto;margin-bottom:34px}
.frhero h1{font-size:58px;line-height:1.04;margin:0 0 20px;font-weight:800;letter-spacing:-.015em;color:#fff}.frhero h1 span{color:#ff8a45}
.frhero p{font-size:19px;line-height:1.55;max-width:600px;color:#c7d4e2;margin:0 0 30px}
.frcta{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.frbig{padding:12px 26px;font-size:16px;border-radius:8px}
.frhero .btn.ghost{color:#fff;border-color:rgba(255,255,255,.45)}.frhero .btn.ghost:hover{background:rgba(255,255,255,.08)}
.frtext{color:#ffb488;font-weight:600;text-decoration:none}.frtext:hover{text-decoration:underline}
.frsec{padding:72px 0;scroll-margin-top:64px}.frsec.alt{background:var(--card)}
.frsec h2{font-size:34px;margin:0 0 22px;font-weight:800;letter-spacing:-.01em}
.frlead{font-size:17px;color:var(--text2);max-width:760px;margin:0 0 24px;line-height:1.6}
.frgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.frgrid.four{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}
.frcard{background:var(--card);border:1px solid var(--border-l);border-radius:14px;padding:22px}.frsec.alt .frcard{background:var(--bg)}
.frcard b{font-size:17px;display:block;margin-bottom:6px}.frcard p{margin:0;color:var(--text2);font-size:14px;line-height:1.5}
.frproof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.frproof div{background:var(--bg);border:1px solid var(--border-l);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:6px}
.frproof div:nth-child(1){border-top:4px solid #c98a12}.frproof div:nth-child(2){border-top:4px solid var(--red)}.frproof div:nth-child(3){border-top:4px solid var(--green)}
.frproof b{font-size:18px}.frproof span{color:var(--text2);font-size:14px}
.frtable{width:100%;border-collapse:collapse;margin-bottom:34px;font-size:15px}
.frtable th,.frtable td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--border-l);vertical-align:top}
.frtable th{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3)}.frtable th:last-child{color:var(--orange)}
.frtable td:first-child{font-weight:700;width:18%}.frtable td:nth-child(2){color:var(--text3);width:36%}.frtable td:last-child{font-weight:600}
.frtabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.frtab{background:transparent;border:1px solid var(--border-l);color:var(--text2);border-radius:999px;padding:8px 16px;font-weight:600;cursor:pointer}
.frtab.on{border-color:var(--orange);color:var(--orange);background:var(--orange-dim)}
.frsteps{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:10px;max-width:820px;font-size:16px;line-height:1.55}
.frend{text-align:center}.frend .frlead{margin-left:auto;margin-right:auto}
.frfoot{padding:26px 0;border-top:1px solid var(--border-l);font-size:13px;color:var(--text3)}
.frfoot .frin{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.frfoot a{color:inherit}.frfoot .frlink{font-size:13px;margin-left:auto}
@media (max-width:900px){
  .frtop{padding:10px 16px;gap:12px;flex-wrap:wrap}.frburger{display:block}.frnav{display:none;order:9;flex-basis:100%;flex-direction:column}
  .frtop.navopen .frnav{display:flex}.frright{gap:10px}.frright .frlink{display:none}.frdemo{padding:8px 14px}
  .mmpanel{position:static;min-width:0;box-shadow:none;margin:4px 0 8px}.mmcol{grid-template-columns:1fr}
  .frin{padding:0 16px}.frhero{padding:48px 0 56px}.frhero h1{font-size:38px}.frhero p{font-size:16px}
  .frsec{padding:48px 0}.frsec h2{font-size:26px}.frgrid,.frgrid.four,.frproof{grid-template-columns:1fr}
  .frtable thead{display:none}.frtable tr{display:block;padding:10px 0;border-bottom:1px solid var(--border-l)}.frtable td{display:block;border:0;padding:3px 0;width:auto!important}
  .frtable td:nth-child(2)::before{content:'Typical: '}.frtable td:last-child::before{content:'SI CRM: ';color:var(--orange)}
}
/* Get demo: full screen, one question at a time */
body.dmopen{overflow:hidden}
.dmo{position:fixed;inset:0;z-index:60;background:var(--bg);color:var(--text);display:flex;flex-direction:column;overflow:auto}
.dmtop{display:flex;align-items:center;gap:24px;padding:14px 28px;border-bottom:1px solid var(--border-l)}
.dmbrand{display:flex;align-items:center;gap:10px;font-weight:700}.dmbrand img{border-radius:6px}
.dmbar{flex:1;height:6px;background:var(--border);border-radius:3px;max-width:520px;margin:0 auto}.dmbar div{height:6px;background:var(--orange);border-radius:3px;transition:width .25s}
.dmx{background:none;border:0;color:var(--text);font-size:34px;line-height:1;cursor:pointer;padding:0 6px;opacity:.8}.dmx:hover{opacity:1}
.dmbody{flex:1;display:flex;justify-content:center;align-items:flex-start;padding:56px 24px}
.dmq{width:100%;max-width:640px}.dmq h2{font-size:30px;margin:4px 0 22px;font-weight:800;letter-spacing:-.01em}
.dmn{font-size:13px;font-weight:600}
.dmopts{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dmopt{text-align:left;background:var(--card);border:1px solid var(--border-l);color:var(--text);border-radius:12px;padding:16px 18px;font-size:16px;font-weight:600;cursor:pointer}
.dmopt:hover,.dmopt:focus-visible{border-color:var(--orange);outline:none}.dmopt.on{border-color:var(--orange);background:var(--orange-dim)}
.dmlab{display:block;margin-top:18px}.dmq textarea{width:100%;box-sizing:border-box}
.dmback{margin-top:18px;color:var(--text3)}
.dmrow{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dmrow input{width:100%;box-sizing:border-box;font-size:16px}
.dmhp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.dmok{display:flex!important;gap:10px;align-items:flex-start;font-size:13px;color:var(--text2);margin:16px 0 4px;line-height:1.45}.dmok input{width:auto!important;margin-top:3px}
.dmgo{display:flex;justify-content:space-between;align-items:center;margin-top:14px}.dmgo .dmback{margin:0}
.dmsend{padding:12px 26px;font-size:16px;border-radius:8px}
.dmsum{display:flex;gap:8px;flex-wrap:wrap;margin-top:26px}.dmsum span{font-size:12px;padding:3px 10px;border-radius:999px;background:var(--card2);color:var(--text2)}
.dmdone{text-align:center}.dmdone .siicon{margin:0 auto 14px}.dmshow{font-size:18px;font-weight:600;max-width:520px;margin:10px auto 20px}
@media (max-width:700px){.dmtop{padding:10px 14px;gap:12px}.dmbody{padding:28px 16px}.dmq h2{font-size:23px}.dmopts,.dmrow{grid-template-columns:1fr}}
.dmq a{color:var(--orange)}
.mmpanel::before{content:'';position:absolute;left:0;right:0;top:-10px;height:10px}
.frnav{overflow:visible}
.dmfun{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin-top:8px}.dmfun div{display:flex;flex-direction:column}.dmfun b{font-size:22px}.dmfun span{font-size:12px}@media (max-width:760px){.dmfun{grid-template-columns:repeat(4,1fr)}}
.drlink{color:var(--orange);text-decoration:none}.drlink:hover{text-decoration:underline}
/* Presenter view (CRM141): the team's internal tools stay out of a demo */
body.presenter #rnbtn,body.presenter #rnotes,body.presenter #testsbtn,body.presenter #demobtn,body.presenter .mapnotes{display:none!important}
/* CRM145: the action-first Dashboard (specs/action-first-rules.md): the score, WHY (good and bad), today's 3 moves, who to talk to. */
:root{--ax-glow:0 1px 0 rgba(255,255,255,.04) inset,0 8px 24px rgba(0,0,0,.25);--ax-amber:#ffb547;--ax-amber-dim:rgba(255,181,71,.13)}
:root[data-theme="light"]{--ax-glow:0 1px 2px rgba(10,28,48,.06),0 6px 20px rgba(10,28,48,.06);--ax-amber:#a35a00;--ax-amber-dim:rgba(214,140,0,.12)}
.axpurpose{color:var(--text2);font-size:14.5px;margin:-4px 0 16px;max-width:820px}
.axeye{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text3)}
.axpill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--card2);color:var(--text2)}
.axpill.red{background:var(--red-dim);color:var(--red)}.axpill.green{background:var(--green-dim);color:var(--green)}.axpill.amber{background:var(--ax-amber-dim);color:var(--ax-amber)}
.axscore{display:grid;grid-template-columns:1.25fr 1fr;gap:28px;align-items:center;background:linear-gradient(135deg,var(--card) 0%,var(--card2) 140%);border:1px solid var(--border);border-radius:16px;padding:24px 28px;box-shadow:var(--ax-glow)}
.axbig{font-size:44px;font-weight:800;letter-spacing:-.02em;line-height:1.05}.axbig small{font-size:18px;font-weight:600;color:var(--text3);letter-spacing:0}
.axtrack{position:relative;height:12px;border-radius:999px;background:var(--track);margin:16px 0 30px}
.axtrack i{position:absolute;inset:0 auto 0 0;border-radius:999px;background:linear-gradient(90deg,var(--orange),#ff9a52);max-width:100%}
.axtrack b{position:absolute;top:-6px;width:2px;height:24px;background:var(--text);opacity:.7}
.axtrack em{position:absolute;top:22px;font-size:11.5px;font-style:normal;color:var(--text3);transform:translateX(-50%);white-space:nowrap}
.axneed{font-size:15px;line-height:1.55}.axneed strong{font-size:22px;font-weight:800;display:block;letter-spacing:-.01em}
.axwhy{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.axbox{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px 18px}
.axbox h4{margin:0 0 10px;font-size:13px;font-weight:700}.axbox.good h4{color:var(--green)}.axbox.bad h4{color:var(--red)}
.axbox ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.axbox li{display:grid;grid-template-columns:130px 1fr;gap:10px;font-size:14px;color:var(--text2)}.axbox li b{color:var(--text);font-weight:700}
.axsect{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:28px 0 14px}.axsect h2{margin:0;font-size:20px}
.axmoves{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.axmove{position:relative;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px 18px 16px;box-shadow:var(--ax-glow);display:flex;flex-direction:column;gap:10px}
.axmove.first{border-color:var(--orange);box-shadow:0 0 0 1px var(--orange),var(--ax-glow)}
.axnum{position:absolute;top:-11px;left:16px;background:var(--card2);color:var(--text2);border:1px solid var(--border);font-weight:800;font-size:12px;border-radius:999px;padding:2px 9px}
.axmove.first .axnum{background:var(--orange);color:#fff;border-color:var(--orange)}
.axstake{font-size:26px;font-weight:800;letter-spacing:-.01em}.axstake small{font-size:13px;font-weight:600;color:var(--text3);margin-left:4px}
.axmt{font-size:16px;font-weight:700;line-height:1.3}
.axlbl{font-size:10.5px;font-weight:800;letter-spacing:.1em;color:var(--text3);margin-right:6px}
.axw{font-size:13.5px;color:var(--text2);line-height:1.45}.axh{font-size:13.5px;color:var(--text);line-height:1.45}
.axacts{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:4px}
.axcoach{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.axcc{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px;text-align:left;cursor:pointer;color:var(--text)}
.axcc:hover{border-color:var(--orange)}
.axcc .nm{font-weight:700;font-size:15px;display:flex;justify-content:space-between;align-items:center;gap:6px}
.axcc .say{font-size:13px;line-height:1.4}.axcc .sub{font-size:12px;color:var(--text3)}
.axmore{margin:16px 0 4px;display:flex;justify-content:center}
.axempty{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px;color:var(--text2)}
@media (max-width:1000px){.axscore,.axwhy{grid-template-columns:1fr}.axmoves{grid-template-columns:1fr}.axbig{font-size:36px}}
/* CRM146: action-first Calls (sections, one row per customer, why + what to say, plain outcomes). */
.axtabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:4px 0 14px}
.axtab{display:flex;flex-direction:column;gap:2px;text-align:left;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:10px 16px;cursor:pointer;color:var(--text)}
.axtab.on{border-color:var(--orange);box-shadow:0 0 0 1px var(--orange)}.axtab:disabled{opacity:.55;cursor:default}
.axtab b{font-size:15px}.axtab span{font-size:12.5px;color:var(--text3)}.axtab .amt{font-size:20px;font-weight:800;color:var(--text)}
.axlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.axlr{display:grid;grid-template-columns:30px minmax(0,1.2fr) minmax(0,1.9fr) 120px minmax(0,1.6fr);gap:16px;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 16px;cursor:pointer}
.axlr.first{border-color:var(--orange)}
.axrk{font-weight:800;color:var(--text3);font-size:15px;text-align:center}
.axcn{font-weight:700;font-size:15.5px;color:var(--text);text-decoration:none;text-align:left}.axcn:hover{text-decoration:underline}
.axcs{font-size:12.5px;color:var(--text3);margin-top:2px}
.axsay{font-size:13.5px;color:var(--text2);line-height:1.45}.axsay i{color:var(--text);font-style:normal}.axsay .tchip{margin-left:6px}
.axamt{text-align:right}.axamt b{font-size:19px;font-weight:800;display:block}.axamt span{font-size:12px;color:var(--text3)}.axamt div{margin-top:4px}
.axpill.blue{background:var(--blue-dim);color:var(--blue)}
.axoc{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.axoc a.btn{text-decoration:none}
@media (max-width:1000px){.axtabs{grid-template-columns:repeat(2,minmax(0,1fr))}.axlr{grid-template-columns:24px minmax(0,1fr) auto}.axlr .axsay{grid-column:2/4}.axlr .axoc{grid-column:1/4;justify-content:flex-start}}
/* CRM147: action-first Estimates (Hot / Warm / Cold rows) and the read view with Preview as customer. */
.axer{grid-template-columns:minmax(0,1.2fr) minmax(0,2fr) 140px 110px}
.axopts{display:flex;flex-direction:column;gap:8px}
.axopt{display:flex;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:10px;padding:10px 12px}
.axopt.likely{border-color:var(--green);background:var(--green-dim)}.axopt span{font-size:12.5px;color:var(--text3)}.axopt .p{font-weight:800;font-size:16px;white-space:nowrap}
.axnext{margin-top:12px;border-left:3px solid var(--ax-amber);background:var(--ax-amber-dim);border-radius:0 8px 8px 0;padding:8px 12px;font-size:13.5px}
.axpv{margin-top:14px}.axphone{max-width:390px;margin:8px auto 0;border:8px solid #1b2430;border-radius:28px;overflow:hidden;max-height:640px;overflow-y:auto;background:#f3f5f8}
@media (max-width:1000px){.axer{grid-template-columns:minmax(0,1fr) auto}.axer .axsay{grid-column:1/3}.axer .axoc{grid-column:1/3;justify-content:flex-start}}
/* CRM148: the call center. CSR bubbles (initials until the staff roster has photos). */
.axav{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--orange-dim);color:var(--orange);font-size:11.5px;font-weight:800;vertical-align:middle;margin-right:6px;flex:none}
.axbox li b .axav{width:22px;height:22px;font-size:10px;margin-right:4px}
/* CRM150: the Team portal (person cards, faces). */
.axpcs{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.axpc{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--ax-glow);cursor:pointer}
.axpc:hover{border-color:var(--orange)}
.axpch{display:flex;gap:12px;align-items:center}.axpcn{font-weight:700;font-size:16px}
.axface{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--orange-dim);color:var(--orange);font-weight:800;flex:none;object-fit:cover}
.axmet>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:12.5px}
.axpcsay{border-top:1px solid var(--border-l);padding-top:8px;font-size:13px;line-height:1.4}
/* CRM153: why and how to fill a board day (weather vs demand, the season's pods, connected marketing). */
.axpods{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:12px}
.axpod{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px}.axpod.first{border-color:var(--orange)}
.axcamp{display:flex;gap:16px;align-items:center;justify-content:space-between;margin:12px 0;background:var(--orange-dim);border:1px solid var(--orange);border-radius:12px;padding:14px 16px}
@media (max-width:1000px){.axcamp{flex-direction:column;align-items:flex-start}}
.qgrp{font-size:12px;margin:10px 2px 4px;color:var(--text2)}.qgrp b{color:var(--text)}

/* Marketing, action-first (CRM156) */
.mkkpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.mkk{display:flex;flex-direction:column;gap:2px}.mkk b{font-size:26px;font-weight:800;line-height:1.2}.mkk .green{color:var(--green)}.mkk .red{color:var(--red)}
.mkdays{display:grid;grid-template-columns:repeat(7,minmax(118px,1fr));gap:10px;overflow-x:auto}
.mkday{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;font:inherit;color:var(--text);background:var(--card);border:1px solid var(--border);border-top:4px solid var(--green);border-radius:12px;padding:10px 12px;cursor:pointer;min-width:118px}
.mkday:hover{border-color:var(--orange)}.mkday.st-yellow,.mkday.st-red{border-top-color:var(--orange)}.mkday.st-over{border-top-color:var(--blue)}.mkday.st-closed{border-top-color:var(--border);opacity:.7}
.mkpct{font-size:22px;font-weight:800}
.mktbl td.n,.mktbl th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.mksteps{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:10px 0 4px}
.mkstep{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:13px;line-height:1.4}
@media (max-width:1000px){.mkdays{grid-template-columns:repeat(7,minmax(118px,1fr))}}
/* Campaign cards read as separate blocks (CRM156c): a tinted header band, space between, a soft shadow */
.mkcard{padding:0 0 12px;overflow:hidden;margin-bottom:18px;box-shadow:0 2px 10px rgba(0,0,0,.18)}
:root[data-theme="light"] .mkcard{box-shadow:0 2px 10px rgba(16,35,58,.08)}
.mkcard>.bar{background:var(--card2);padding:12px 16px;border-bottom:1px solid var(--border);margin-bottom:10px;flex-wrap:wrap;gap:8px}
.mkcard>.bar b.grow{font-size:16px}
.mkcard>:not(.bar){margin-left:16px;margin-right:16px}
.mkcard .mkstep{background:var(--bg)}
.tipi.r:hover::after,.tipi.r:focus::after{left:auto;right:0}
.mktbl th .tipi,.mkk .tipi{margin-left:4px}
.mktbl{overflow:visible}
/* ROI first (CRM157) */
.mkroi{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:14px;margin-bottom:16px}
.mkroih{display:grid;grid-template-columns:minmax(200px,auto) 1fr;gap:6px 24px;align-items:end}
.mkroih .axbig{grid-row:2}.mkroih .axneed{grid-row:1 / span 2;grid-column:2;align-self:center;font-size:14.5px}
.mkfun{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px}
.mkfs{flex:1 1 110px;display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:8px 12px}
.mkfs b{font-size:20px;font-weight:800}.mkfs span{font-size:12px;color:var(--text3)}.mkfs.rev{border-color:var(--green)}.mkfs.rev b{color:var(--green)}
.mkarr{align-self:center;color:var(--text3);font-weight:700}
.mkclaim{background:var(--orange-dim);border:1px solid var(--orange);border-radius:10px;padding:10px 14px;font-size:14px}
.mkbw{display:flex;flex-wrap:wrap;gap:8px 28px;font-size:14px}
@media (max-width:700px){.mkroih{grid-template-columns:1fr}.mkroih .axneed{grid-row:auto;grid-column:auto}.mkarr{display:none}}
.mktbl{min-width:1240px}.mktbl td:last-child{min-width:260px;white-space:normal}
/* Budgets (CRM158) */
.mkbbar{height:6px;border-radius:999px;background:var(--track,var(--border));overflow:hidden;margin-top:6px}.mkbbar i{display:block;height:100%;background:var(--green)}
.mkbbar.over i{background:var(--red)}.mkbbar.under i{background:var(--orange)}
.mkbud{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,2.2fr) minmax(100px,1fr) auto;gap:14px;align-items:center;padding:10px 0;border-top:1px solid var(--border)}
.mkbud:first-child{border-top:0}.mkbud .mkbbar{margin:0}.mkbud span:not(.axpill){font-size:13.5px;color:var(--text2)}
@media (max-width:700px){.mkbud{grid-template-columns:1fr}}
/* Company profile (CRM161) */
.pfcard{padding:16px 18px;margin-bottom:14px}.pfmeter{margin-bottom:14px;padding:14px 18px}.pfmeter.warn{border-color:var(--orange)}
.pfgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px 16px;flex:1 1 320px;min-width:0}
.pfgrid input{width:100%}.pfmiss{border-color:var(--orange)!important;background:var(--orange-dim)!important}
.pfhint{font-size:12px;margin-top:4px}.pfuses{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.pfwho{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
.pflogo{width:120px;height:120px;border-radius:12px;border:2px dashed var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden;flex:none;color:var(--text3);font-size:12px;background:var(--bg)}
.pflogo img{max-width:100%;max-height:100%;object-fit:contain;background:#fff;padding:6px;box-sizing:border-box;border-radius:8px}
/* CRM165: logos are made for white paper (estimates, postcards); a navy logo vanished on the dark card. */
.pfhours{display:grid;grid-template-columns:60px auto 120px 120px;gap:8px 12px;align-items:center;margin-top:12px;max-width:520px}
.pfsms{background:var(--card2);border-radius:14px 14px 14px 4px;padding:10px 12px;font-size:13.5px}
.pfmail{background:#f7f5ec;color:#10233a;border-radius:10px;padding:12px 14px;font-size:13px}.pfmail .muted{color:#46596e}
.pfkit{display:flex;gap:24px;align-items:center;flex-wrap:wrap;border:2px solid var(--orange);border-radius:14px;padding:20px 22px;margin-bottom:14px;background:linear-gradient(135deg,var(--card) 0%,var(--card2) 100%)}
.pfkit>div:first-child{flex:1 1 380px}.pfkit h3{margin:4px 0 6px;font-size:22px}.pfkitr{display:flex;flex-direction:column;gap:10px}
.pfsw{display:flex;gap:8px}.pfsw i{width:44px;height:44px;border-radius:10px;border:1px solid var(--border)}
.pfwarn{background:var(--orange-dim);border:1px solid var(--orange);border-radius:8px;padding:8px 12px;font-size:13.5px;margin-bottom:8px}
@media (max-width:600px){.pfhours{grid-template-columns:36px auto minmax(0,1fr) minmax(0,1fr);gap:6px 8px}.pfhours input[type=time]{width:100%;min-width:0;padding-left:4px;padding-right:4px}}
/* AI message writer (CRM165) */
.aiw{border:1px solid var(--orange);background:var(--orange-dim);border-radius:12px;padding:12px 14px;margin:6px 0 12px}
.aiofr{margin-top:6px}.aidrafts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:10px}
.aidraft{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.aitxt{background:var(--card2);border-radius:10px;padding:8px 10px;font-size:13.5px;line-height:1.45}
/* CRM168: price book against Break Even (board 3) */
.pbhealth .why{border-left:3px solid var(--orange);padding:2px 0 2px 12px}.pbhealth .why .muted{margin-top:2px;font-size:13px}
.pbstats{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.pbstat{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:130px;padding:8px 12px;border:1px solid var(--border-l);border-radius:var(--r-sm);background:none;color:var(--text);font:inherit;cursor:pointer;min-height:44px}
.pbstat b{font-size:20px}.pbstat .muted{font-size:12px}.pbstat.on,.pbstat:hover{border-color:var(--orange)}.pbstat .okc{color:var(--green)}.pbstat .amber{color:#ffb547}
.pbst{display:inline-block;font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 9px;background:var(--border-l);color:var(--text2);white-space:nowrap}
.pbst.red{background:var(--red-dim);color:var(--red)}.pbst.amber{background:rgba(255,181,71,.14);color:#c98a12}.pbst.ok{background:var(--green-dim);color:var(--green)}.pbst.blue{background:var(--blue-dim);color:var(--blue)}
.pbuse{align-self:center}
.pbhtbl input.pbhin{width:72px;min-height:36px;padding:6px 8px}.pbhtbl td.pbhfl{white-space:nowrap}
.pbtbl td:first-child,.pbhtbl td:first-child{white-space:normal;min-width:200px}.pbhtbl{width:100%}

/* FI3 (2026-10-27): Field Ignition. The name is live text (sharp at any size, both themes): FIELD in white / the logo navy,
   ignition in the logo orange. The icon sits on a white tile: its navy F vanishes on the dark header otherwise. */
.fiword{font-weight:800;letter-spacing:-.01em;white-space:nowrap}.fiword b{font-weight:800;color:var(--text)}.fiword i{font-style:normal;font-weight:700;color:var(--orange)}
:root[data-theme="light"] .fiword b{color:#00356a}
.frtop .fiword b,:root[data-theme] .frtop .fiword b{color:#fff}
.logoimg{width:28px;height:28px;background:#fff;border-radius:7px;padding:2px;box-sizing:border-box}
.frlogo img{background:#fff;padding:2px;box-sizing:border-box}.dmbrand img{background:#fff;padding:2px;box-sizing:border-box}
.siicon{background:#fff;padding:4px;box-sizing:border-box}
