/* ===== Colours and type: light cream, the same in light and dark mode ===== */
:root{
  --paper:#FBF6EA; --panel:#FFFFFF; --sunk:#F1EADA; --ink:#1F1B16; --muted:#6A6155; --line:#E2D9C5;
  --accent:#5B2A86; --accent-ink:#FFFFFF; --accent-soft:#EFE6F7;
  --fading:#857D72; --good:#24864A; --warn:#9A6500; --bad:#B4372F;
  --pitched-bg:#FDEFCF; --won-bg:#DDF3E4; --meeting-bg:#E3EEFB; --meeting-ink:#2F5F9E;
  --shadow:0 1px 2px rgba(31,27,22,.06),0 8px 24px rgba(31,27,22,.07);
  --f-display:"Inter",ui-sans-serif,system-ui,sans-serif;
  --f-body:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"Inter",ui-monospace,SFMono-Regular,Menlo,monospace;
  --f-code:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  color-scheme:light;
}

/* ===== Base ===== */
*{box-sizing:border-box}
[hidden]{display:none !important}
body{background:var(--paper);color:var(--ink);font:15px/1.5 var(--f-body);margin:0;-webkit-font-smoothing:antialiased}
.wrap{max-width:1240px;margin:0 auto;padding-inline:20px;padding-block:16px 64px}
h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;letter-spacing:-.01em}
a{color:var(--accent)}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.eyebrow{font:600 11.5px/1 var(--f-body);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted)}
select,input,textarea{font:inherit;font-size:14px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:7px 10px}

/* ===== Header, sign-in, tabs ===== */
.mast{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;border-bottom:1px solid var(--line);padding-bottom:10px}
.mark{font:800 clamp(24px,4vw,32px)/.95 var(--f-display);letter-spacing:-.03em}
.mark{display:flex;align-items:flex-end;gap:.3em;flex-wrap:wrap}
/* The ohelloo name is a drawing (design/ohelloo-wordmark.svg), so it looks the same everywhere and needs no font. */
.mark svg{height:.86em;width:auto;fill:var(--accent);display:block;flex:none}
.mark img{height:1.12em;width:auto;display:block;flex:none;margin-bottom:-.08em}
.mark span{font-size:.5em;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}
.mast-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13.5px;min-width:0}
.mast-r span{overflow-wrap:anywhere}
.practice{margin:10px 0 0;padding:5px 10px;border:1px dashed var(--warn);border-radius:8px;color:var(--warn);font-size:12.5px;font-weight:600}
.gate{display:grid;gap:14px;justify-items:start;padding:48px 0;max-width:52ch}
.gate p{margin:0;font-size:17px}
.tabs{position:sticky;max-width:100%;top:env(safe-area-inset-top,0px);z-index:5;background:var(--paper);display:flex;gap:2px;overflow-x:auto;padding-block:6px 0;margin-bottom:4px;border-bottom:1px solid var(--line);scrollbar-width:none}
.tabs button{flex:none;white-space:nowrap;background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);font-weight:600;font-size:13.5px;padding:8px 11px 9px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.tabs button:hover{color:var(--ink)}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.badge{font:700 10.5px/1 var(--f-mono);background:var(--bad);color:var(--panel);border-radius:999px;padding:3px 6px;min-width:18px;text-align:center}
section{padding-block:12px}
.sec-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 14px;margin-bottom:10px}
.sec-h h2{font-size:20px;font-weight:700;letter-spacing:-.02em}
.sec-h p{order:1;margin:0;color:var(--muted);font-size:13px;line-height:1.45;flex:1 1 320px;min-width:0}
.sec-h>:not(h2):not(p){order:2}

/* ===== Buttons, chips, filters ===== */
.btn{border:0;border-radius:8px;background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:14px;padding:8px 14px;cursor:pointer}
a.btn{text-decoration:none;display:inline-block}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.small{padding:5px 10px;font-size:12.5px}
.btn:disabled{opacity:.5;cursor:default}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chip{font-size:12px;font-weight:600;padding:3px 8px;border-radius:999px;background:var(--sunk);color:var(--ink);overflow-wrap:anywhere;text-decoration:none}
a.chip{color:var(--accent)}
.chip.soft{background:var(--accent-soft)}
.need{font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--bad);color:var(--bad)}.need.ok{border-color:var(--line);color:var(--muted)}
.fbtn{border:1px solid var(--line);background:var(--panel);padding:5px 12px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;color:var(--muted)}
.fbtn[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.saved{font-size:12.5px;color:var(--muted)}
.empty{border:1px dashed var(--line);border-radius:10px;padding:16px;color:var(--muted);text-align:center;font-size:13.5px}
.pst{flex:none;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:999px;background:var(--sunk);color:var(--muted);white-space:nowrap}
.pst.contacted{background:var(--accent-soft);color:var(--accent)}.pst.pitched{background:var(--pitched-bg);color:var(--warn)}.pst.won{background:var(--won-bg);color:var(--good)}.pst.lost{background:var(--sunk);color:var(--fading)}
.pst.meeting{background:var(--meeting-bg);color:var(--meeting-ink)}
.meter{display:inline-flex;gap:2px;vertical-align:middle}
.meter i{width:7px;height:12px;border-radius:2px;background:var(--line)}
.meter.f i.on{background:var(--good)}

/* ===== Follow up ===== */
.crm-money{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin:0 0 12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.crm-money:empty{display:none}
.crm-money>div{padding:9px 14px;min-width:0;box-shadow:-1px 0 0 var(--line),0 -1px 0 var(--line)}
.crm-money b{display:block;font-size:19px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.crm-money span{font-size:12px;line-height:1.35;color:var(--muted)}
.crm-money b span{font-size:13px}.crm-money .won{color:var(--good)}
.fu-group{margin:0 0 14px}.fu-group h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px}
.fu-group.over h3{color:var(--bad)}
.fu-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 12px;margin-bottom:6px;cursor:pointer;color:var(--ink);font:inherit}
.fu-row:hover{border-color:var(--accent)}.fu-row span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.fu-row .d{font-weight:700;font-size:12.5px;white-space:nowrap}
.fu-row .d.over{color:var(--bad)}
.fu-row span:not(.d){grid-column:1/-1}

/* ===== Pipeline: the board scrolls sideways inside its own box, never the page ===== */
.board-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px;max-width:100%}
.lboard{display:grid;grid-template-columns:repeat(4,minmax(210px,1fr));gap:10px;min-width:880px}
/* Pipeline as a list: one stage under the other, a row per lead */
#pipeline .sec-h .seg{margin-left:auto}
.pipe-wrap{max-height:none}
.pipe-table thead th{height:38px}
.pipe-table .c-name{max-width:240px}
.pipe-table .c-kind,.pipe-table .c-area{max-width:170px}
.pipe-table .c-deal,.pipe-table .c-touch{width:1%}
.pipe-table .c-next{width:100%;max-width:0;min-width:240px}
.pipe-table .pipe-stage td{position:sticky;left:0;background:var(--paper);padding:10px 10px 8px}
.pipe-table .pipe-stage .muted{font-size:12px;font-weight:600;margin-left:8px}
.pipe-table .pipe-stage{cursor:default}.pipe-table .pipe-stage:hover td{background:var(--paper)}
@media (max-width:760px){
  #pipeBody .lwrap{overflow:hidden}
  #pipeBody .ltable,#pipeBody .ltable tbody{display:block}
  #pipeBody .ltable thead{display:none}
  #pipeBody .ltable tbody tr{display:block}
  #pipeBody .ltable tbody tr + tr{border-top:1px solid var(--line)}
  #pipeBody .ltable tbody tr:active{background:var(--accent-soft)}
  #pipeBody .ltable tbody tr:hover td{background:none}
  #pipeBody .ltable tbody td{display:none}
  #pipeBody .ltable tbody td.c-card,#pipeBody .ltable tbody .pipe-stage td{display:block;position:static;max-width:none;border:0;white-space:normal;overflow:visible}
  #pipeBody .ltable tbody td.c-card{padding:8px 12px}
  #pipeBody .ltable tbody .pipe-stage td,#pipeBody .ltable tbody .pipe-stage:hover td{background:var(--paper);padding:9px 12px 7px}
}
.bcol{background:var(--sunk);border-radius:12px;padding:8px;min-width:0}
.bcol h3{display:flex;justify-content:space-between;gap:6px;font-size:13px;margin:2px 4px 8px}.bcol h3 span{color:var(--muted);font-weight:600}
.bcol p{font-size:12.5px;margin:4px}
.bcard{display:block;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:6px;cursor:pointer;color:var(--ink);font:inherit}
.bcard:hover{border-color:var(--accent)}
/* Dragging a card to another stage (boarddrag.js) */
.bcard{-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}
body.board-dragging{user-select:none;-webkit-user-select:none;cursor:grabbing}
.bcard.drag-src{opacity:.35}
.drag-ghost{position:fixed;left:0;top:0;z-index:60;margin:0;pointer-events:none;box-shadow:var(--shadow);border-color:var(--accent);opacity:.95}
.bcol.drop-on{outline:2px dashed var(--accent);outline-offset:-2px;background:var(--accent-soft)}
.bdrop-lost{display:none;position:fixed;left:16px;right:16px;bottom:16px;z-index:55;padding:16px;border:2px dashed var(--line);border-radius:14px;background:var(--panel);color:var(--muted);text-align:center;font-weight:700;box-shadow:var(--shadow)}
body.board-dragging .bdrop-lost{display:block}
.bdrop-lost.drop-on{border-color:var(--bad);color:var(--bad);background:var(--sunk)}.bcard b{display:block;font-size:14px}.bcard span{display:block;font-size:12px;color:var(--muted)}.bcard .over{color:var(--bad);font-weight:700}

/* ===== All leads: a spreadsheet. One thin row per lead, one column per fact ===== */
body.wide .wrap{max-width:1680px}
.lwrap{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:auto;max-height:calc(100vh - 150px);overscroll-behavior-x:contain}
.ltable{border-collapse:separate;border-spacing:0;width:100%;font-size:13px;line-height:1.3}
.ltable th,.ltable td{padding:5px 10px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line);max-width:240px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.ltable tbody tr:last-child td{border-bottom:0}
.ltable thead th{position:sticky;top:0;z-index:2;background:var(--sunk);padding:0 6px 0 10px;font:600 11px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);overflow:visible}
/* The business name stays put while the rest scrolls sideways */
.ltable .c-name{position:sticky;left:0;z-index:1;background:var(--panel);box-shadow:inset -1px 0 0 var(--line);max-width:230px}
.ltable thead .c-name{z-index:3;background:var(--sunk)}
.ltable tbody tr{cursor:pointer}
.ltable tbody tr:hover td{background:var(--accent-soft)}
.ltable .ln{background:none;border:0;padding:0;font:700 13.5px/1.3 var(--f-display);color:var(--ink);cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;text-align:left}
.ltable .ln:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.ltable .mine{font-style:normal;color:var(--accent);margin-left:4px}
.ltable .sub{color:var(--muted)}
.ltable .over{color:var(--bad);font-weight:700}.ltable .d{font-weight:600}
.ltable .c-next{max-width:260px}.ltable .c-email{max-width:220px}.ltable .c-contact{max-width:200px}
.ltable .c-reviews,.ltable .c-fit{font-variant-numeric:tabular-nums}
.ltable .need,.ltable .chip,.ltable .tag{font-size:11px;padding:1px 7px;margin-right:4px;white-space:nowrap}
.ltable .chip{display:inline-block}
.tag.new{background:var(--accent-soft);color:var(--accent)}
.tag{display:inline-block;border-radius:5px;background:var(--sunk);color:var(--muted);font-weight:700;font-size:11px;padding:1px 6px}.tag.warn{background:none;border:1px solid var(--bad);color:var(--bad)}
.ltable .pst{font-size:10.5px;padding:2px 7px}
.ltable .lgrade{font-size:10.5px;padding:1px 6px}
.rk{font-weight:700;font-variant-numeric:tabular-nums}.rk.top3{color:var(--good)}.rk.top10{color:var(--warn)}.rk.top20,.rk.out{color:var(--bad)}
.ltable .c-said{max-width:280px}
.gquotes{list-style:none;padding:0;margin:8px 0;display:grid;gap:10px}
.gquotes li{border-left:3px solid var(--bad);padding:2px 0 2px 10px}
.gquotes q{display:block;margin:2px 0;font-style:italic}
.gquotes .hint{display:block}
.icp{display:inline-flex;align-items:baseline;gap:4px;font-weight:800;font-size:11px;padding:1px 7px;border-radius:6px;background:var(--sunk);color:var(--muted)}
.icp b{font-weight:600;font-variant-numeric:tabular-nums}
.icp.t-A{background:var(--won-bg);color:var(--good)}.icp.t-B{background:var(--pitched-bg);color:var(--warn)}.icp.t-X{color:var(--fading);text-decoration:line-through}.icp.t-P{background:var(--accent-soft);color:var(--accent)}
.licp h3 .icp{font-size:13px;margin-left:6px;vertical-align:2px}
.icp-parts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:8px 0}
.icp-parts div{display:grid;grid-template-columns:1fr auto;gap:2px 8px;font-size:13px}
.icp-parts b i{font-style:normal;color:var(--muted);font-weight:400}
.icp-parts .bar{grid-column:1/-1;height:5px;border-radius:3px;background:var(--sunk);overflow:hidden}.icp-parts .bar i{display:block;height:100%;background:var(--accent)}
.icp-why{list-style:none;padding:0;margin:6px 0;display:grid;gap:4px;font-size:13.5px}
.icp-why b{display:inline-block;min-width:30px;color:var(--good)}.icp-why .neg b{color:var(--bad)}
.ev{font-size:10.5px;padding:1px 6px;border-radius:999px;margin-left:4px;white-space:nowrap}.ev-strong{background:var(--won-bg);color:var(--good)}.ev-some{background:var(--sunk);color:var(--muted)}.ev-guess{border:1px dashed var(--line);color:var(--muted)}
.icp-rep{margin:0 0 8px;font-size:13px}.icp-rep summary{cursor:pointer;color:var(--muted)}.icp-rep p{margin:4px 0 0}
.trg{display:inline-block;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;background:var(--sunk);color:var(--muted);white-space:nowrap}
.trg.k-hand,.trg.k-storm,.trg.k-newloc,.trg.k-hiring,.trg.k-agencygone{background:var(--accent);color:var(--accent-ink)}
.trg.k-complaint,.trg.k-down,.trg.k-agency{background:var(--pitched-bg);color:var(--warn)}
.trg.k-new,.trg.k-competitor,.trg.k-rankdrop,.trg.k-owner,.trg.k-stackdrop,.trg.k-stackadd{background:var(--accent-soft);color:var(--accent)}
.trg-list{list-style:none;padding:0;margin:6px 0;display:grid;gap:6px;font-size:13.5px}.trg-what{display:block;color:var(--ink);margin-top:2px}
.fu-group.act h3{color:var(--accent)}
.fu-group.asked h3{color:var(--accent)}.ask-row{border-top:1px solid var(--line);padding:10px 0}.ask-row p{margin:0 0 4px}.ask-text{white-space:pre-wrap}.ask-reply{background:var(--soft,rgba(0,0,0,.04));border-left:3px solid var(--accent);border-radius:8px;padding:8px 10px;margin:6px 0 8px}.ask-reply p{margin:4px 0 0}
.edot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:1px;background:var(--line)}
.edot.e-good{background:var(--good)}.edot.e-shared{background:var(--warn)}.edot.e-risky{background:var(--warn);opacity:.55}.edot.e-bad{background:var(--bad)}
/* Column headings: the name sorts, the funnel opens an Is / Is not menu */
.lh{display:flex;align-items:center;gap:1px;min-width:0}
.lh-sort,.lh-f{background:none;border:0;border-radius:7px;cursor:pointer;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;padding:8px 5px;margin-left:-5px}
.lh-sort{text-align:left;min-width:0;white-space:nowrap}.lh-sort i{font-style:normal;margin-left:4px;color:var(--accent)}
.lh-sort:hover,.lh-f:hover,.lh-f[aria-expanded="true"]{background:var(--line);color:var(--ink)}
.lh-sort.on{color:var(--accent)}
.lh-f{display:inline-flex;align-items:center;gap:3px;margin-left:0;padding:5px 4px;flex:none}
.lh-f svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;opacity:.6}
.lh.picked .lh-f{background:var(--accent);color:var(--accent-ink)}.lh.picked .lh-f svg{fill:currentColor;opacity:1}
.lh.picked.not .lh-f{background:var(--bad)}
.lh-f b{font-size:11px;letter-spacing:0}
/* Resizing and moving columns (leadcols.js): the right edge of a heading resizes, dragging a heading moves it */
.lh-rs{position:absolute;top:0;right:-5px;width:10px;height:100%;cursor:col-resize;z-index:4;touch-action:none}
.lh-rs::after{content:"";position:absolute;top:28%;bottom:28%;left:4px;width:1px;background:var(--line)}
.lh-rs:hover::after,body.col-resizing .lh-rs:hover::after{top:0;bottom:0;width:3px;left:3px;background:var(--accent)}
body.col-resizing,body.col-resizing *{cursor:col-resize!important;user-select:none}
body.col-dragging,body.col-dragging *{cursor:grabbing!important;user-select:none}
.ltable thead th.col-moving{background:var(--accent-soft);color:var(--accent)}
.col-drop{position:fixed;width:3px;border-radius:2px;background:var(--accent);z-index:40;pointer-events:none}
.cols-pop .cp-reset{width:100%;margin-bottom:6px}
@media (max-width:760px){.lh-rs{display:none}}
.colpop{position:fixed;z-index:30;width:270px;max-width:calc(100vw - 32px);background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:10px;color:var(--ink);font:400 14px/1.35 var(--f-body);letter-spacing:0;text-transform:none;white-space:normal;text-align:left}
.cp-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 6px;font-weight:700;font-size:13px}
.cp-mode{margin-left:0}.cp-mode button{padding:5px 14px;font-size:13px}
.cp-say{margin:0 4px 4px;font-size:12.5px}
.cp-list{max-height:300px;overflow-y:auto;margin:0 -4px 8px}
.cp-top .tbtn{color:var(--accent);font-size:13px;font-weight:600}
.colpop label{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:8px;cursor:pointer}
.colpop label:hover{background:var(--accent-soft)}
.colpop input{width:16px;height:16px;margin:0;accent-color:var(--accent);flex:none}
.colpop label span:first-of-type{flex:1;min-width:0}.colpop .n{color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}
.colpop .btn{width:100%}
/* Which columns show */
.cols-at{position:relative}
.cols-pop{position:absolute;top:calc(100% + 4px);right:0;width:220px}
/* The active column filters, in words */
.fchips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}.fchips:empty{display:none}
.fchip{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:4px 10px;font:600 12.5px/1.2 var(--f-body);cursor:pointer}
.fchip.not{border-color:var(--bad);background:var(--panel);color:var(--bad)}
.fchip span{margin-left:4px;font-size:14px}
#leadGrid .more{padding:10px;text-align:center}
@media (max-width:760px){
  .lwrap{max-height:none}
  .ltable .c-name{max-width:150px}
  .colpop{left:16px;right:16px;top:auto;bottom:16px;width:auto;max-width:none}
  .cols-pop{position:fixed;left:16px;right:16px;top:auto;bottom:16px;width:auto}
  .cp-list{max-height:50vh}
}
/* On a phone each lead is one compact item in a single list (leadCard in app.js): plain text with dots between,
   no pills but Fit. The column headings become a sideways strip of sort and filter buttons. */
.ltable .c-card{display:none}
@media (max-width:760px){
  #leadGrid .lwrap{overflow:visible;border:0;background:none;border-radius:0}
  #leadGrid .ltable,#leadGrid .ltable thead,#leadGrid .ltable tbody{display:block}
  #leadGrid .ltable thead tr{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px 8px}
  #leadGrid .ltable thead tr::-webkit-scrollbar{display:none}
  #leadGrid .ltable thead th{position:static;flex:none;padding:0 3px 0 8px;border:1px solid var(--line);border-radius:999px;background:var(--panel);max-width:none;font-size:10.5px}
  #leadGrid .ltable thead th:has(.lh.picked),#leadGrid .ltable thead th:has(.lh-sort.on){border-color:var(--accent)}
  #leadGrid .ltable .lh-sort{padding:7px 3px;margin-left:0}
  #leadGrid .ltable .lh-f{padding:5px}
  #leadGrid .ltable tbody{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
  #leadGrid .ltable tbody tr{display:block}
  #leadGrid .ltable tbody tr + tr{border-top:1px solid var(--line)}
  #leadGrid .ltable tbody tr:active{background:var(--accent-soft)}
  #leadGrid .ltable tbody tr:hover td{background:none}
  #leadGrid .ltable tbody td{display:none}
  #leadGrid .ltable tbody td.c-card{display:block;max-width:none;padding:8px 12px;border:0;white-space:normal;overflow:visible}
  .lk-top{display:flex;align-items:flex-start;gap:8px}
  .lk-top .ln{flex:1 1 auto;min-width:0;font-size:15px;white-space:normal;overflow-wrap:anywhere;line-height:1.3}
  .lk-top .icp{flex:none;font-size:11px;padding:1px 7px;margin-top:1px}
  .lk-status,.lk-where,.lk-facts{margin:2px 0 0;font-size:12.5px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}
  .lk-status{color:var(--ink)}
  .lk-sep{color:var(--line);font-weight:400}
  .lk-n{color:var(--muted);font-weight:400}
  .lk-ink{color:var(--ink)}.lk-ph,.lk-nw,.lk-fx,.lk-trg{white-space:nowrap}
  .lk-bad{color:var(--bad);font-weight:600;white-space:nowrap}
  .lk-st{font-weight:600;color:var(--muted);white-space:nowrap}
  .lk-st::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;margin-right:5px;vertical-align:1px}
  .lk-st.s-contacted{color:var(--accent)}.lk-st.s-meeting{color:var(--meeting-ink)}.lk-st.s-pitched{color:var(--warn)}.lk-st.s-won{color:var(--good)}.lk-st.s-lost{color:var(--fading)}
  .lk-trg{font-weight:600;color:var(--accent)}.lk-trg.k-complaint,.lk-trg.k-down{color:var(--warn)}
  .lk-trg.k-hand,.lk-trg.k-storm,.lk-trg.k-newloc{font-weight:800}
  .lk-status .over{color:var(--bad)}.lk-status .d{color:var(--ink)}
  .lk-fx{font-weight:600}.lk-fx.fx-many{color:var(--bad)}.lk-fx.fx-some{color:var(--warn)}.lk-fx.fx-none{color:var(--good)}
  .lk-facts .rk{font-weight:700}
  #copySheet{display:none}
  #leadGrid .more .btn{width:100%}
}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 10px}
.leadsearch{flex:1 1 260px;min-width:0;border-radius:999px;padding:8px 14px}
.toolbar select{flex:0 1 auto;min-width:0;max-width:100%;border-radius:999px;padding:8px 12px;font-size:14px;font-weight:600;cursor:pointer}
.toolbar select.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
@media (max-width:600px){.toolbar select{flex:1 1 140px}}
.listbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 8px;font-size:13.5px}
.listbar p{margin:0;flex:1 1 240px}
.addlead{border:1px solid var(--line);border-radius:12px;padding:6px 14px;margin:0 0 12px;background:var(--panel)}
.crm-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin:10px 0}
.crm-form label{display:grid;gap:3px;font-size:12px;font-weight:600;color:var(--muted);min-width:0}
.crm-form input,.crm-form select,.crm-form textarea,.fu-edit input{font-size:14.5px;min-width:0;width:100%}
.crm-form .wide{grid-column:1/-1}
.formrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* ===== Field log ===== */
.req-form{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.req-form input{flex:1 1 220px;min-width:0}
.req-form input.grow{flex:1 1 320px}
.req-form textarea{flex:1 1 100%;min-height:56px}
.tlist{display:grid;gap:6px}
.titem{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;align-items:baseline;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 12px;text-align:left;min-width:0;overflow-wrap:anywhere}
.titem .k{font:600 10.5px/1.4 var(--f-body);letter-spacing:.07em;text-transform:uppercase;color:var(--accent);min-width:64px}
.titem b{font-size:14px}
.titem span.sub{display:block;font-size:12.5px;color:var(--muted)}
.tbtn{background:none;border:0;padding:0;font:inherit;font-weight:inherit;color:inherit;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}
.tbtn:hover{text-decoration-color:var(--accent);color:var(--accent)}

/* ===== One lead (the panel that slides over) ===== */
.scrim{position:fixed;inset:0;background:rgba(10,16,13,.45);z-index:20}
.sheet{position:fixed;z-index:21;top:0;right:0;bottom:0;width:min(var(--sheet-w,760px),100%);container-type:inline-size;background:var(--paper);overflow-y:auto;overflow-x:hidden;box-shadow:var(--shadow);padding:0 22px calc(env(safe-area-inset-bottom,0px) + 40px)}
.sheet-nav{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;background:var(--paper);padding:calc(env(safe-area-inset-top,0px) + 14px) 0 10px;margin-bottom:10px;border-bottom:1px solid var(--line)}
.sheet-close{background:var(--panel);border:1px solid var(--line);border-radius:999px;width:38px;height:38px;cursor:pointer;font-size:18px;flex:none;margin-left:auto}
.kind-lbl{font:600 11.5px/1 var(--f-body);letter-spacing:.09em;text-transform:uppercase;color:var(--accent)}
.d-kind{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.d-title{font:800 clamp(28px,4.6vw,40px)/1.05 var(--f-display);letter-spacing:-.02em;margin:10px 0 8px;overflow-wrap:anywhere}
.d-one{font-size:16.5px;margin:0 0 14px}
.d-deal{margin:0 0 10px}
.react-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px;margin:14px 0}
.rbtn{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:7px 14px;font-weight:600;font-size:13.5px;cursor:pointer}
.rbtn[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.d-sec{padding-block:18px;border-top:1px solid var(--line)}
.d-sec.reach{border-top:0;padding-block:0 16px}.d-sec.reach .eyebrow{margin:0 0 8px}.d-sec.reach .chip{font-size:13.5px;padding:6px 12px}
.d-sec h3{font-size:19px;margin-bottom:10px}
.d-sec h3 span{font-size:12px;font-weight:500}
.d-sec p{margin:0 0 8px;max-width:68ch;overflow-wrap:anywhere}
.d-sec summary{cursor:pointer;font-weight:700}
.d-sec .hint{font-size:12.5px;margin:6px 0 0}
.d-sec .now{margin:0 0 8px}.d-sec .now b.over{color:var(--bad)}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-bottom:10px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:0}
.kpi b{display:block;font:700 22px/1.1 var(--f-mono);overflow-wrap:anywhere}
.kpi b.long{font-size:14px;line-height:1.3}
.kpi span{font-size:12px;color:var(--muted)}
.fu-edit{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.fu-edit input[type=text]{flex:1 1 220px;width:auto}.fu-edit input[type=date]{flex:0 1 170px;width:auto}
.fu-edit + .chips{margin-top:8px}
.tkinds{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.pitchbox{background:var(--accent-soft);border-radius:12px;padding:12px 14px;margin:0 0 12px;font-size:15px;overflow-wrap:anywhere}
.draft{white-space:pre-wrap;font:inherit;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;margin:0;overflow-wrap:anywhere}
.play h4{font:600 11.5px/1 var(--f-body);letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin:16px 0 8px}
.play h4:first-child{margin-top:0}
.play ul{margin:0 0 8px;padding-left:18px;display:grid;gap:6px;max-width:68ch}
.play li{overflow-wrap:anywhere}
.play .say{background:var(--accent-soft);border-radius:12px;padding:10px 14px;margin:0 0 6px;font-size:15px}
.play .draft{margin-bottom:8px}
.play .hint{margin:6px 0 0}
.own{margin-top:12px}
.own textarea{display:block;width:100%;margin:10px 0 8px;font-size:14.5px;line-height:1.5}
.ev{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ev li{font-size:13.5px;line-height:1.45;overflow-wrap:anywhere}

.ask{background:var(--accent-soft);border:1px solid var(--accent);border-radius:12px;padding:12px 14px;margin:0 0 14px;display:grid;gap:8px}
.ask p{margin:0;font-size:15.5px;overflow-wrap:anywhere}
.ask .tkinds{margin:0}
.ask textarea{width:100%;font-size:14.5px}
.ask-next{font-size:13.5px;font-weight:600;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ask-next select{font-size:14px;padding:5px 8px}

/* ===== The services menu, printed and saved as PDF from the print window ===== */
#printArea{display:none}
@media print{
  @page{margin:14mm 14mm 16mm}
  body{background:#fff}
  body > *:not(#printArea){display:none !important}
  #printArea{display:block;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
.m-doc{color:#1F1B16;font:10.5pt/1.45 var(--f-body)}
.m-head{display:flex;align-items:center;gap:14px;border-bottom:2px solid #1F1B16;padding-bottom:10px;margin-bottom:12px}
.m-logo{display:flex;align-items:flex-end;gap:8px;height:40px}
.m-logo img{height:40px;width:auto}.m-logo svg{height:30px;width:auto;fill:#5B2A86}.m-logo span{display:none}
.m-kicker{margin:0;font:700 15pt/1.1 var(--f-display)}
.m-tag{margin:2px 0 0;color:#6A6155}
.m-intro{margin:0 0 6px;max-width:80ch}
.m-doc h2{font:700 12.5pt/1.2 var(--f-display);margin:14px 0 2px;color:#5B2A86}
.m-note{margin:0 0 8px;color:#6A6155;font-size:9.5pt}
.m-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.m-grid.m-three{grid-template-columns:1fr 1fr 1fr}
.m-item{border:1px solid #E2D9C5;border-radius:8px;padding:8px 10px;break-inside:avoid}
.m-item h3{font:700 12pt/1.15 var(--f-display);margin:0}
.m-line{margin:2px 0 0}
.m-price{margin:4px 0;font-weight:600;font-size:10pt;color:#5B2A86}
.m-doc ul{margin:2px 0 0;padding-left:16px}
.m-doc li{margin:0 0 1px}
.m-item li{font-size:9.5pt}
.m-foot{margin-top:12px;padding-top:8px;border-top:1px solid #E2D9C5;color:#6A6155;font-size:9pt}

/* ===== Services ===== */
.svc-h{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 10px}
.svc-h:first-child{margin-top:0}
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:14px;align-items:start}
.svc{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.svc-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.svc h3{font-size:20px;font-weight:700;line-height:1.15}
.svc p{margin:0}
.svc-line{font-size:15px}
.svc-price{font-weight:600;font-size:14px;color:var(--accent)}
.svc h4{font:600 11.5px/1 var(--f-body);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:8px 0 0}
.svc ul{margin:0;padding-left:18px;font-size:14px;display:grid;gap:3px}
.svc .hint{font-size:12.5px;margin-top:4px}
.svc .btn{align-self:flex-start;margin-top:auto}
.sop{border-top:1px dashed var(--line);padding-top:8px}
.sop summary{cursor:pointer;font-weight:600;font-size:14px;color:var(--accent)}
.sop p{font-size:13.5px;margin:8px 0 0}
.sop ol{margin:0;padding-left:20px;font-size:14px;display:grid;gap:4px}
.sop-from{color:var(--muted)}
.sop.every{margin:0 0 6px;padding:12px 16px}
.sop.every summary{font-size:15px}
.every-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:4px 18px}
.sugg{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:8px}
.sugg li{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:3px;font-size:14.5px;overflow-wrap:anywhere}
.sugg-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sugg b{font:700 16px/1.2 var(--f-display)}
.sugg .muted{font-size:13px}
.sugg .pick{margin-left:auto;color:var(--accent);font-weight:600;font-size:13px;text-decoration-color:var(--accent)}

.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);transform:translateX(-50%);z-index:40;background:var(--ink);color:var(--paper);border-radius:999px;padding:9px 16px;font-size:14px;font-weight:600;box-shadow:var(--shadow);max-width:calc(100% - 32px);text-align:center}
.toast.bad{background:var(--bad);color:var(--panel)}
.toast button{background:none;border:0;padding:0 0 0 6px;font:inherit;font-weight:700;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.btn.danger{color:var(--bad);border-color:var(--bad)}
@media (max-width:520px){.wrap{padding-inline:16px}.sheet{padding-inline:16px}}
/* new messages from the website form, at the top of Follow up */
.fu-group.inq h3{color:var(--accent)}
.inq-row{display:grid;gap:4px;background:var(--panel);border:1px solid var(--accent);border-radius:10px;padding:10px 12px;margin:0 0 6px}
.inq-row .inq-top{display:flex;justify-content:space-between;gap:10px}
.inq-about{display:flex;flex-wrap:wrap;gap:4px}
.inq-about i{font-style:normal;font-size:12px;font-weight:600;color:var(--accent);background:#fff;border:1px solid var(--line, #E6E0EE);border-radius:6px;padding:2px 7px}
.inq-chat summary{cursor:pointer;font-weight:600;font-size:13px;color:var(--accent)}
.inq-chat .inq-turns{display:grid;gap:4px;margin-top:6px;max-height:260px;overflow:auto}
.inq-row .d{font-weight:700;font-size:12.5px;white-space:nowrap;color:var(--muted)}
.inq-row span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.inq-row p{margin:2px 0 0;font-size:14px;overflow-wrap:anywhere;white-space:pre-line}
.inq-act{display:flex;gap:8px;margin-top:6px}


/* ---------- outreach ---------- */
.q-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 14px}
.q-sum div{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:0}
.q-sum b{display:block;font-size:20px}.q-sum span{font-size:12.5px;color:var(--muted)}
.q-sum .q-jump{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:0;text-align:left;font:inherit;color:inherit;cursor:pointer}
.q-sum .q-jump:hover{border-color:var(--accent)}.q-sum .q-jump span{color:var(--accent)}
.q-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:0 0 12px;min-width:0}
.q-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.q-top b{font-family:var(--f-display);font-size:18px}
.q-top .tbtn{margin-left:auto}
.q-meta{margin:2px 0 10px;font-size:13.5px;overflow-wrap:anywhere}
.q-src{align-items:center;margin-bottom:10px}
.q-field{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:10px}
.q-field input,.q-field textarea{display:block;width:100%;margin-top:4px;color:var(--ink);font-weight:400;font-size:15px}
.q-field textarea{line-height:1.5;resize:vertical}
.q-probs{margin:0 0 10px;padding-left:20px;color:var(--bad);font-size:13.5px}
.q-act{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.q-read{display:inline-flex;align-items:center;gap:6px;font-size:14px;margin-right:auto;cursor:pointer}
.q-more{margin:0 0 16px}
.titem.ob{align-items:start;grid-template-columns:auto minmax(0,1fr) auto}.titem.ob details{margin-top:4px}.titem.ob summary{cursor:pointer;color:var(--accent)}
.titem.ob .draft{margin-top:6px;font-size:14px}
.titem.ob .ob-when{display:block;margin-top:2px;font-size:12.5px;font-weight:600;color:var(--accent)}
details.fu-group>summary{cursor:pointer;font:600 13px/1.4 var(--f-body);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:6px}
.tpls>summary{cursor:pointer;font-family:var(--f-display);font-weight:700;font-size:18px}
.tpl{padding-top:14px}.tpl h4{margin:0 0 2px}
@media (max-width:520px){.q-sum{gap:6px}.q-sum div,.q-sum .q-jump{padding:8px 10px}.q-sum b{font-size:18px}.q-sum span{font-size:11.5px;line-height:1.3;display:block}.q-card{padding:12px}}
.q-words{margin:-4px 0 10px}.q-words .warn{color:var(--warn);font-weight:600}
.q-cites{background:var(--accent-soft);border-radius:12px;padding:8px 12px;margin:0 0 10px;font-size:14px;overflow-wrap:anywhere}.q-cites .cited{margin:6px 0 8px;line-height:1.6}.q-cites .cite{font-size:11px;line-height:0;margin-left:1px}.q-cites .cite a{text-decoration:none}.q-cites .srcs{margin:0 0 6px;padding-left:22px;font-size:13px}.q-cites .srcs li{margin:0 0 4px}.q-cites .cites-ok{color:var(--good);font-size:13px;margin:4px 0}.q-cites .no-src{color:var(--warn);font-size:13px;margin:4px 0}.q-cites summary{cursor:pointer;color:var(--accent);font-size:13px}.q-cites > summary{font-weight:600}.q-cites > summary span{font-weight:400}.q-cites details summary{margin-top:6px}.q-cites ul{margin:6px 0 0;padding-left:18px}
.q-hook{background:var(--accent-soft);border-radius:12px;padding:10px 12px;margin:0 0 10px;font-size:14px;overflow-wrap:anywhere}.q-hook p{margin:4px 0 0}.q-hook summary{cursor:pointer;color:var(--accent);font-size:13px;margin-top:6px}.q-hook ul{margin:6px 0 0;padding-left:18px}
.q-send{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;background:var(--sunk);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:0 0 14px}
.q-send.on{background:var(--won-bg);border-color:var(--good)}
.q-send b{display:block}.q-send span{font-size:13.5px;color:var(--muted)}
.q-check{margin:8px 0;padding:8px 12px;border:1px solid var(--warn);border-radius:10px;background:var(--sunk)}.q-check ul{margin:4px 0 0;padding-left:18px;font-size:13.5px}
.pm-list{margin:6px 0;padding-left:18px;display:grid;gap:4px;font-size:13.5px}
.q-inboxes{list-style:none;margin:8px 0 4px;padding:0;display:grid;gap:4px}.q-inboxes li{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline}.q-inboxes b{display:inline;font-size:13.5px}.q-inboxes li.ib-wait span{color:var(--bad)}
.q-send-act{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.q-send-act label{font-size:14px;color:var(--muted)}.q-send-act input{width:64px;padding:6px 8px}
.rep{overflow-x:auto}.rep table{border-collapse:collapse;width:100%;font-size:14px;min-width:420px}.rep th,.rep td{text-align:right;padding:7px 10px;border-bottom:1px solid var(--line)}.rep th:first-child,.rep td:first-child{text-align:left}.rep th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.cvlist{display:grid;gap:8px}
.cv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;background:var(--panel);border:1px solid var(--line);border-left-width:4px;border-radius:10px;padding:9px 12px;min-width:0}
.cv .k{font:600 10.5px/1.6 var(--f-body);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);min-width:64px}
.cv b{font-size:14px}.cv p{margin:0;font-size:14.5px;overflow-wrap:anywhere}.cv .draft{margin-top:6px;font-size:14px;padding:10px 12px}
.cv.out{border-left-color:var(--accent)}.cv.in{border-left-color:var(--good)}.cv.wait{border-left-color:var(--warn)}.cv.bad{border-left-color:var(--bad)}
.cv-reply{margin:0 0 14px}.cv-reply label{display:block;font-weight:600;font-size:14px;margin-bottom:6px}.cv-reply textarea{width:100%;margin-bottom:8px}

/* ===== Clients: each paying customer's setup ===== */
.cl-list{display:grid;gap:6px}
.cl-row{display:grid;grid-template-columns:minmax(0,1.3fr) 110px 92px minmax(0,1.7fr) 124px;gap:6px 14px;align-items:center;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px;cursor:pointer;color:var(--ink);font:inherit}
.cl-row:hover{border-color:var(--accent)}
.cl-row .l-name{display:grid;min-width:0}.cl-row .why{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.cl-row .chips{min-width:0;flex-wrap:nowrap;overflow:hidden}.cl-row .need{white-space:nowrap;flex:none}.cl-row > .pst{justify-self:end}
.cl-bar{display:block;height:8px;border-radius:999px;background:var(--sunk);overflow:hidden}.cl-bar i{display:block;height:100%;background:var(--accent);border-radius:999px}
.cl-n{font-size:12.5px;color:var(--muted);white-space:nowrap}.cl-n.ok{color:var(--good);font-weight:700}
.pst.cl-free{background:var(--sunk);color:var(--muted)}.pst.cl-start{background:var(--pitched-bg);color:var(--warn)}.pst.cl-setup{background:var(--accent-soft);color:var(--accent)}.pst.cl-live{background:var(--won-bg);color:var(--good)}.pst.cl-leaving,.pst.cl-left{background:var(--sunk);color:var(--muted)}
@media (max-width:760px){.cl-row{grid-template-columns:minmax(0,1fr) auto}.cl-row .cl-bar{grid-column:1/-1;order:3}.cl-row .chips{grid-column:1/-1;order:4;flex-wrap:wrap}.cl-row .cl-n{order:2}}
.tasks{border:1px solid var(--line);border-radius:12px;background:var(--panel);margin:0 0 8px;padding:0 14px}
.tasks summary{display:flex;justify-content:space-between;gap:10px;padding:11px 0;cursor:pointer;font-weight:700}
.tasks[open] summary{border-bottom:1px solid var(--line);margin-bottom:6px}
.tasks .hint{margin:0 0 6px}
.task{display:flex;gap:10px;align-items:flex-start;padding:7px 0;font-size:14.5px;line-height:1.45;cursor:pointer}
.task + .task{border-top:1px dashed var(--line)}
.task input{flex:none;width:18px;height:18px;margin-top:2px;accent-color:var(--accent)}
.task input:checked + span{color:var(--muted)}
.crm-form label.missing{color:var(--warn)}.crm-form label.missing textarea{border-color:#E7C77D}
.crm-form label .hint{font-weight:400}
.accts{display:grid;gap:8px}
.acct{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:6px 12px;align-items:start;background:var(--panel);border:1px solid var(--line);border-left:4px solid #E7C77D;border-radius:10px;padding:10px 12px}
.acct.done{border-left-color:var(--good)}.acct.na{border-left-color:var(--line);opacity:.75}.acct.asked{border-left-color:var(--accent)}
.acct p{margin:2px 0 0}.acct input{grid-column:1/-1;font-size:14px}.acct > .hint{grid-column:1/-1;margin:0}
@media (max-width:560px){.acct{grid-template-columns:1fr}}
.items-pick{border:1px solid var(--line);border-radius:10px;padding:8px 12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:4px 12px;margin:0}
.items-pick legend{font-size:12px;font-weight:600;color:var(--muted);padding:0 4px}
.pick{display:flex !important;gap:8px;align-items:center;font-size:14px !important;font-weight:500 !important;color:var(--ink) !important;cursor:pointer}
.pick input{width:auto !important;accent-color:var(--accent)}
.cl-begin{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:0 0 12px}

/* ===== The client's "start here" page: one topic per screen ===== */
.start .wrap{max-width:720px}
.sw-screen{display:grid;gap:12px;margin:18px 0 0}
.sw-screen h1{font-size:clamp(26px,4.5vw,34px);line-height:1.15;margin:0;outline:none}
.sw-screen .eyebrow{margin:0}
.sw-lede{font-size:17.5px;margin:0;max-width:60ch}
.sw-for{margin:-4px 0 0;font-size:14px;color:var(--accent);font-weight:600}
.sw-list{margin:4px 0;padding-left:22px;display:grid;gap:8px}
.sw-list li span{display:block;color:var(--muted);font-size:14.5px}
.sw-nav{display:flex;gap:6px;overflow-x:auto;padding:14px 0 4px;scrollbar-width:none}
.sw-nav::-webkit-scrollbar{display:none}
.sw-dot{flex:none;display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:4px 10px 4px 4px;font:600 13px/1 var(--f-body);cursor:pointer}
.sw-dot span{display:grid;place-items:center;width:22px;height:22px;border-radius:999px;background:var(--sunk);color:var(--ink);font-size:12px}
.sw-dot em{font-style:normal;white-space:nowrap}
.sw-dot:not(.on) em{display:none}
.sw-dot.on{border-color:var(--accent);color:var(--ink)}.sw-dot.on span{background:var(--accent);color:var(--accent-ink)}
.sw-dot.done span{background:var(--won-bg);color:var(--good)}
.sw-pick{display:flex;gap:6px;flex-wrap:wrap;align-self:center;justify-self:end}
.acct.yes{border-left-color:var(--good)}.acct.none{border-left-color:var(--line)}.acct.call{border-left-color:var(--accent)}
.sw-bar{position:sticky;bottom:0;display:flex;align-items:center;gap:6px 14px;flex-wrap:nowrap;background:var(--paper);padding:14px 0 calc(env(safe-area-inset-bottom,0px) + 14px);margin-top:8px;border-top:1px solid var(--line)}
.sw-gap{flex:1}
.sw-open{display:grid;gap:6px}
.sw-row{display:flex;justify-content:space-between;gap:10px;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font:inherit;color:var(--ink);cursor:pointer}
.sw-row span{color:var(--accent);font-weight:600;white-space:nowrap}
.st-links{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13.5px}.st-links a{color:var(--accent)}
@media (max-width:560px){.sw-pick{justify-self:start}}
/* A step's how-to guide, under the step on a client's checklist and on the Services tab */
.task-wrap + .task-wrap{border-top:1px dashed var(--line)}
.task-wrap .task + .task{border-top:0}
.guide{margin:-2px 0 8px 28px;font-size:13.5px}
.guide summary{display:inline-block;cursor:pointer;color:var(--accent);font-weight:600;font-size:12.5px;list-style:none;padding:1px 0}
.guide summary::-webkit-details-marker{display:none}
.guide summary::before{content:"▸ "}.guide[open] summary::before{content:"▾ "}
.guide-body{background:var(--accent-soft);border-radius:10px;padding:8px 12px;margin-top:4px}
.guide-body h5{font-size:13px;margin:6px 0 2px}.guide-body h5:first-child{margin-top:0}
.guide-body ul{margin:2px 0 6px;padding-left:18px}.guide-body li{margin:2px 0}
.guide-body .links{display:flex;flex-wrap:wrap;gap:4px 12px}.guide-body a{color:var(--accent);font-weight:600}
.sop li .guide{margin-left:0}
.crm-form label .theirs{display:block;font-weight:500;color:var(--accent);background:var(--accent-soft);border-radius:8px;padding:4px 8px;font-size:13px}
.acct .guide{margin-left:0}
.crm-form .topic-h{margin:10px 0 0;font:700 12px/1.2 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
/* The client's page after setup: cards for the kickoff call, change requests and their plan; uploads under a question */
.sw-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 18px;display:grid;gap:8px;justify-items:start}
.sw-card h2{font-size:19px;margin:0}.sw-card p{margin:0}.sw-card .crm-form{width:100%;margin:4px 0 0}
.sw-reqs{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px;width:100%}
.sw-reqs li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;border-top:1px dashed var(--line);padding-top:8px;font-size:15px}
.sw-reqs em{display:block;font-style:normal;color:var(--muted);font-size:14px}
.sw-st{font:700 11px/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}
.sw-reqs li.done .sw-st{background:var(--won-bg);color:var(--good)}
.sw-up{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin:-2px 0 6px}
.sw-upbtn{position:relative;overflow:hidden;cursor:pointer}
.sw-upbtn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.sw-upbtn:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.sw-upmsg{font-size:13.5px}
.sw-dot.home span{background:var(--accent-soft);color:var(--accent)}
/* Client jobs on Follow up and on each client's page */
.fu-row.job{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;cursor:default}
.fu-row.job .job-t{grid-column:1/-1;font-size:14px}
.fu-row.job .job-how{margin-top:4px}.fu-row.job .job-how summary{cursor:pointer;color:var(--accent,#5B2A86);font-size:13px}.fu-row.job .job-how ul{margin:4px 0 0;padding-left:18px;font-size:13px;line-height:1.45}
.fu-row.job .job-a{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.job-open{text-align:left;padding:0}
.fu-group.jobs h3{color:var(--accent)}
.joblist{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.joblist li{display:grid;grid-template-columns:80px minmax(0,1fr);gap:8px;font-size:14.5px}
.joblist .d.over{color:var(--bad)}
.req{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:10px 12px;margin-bottom:8px}
.req.done{opacity:.7}.req p{margin:0 0 4px}
/* Help desk and Conversation on a client's page */
.req.dk.mine{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.req.dk.st-done{opacity:.7}
.req.dk .dk-turn{color:var(--accent);font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.req.dk.st-waiting .dk-st{background:var(--pitched-bg);color:var(--warn)}
.req.dk.st-working .dk-st{background:var(--accent-soft);color:var(--accent)}
.req.dk .dk-th{display:grid;gap:4px;margin:6px 0}
.req.dk .dk-msg{margin:0;padding:6px 10px;border-radius:10px;background:var(--sunk);max-width:92%}
.req.dk .dk-msg.us{justify-self:end;background:var(--accent-soft)}
.req.dk .dk-msg b{font-size:12px;color:var(--muted);margin-right:4px}
.req.dk .dk-places{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:6px 0;font-size:13.5px}
.req.dk .dk-places label{display:inline-flex;gap:5px;align-items:center}
.req.dk .dk-places label.on{color:var(--good)}
.req.dk .dk-sts .btn.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.fu-edit input.dk-min{flex:0 0 7.5em;width:7.5em}
.cv-list{display:grid;gap:6px;max-height:420px;overflow-y:auto;padding:4px 2px;margin-bottom:8px}
.cv-m{max-width:88%;padding:8px 11px;border-radius:12px;background:var(--accent-soft);justify-self:end}
.cv-m.in{justify-self:start;background:var(--sunk)}
.cv-m.in.new{box-shadow:inset 3px 0 0 var(--accent)}
.cv-m p{margin:2px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.cv-meta{display:block;font-size:12px;color:var(--muted)}
.cv-m>b{display:block;margin-top:2px}
.cv-err{color:var(--bad);font-size:13px}
.cv-new{display:grid;gap:8px;margin-top:6px}
.cv-row{display:flex;gap:8px;flex-wrap:wrap}.cv-row input{flex:1 1 220px;min-width:0}
.cv-new textarea{width:100%;min-height:90px}
.vb{margin:0 0 10px}.vb>summary{cursor:pointer;font-weight:600}.vb .cv-row{align-items:center;margin-top:6px}
.call{border-top:1px solid var(--line);padding:8px 0}.call:first-of-type{border-top:0}
.call>summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.call p{margin:6px 0 0;overflow-wrap:anywhere}.call details{margin-top:6px}.call .draft{max-height:320px;overflow-y:auto}
.files{margin:0;padding-left:18px}
.draft-box{margin:10px 0}.draft-box h4{margin:0 0 4px}
.lead-shop{margin-top:10px}
/* Messages sorted by Claude, on Follow up and each client's page */
.tri{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;padding:10px 14px;margin-bottom:8px;display:grid;gap:6px}
.tri.now{border-left-color:var(--bad)}.tri.week{border-left-color:var(--line)}.tri.done{opacity:.65}
.tri-top{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.tri-top .d{margin-left:auto;font-size:12.5px;color:var(--muted)}
.tri-top .tbtn{padding:0}
.chip.urgent{background:var(--bad);color:var(--panel)}
.tri-sum{margin:0;font-size:15px}
.tri-steps{margin:0;padding-left:20px;font-size:14.5px;display:grid;gap:2px}
.tri-more summary{cursor:pointer;font-size:13px;color:var(--accent);font-weight:600}
.tri-more h4{margin:8px 0 4px}
.fu-group.tri-group h3{color:var(--accent)}
/* The client's progress: each thing they bought, Reviewing → Being built → Testing → Live */
.sw-prog{gap:12px}
.pg{width:100%;display:grid;gap:6px;padding-top:10px;border-top:1px dashed var(--line)}
.pg:first-of-type{border-top:0;padding-top:0}
.pg-top{display:flex;justify-content:space-between;gap:10px;align-items:center}
.pg-st{font:700 11px/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:var(--sunk);color:var(--muted)}
.pg-st.building{background:var(--accent-soft);color:var(--accent)}.pg-st.testing{background:var(--pitched-bg);color:var(--warn)}.pg-st.live{background:var(--won-bg);color:var(--good)}
.pg-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;font-size:12px;color:var(--muted)}
.pg-steps li{border-top:4px solid var(--line);padding-top:4px}
.pg-steps li.done{border-top-color:var(--good);color:var(--ink)}.pg-steps li.now{border-top-color:var(--accent);color:var(--ink);font-weight:700}
.pg-act{display:flex;gap:8px;flex-wrap:wrap}
.tests{margin:10px 0 0;padding-left:18px;display:grid;gap:4px}

/* Health tab */
.crm-money .warn{color:var(--warn)}.crm-money .bad{color:var(--bad)}
.hl-h{font-size:17px;font-weight:700;margin:22px 0 8px;display:flex;align-items:center;gap:10px}
.hl-h .tbtn{font-size:13px;font-weight:600;color:var(--accent)}
.hd{display:inline-block;width:11px;height:11px;border-radius:50%;flex:none;background:var(--line)}
.hd.t-good{background:var(--good)}.hd.t-warn{background:#E0A526}.hd.t-mine{background:var(--accent)}.hd.t-wait{background:var(--panel);border:2px solid var(--fading)}.hd.t-na{background:var(--sunk);border:1px dashed var(--fading)}
.hl-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--muted);margin-bottom:8px}.hl-legend span{display:inline-flex;align-items:center;gap:5px}
.hl-list,.ha-list{display:grid;gap:6px}
.hl-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr);gap:8px 16px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.hl-row.quiet{border-left:4px solid var(--bad)}
.hl-name{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;min-width:0}.hl-name b{color:var(--ink);font-size:15px}
.hl-cell{display:grid;gap:4px;min-width:0}.hl-k{font-size:11.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.hl-n{font-size:12.5px;color:var(--muted)}.hl-n.warn{color:var(--warn);font-weight:600}.hl-n.bad{color:var(--bad);font-weight:600}
.hl-dots{display:flex;flex-wrap:wrap;gap:4px}
.ha-row{display:grid;grid-template-columns:minmax(0,1.3fr) 110px 56px minmax(0,2.4fr);gap:6px 14px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:9px 14px}
.ha-name{min-width:0;font-size:14px}.ha-who{display:flex;flex-wrap:wrap;gap:5px}.ha-who .chip{display:inline-flex;align-items:center;gap:5px;cursor:pointer;font:inherit;font-size:12.5px}
.hs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.hs-card{display:grid;gap:5px;align-content:start;background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--line);border-radius:12px;padding:11px 13px;font-size:13.5px}
.hs-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.hs-top b{font-size:15px}
.hs-st{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--sunk);color:var(--muted);white-space:nowrap}
.hs-card.t-good{border-top-color:var(--good)}.hs-card.t-good .hs-st{background:var(--won-bg);color:var(--good)}
.hs-card.t-warn{border-top-color:#E0A526}.hs-card.t-warn .hs-st{background:var(--pitched-bg);color:var(--warn)}
.hs-card.t-bad{border-top-color:var(--bad)}.hs-card.t-bad .hs-st{background:var(--bad);color:var(--panel)}
/* Meters (health.js usageChecks): how much of each service's allowance is used */
.hs-meter{display:grid;gap:3px;margin-top:2px}.hs-ml{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}.hs-ml b{color:var(--ink);font-weight:600}
.hs-bar{height:6px;border-radius:999px;background:var(--sunk);overflow:hidden}.hs-bar i{display:block;height:100%;border-radius:999px;background:var(--good)}
.hs-meter.m-warn .hs-bar i{background:#E0A526}.hs-meter.m-bad .hs-bar i{background:var(--bad)}
.hs-card.t-off .hs-st{background:var(--accent-soft);color:var(--accent)}.hs-card.t-plan{opacity:.75;border-style:dashed}
.hs-d{color:var(--ink)}.hs-fix{background:var(--sunk);border-radius:8px;padding:6px 8px;font-size:12.5px}
/* Health, Connections view: a stat strip, one status line, then one table of every app, banded by group */
.hc-sum{display:grid;gap:8px;margin:0 0 12px}
.hc-tiles{display:grid;grid-template-columns:minmax(160px,1.4fr) repeat(4,minmax(96px,1fr));background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.hc-tiles>*{box-shadow:-1px 0 0 var(--line),0 -1px 0 var(--line);padding:10px 14px;min-width:0}
.hc-score{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:2px 10px}
.hc-score span:first-child,.hc-tile span{font:600 11px/1.2 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.hc-score b{font-size:20px;font-weight:600}
.hc-meter{grid-column:1/-1;height:4px;border-radius:2px;background:var(--sunk);overflow:hidden}.hc-meter i{display:block;height:100%;background:var(--good)}
.hc-tile{display:flex;flex-direction:column;justify-content:space-between;gap:4px;background:none;border:0;font:inherit;color:var(--ink);cursor:pointer;text-align:left}
.hc-tile span{display:inline-flex;align-items:center;gap:6px}.hc-tile b{font-size:20px;font-weight:600;line-height:1}
.hc-tile:hover{background:var(--paper)}.hc-tile.on{background:var(--accent-soft);box-shadow:-1px 0 0 var(--line),0 -1px 0 var(--line),inset 0 -2px 0 var(--accent)}
.hc-line{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:600;color:var(--good)}
.hc-line.t-warn{color:var(--warn)}.hc-line.t-bad{color:var(--bad)}
.hc-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px}.hc-tools .leadsearch{flex:1 1 260px;margin:0;padding:6px 12px;font-size:13.5px}
.hc-when{font-size:12px;color:var(--muted)}
.hc-table{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:13px}
.hc-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 100px 92px minmax(0,1.6fr);gap:12px;align-items:start;padding:8px 14px;border-top:1px solid var(--line)}
.hc-row:hover:not(.hc-head){background:#FDFBF6}
.hc-head{border-top:0;background:var(--panel);padding-block:7px;font:600 10.5px/1.2 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);box-shadow:0 1px 0 var(--line)}
.hc-group{display:flex;justify-content:space-between;gap:10px;padding:6px 14px;background:var(--sunk);border-top:1px solid var(--line);font:700 11px/1.3 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.hc-group .mono{font-weight:500;letter-spacing:0;text-transform:none;color:var(--muted)}
.hc-head+.hc-group{border-top:0}
.hc-app{display:grid;gap:1px;min-width:0}.hc-app b{font-size:13.5px;font-weight:600}.hc-app span{color:var(--muted);font-size:12px;line-height:1.35}
.hc-links{display:flex;flex-wrap:wrap;gap:2px 10px;margin-top:2px;font-size:11.5px;font-weight:600}.hc-links a{text-decoration:none}.hc-links a:hover{text-decoration:underline}
.hc-cost{display:grid;gap:1px;font-size:12px;color:var(--muted);line-height:1.3}.hc-cost b{font-size:13px;font-weight:600;color:var(--ink)}
.hc-acct{min-width:0}.hc-acct code{display:inline-block;max-width:100%;font:500 11.5px/1.5 var(--f-code);background:var(--sunk);border:1px solid var(--line);border-radius:5px;padding:0 6px;overflow-wrap:break-word}
.hc-st{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;white-space:nowrap;color:var(--muted)}.hc-st .hd{width:8px;height:8px}
.hc-row.t-good .hc-st{color:var(--good)}.hc-row.t-warn .hc-st{color:var(--warn)}.hc-row.t-bad .hc-st{color:var(--bad)}.hc-row.t-off .hc-st{color:var(--accent)}
.hc-row.t-plan{opacity:.65}
.hc-info{display:grid;gap:4px;min-width:0;font-size:12.5px;line-height:1.4}
.hc-info .hs-meter{margin:0}.hc-info .hs-bar{height:4px}
.hc-fix{color:var(--ink);padding-left:8px;border-left:2px solid var(--warn)}.hc-row.t-bad .hc-fix{border-left-color:var(--bad)}.hc-row.t-off .hc-fix{border-left-color:var(--accent)}
.hd.t-bad{background:var(--bad)}.hd.t-off{background:var(--accent-soft);border:1px solid var(--accent)}.hd.t-plan{background:var(--panel);border:1px dashed var(--fading)}
/* Health, Clients' accounts view: the same table, a row per client and a row per account */
.hc-row.hc-cl{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.1fr) minmax(0,1fr);align-items:center}
.hc-row.hc-ac{grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr) minmax(0,3fr);align-items:center}
.hc-row.quiet{box-shadow:inset 3px 0 0 var(--bad)}
.hc-gap{margin-top:12px}
.hc-open{font-size:13.5px;font-weight:600;color:var(--ink);text-align:left;padding:0}.hc-open:hover{color:var(--accent);text-decoration:underline}
.hc-cl .hc-app{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.hc-prog{display:grid;grid-template-columns:minmax(40px,1fr) auto;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.hc-prog .cl-bar{height:4px}
.hc-dots{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.hc-dots .hd{width:9px;height:9px}
.hc-warn{font-size:12px;font-weight:600;color:var(--warn)}.hc-bad{color:var(--bad);font-weight:600}
.hc-ac .ha-who .chip{font-size:11.5px;padding:2px 8px;border:1px solid var(--line);background:var(--panel)}.hc-ac .ha-who .chip:hover{border-color:var(--fading)}
@media (max-width:620px){.hc-tiles{grid-template-columns:repeat(2,1fr)}.hc-score{grid-column:1/-1}
  .hc-head{display:none}.hc-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px}.hc-app{grid-column:1}.hc-st{grid-column:2;grid-row:1}.hc-cost{grid-column:2;grid-row:2;text-align:right}.hc-acct{grid-column:1}.hc-info{grid-column:1/-1}
  .hc-row.hc-cl,.hc-row.hc-ac{grid-template-columns:1fr 1fr}.hc-cl .hc-app,.hc-ac .hc-app,.hc-ac .ha-who{grid-column:1/-1}}
@media (max-width:760px){.hl-row{grid-template-columns:1fr 1fr}.hl-name{grid-column:1/-1;flex-direction:row;justify-content:space-between;width:100%}.ha-row{grid-template-columns:minmax(0,1fr) 70px 44px}.ha-who{grid-column:1/-1}}

/* Texting registration on a client's page: each detail with a copy button, the missing ones marked */
.tx{display:grid;gap:0;margin:8px 0 12px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.tx>div{display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr);gap:12px;padding:9px 12px;border-top:1px solid var(--line)}
.tx>div:first-child{border-top:0}
.tx>div.miss{background:#FFF6E5}
.tx dt{font-weight:600;font-size:13.5px}
.tx dd{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;min-width:0}
.tx dd span{overflow-wrap:anywhere}
.tx dd em{flex-basis:100%;font-style:normal}
@media (max-width:640px){.tx>div{grid-template-columns:minmax(0,1fr);gap:4px}}
.hold{display:grid;gap:8px;margin:0 0 12px;padding:12px 14px;border-radius:12px;background:var(--sunk)}.hold p{margin:0}.hold .btn{justify-self:start}

/* The playbook on the Outreach tab */
.pb fieldset{border:0;border-top:1px solid var(--line);margin:14px 0 0;padding:14px 0 0;min-width:0}
.pb legend{font-family:var(--f-display);font-weight:700;font-size:16px;padding:0 0 6px}
.pb-run{font-size:13.5px;color:var(--muted);background:var(--sunk);border-radius:10px;padding:8px 12px;margin:8px 0 0}
.pb-hint{display:block;font-weight:400;font-size:12.5px}
.pb-steps{display:grid;gap:10px;margin:8px 0 12px}
.pb-step{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:0}
.pb-step .q-field{margin:8px 0 0}
.pb-step-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.pb-tick{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:14.5px}
.pb-day{font-size:14px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}
.pb input[type=number]{width:64px;padding:6px 8px}
.pb-inline{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:14.5px;margin:0 0 10px}
.pb-kinds{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.pb-kind{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;background:var(--sunk);border:1px solid var(--line);border-radius:999px;padding:4px 10px;cursor:pointer}
.pb-act{align-items:center;margin-top:12px}.pb-dirty{font-size:13.5px;font-weight:600;color:var(--warn)}
.fu-group.plays h3{color:var(--accent)}
.li-row{cursor:default}.li-row .li-note{font-size:14px;color:var(--ink);background:var(--sunk);border-radius:8px;padding:8px 10px}.li-row .chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tpl.post .draft{white-space:pre-wrap}
.li-row .li-warm{font-size:13px;color:var(--muted)}.li-row .li-after{grid-column:1/-1;font-size:13px}.li-row .li-after summary{cursor:pointer;color:var(--accent);font-size:13px}.li-row .li-after p{margin:6px 0;color:var(--ink)}
.li-conn{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:13.5px;background:var(--sunk);border-radius:10px;padding:8px 12px;margin:6px 0 4px}.li-conn.warn{color:var(--bad)}
.post-err{color:var(--bad);font-size:13.5px;margin:4px 0 6px}
.post-offer{margin-top:10px;border-top:1px dashed var(--line);padding-top:8px;font-size:13.5px}.post-offer p{margin:0 0 6px}
.pb-sub{font-size:14px;margin:4px 0 6px}

/* ---------- Money tab (money-ui.js) ---------- */
.mo-nav{display:flex;align-items:center;gap:12px;margin:4px 0 6px}.mo-nav b{font-size:17px}.mo-nav .tbtn{font-size:22px;line-height:1;padding:2px 10px}.mo-nav .tbtn[disabled]{opacity:.3}
.mo-tbl td{vertical-align:top}.mo-tbl td small{display:block;font-size:12px;color:var(--muted);font-weight:400}
.mo-tbl .bad{color:var(--bad)}.mo-tbl .won{color:var(--good)}
.mo-row{cursor:pointer}.mo-row:hover td,.mo-row.open td{background:var(--sunk)}.mo-row td:first-child b{color:var(--ink)}
.mo-flags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.mo-flag{font-size:11.5px;font-weight:600;border-radius:99px;padding:1px 8px;background:var(--sunk)}
.mo-flag.warn{color:var(--warn)}.mo-flag.bad{color:var(--bad)}
.mo-bar{display:block;width:110px;max-width:100%;height:6px;border-radius:9px;background:var(--sunk);overflow:hidden;margin:4px 0 2px auto}
.mo-bar i{display:block;height:100%;background:var(--good)}.mo-bar.warn i{background:var(--warn)}.mo-bar.over i{background:var(--bad)}
.mo-detail td{background:var(--sunk);text-align:left!important}
.mo-det{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 24px;font-size:14px}.mo-det ul{margin:6px 0 0;padding-left:18px}.mo-det p{margin:6px 0}
.mo-det label{display:grid;gap:4px;font-size:12.5px;color:var(--muted);max-width:260px}
.mo-bill{display:flex;gap:6px;justify-content:flex-end}.mo-bill input{width:96px;text-align:right}
.mo-forms{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.mo-form{display:grid;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;align-content:start}
.mo-form label{display:grid;gap:4px;font-size:12.5px;color:var(--muted)}.mo-form .btn{justify-self:start}
.crm-money em.warn{font-style:normal;color:var(--warn)}
.mo-extra{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:8px;padding:8px 10px}
/* On a phone each client and each bill is a card instead of a wide row. */
@media (max-width:640px){
  .rep .mo-cards{min-width:0}.mo-cards thead{display:none}
  .mo-cards tr{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;padding:10px 4px;border-bottom:1px solid var(--line)}
  .mo-cards td{border:0;padding:0;text-align:left!important;min-width:0}.mo-cards td:first-child,.mo-cards .mo-detail td{grid-column:1/-1}
  .mo-cards td[data-l]::before{content:attr(data-l);display:block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
  .mo-cards tr.mo-row.open,.mo-cards tr.mo-row:hover{background:var(--sunk)}.mo-cards .mo-row td{background:none!important}
  .mo-cards tr.mo-detail{padding:0;border:0}.mo-bar{margin-left:0}.mo-bill{justify-content:flex-start}
}
.mo-src{display:block;margin-top:3px;text-align:right}.mo-rep{display:flex;gap:6px;align-items:center;justify-content:flex-end;font-size:12px;color:var(--muted);margin-top:4px}.mo-form .hl-n{font-size:12px;margin-left:6px}.hl-n.ok{color:var(--good);font-weight:600}
@media (max-width:640px){.mo-src{text-align:left}.mo-rep{justify-content:flex-start}}

/* Tickets (Omar's pick, B): a bar with the filter, the icon key and List/Board; the list and the open ticket side by side,
   or the board with the ticket sliding in over it. On a phone, one at a time. */
.tix{display:grid;gap:10px}
.tix-bar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.tix-pick select{appearance:none;border:1px solid var(--line);background:var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236A6155' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 11px center/10px 6px;border-radius:9px;padding:7px 32px 7px 12px;font-weight:700;font-size:14px;cursor:pointer}
.tix-count{font-size:14px;font-weight:600}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-left:auto;background:var(--panel)}
.seg button{border:0;background:none;padding:6px 14px;font-weight:600;font-size:13.5px;color:var(--muted);cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.tix-key{position:relative}
.tix-key summary{cursor:pointer;font-size:13px;color:var(--accent);font-weight:600;list-style:none}
.tix-key summary::-webkit-details-marker{display:none}
.tix-keyp{position:absolute;z-index:6;top:calc(100% + 6px);left:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:12px 14px;columns:2;column-gap:20px;width:min(460px,calc(100vw - 32px))}
.tix-keyp>div{break-inside:avoid;margin:0 0 12px}.tix-keyp>div:last-child{margin-bottom:0}.tk-g{margin:0 0 4px;font-size:12px}.tk-g.g-broken{color:var(--bad)}.tk-g.g-change{color:var(--accent)}.tk-g.g-message{color:var(--good)}.tk-g.g-sales{color:var(--warn)}.tk-g.g-todo{color:var(--meeting-ink)}
.tk-i{margin:0 0 3px;display:flex;gap:7px;align-items:center;font-size:13px}
.ti{flex:none;width:24px;height:24px;border-radius:7px;display:inline-grid;place-items:center}
.ti svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ti.g-broken{background:#F8E0DD;color:var(--bad)}.ti.g-change{background:var(--accent-soft);color:var(--accent)}.ti.g-message{background:var(--won-bg);color:var(--good)}.ti.g-sales{background:var(--pitched-bg);color:var(--warn)}.ti.g-todo{background:var(--meeting-bg);color:var(--meeting-ink)}
.loz{flex:none;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:3px 7px;border-radius:5px;background:var(--sunk);color:var(--muted);white-space:nowrap}
.loz.st-working{background:var(--accent-soft);color:var(--accent)}.loz.st-waiting{background:var(--pitched-bg);color:var(--warn)}.loz.st-done{background:var(--won-bg);color:var(--good)}.loz.st-late{background:#F8E0DD;color:var(--bad)}
.urg{color:var(--bad)}
.tix-wrap{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.5fr);border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden;min-height:62vh;position:relative}
.tix.board .tix-wrap{grid-template-columns:1fr;background:var(--sunk)}
.tix-side{border-right:1px solid var(--line);min-width:0}
.tix-list{overflow-y:auto;overflow-x:hidden;max-height:76vh}
.tix-none{padding:14px}
.tix-li{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:11px 12px;cursor:pointer;color:var(--ink);font:inherit}
.tix-li:hover{background:var(--sunk)}
.tix-li.sel{background:var(--accent-soft)}
.tix-li.urgent{box-shadow:inset 3px 0 0 var(--bad)}
.tix-main{flex:1;min-width:0;display:grid;gap:2px}
.tix-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;min-width:0}
.tix-top b{min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;font-size:14px;font-weight:600;line-height:1.3}
.tix-li.turn .tix-top b{font-weight:800}
.tix-top .d{font-size:12px;color:var(--muted);white-space:nowrap}
.tix-sub{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tix-pane{overflow-y:auto;max-height:82vh;min-width:0;display:flex;flex-direction:column}
.tix.board .tix-pane{position:absolute;top:0;right:0;bottom:0;width:min(560px,100%);background:var(--panel);border-left:1px solid var(--line);box-shadow:-14px 0 34px rgba(31,27,22,.14);max-height:none;z-index:4}
.tix-empty{display:grid;place-items:center;flex:1;min-height:40vh;color:var(--muted);text-align:center;padding:16px}
.tix-b{display:flex;flex-direction:column;gap:10px;padding:16px 18px 0;flex:1;min-height:100%}
.tb-top{display:flex;align-items:center;gap:10px}
.tb-top .tstat,.tb-top .loz{margin-left:auto}
.tix-back{display:none;white-space:nowrap;flex:none}
.tix.board .tix-back{display:inline-block}
.tstat{appearance:none;border:0;border-radius:7px;padding:6px 30px 6px 11px;font:800 11.5px/1 var(--f-body);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;background:var(--sunk) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%231F1B16' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 10px center/9px 6px;color:var(--ink)}
.tstat.st-working{background-color:var(--accent-soft);color:var(--accent)}.tstat.st-waiting{background-color:var(--pitched-bg);color:var(--warn)}
.tix-title{font-size:21px;line-height:1.25;margin:0}
.tb-meta{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;font-size:13px;color:var(--muted);margin:0}
.tb-meta .tbtn{padding:0;font-weight:700;color:var(--accent)}
.tb-kind{display:inline-flex;gap:6px;align-items:center}.tb-kind .ti{width:20px;height:20px;border-radius:6px}.tb-kind .ti svg{width:12px;height:12px}
.tlink{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--accent);cursor:pointer}.tlink.on{color:var(--bad)}
.tb-places{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;align-items:center}
.tb-places label{display:inline-flex;gap:5px;align-items:center}.tb-places label.on{color:var(--good)}
.tb-feed{display:grid;gap:14px;padding:6px 0 10px;border-top:1px solid var(--line);padding-top:14px}
/* A to-do's time budget (budgets.js): purple while fine, gold from 80% used, red once all of it is used */
.tb-budget{display:grid;gap:6px;margin-top:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.tb-bud-top{display:flex;justify-content:space-between;gap:10px;font-size:13.5px}
.bbar{height:8px;border-radius:4px;background:var(--accent-soft);overflow:hidden}.bbar i{display:block;height:100%;background:var(--accent);border-radius:4px}
.tb-budget.heads .bbar i{background:#E0A526}.tb-budget.over .bbar i{background:var(--bad)}
.tb-budget.heads{border-color:#E9C46A}.tb-budget.over{border-color:var(--bad)}
.bud{font-family:var(--f-mono);font-size:11.5px}.bud.heads{color:var(--warn);font-weight:700}.bud.over{color:var(--bad);font-weight:700}
.tev{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px}
.tav{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff;background:#8C7F6B}
.tev.us .tav{background:var(--accent)}.tev.claude .tav{background:#D97757}.tev.sys .tav{background:var(--good)}
.tev-h{margin:0 0 2px;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}.tev-h b{font-size:13.5px}.tev-h span{font-size:12px;color:var(--muted)}
.tev p{margin:0 0 3px;overflow-wrap:anywhere}
.tev.claude>div{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:8px 11px}
.tev .dk-msg{font-size:13.5px}
.tb-compose{position:sticky;bottom:0;margin:auto -18px 0;padding:10px 18px 14px;background:var(--panel);border-top:1px solid var(--line);display:grid;gap:8px}
.tabs-s{display:flex;gap:2px}
.tabs-s button{background:none;border:0;border-bottom:2px solid transparent;padding:4px 10px 6px;font-weight:700;font-size:13.5px;color:var(--muted);cursor:pointer}
.tabs-s button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.tb-tabp{display:grid;gap:8px}
.tb-tabp textarea{width:100%;min-height:70px}
.tb-tabp input[type=text]{width:100%}
.tb-wait{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--muted)}
.tix-cols{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;padding:12px;overflow:auto;max-height:78vh;align-items:start}
.tcol{display:grid;gap:8px;align-content:start;min-width:0}
.tcol h3{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:2px 2px 0;display:flex;justify-content:space-between}
.tcard{display:grid;gap:7px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 11px;cursor:pointer;font:inherit;color:var(--ink);box-shadow:0 1px 1px rgba(31,27,22,.05)}
.tcard:hover,.tcard.sel{border-color:var(--accent)}
.tcard.urgent{box-shadow:inset 3px 0 0 var(--bad)}
.tc-t{font-weight:700;font-size:14px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tc-f{display:flex;align-items:center;gap:7px;font-size:12.5px;justify-content:space-between}
.tc-f .ti{width:20px;height:20px;border-radius:6px}.tc-f .ti svg{width:12px;height:12px}
.tc-n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.turn-dot{color:var(--accent)}
@media (max-width:820px){
  .tix-wrap{grid-template-columns:1fr;min-height:0}
  .tix-side{border-right:0}
  .tix-list,.tix-pane{max-height:none}
  .tix:not(.has-sel) .tix-pane{display:none}
  .tix.has-sel:not(.board) .tix-side{display:none}
  .tix.board.has-sel .tix-cols{display:none}
  .tix.board .tix-pane{position:static;width:auto;box-shadow:none;border-left:0}
  .tix-back{display:inline-block}
  .tix-cols{grid-template-columns:repeat(4,78vw);max-height:none}
  .tix-keyp{columns:1}
}
.fu-tix{width:100%;border:0;font:inherit;cursor:pointer;text-align:left;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;margin:0 0 14px;border-radius:10px;background:var(--accent-soft);color:var(--ink);text-decoration:none;font-weight:600}
.fu-tix span{margin-left:auto;color:var(--accent)}

/* Omar's time: quick picks, the timer, and the end-of-day check. */
.qmins{display:inline-flex;gap:4px;flex-wrap:wrap;align-items:center}
.qmins .fbtn{padding:4px 9px;font-size:12px}
.timer-btn{justify-self:start}
.timer-btn.on{border-color:var(--bad);color:var(--bad)}
.timer-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 14px);z-index:35;width:min(640px,calc(100% - 32px));background:var(--ink);color:var(--paper);border-radius:14px;box-shadow:var(--shadow);padding:10px 12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.timer-bar.long{outline:2px solid var(--warn)}
.timer-bar .tt-what{flex:1 1 200px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.timer-bar .tt-time{font-size:15px}
.timer-bar .tt-dot{width:9px;height:9px;border-radius:50%;background:var(--bad);animation:ttblink 1.6s infinite}
@keyframes ttblink{50%{opacity:.3}}
@media (prefers-reduced-motion:reduce){.timer-bar .tt-dot{animation:none}}
.timer-bar .tt-warn{color:var(--pitched-bg);font-size:13px;font-weight:600}
.timer-bar .btn{background:var(--paper);color:var(--ink)}
.timer-bar .btn.ghost{background:transparent;color:var(--paper);border-color:rgba(255,255,255,.35)}
.timer-bar .fbtn{background:transparent;color:var(--paper);border-color:rgba(255,255,255,.35)}
.tt-stop{display:grid;gap:8px;width:100%}.tt-stop p{margin:0}
.tt-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tt-row label{display:grid;gap:2px;font-size:12px;font-weight:600}
.tt-row label.grow{flex:1 1 200px}
.tt-row input[type=number]{width:6.5em}
.timer-bar input{background:var(--paper);color:var(--ink)}
.fu-group.day{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel)}
.fu-group.day.due{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.fu-group.day .tt-row{padding:8px 0;border-top:1px solid var(--line)}
.fu-group.day .tt-l{flex:1 1 240px;display:grid;min-width:0}
.fu-group.day .tt-l span{font-size:13px;overflow-wrap:anywhere}
.day-sum{margin:0 0 12px;font-size:13.5px}
#app{padding-bottom:84px}
.tix-pane[hidden]{display:none}
[data-room]{scroll-margin-top:64px}
.cmark{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round}
/* ---------- Checkout monitoring (checkout-ui.js), in the Health tab ---------- */
.ck-days{display:inline-flex;gap:4px;margin-left:auto}.ck-days .tbtn.on{text-decoration:underline;text-underline-offset:4px}
.su-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;margin-bottom:12px}
.su{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}
.su th,.su td{padding:7px 10px;text-align:left;border-bottom:1px solid var(--line)}
.su th{position:sticky;top:0;background:var(--panel)}
.su th button{all:unset;cursor:pointer;font-weight:700;font-size:12px;color:var(--muted)}
.su th button[aria-sort]{color:var(--ink)}
.su tbody tr:last-child td{border-bottom:0}
.su tr.su-done .su-st{color:var(--ok, #2E8B57);font-weight:600}
.su tr.su-left .su-st{color:var(--bad, #C2410C)}
.ck-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;display:grid;gap:8px}
.ck-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px}.ck-head span{color:var(--muted);font-size:13.5px}
.ck-steps{display:grid;gap:4px}.ck-step{display:grid;grid-template-columns:minmax(110px,170px) 1fr 40px;align-items:center;gap:10px;font-size:13.5px}
.ck-step i{display:block;height:10px;border-radius:9px;background:var(--accent);min-width:2px}.ck-step b{text-align:right;font-variant-numeric:tabular-nums}
.ck-note{margin:0;font-size:13.5px;color:var(--muted)}.ck-bad{margin:0;font-size:13.5px;color:var(--bad)}
.ck-list{margin:0;padding-left:18px;display:grid;gap:4px;font-size:14px}.ck-when{color:var(--muted);font-variant-numeric:tabular-nums}
.ck-list .ck-stuck{color:var(--ink)}.ck-list .ck-stuck b{color:var(--bad)}
/* Ask Claude on a ticket: a small Claude-orange button, and the box that asks for an optional pointer. */
.cbtn{display:inline-flex;align-items:center;gap:6px;border:1px solid #E8B9A6;background:#FBEEE8;color:#9A4426;border-radius:8px;padding:5px 10px;font:700 12.5px/1 var(--f-body);cursor:pointer;text-decoration:none;white-space:nowrap}
.cbtn .cmark{width:14px;height:14px;stroke:#D97757}
.cbtn:hover{background:#F8E2D8}.cbtn.on{opacity:.7;cursor:default}
.tb-top .cbtn{margin-left:auto}.tb-top .cbtn+.tstat,.tb-top .cbtn+.loz{margin-left:0}
.ask-cl{border:1px solid #E8B9A6;background:#FDF6F2;border-radius:10px;padding:10px 12px;display:grid;gap:8px}
.ask-cl p{margin:0;font-size:13.5px}.ask-cl textarea{width:100%}
.btn .cmark{width:13px;height:13px;margin-right:5px;vertical-align:-2px}
/* A client's page in five tabs (Overview, Setup, Messages, Files, Details), stuck to the top of the panel as it scrolls. */
.cl-tabs{position:sticky;top:var(--navh,52px);z-index:2;display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;background:var(--paper);border-bottom:1px solid var(--line);margin:14px -4px 0;padding:6px 4px 0}
.cl-tabs button{flex:none;background:none;border:0;border-bottom:3px solid transparent;padding:8px 12px 9px;font-weight:600;font-size:14px;color:var(--muted);cursor:pointer;display:inline-flex;gap:6px;align-items:center;white-space:nowrap}
.cl-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.clt-n{font:600 11.5px/1 var(--f-mono);color:var(--muted);background:var(--sunk);border-radius:99px;padding:3px 6px}
.cl-pane>.d-sec:first-child{border-top:0}
/* The client's start-here box: the link with its actions on one row, and the web-address records as a card of their own. */
.tbtn.link-off{color:var(--muted);font-size:13px;margin-left:auto}
.dns-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:10px 0 0}
.dns-box>summary{cursor:pointer;font-weight:700;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dns-box[open]>summary{margin-bottom:8px}
.dns-box .hint{margin:0 0 8px}
.dns-text{display:block;width:100%;min-height:96px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}
.dns-act{display:flex;justify-content:flex-end;margin-top:8px}
/* The client page, tidied: the name and its timer on one line, the three progress boxes across the width, help text the
   full width of the panel, and the details form two to a row for short answers. */
.d-head{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin-bottom:6px}
.d-head .d-title{margin:0}
.sheet .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.sheet .d-sec p,.sheet .d-sec .hint{max-width:none}
.sheet .d-sec.reach{padding-top:4px}
.sheet .crm-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
.sheet .crm-form label.wide,.sheet .crm-form .wide{grid-column:1/-1}
.sheet .crm-form input[type=text]{min-height:38px}
@media (max-width:560px){.sheet .crm-form{grid-template-columns:1fr}.sheet .kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.sheet .kpi{padding:8px}}
.sheet .crm-form label{align-content:end}.sheet .crm-form label.wide{align-content:start}
.due{color:var(--muted);white-space:nowrap}.due.late{color:var(--bad);font-weight:700}

/* A lead's pane: stage, next step and contact buttons above the tabs (Research, Reach out, Deal) */
.sheet .react-bar{margin:12px 0 8px}
.d-next{margin:0 0 10px;font-size:14px;background:var(--pitched-bg);color:var(--warn);padding:6px 12px;border-radius:10px;overflow-wrap:anywhere}
.d-next b{color:var(--ink)}.d-next b.over{color:var(--bad)}
.d-chips .chips .chip{font-size:13.5px;padding:6px 12px}
.lead-pane > .kpis:first-child{margin-top:16px}
.lead-pane > .d-sec:first-child{border-top:0}
.d-next .chip{font-size:12px;margin-left:4px}
.lead-pane .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:600px){
  .sheet .react-bar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:6px;padding:8px}
  .sheet .react-bar .rbtn{flex:none;padding:6px 11px;font-size:13px}
}

/* Live chats: a client talking now on their page (renderLive in app.js), and the drawer Omar answers in */
.live-bar{position:sticky;top:0;z-index:30;display:grid;gap:6px;padding:10px 20px;background:#22132F;color:#fff;box-shadow:0 8px 20px -12px rgba(34,19,47,.6)}
.live-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;max-width:1200px;margin:0 auto;width:100%;font-size:14.5px}
.live-row .muted{color:#CDB9E3}
.live-say{flex:1;min-width:160px;color:#E9DDF6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-dot{width:9px;height:9px;border-radius:50%;background:#F2C14E;box-shadow:0 0 0 4px rgba(242,193,78,.25);flex:none}
.live-row .btn{background:#F2C14E;color:#3A2400;border-color:#F2C14E}
.live-chat{position:fixed;right:16px;bottom:16px;z-index:40;width:min(420px,calc(100vw - 32px));max-height:min(640px,calc(100vh - 32px));display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 60px -20px rgba(34,19,47,.5);overflow:hidden}
.lc-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--accent-soft)}
.lc-top b{display:block;font-size:16px}.lc-top .muted{font-size:12.5px}
.lc-msgs{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.lc-m{max-width:86%;padding:8px 11px;border-radius:14px;font-size:14px;line-height:1.4}
.lc-m b{display:block;font-size:11.5px;font-weight:800;margin-bottom:2px}
.lc-m p{margin:0;white-space:pre-wrap}
.lc-m.them{background:var(--sunk);align-self:flex-start;border-bottom-left-radius:4px}
.lc-m.el{background:#F4EEFA;align-self:flex-start;border-bottom-left-radius:4px;color:#4A4156}
.lc-m.us{background:var(--accent);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.lc-m.us .muted{color:#E4D8F2}
.lc-sys{align-self:center;margin:2px 0;font-size:12px;font-weight:700;color:var(--muted)}
.live-chat .req.lc-form{margin:0;border:0;border-top:1px solid var(--line);border-radius:0;padding:10px 12px;display:grid;gap:8px;background:var(--panel);box-shadow:none}
.lc-form textarea{width:100%;box-sizing:border-box;resize:vertical;font:inherit;border:1.5px solid var(--line);border-radius:12px;padding:8px 10px}

/* The nightly lead check (public/js/leadcheck.js): grade badges and their apps by how they connect. */
.lgrade{font-size:11px;font-weight:800;padding:2px 7px;border-radius:6px;letter-spacing:.02em;white-space:nowrap}
.lgrade.g-A{background:var(--won-bg);color:var(--good)}.lgrade.g-B{background:var(--pitched-bg);color:var(--warn)}
.lgrade.g-C{background:var(--sunk);color:var(--muted)}.lgrade.g-X{background:var(--sunk);color:var(--fading);text-decoration:line-through}
.lcheck h3 .lgrade{margin-left:6px;vertical-align:2px}
/* Email health (emailhealth.js): the nightly check of each lead's address */
.ehealth{font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;white-space:nowrap}
.ehealth.e-good{background:var(--won-bg);color:var(--good)}.ehealth.e-shared{background:var(--sunk);color:var(--muted)}
.ehealth.e-risky{background:var(--pitched-bg);color:var(--warn)}.ehealth.e-bad{border:1px solid var(--bad);color:var(--bad)}
.ebetter{margin-top:6px;font-size:13px}.ebetter .btn{margin-left:6px}
.ld-why{margin:8px 0 12px;padding:10px 12px;border-radius:10px;background:var(--pitched-bg);font-size:14px}.ld-why p{margin:0}.ld-why b{color:var(--warn)}.ld-why .fu-edit{margin-top:8px}.ld-why .fu-edit input[type=email]{flex:1 1 220px;width:auto}
.chip.tool.t-G{border-color:var(--good);color:var(--good)}.chip.tool.t-Y{border-color:var(--warn);color:var(--warn)}.chip.tool.t-R{border-color:var(--bad);color:var(--bad)}

/* Trends tab (trends-ui.js) */
.tr-meta{font-size:13px;margin-left:6px}
.tr-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 16px}
@media (max-width:900px){.tr-cards{grid-template-columns:minmax(0,1fr)}}
.tr-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-width:0;display:grid;gap:6px;align-content:start}
.tr-card h3{font-size:15px;margin:0}.tr-card h4{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:6px 0 0}
.tr-card ul{margin:0;padding-left:18px;display:grid;gap:4px;font-size:14px}.tr-card p{margin:0;font-size:14px}
.tr-note{font-size:12.5px}
.tr-brands{display:flex;flex-wrap:wrap;gap:6px}
.tr-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 8px}
.tr-tools input,.tr-tools select{font:inherit;font-size:14px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink)}
.tr-tools input{flex:1 1 200px;min-width:0}
.tr-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel);max-height:620px}
.tr-tbl{border-collapse:collapse;width:100%;min-width:720px;font-size:13.5px}
.tr-tbl th,.tr-tbl td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.tr-tbl th{position:sticky;top:0;background:var(--sunk);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);z-index:1}
.tr-tbl .n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.tr-tbl .good{color:var(--good)}.tr-tbl .bad{color:var(--bad)}
.tr-kd{font-size:12px;font-weight:600;white-space:nowrap}.tr-kd.good{color:var(--good)}.tr-kd.warn{color:var(--warn)}.tr-kd.bad{color:var(--bad)}
.tr-spark{width:64px;height:18px;display:block}.tr-spark polyline{stroke:var(--accent)}
.tr-set{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
@media (max-width:760px){.tr-set{grid-template-columns:minmax(0,1fr)}}
.tr-set .mo-form{display:grid;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-width:0}
.tr-set textarea,.tr-set input{font:inherit;font-size:14px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);width:100%;min-width:0}
.tr-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.tr-row input{flex:1 1 220px}
.tr-empty{background:var(--panel);border:1px dashed var(--line);border-radius:12px;padding:14px 16px;display:grid;gap:6px}

/* The Chats tab (chats-ui.js): the funnel, averages and fixes, the list, and one chat with its scorecard */
.ch-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.ch-seg{display:inline-flex;gap:4px;flex-wrap:wrap}
.ch-seg button{font:inherit;font-size:13px;font-weight:600;padding:6px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer}
.ch-seg button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.ch-tests{font-size:13px;color:var(--muted);display:inline-flex;gap:6px;align-items:center}
.ch-funnel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:10px}
.ch-fs{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:2px}
.ch-fs b{font-size:24px;line-height:1.1}
.ch-fs span{font-size:13px;font-weight:600}
.ch-fs small{font-size:12px;color:var(--muted)}
.ch-avgs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}
.ch-avgs div{background:var(--sunk);border-radius:12px;padding:10px 12px;display:flex;align-items:baseline;gap:8px}
.ch-avgs b{font-size:20px}
.ch-avgs span{font-size:13px;color:var(--muted)}
.ch-fixes{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:12px;padding:10px 14px;margin-bottom:12px}
.ch-fixes h4{margin:0 0 6px;font-size:14px}
.ch-fixes ul{margin:0;padding-left:18px;display:grid;gap:4px;font-size:14px}
.ch-fixes a{color:inherit}
.ch-filters{margin-bottom:8px}
.ch-list{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.ch-row{display:grid;grid-template-columns:72px minmax(0,1fr) 140px 150px 48px 48px 74px auto;gap:10px;align-items:center;padding:9px 12px;border-top:1px solid var(--line);color:inherit;text-decoration:none;font-size:14px}
.ch-row:first-child{border-top:0}
a.ch-row:hover{background:var(--sunk)}
.ch-head{font-size:12px;font-weight:700;color:var(--muted);background:var(--sunk)}
.ch-when{font-size:12px;color:var(--muted)}
.ch-who{display:grid;min-width:0}
.ch-who small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-stage{font-size:13px}
.ch-out.good{background:var(--good-soft,#E3F4EA);color:var(--good)}
.ch-out.bad{color:var(--muted)}
.ch-num{font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.ch-detail{display:grid;gap:10px}
.ch-detail .btn{justify-self:start}
.ch-dh h3{margin:0}
.ch-dh p{margin:2px 0 0}
.ch-cols{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:14px;align-items:start}
.ch-usew{overflow-x:auto}
.ch-convo{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:8px;max-height:70vh;overflow:auto}
.ch-msg{display:flex}
.ch-msg span{max-width:85%;padding:7px 11px;border-radius:12px;font-size:14px;line-height:1.45;background:var(--sunk)}
.ch-msg.you{justify-content:flex-end}
.ch-msg.you span{background:var(--accent-soft)}
.ch-step{margin:0;font-size:12px;color:var(--muted);display:flex;gap:8px}
.ch-step span{flex:none;font-variant-numeric:tabular-nums}
.ch-score{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:6px}
.ch-score h4{margin:6px 0 2px;font-size:14px;display:flex;justify-content:space-between}
.ch-score h4 small{color:var(--muted);font-weight:500}
.ch-sr{display:grid;grid-template-columns:130px 1fr 48px;gap:8px;align-items:center;font-size:13px}
.ch-sr b{text-align:right;font-variant-numeric:tabular-nums}
.ch-bar{height:6px;border-radius:99px;background:var(--sunk);overflow:hidden}
.ch-bar i{display:block;height:100%;background:var(--accent)}
.ch-note{margin:4px 0 0;font-size:13px;padding:8px 10px;border-radius:8px;background:var(--sunk);display:grid;gap:2px}
.ch-note.good{background:var(--good-soft,#E3F4EA)}
.ch-note.bad{background:#FBE7E4}
@media (max-width:900px){.ch-funnel{grid-template-columns:repeat(2,minmax(0,1fr))}.ch-row{grid-template-columns:60px minmax(0,1fr) auto}.ch-row .ch-stage,.ch-row .ch-num,.ch-head{display:none}.ch-cols{grid-template-columns:minmax(0,1fr)}}
.ch-cost{font-weight:600;color:var(--muted)}
.ch-use{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
.ch-use th,.ch-use td{padding:4px 3px;text-align:right;border-top:1px solid var(--line)}
.ch-use thead th{border-top:0;color:var(--muted);font-weight:600}
.ch-use tbody th{text-align:left;font-weight:600}
.ch-use tr.t th,.ch-use tr.t td{font-weight:800}
.ch-fine{font-size:12px;margin:4px 0 0}
@media (max-width:900px){.ch-avgs{grid-template-columns:minmax(0,1fr)}.ch-row .ch-cost{display:none}}


/* Chats tab: chats elloo closed (dangerous, offensive, not engaging) */
.ch-out.ch-closed{background:#FBEAEA;color:#A33A3A}

/* Online booking (booking-ui.js) */
.booking .bk-hours{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:6px 14px}.booking .bk-hours label{display:flex;align-items:center;gap:6px;font-size:13px}.booking .bk-hours input{width:auto;flex:1 1 0;min-width:0}
.booking .cv-row{margin:0 0 8px}.booking fieldset{border:1px solid var(--line,#e5e0ec);border-radius:10px;padding:8px 12px;display:flex;flex-wrap:wrap;gap:8px 14px}

/* Calls with a lead (leadcalls.js): the best time to call, each call's notes and checklist, and the week's numbers. */
.call-when{margin:0 0 10px;font-size:13.5px}.call-when b{color:var(--muted)}.call-when.now b{color:var(--good)}
.call-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 10px;background:var(--panel)}
.call-card p{margin:4px 0}.call-head{font-size:13px;color:var(--muted)}.call-head b{color:var(--ink)}
.call-checks{list-style:none;padding:0;margin:8px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:2px 14px;font-size:13px}
.call-checks .ok{color:var(--good)}.call-checks .no{color:var(--bad)}
.call-better{background:var(--accent-soft);border-radius:8px;padding:6px 10px}
.call-card audio{width:100%;margin-top:6px}
.call-week-h{margin:4px 0 8px;font-size:14px}
.call-card .say{font-style:italic}
/* Activity tab: one table of everything with leads and clients (looks and filters like the All leads table) */
.act-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:10px}.act-top p{margin:0}
.act-top .act-wait{color:var(--bad);font-weight:700}.act-top .act-clear{color:var(--accent);font-weight:600}
.act-table thead th{height:42px;padding:0 6px 0 10px}
.act-table .lh-name{padding:8px 0;white-space:nowrap}
.act-table .act-q{gap:8px}.act-table .act-q input{font:400 13px/1.2 var(--f-body);letter-spacing:0;text-transform:none;padding:5px 9px;border-radius:8px;width:100%;max-width:260px;min-width:120px}
.act-table .c-when{color:var(--muted);font-variant-numeric:tabular-nums;width:1%}
.act-table .c-name{max-width:200px}
.act-table .c-side,.act-table .c-kind{width:1%;font-size:12px}
.act-table .c-what{font-weight:600;width:1%}
.act-table td.c-what.act-in{color:var(--good)}.act-table td.c-what.act-out{color:var(--accent)}.act-table td.c-what.act-note{color:var(--muted)}
.act-table .act-ic{display:inline-block;width:17px}
.act-table .c-detail{width:100%;max-width:0;min-width:240px}
.act-table .c-needs{width:1%}
.act-table .act-dayrow td{position:sticky;left:0;background:var(--paper);font:700 11px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);padding:9px 10px 7px}
.act-table .act-dayrow{cursor:default}.act-table .act-dayrow:hover td{background:var(--paper)}
.act-table tr.act-new td:first-child{box-shadow:inset 3px 0 0 var(--accent);color:var(--accent);font-weight:700}
.act-table tr.act-new .c-name{font-weight:700}
.act-table tr.act-noopen{cursor:default}

/* ===== One lead, organized (Oct 9 2026) =====
   Every part folds up into a card with a one-line summary beside its heading; which parts are open is remembered.
   "Larger view" (or dragging the panel's left edge) widens the panel: from 1000px the At a glance card sits in its own
   column beside the tabs, and from 1300px the cards flow in two columns, so a whole lead fits on one or two screens. */
@media (min-width:821px){.sheet{width:min(var(--sheet-w,760px),calc(100vw - 32px))}}
.sheet-grip{position:fixed;z-index:22;top:0;bottom:0;right:min(var(--sheet-w,760px),calc(100vw - 32px));width:12px;transform:translateX(50%);cursor:ew-resize;touch-action:none}
.sheet-grip::after{content:"";position:absolute;left:4px;top:50%;width:4px;height:56px;margin-top:-28px;border-radius:4px;background:var(--line);transition:background .15s}
.sheet-grip:hover::after,body.sizing .sheet-grip::after{background:var(--accent)}
body.sizing{cursor:ew-resize;user-select:none}body.sizing .sheet{transition:none}
.sheet-size{margin-left:auto;white-space:nowrap}.sheet-size+.sheet-close{margin-left:0}
@media (max-width:820px){.sheet-grip,.sheet-size{display:none}.sheet-size+.sheet-close{margin-left:auto}}
.d-kind .icp,.d-kind .lgrade{font-size:12px;padding:3px 8px}
.d-chips .chips .gchip{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:var(--accent-ink)}
.d-chips .chips .gchip:hover{filter:brightness(1.12)}
/* The fold-up cards */
.sheet .d-sec.fold{padding:0;border:1px solid var(--line);border-radius:14px;background:var(--panel);margin:0 0 12px;break-inside:avoid}
.d-sec.fold>summary{list-style:none;display:flex;align-items:baseline;gap:6px 12px;flex-wrap:wrap;padding:13px 40px 13px 16px;position:relative;font-weight:400;border-radius:14px}
.d-sec.fold>summary::-webkit-details-marker{display:none}
.d-sec.fold>summary::after{content:"";position:absolute;right:18px;top:19px;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s}
.d-sec.fold[open]>summary::after{transform:rotate(-135deg);top:22px}
.d-sec.fold>summary:hover{background:var(--paper)}
.d-sec.fold>summary h3{font-size:16.5px;margin:0;flex:none}
.fold-sum{font-size:13px;color:var(--muted);min-width:0;flex:1 1 200px;overflow-wrap:anywhere}
.fold-sum b{color:var(--ink)}.fold-sum b.over{color:var(--bad)}.fold-sum .mono{font-size:12px}
.fold-sum .icp,.fold-sum .lgrade{vertical-align:1px;margin-right:4px}
.d-sec.fold[open]>summary{border-bottom:1px solid var(--line);border-radius:14px 14px 0 0}
.fold-body{padding:14px 16px 16px}
.fold-body>:last-child{margin-bottom:0}
/* A fold inside a fold (the call script) is lighter. */
.sheet .d-sec.fold.sub{background:var(--paper);margin:10px 0}
.d-sec.fold.sub>summary h3{font-size:14.5px}
.d-sec.fold.sub>summary:hover{background:var(--sunk)}
.lead-pane{padding-top:14px}
.lead-pane>.src-line{margin:4px 2px 0;font-size:13px}
.sub-h{font:600 11.5px/1 var(--f-body);letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin:0 0 8px}
.sub-h:not(:first-child){margin-top:16px}
.fold-all{margin-left:auto;display:inline-flex;gap:14px;align-self:center;padding-left:12px;font-size:12.5px;color:var(--muted);white-space:nowrap}
/* At a glance */
.gl-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.gl-t{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:0}
.gl-t>span{display:block;font:600 10.5px/1.2 var(--f-body);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.gl-t>b{display:block;font-size:14px;line-height:1.35;overflow-wrap:anywhere}
.gl-t>b i{font-style:normal;font-weight:500;color:var(--muted);font-size:12.5px}
.gl-t .icp,.gl-t .lgrade{font-size:12px}
.gl-who{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);font-size:14px}
.gl-who .eyebrow{display:block;margin-bottom:6px}.gl-who-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.gl-who-top .eyebrow{margin-bottom:6px}.who-form{margin:4px 0 10px}.gl-who p{margin:0 0 4px}
.gl-report{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.gl-report .hint{font-size:12.5px}
/* Lead check facts as a two-column list */
.facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;margin:8px 0;font-size:14px}
.facts dt{font-weight:700}.facts dd{margin:0;overflow-wrap:anywhere}
.facts ul{margin:0;padding-left:18px}
/* The ideal customer score, one block per part with its own reasons */
.icp-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
.icp-g{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--paper);min-width:0}
.icp-gh{display:grid;grid-template-columns:1fr auto;gap:4px 8px;font-size:13.5px;margin-bottom:6px}
.icp-gh i{font-style:normal;color:var(--muted);font-weight:400}
.icp-gh .bar{grid-column:1/-1;height:5px;border-radius:3px;background:var(--sunk);overflow:hidden}.icp-gh .bar i{display:block;height:100%;background:var(--accent)}
.icp-g .icp-why{margin:0;gap:6px;font-size:13px}
.icp-g .icp-why li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:4px;line-height:1.4}
.icp-g .icp-why b{min-width:0}
.evd{display:inline-block;font-size:10.5px;line-height:1.5;padding:0 6px;border-radius:999px;margin-left:2px;white-space:nowrap;vertical-align:1px}
.evd-strong{background:var(--won-bg);color:var(--good)}.evd-some{background:var(--sunk);color:var(--muted)}.evd-guess{border:1px dashed var(--line);color:var(--muted)}
/* Look them up */
.gsearch{display:flex;gap:8px;margin:0 0 10px}.gsearch input{flex:1;min-width:0}
/* The call script and short messages as cards */
.play-step{border-left:3px solid var(--accent-soft);padding-left:12px;margin:0 0 14px}
.play-step:last-child{margin-bottom:0}
.play-step h4{margin-top:0}
.msg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.msg-grid .play-step{margin:0}
/* Narrow panel: At a glance sits under the tabs, on Research only. */
.lead-body{display:flex;flex-direction:column}
.lead-main{display:contents}
.lead-body .cl-tabs{order:0}
.lead-side{order:1;padding-top:14px}
.lead-body .lead-pane{order:2}
.lead-body:not([data-ltab="research"]) .lead-side{display:none}
/* Wide panel: At a glance in its own column, always in view. */
@container (min-width:1000px){
  .lead-body{display:grid;grid-template-columns:minmax(300px,340px) minmax(0,1fr);gap:0 24px;align-items:start;margin-top:14px}
  .lead-main{display:block;min-width:0}
  .lead-body:not([data-ltab="research"]) .lead-side,.lead-side{order:0;display:block;position:sticky;top:calc(var(--navh,52px) + 12px);max-height:calc(100vh - var(--navh,52px) - 24px);overflow-y:auto;padding-top:0;border-radius:14px}
  .lead-side .gl-tiles{grid-template-columns:1fr 1fr}
  .lead-side .gl-t:last-child:nth-child(odd){grid-column:1/-1}
  .lead-body .cl-tabs{margin-top:0}
  .d-title{font-size:44px}
  .d-sec.fold.sub .play{columns:2 320px;column-gap:24px}
  .d-sec.fold.sub .play-step{break-inside:avoid}
}
@container (min-width:1300px){
  .lead-pane{columns:2 420px;column-gap:14px}
  .lead-pane>*{break-inside:avoid}
  /* Search, AI and ads keeps its three parts side by side across both columns. */
  .lead-pane>.lseen{column-span:all;margin-bottom:14px}
}
/* Website fixes: how many things to fix on their site and Google listing (was a letter grade). */
.fixes{display:inline-block;font-size:11px;font-weight:800;padding:2px 7px;border-radius:6px;white-space:nowrap;background:var(--sunk);color:var(--muted)}
.fixes.fx-many{background:#FAE3DA;color:#8A3415}.fixes.fx-some{background:var(--pitched-bg);color:var(--warn)}
.fixes.fx-skip{color:var(--fading);text-decoration:line-through}
.ltable .fixes{font-size:10.5px;padding:1px 6px}
.d-kind .fixes{font-size:12px;padding:3px 8px}

/* ===== One lead, Oct 2026: next-step strip, big contact buttons, four tabs (Research, Reach out, Conversation, Deal) ===== */
.nx{display:flex;align-items:flex-start;gap:6px;background:var(--pitched-bg);border-radius:12px;padding:4px 6px 4px 4px;margin:12px 0}
.nx.none{background:var(--sunk)}.nx.over{background:#FBE3DF}
.nx-d{flex:1;min-width:0}
.nx-d>summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:8px 10px;border-radius:9px}
.nx-d>summary::-webkit-details-marker{display:none}
.nx-d>summary:hover{background:rgba(255,255,255,.5)}
.nx-k{font:700 11.5px/1.2 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:#7A4F00}
.nx.over .nx-k{color:var(--bad)}.nx.none .nx-k{color:var(--muted)}
.nx-t{font-size:15px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.nx.none .nx-t{font-weight:500;font-size:14px;color:var(--muted)}
.nx-body{padding:4px 10px 10px}
.nx-ro{padding:8px 10px;display:flex;flex-direction:column;gap:3px}
.nx-done{flex:none;width:44px;height:44px;margin-top:2px;border-radius:10px;border:1px solid #E8D3A0;background:var(--panel);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.nx-done:hover{background:var(--won-bg);color:var(--good);border-color:var(--good)}
.acts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}
.act{min-height:58px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font:600 13px/1 var(--f-body);text-decoration:none;cursor:pointer;padding:8px 4px}
.act:hover{border-color:var(--accent);color:var(--accent)}
.act.pri{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.act.pri:hover{filter:brightness(1.12);color:var(--accent-ink)}
.act:disabled{opacity:.55;cursor:default}
.lead-tabs .badge{margin-left:2px}
.fold-row{display:flex;justify-content:flex-end;margin:0 0 8px}.fold-row .fold-all{padding-left:0}
.seg-bar{display:flex;gap:2px;background:var(--sunk);border-radius:9px;padding:3px;margin:0 0 10px;overflow-x:auto;scrollbar-width:none}
.seg-bar button{flex:1 0 auto;border:0;background:none;padding:7px 12px;border-radius:7px;font:600 13px/1 var(--f-body);color:var(--muted);cursor:pointer;min-height:32px;white-space:nowrap}
.seg-bar button:hover{color:var(--ink)}
.seg-bar button[aria-selected="true"]{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px rgba(31,27,22,.12)}
.seg-bar.small{margin:0 0 12px}.seg-bar.small button{padding:7px 10px;font-size:13px;min-height:36px}
.lcard{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px;margin:0 0 12px}
.lcard>:last-child{margin-bottom:0}
.lcard p{margin:0 0 8px;overflow-wrap:anywhere}.lcard .hint{font-size:12.5px;margin:6px 0 0}
.lcard-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.lcard-h h3{font-size:16.5px;margin:0;flex:1 1 auto}
.lcard .crm-form{margin:0}
/* Reach out › Call */
.call-when{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.call-when .dot{width:10px;height:10px;border-radius:999px;background:var(--warn);flex:none;margin-top:6px}
.call-when.now .dot{background:var(--good)}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.step{display:grid;grid-template-columns:24px minmax(0,1fr);gap:4px 12px;align-items:start}
.step .num{width:24px;height:24px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font:700 12px/24px var(--f-body);text-align:center}
.step h4{margin:2px 0 6px;font-size:14.5px}
.step .say{margin:0 0 6px;padding:8px 12px;background:var(--paper);border-radius:10px;font-size:14px}
.step ul{margin:0;padding-left:18px;font-size:14px}
.step.more{border-top:1px solid var(--line);padding-top:12px}
.step.more .num{background:var(--sunk);color:var(--muted)}
.step details>summary{cursor:pointer;font-weight:700;font-size:14.5px;padding:2px 0 6px}
.links-row{display:flex;flex-wrap:wrap;gap:6px 18px;margin:14px 0 0;color:var(--accent);font-weight:600;font-size:13.5px}
/* Reach out › Email */
.sent-rows{list-style:none;margin:0 0 12px;padding:2px 16px;background:var(--panel);border:1px solid var(--line);border-radius:16px}
.sent-rows li{display:flex;gap:10px;align-items:center;padding:10px 0;font-size:14px}
.sent-rows li+li{border-top:1px solid var(--line)}
.sent-rows .ok{width:26px;height:26px;border-radius:999px;background:var(--won-bg);color:var(--good);display:inline-flex;align-items:center;justify-content:center;flex:none}
/* Conversation */
.cv-top.hot{border:1.5px solid var(--accent);box-shadow:0 6px 18px rgba(91,42,134,.08)}
.cv-top-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;font-size:14.5px}
.hot-dot{width:8px;height:8px;border-radius:999px;background:var(--bad);flex:none}
.cv-top .cv-reply{margin:0}.cv-top .cv-reply textarea{width:100%}
.cv-filters{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px}
.cv-filters .fbtn span{opacity:.7;margin-left:3px}
.tl{list-style:none;margin:0;padding:0;position:relative}
.tl::before{content:"";position:absolute;left:17px;top:6px;bottom:10px;width:2px;background:var(--line)}
.tl-g{margin:0 0 4px}
.tl-day{position:relative;font:700 11.5px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:12px 0 10px 50px}
.tl-g ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.tl-i{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);gap:14px}
.tl-dot{width:30px;height:30px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;border:3px solid var(--paper);box-sizing:content-box}
.tl-dot.in{background:var(--accent);color:var(--accent-ink)}.tl-dot.out{background:var(--accent-soft);color:var(--accent)}
.tl-dot.wait{background:var(--pitched-bg);color:var(--warn)}.tl-dot.bad{background:#FBE3DF;color:var(--bad)}
.tl-dot.call{background:var(--won-bg);color:var(--good)}.tl-dot.note{background:var(--pitched-bg);color:#7A4F00}.tl-dot.log{background:var(--sunk);color:var(--muted)}
.tl-b{min-width:0;padding-top:8px}
.tl-h{display:flex;gap:8px;align-items:baseline;font-size:14px}
.tl-l{flex:1;min-width:0;overflow-wrap:anywhere}
.tl-t{font-size:12px;color:var(--muted);white-space:nowrap}
.tl-card{margin-top:6px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:14px}
.tl-card>:last-child{margin-bottom:0}
.tl-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font:inherit;line-height:1.5}
.tl-line{margin:4px 0 0;font-size:14px;color:#3A332B;overflow-wrap:anywhere}
.tl-more{margin-top:4px;font-size:14px}
.tl-more>summary{cursor:pointer;list-style:none;color:var(--muted)}
.tl-more>summary::-webkit-details-marker{display:none}
.tl-more .tl-open{color:var(--accent);font-weight:600;font-size:13px;white-space:nowrap}
.tl-more[open] .tl-peek{display:none}.tl-more[open] .tl-open::after{content:" ▴"}
.tl .call-card{border:0;padding:0;margin:0;background:none}.tl .call-head{display:none}
.tl-empty{background:var(--panel);border:1.5px dashed var(--line);border-radius:14px;padding:18px;text-align:center}
/* Deal */
.stepper{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
.stepper::before,.stepper::after{content:"";position:absolute;left:10%;top:11px;height:2px}
.stepper::before{right:10%;background:var(--line)}.stepper::after{width:var(--prog,0%);background:var(--accent)}
.stp{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:0;padding:0 2px;cursor:pointer;font:600 12px/1.25 var(--f-body);color:var(--muted);text-align:center;min-height:44px}
.stp-d{width:22px;height:22px;border-radius:999px;background:var(--panel);border:2px solid #D5CAB2;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;color:var(--accent-ink)}
.stp.done .stp-d{background:var(--accent);border-color:var(--accent)}
.stp.cur{color:var(--ink);font-weight:800}.stp.cur .stp-d{border:6px solid var(--accent)}
.stp:not(:disabled):hover .stp-d{border-color:var(--accent)}
.stp:disabled{cursor:default}
.stepper.lost{opacity:.6}
.could{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}.could .eyebrow{display:block;margin-bottom:8px}
.shop-card{background:#F6F0FB;border-color:#E2D3F0}
.pills{display:flex;flex-wrap:wrap;gap:6px;border:0;padding:0;margin:0 0 12px;min-width:0}
.pills .pick{position:relative;border:1px solid var(--line);background:var(--panel);padding:8px 12px;border-radius:999px;font-size:13px !important;font-weight:600 !important;min-height:38px;box-sizing:border-box}
.pills .pick input{position:absolute;opacity:0;width:1px !important;height:1px;margin:0}
.pills .pick:has(input:checked){background:var(--accent);border-color:var(--accent);color:var(--accent-ink) !important}
.pills .pick:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.deal-save{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin:4px 2px 18px}
.deal-save .hint{flex:1 1 220px;margin:0;font-size:12.5px}
.deal-del{margin:0 2px 8px}.deal-del .hint{font-size:12.5px;margin:6px 0 0}
/* Research, Oct 2026: At a glance as four coloured numbers, a slim search bar, an icon on every section. */
.glance-card .lcard-h{margin-bottom:10px}
.gl-sub{font-size:13px;color:var(--muted)}
.gl-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.gl-s{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:0}
.gl-s>span{display:block;font:600 10.5px/1.2 var(--f-body);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.gl-s>b{display:block;font-size:16px;line-height:1.3;overflow-wrap:anywhere}
.gl-s>b i{font-style:normal;font-weight:500;color:var(--muted);font-size:13px}
.gl-s .icp,.gl-s .lgrade{font-size:12.5px}
.gl-s.good{background:#EEF8F1;border-color:#BFE3CB}.gl-s.good>b{color:var(--good)}
.gl-s.warn{background:#FEF6E4;border-color:#EBD6A6}.gl-s.warn>b{color:var(--warn)}
.gl-s.bad{background:#FCEDEA;border-color:#EFC6BF}.gl-s.bad>b{color:var(--bad)}
.gl-rows{margin-top:10px;display:grid}
.gl-r{display:flex;gap:12px;align-items:baseline;padding:8px 2px;border-top:1px solid var(--line);font-size:14px}
.gl-r>span{flex:none;width:44%;color:var(--muted);font-size:13px}
.gl-r>b{flex:1;min-width:0;font-weight:600;overflow-wrap:anywhere}
.gl-r>b i{font-style:normal;font-weight:500;color:var(--muted)}
.gl-r .trg{margin:0 4px 4px 0}
.glance-card .gl-who{margin-top:8px}
.look-card{padding:12px}
.look-card .gsearch{position:relative;margin:0 0 10px}
.look-card .gsearch input{padding-left:36px;min-height:42px;border-radius:12px}
.gs-ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);display:inline-flex;pointer-events:none}
.look-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.look-chips .chip{flex:none;font-size:12.5px;padding:5px 10px}
.d-sec.fold.has-ico>summary{align-items:center}
.f-ico{width:28px;height:28px;border-radius:8px;background:var(--accent-soft);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;flex:none}
.d-sec.fold.has-ico>summary .fold-sum{flex-basis:100%;margin-left:40px;margin-top:-4px}
@container (min-width:520px){.d-sec.fold.has-ico>summary .fold-sum{flex-basis:200px;margin:0}}
.ck-gaps{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}
.ck-gaps li{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;font-weight:600}
.ck-gaps .dot{width:8px;height:8px;border-radius:999px;background:var(--warn);margin-top:7px;flex:none}
.ck-gaps .dot.first{background:var(--bad)}
.ck-gaps li.small{font-weight:500;color:var(--muted)}.ck-gaps li.small .dot{background:var(--line)}
.ck-gaps .ck-see{display:block;font-weight:400;font-size:13px;color:var(--muted);margin-top:2px}
.ck-dropped{font-size:13px;margin:0 0 12px}.ck-dropped summary{cursor:pointer;color:var(--muted)}.ck-dropped ul{margin:6px 0 0;padding-left:18px}
.ck-offer{display:flex;flex-direction:column;gap:4px;background:var(--won-bg);border-radius:12px;padding:10px 12px;margin:0 0 12px}
.ck-offer b{font-size:14.5px}
.gm-rank{display:flex;gap:14px;align-items:center;border-radius:12px;padding:10px 12px;margin:0 0 12px;background:var(--sunk)}
.gm-pos{font:800 30px/1 var(--f-display);letter-spacing:-.02em;flex:none;min-width:56px;text-align:center}
.gm-rank.good{background:#EEF8F1}.gm-rank.good .gm-pos{color:var(--good)}
.gm-rank.warn{background:#FEF6E4}.gm-rank.warn .gm-pos{color:var(--warn)}
.gm-rank.bad{background:#FCEDEA}.gm-rank.bad .gm-pos{color:var(--bad)}
.gm-rank p{margin:4px 0 0;font-size:13.5px}
.gm-use{color:var(--accent);font-weight:600;font-size:13px}
/* Search, AI and ads (visibility.js): three columns side by side when there's room, one under another on a phone. */
.sn-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin:0 0 10px}
.sn-col{background:var(--sunk);border-radius:12px;padding:10px 12px;min-width:0}
.sn-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 8px;margin:0 0 6px}
.sn-h b{font-size:14px}
.sn-head{font-size:12.5px;font-weight:700;color:var(--muted)}.sn-head.good{color:var(--good)}.sn-head.warn{color:var(--warn)}.sn-head.bad{color:var(--bad)}
.sn-rows{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.sn-rows li{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;line-height:1.35;overflow-wrap:anywhere}
.sn-rows i{font-style:normal;font-weight:800;width:16px;flex:none;text-align:center;color:var(--muted)}
.sn-rows .sn-good i{color:var(--good)}.sn-rows .sn-bad i{color:var(--bad)}.sn-rows .sn-spend i{color:var(--warn)}
.sn-rows .sn-bad span{font-weight:600}
.sn-rows small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.sn-look{margin:0 0 6px}
.sn-more{background:var(--sunk);border-radius:12px;padding:10px 12px;margin:0 0 10px;overflow-x:auto}
.sn-tbl{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:6px}
.sn-tbl th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:2px 8px 4px 0}
.sn-tbl td{padding:4px 8px 4px 0;border-top:1px solid var(--line);vertical-align:top}
.sn-tbl .sn-ok{color:var(--good);font-weight:700;white-space:nowrap}.sn-tbl .sn-no{color:var(--bad);font-weight:700}
/* The big guy: the business that owns their search. */
.sn-big{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:10px 12px;margin:0 0 10px}
.sn-big p{margin:4px 0 0}.sn-big-name b{font-size:16px}
.sn-big-where{display:flex;flex-wrap:wrap;gap:4px}.sn-big-where .chip{font-size:12px;white-space:nowrap;margin:0}
.sn-big-vs{font-size:13.5px;font-weight:600}
.sn-big .look-chips{margin-top:8px}
.spend{font-weight:700;color:var(--warn);white-space:nowrap}
/* A tag like "orders or bookings by message" wraps to the next line whole, never split across two. */
.need{display:inline-block;white-space:nowrap;max-width:100%;vertical-align:1px;line-height:1.5}
.d-sec .fold-body .need{margin:2px 0 2px 4px}
/* What Google shows: every review behind a complaint, each with its stars and date. */
.gquotes li{display:grid;gap:8px;padding:4px 0 4px 12px}
.gq-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gq-h .chip{font-size:11.5px;padding:2px 8px}
.gq{background:var(--paper);border-radius:10px;padding:8px 10px}
.gq q{margin:2px 0 0;font-size:14px}
.gq-m{font-size:12px;color:var(--muted)}.gq-stars{color:#B7791F;letter-spacing:1px}
.lead-pane[data-lead-pane="research"]{padding-top:2px}.lead-pane[data-lead-pane="research"] .fold-row{margin-bottom:4px}
/* Their newest message, pinned at the top of Conversation above the reply box. */
.cv-last{margin:0 0 14px;padding:0 0 14px;border-bottom:1px solid var(--line)}
.cv-top>.cv-last:last-child{margin:0;padding:0;border:0}
.cv-last-h{display:flex;align-items:center;gap:10px;font-size:14.5px;margin:0 0 8px}
.cv-last-h .tl-dot{border:0;width:30px;height:30px;flex:none}
.cv-last-h .hot-dot{display:inline-block;margin-right:6px;vertical-align:2px}
.cv-last-s{margin:0 0 6px;font-size:13px;color:var(--muted)}
.cv-last .tl-text{background:var(--paper);border-radius:12px;padding:10px 12px;font-size:14.5px;max-height:260px;overflow-y:auto}
/* At a glance, compact (Oct 10): the four numbers in one row, tight fact rows, a smaller who-and-where. */
.glance-card{padding:12px 14px}
.glance-card .lcard-h{margin-bottom:8px}.glance-card .lcard-h h3{font-size:15px}
.gl-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.gl-s{padding:7px 9px;border-radius:10px}
.gl-s>span{font-size:9.5px;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gl-s>b{font-size:14px;line-height:1.25}.gl-s>b small{font-size:12px;font-weight:600;color:var(--muted)}
.gl-s>b i{font-size:12px}
.gl-s .icp,.gl-s .lgrade{font-size:11.5px;padding:2px 6px}
@container (max-width:400px){.gl-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gl-rows{margin-top:8px}
.gl-r{padding:5px 2px;font-size:13px;gap:10px}
.gl-r>span{width:34%;font-size:12.5px}
.gl-r .trg{margin:0 3px 2px 0}
.glance-card .gl-who{margin-top:4px;padding-top:8px;font-size:13px}
.glance-card .gl-who .eyebrow{font-size:10px;margin-bottom:3px}
.glance-card .gl-who p{margin:0 0 2px}
@container (min-width:1000px){.lead-side .gl-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Rhythm (Oct 10): the lead's month of touches as dots. Hover or focus a dot for what and when; click to jump to it. */
.rhythm .lcard-h{margin-bottom:10px}
.rh-count{font-size:12.5px;color:var(--muted);margin-left:auto}
.rh-track{position:relative;display:flex;justify-content:space-between;gap:4px;padding:2px 0}
.rh-track::before{content:"";position:absolute;left:14px;right:14px;top:50%;height:2px;margin-top:-1px;background:var(--line)}
.rh-dot{position:relative;z-index:1;width:30px;height:30px;border-radius:999px;border:2px solid #D5CAB2;background:var(--panel);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;flex:none}
.rh-dot.done{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.rh-dot.queued{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent)}
.rh-dot.due{border-color:var(--warn);color:var(--warn);background:#FEF6E4}
.rh-dot.late{border-color:var(--bad);color:var(--bad);background:#FCEDEA}
.rh-dot.skipped{opacity:.4;border-style:dashed}
.rh-dot.next{box-shadow:0 0 0 3px var(--panel),0 0 0 5px var(--accent)}
.rh-dot:hover{border-color:var(--accent)}
.rh-i{display:inline-flex}
.rh-tip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);width:max-content;max-width:200px;background:var(--ink);color:var(--paper);border-radius:10px;padding:8px 10px;font:500 12.5px/1.4 var(--f-body);text-align:left;display:grid;gap:2px;opacity:0;visibility:hidden;transition:opacity .12s;pointer-events:none;z-index:5;box-shadow:var(--shadow)}
.rh-tip b{font-size:13px}.rh-tip i{font-style:normal;color:#E8DFC9}
.rh-dot:first-child .rh-tip,.rh-dot:nth-child(2) .rh-tip{left:-4px;transform:none}
.rh-dot:last-child .rh-tip,.rh-dot:nth-last-child(2) .rh-tip{left:auto;right:-4px;transform:none}
.rh-dot:hover .rh-tip,.rh-dot:focus-visible .rh-tip{opacity:1;visibility:visible}
.rh-next{margin:12px 0 0;font-size:14px}.rh-go{color:var(--accent);font-weight:600;margin-left:4px}
.rhythm.off .rh-track{opacity:.6}
.nx.rh{background:var(--accent-soft)}.nx.rh .nx-k{color:var(--accent)}
.rh-call{margin:8px 0 0;font-size:14px;background:var(--accent-soft);border-radius:10px;padding:8px 12px}
.rh-tip{bottom:auto;top:calc(100% + 10px)}
/* Reach out › Email: the emails after the first (Oct 10 2026). */
.later-emails{display:grid;gap:10px;margin-top:14px}
.later-h{font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted, #6b6680);margin:4px 0 0}
/* What Google shows: every Maps search for the lead (Oct 10 2026). */
.gm-all{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}
.gm-all th,.gm-all td{text-align:left;padding:5px 6px;border-bottom:1px solid var(--line, #e7e0f2)}
.gm-all th{font-weight:600;color:var(--muted, #6b6680)}

/* ===== Outreach scoreboard (scoreboard.js): what to do today, and whether it is working (Oct 12 2026) ===== */
.sb{display:grid;gap:12px;margin:0 0 22px}
.sb-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;min-width:0}
.sb-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 10px;padding:14px 16px 0}
.sb-h h3{font-size:15.5px;font-weight:600;letter-spacing:-.02em}
.sb-h p{flex-basis:100%;margin:0;font-size:12.5px;color:var(--muted)}
.sb-pad{padding:0 16px 14px;margin:0;font-size:13px}
.sb-two{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:12px;align-items:start}
@media (max-width:900px){.sb-two{grid-template-columns:minmax(0,1fr)}}
.sb-late{color:var(--bad);font-weight:700}.sb-now{color:var(--warn);font-weight:700}.sb-good{color:var(--good);font-weight:700}

.sb-reply{border-color:#CDB3E8;padding:14px 16px;display:grid;gap:10px}
.sb-rtop{display:flex;justify-content:space-between;align-items:center;gap:10px}
.sb-rtop h3{font-size:15.5px;font-weight:600;display:flex;align-items:center;gap:8px}
.sb-live{width:8px;height:8px;border-radius:50%;background:var(--good)}
.sb-rbody{display:grid;gap:10px}
.sb-who{margin:0;font-size:13px;color:var(--muted)}.sb-who b{color:var(--ink);font-size:14px}
.sb-quote{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:14px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.sb-objs{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sb-objs .eyebrow{margin-right:4px}
.sb-obj{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:3px 10px;font:600 12.5px/1.3 var(--f-body);color:var(--muted);cursor:pointer}
.sb-obj[aria-pressed="true"]{background:var(--pitched-bg);border-color:transparent;color:var(--warn)}

.sb-today{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 20px;align-items:center;padding:16px 18px}
@media (max-width:640px){.sb-today{grid-template-columns:minmax(0,1fr)}.sb-today .btn{justify-self:start}}
.sb-today h3{margin:6px 0 0;font-size:clamp(18px,2.4vw,22px);font-weight:700;letter-spacing:-.025em;line-height:1.25}
.sb-today h3 em{font-style:normal;color:var(--accent)}
.sb-todo{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.sb-todo span{font-size:12.5px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--sunk);color:var(--ink)}

.sb-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:760px){.sb-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sb-kpi{padding:12px 14px;display:grid;gap:5px;align-content:start}
.sb-kpi b{font-size:24px;font-weight:600;letter-spacing:-.03em;line-height:1.1}
.sb-kpi b small{font-size:13px;font-weight:500;color:var(--muted);letter-spacing:0;margin-left:4px}
.sb-kpi .muted{font-size:12px}
.sb-meter{display:block;height:5px;border-radius:3px;background:var(--sunk);overflow:hidden}
.sb-meter i{display:block;height:100%;background:var(--accent);border-radius:3px}

.sb-lanes{list-style:none;margin:6px 0 0;padding:0 16px 6px}
.sb-lanes li{padding:12px 0;border-top:1px solid var(--line);display:grid;gap:6px}
.sb-lanes li:first-child{border-top:0}
.sb-lh{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:14.5px}
.sb-ready{margin-left:auto;font-size:12.5px}
.sb-v{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--sunk);color:var(--muted)}
.sb-v.v-first{background:var(--pitched-bg);color:var(--warn)}.sb-v.v-good{background:var(--won-bg);color:var(--good)}.sb-v.v-change{background:#F9E3E0;color:var(--bad)}
.sb-track{position:relative;height:8px;border-radius:4px;background:var(--sunk)}
.sb-track span{position:absolute;inset:0 auto 0 0;border-radius:4px;background:var(--accent)}
.sb-track i{position:absolute;top:-3px;bottom:-3px;width:2px;border-radius:1px;background:var(--ink)}
.sb-ticks{position:relative;height:14px;font-size:11px;color:var(--fading)}
.sb-ticks span{position:absolute;white-space:nowrap}
.sb-ticks span:first-child{left:0}.sb-ticks span:nth-child(2){transform:translateX(-50%)}.sb-ticks span:last-child{right:0}
@media (max-width:520px){.sb-ticks span:nth-child(2){display:none}}
.sb-stats{display:flex;flex-wrap:wrap;gap:4px 18px;margin:0;font-size:13px;color:var(--muted)}
.sb-stats b{color:var(--ink);font-weight:600}
.sb-why{margin:0;font-size:12.5px}

.sb-fus{list-style:none;margin:8px 0 0;padding:0 8px 8px}
.sb-fus button{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;text-align:left;border:0;border-top:1px solid var(--line);background:none;padding:9px 8px;cursor:pointer;font:inherit;color:var(--ink)}
.sb-fus li:first-child button{border-top:0}
.sb-fus button:hover{background:var(--paper);border-radius:8px}
.sb-fus b{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-fus .sb-d{font-size:12px;text-align:right}
.sb-fus .muted{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-fus .pst{justify-self:end}

.sb-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:12px 16px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
@media (max-width:760px){.sb-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
.sb-steps div{padding:10px 12px;display:grid;gap:3px;box-shadow:-1px 0 0 var(--line),0 -1px 0 var(--line);min-width:0}
.sb-steps b{font-size:22px;font-weight:600;letter-spacing:-.03em}
.sb-steps .muted{font-size:11.5px}
.sb-money{color:var(--good)}
.sb-card .rep{margin:0 16px}
.sb-lt td.hit{color:var(--accent);font-weight:700}
.sb-num{font:inherit;color:inherit;background:none;border:0;padding:0 4px;margin:0 -4px;border-radius:6px;cursor:pointer;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.sb-num:hover{background:var(--paper);text-decoration-color:currentColor}
.sb-num[aria-pressed="true"]{background:var(--accent);color:#fff;text-decoration:none}
.sb-who-list{margin:12px 16px 0;border:1px solid var(--line);border-radius:12px}
.sb-who-list .sb-rtop{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 16px 0}
.sb-who-list h3{font-size:14px;font-weight:600}
.sb-who-list .sb-fus button{grid-template-columns:minmax(0,1fr) auto}
.sb-card > p.muted:last-child{padding:0 16px 14px;margin:8px 0 0;font-size:12.5px}

.sb-chart{padding:6px 12px 0}
.sb-chart svg{display:block;width:100%;height:auto}
.sb-ax{font:500 11px var(--f-body);fill:var(--fading)}
.sb-gl{stroke:var(--line);stroke-width:1}
.sb-bar{fill:#CDB3E8}.sb-bar.now{fill:var(--accent)}
.sb-rep{fill:var(--good);stroke:var(--panel);stroke-width:2}
.sb-goal{stroke:var(--ink);stroke-width:1.3;stroke-dasharray:5 4}
.sb-goalt{font:600 11px var(--f-body);fill:var(--ink)}
.sb-legend{display:flex;flex-wrap:wrap;gap:4px 16px;padding:4px 16px 14px;margin:0;font-size:12px}
.sb-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.sb-legend .b{background:#CDB3E8}.sb-legend .n{background:var(--accent)}.sb-legend .r{background:var(--good);border-radius:50%}

.sb-arms{display:grid;gap:12px;padding:12px 16px}
.sb-arm{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:4px 10px;align-items:center;font-size:13.5px}
.sb-ab{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-weight:800;font-size:11.5px;background:var(--accent-soft);color:var(--accent);grid-row:span 3}
.sb-arm .mono{font-size:12.5px;text-align:right}
.sb-arm .sb-meter,.sb-arm .muted{grid-column:2/4}
.sb-arm .muted{font-size:12px}

/* Freshness rating on a lead's emails and call script (Oct 11 2026): Fresh, Behind with what was found since and
   Rewrite now, Template, or a rewrite under way. */
.fresh{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap;border:1px solid transparent}
.fresh.is-fresh{background:var(--won-bg);color:var(--good)}
.fresh.is-behind{background:var(--pitched-bg);color:var(--warn)}
.fresh.is-template{background:var(--sunk);color:var(--muted)}
.fresh.is-busy{background:var(--accent-soft);color:var(--accent)}
.fresh-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:-4px 0 12px;padding:9px 12px;border-radius:10px;font-size:13.5px;line-height:1.45}
.fresh-strip.is-behind{background:var(--pitched-bg);color:var(--warn)}
.fresh-strip.is-template{background:var(--sunk);color:var(--muted)}
.fresh-strip.is-busy{background:var(--accent-soft);color:var(--accent)}
.fresh-strip > span{flex:1 1 220px}
.fresh-strip .chips{margin:0;align-items:center}
.fresh-err{margin:-4px 0 8px;font-size:13px;color:var(--bad)}

/* The brand form box on a lead (brandkit-ui.js) */
.bk-card{display:grid;gap:10px}
.bk-card .bk-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 12px}
.bk-card .bk-row>div:first-child{min-width:0;flex:1 1 220px}
.bk-card .bk-link{width:100%;font:12.5px/1.3 var(--f-code);padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--sunk);color:var(--muted)}
.bk-card details{border-top:1px solid var(--line);padding-top:8px}
.bk-card summary{cursor:pointer;font-weight:600}
.bk-card ul{margin:4px 0 8px;padding-left:18px}
.bk-card .bk-sw{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px;border:1px solid rgba(0,0,0,.1)}
.bk-card .bk-thread{list-style:none;padding:0;display:grid;gap:8px}
.bk-card .bk-note{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--panel)}
.bk-card .bk-note.us{background:var(--accent-soft);border-color:transparent}
.bk-card .bk-note p{margin:4px 0;white-space:pre-wrap}
.bk-card .bk-addv{display:grid;gap:8px;margin-top:6px}
.bk-card .tbtn.on{font-weight:700;color:var(--accent)}
.bk-card .crm-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bk-card .bk-steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}
.bk-card .bk-steps li{font-size:12px;border-radius:999px;padding:2px 9px;background:var(--sunk);color:var(--muted)}
.bk-card .bk-steps li.done{background:var(--won-bg);color:var(--good)}
.bk-card .bk-steps li.cur{background:var(--accent);color:#fff;font-weight:600}
.bk-card .bk-proj{display:grid;gap:6px}
.bk-card .bk-dec{list-style:none;padding:0;margin:0;font-size:13px;display:grid;gap:2px}

.ag-pays{margin:8px 0}.ag-pays ul{margin:4px 0 0;padding-left:18px;font-size:13.5px}
.st-total{display:grid;gap:2px;margin:8px 0 10px;padding:10px 12px;border-radius:12px;background:var(--sunk)}.st-total b{font-size:20px}
.st-tbl{width:100%;border-collapse:collapse;font-size:13px;margin:4px 0}.st-tbl th,.st-tbl td{text-align:left;padding:4px 6px;border-bottom:1px solid var(--line);vertical-align:top}.st-tbl thead th{font-size:11px;color:var(--muted);font-weight:600}
.st-tbl .st-cat th{padding-top:10px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:0}.st-free summary{cursor:pointer;color:var(--muted);font-size:13px;margin:6px 0}
.st-changes{margin:10px 0}.st-changes ul{list-style:none;padding:0;margin:4px 0;display:grid;gap:4px;font-size:13px}
