:root{
  --midnight:#030F2B;--white:#FFFFFF;--cream:#F7F3ED;--mist:#EEF1F6;--line:#E3E7EF;--rule:#C9CEDB;
  --slate:#55626E;--navy2:#2B364F;--side-text:#D5DAE6;
  --hot:#984126;--hot-bg:#FBE9E4;--warm:#7A5A12;--warm-bg:#F6EFDC;--done:#4A5139;--done-bg:#E9EEDB;--info:#2B364F;--info-bg:#E0E5F0;
  --serif:'Playfair Display',Georgia,serif;--sans:'Helvetica Neue',Helvetica,Arial,sans-serif;--r:4px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--white);color:var(--midnight);font-family:var(--sans);font-size:15px;line-height:1.5}
a{color:var(--midnight)}a:hover{color:var(--slate)}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--midnight);outline-offset:2px}
h1,h2,h3{margin:0;font-weight:400}
.serif{font-family:var(--serif)}
.label{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--slate);font-weight:600}
.muted{color:var(--slate)}
.sr{position:absolute;left:-9999px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--r);
  border:1px solid var(--midnight);background:var(--white);color:var(--midnight);font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;transition:opacity .15s,background-color .15s}
.btn:hover{background:var(--mist);color:var(--midnight)}
.btn.primary{background:var(--midnight);color:var(--white)}
.btn.primary:hover{opacity:.9;background:var(--midnight);color:var(--white)}
.btn.quiet{border-color:var(--rule)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.chip{min-height:40px;padding:0 14px;border-radius:var(--r);border:1px solid var(--rule);background:var(--white);cursor:pointer;font-size:13px}
.chip[aria-pressed="true"]{background:var(--midnight);border-color:var(--midnight);color:var(--white)}

/* tags */
.tag{display:inline-block;padding:3px 9px;font-size:12px;font-weight:600;border-radius:3px;background:var(--mist);color:var(--navy2)}
.tag.hot{background:var(--hot-bg);color:var(--hot)}.tag.warm{background:var(--warm-bg);color:var(--warm)}
.tag.cold{background:var(--mist);color:var(--navy2)}.tag.done{background:var(--done-bg);color:var(--done)}
.tag.info{background:var(--info-bg);color:var(--info)}.tag.unreachable{background:var(--warm-bg);color:var(--warm)}

/* inputs */
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-size:14px;font-weight:600}
.input,textarea.input,select.input{min-height:48px;padding:10px 14px;border:1px solid var(--rule);border-radius:var(--r);background:var(--white);width:100%}
textarea.input{line-height:1.6;resize:vertical}
.mono{font-family:ui-monospace,Menlo,monospace;font-size:13px}

/* shell */
.shell{display:flex;min-height:100vh;flex-wrap:wrap}
.side{flex:0 0 240px;background:var(--midnight);color:var(--white);padding:28px 20px;display:flex;flex-direction:column;gap:24px}
.side img{height:18px;width:auto;align-self:flex-start;filter:invert(1)}
.side .add{background:var(--white);color:var(--midnight);border:0;font-weight:600;width:100%}
.side .add:hover{background:var(--cream);color:var(--midnight)}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{color:var(--side-text);padding:11px 14px;border-radius:var(--r);text-decoration:none}
.nav a:hover{background:rgba(255,255,255,.08);color:var(--white)}
.nav a[aria-current="page"]{background:var(--white);color:var(--midnight);font-weight:600}
.side .who{margin-top:auto;font-size:13px;color:var(--side-text);display:flex;flex-direction:column;gap:8px}
.side .who button{background:none;border:0;color:var(--side-text);text-align:left;padding:4px 0;cursor:pointer;text-decoration:underline}
.main{flex:1 1 560px;min-width:0;padding:40px clamp(20px,4vw,48px);display:flex;flex-direction:column;gap:28px;max-width:1240px}
.head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px}
.head h1{font-family:var(--serif);font-size:clamp(32px,4vw,44px);line-height:1.1}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.panel{background:var(--cream);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.grid{display:grid;gap:16px}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.stat .n{font-family:var(--serif);font-size:36px}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:13px;font-weight:500;color:var(--slate);padding:12px 16px}
td{padding:14px 16px;border-top:1px solid var(--line);vertical-align:middle}
.scroll{overflow-x:auto}
.empty{padding:28px;text-align:center;color:var(--slate)}

/* today */
.tasks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.tasks li{display:flex;flex-wrap:wrap;align-items:center;gap:18px;padding:18px 22px;border:1px solid var(--line);border-radius:var(--r)}
.tasks .num{font-family:var(--serif);font-size:26px;width:26px}
.tasks .t{flex:1 1 300px;display:flex;flex-direction:column;gap:2px}

/* pipeline */
.board{display:grid;grid-template-columns:repeat(8,minmax(200px,1fr));gap:12px;min-width:1700px}
.col{background:var(--cream);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:10px;min-height:520px}
.col.drop{outline:2px dashed var(--midnight)}
.col h2{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;display:flex;justify-content:space-between}
.pcard{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:var(--white);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;cursor:grab}
.pcard:hover{border-color:var(--midnight)}
.pcard .d{font-weight:600}

/* prospect */
.bar{position:sticky;top:0;z-index:5;background:var(--white);border-top:1px solid var(--midnight);border-bottom:1px solid var(--line);padding:12px 0;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.steps{margin:0 0 0 auto;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.steps li{padding:6px 10px;border-radius:3px;background:var(--cream);color:var(--slate)}
.steps li.ok{background:var(--done-bg);color:var(--done)}.steps li.now{background:var(--midnight);color:var(--white)}
.cols{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.c3{flex:3 1 460px;min-width:0;display:flex;flex-direction:column;gap:20px}
.c2{flex:2 1 320px;min-width:0;display:flex;flex-direction:column;gap:20px}
.finding{display:flex;flex-wrap:wrap;gap:14px;padding:16px 0;border-top:1px solid var(--line)}
.finding .n{font-family:var(--serif);font-size:24px;width:22px}
.ledger{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.ledger div{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.score{text-align:center;min-width:92px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r)}
.score .n{font-family:var(--serif);font-size:32px}
.email{white-space:pre-wrap;font-size:14px;line-height:1.7;background:var(--cream);padding:16px;border-radius:var(--r)}

/* design */
.choice{text-align:left;min-height:92px;padding:16px 18px;border:1px solid var(--rule);border-radius:var(--r);background:var(--white);cursor:pointer}
.choice[aria-checked="true"]{border:2px solid var(--midnight)}
.swatch{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px;border:1px solid var(--line);border-radius:var(--r);background:var(--white);cursor:pointer;min-width:76px}
.swatch[aria-checked="true"]{border:2px solid var(--midnight)}
.swatch i{display:block;width:40px;height:40px;border:1px solid var(--rule)}
.check{display:flex;align-items:center;gap:12px;min-height:44px;border-bottom:1px solid var(--line)}
.check input{width:20px;height:20px;accent-color:var(--midnight)}
.ok-box{padding:12px 14px;border-radius:var(--r);background:var(--done-bg);color:var(--done);font-size:13px}
.warn-box{padding:12px 14px;border-radius:var(--r);background:var(--warm-bg);color:var(--warm);font-size:13px}
.err-box{padding:12px 14px;border-radius:var(--r);background:var(--hot-bg);color:var(--hot);font-size:13px}

/* sign in */
.auth{display:flex;flex-wrap:wrap;min-height:100vh;background:var(--cream)}
.auth .brand{flex:1 1 420px;background:var(--white);border-right:1px solid var(--line);padding:56px clamp(24px,6vw,96px);display:flex;flex-direction:column;justify-content:space-between;gap:48px}
.auth .brand img{height:18px;width:auto;align-self:flex-start}
.auth .brand h1{font-family:var(--serif);font-size:clamp(34px,4vw,52px);line-height:1.08;max-width:460px}
.auth .form{flex:1 1 420px;padding:56px clamp(24px,6vw,96px);display:flex;align-items:center;justify-content:center}
.auth form{width:100%;max-width:400px;display:flex;flex-direction:column;gap:18px}
.auth h2{font-family:var(--serif);font-size:32px}

#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--midnight);color:var(--white);padding:12px 18px;border-radius:var(--r);font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:50}
#toast.show{opacity:1}

@media (max-width:820px){
  .side{flex:1 1 100%;padding:16px 20px;gap:12px}
  .nav{flex-direction:row;flex-wrap:wrap}
  .side .who{margin-top:0;flex-direction:row;gap:16px}
  .g4,.g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ledger,.g2{grid-template-columns:1fr}
  .steps{margin-left:0}
}

/* ===================== CRM additions ===================== */
:root{--ease:cubic-bezier(.2,.7,.2,1);--overdue:#984126;--overdue-bg:#FBE9E4}
.strong{font-weight:600;text-decoration:none}
.strong:hover{text-decoration:underline}
.sub{font-size:12.5px;color:var(--slate);line-height:1.45;margin-top:2px}
.sub.overdue,.overdue{color:var(--overdue);font-weight:600}
.due{color:var(--warm);font-weight:600}
.n.overdue{color:var(--overdue)}
.sm{font-size:13px}
.num{font-family:var(--serif);font-size:18px;margin-left:6px}
.right{text-align:right}.nowrap{white-space:nowrap;flex-wrap:nowrap}
.pre{white-space:pre-wrap}
.auto{width:auto}
.btn.sm{min-height:34px;padding:0 12px;font-size:13px}
.input.sm-in{min-height:36px;padding:4px 10px;font-size:14px}
.x{background:none;border:0;color:var(--slate);font-size:20px;line-height:1;cursor:pointer;padding:4px 8px;border-radius:var(--r)}
.x:hover{background:var(--mist);color:var(--midnight)}

/* segments */
.tag.seg-d2c{background:#E0E5F0;color:#2B364F}.tag.seg-premium{background:#F6EFDC;color:#7A5A12}
.tag.seg-startup{background:#E9EEDB;color:#4A5139}.tag.seg-other{background:var(--mist);color:var(--slate)}

/* dense, scannable tables */
.tbl{font-size:14px}
.tbl th{position:sticky;top:0;background:var(--white);z-index:1;border-bottom:1px solid var(--line);padding:10px 12px;white-space:nowrap}
.tbl td{padding:10px 12px;border-top:1px solid var(--line);vertical-align:top}
.tbl tbody tr{transition:background-color .12s}
.tbl tbody tr:hover{background:var(--hover)}
.tbl tr.arch{opacity:.55}
.tbl .ck{width:36px;padding-right:0}.tbl .ck input{width:17px;height:17px;accent-color:var(--midnight)}
.sortable{cursor:pointer;user-select:none}.sortable:hover{color:var(--midnight)}
.tablewrap{max-height:calc(100vh - 290px);overflow:auto}
.cell-select{border:1px solid transparent;background:transparent;border-radius:var(--r);padding:4px 6px;font-size:13.5px;cursor:pointer;transition:border-color .15s,background-color .15s}
.cell-select:hover,.cell-select:focus{border-color:var(--rule);background:var(--white)}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px 6px}
.warnline{border-left:3px solid var(--overdue)}

/* toolbar, views, filters */
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.toolbar .search{flex:1 1 260px;min-height:44px}
.toolbar select.input{min-height:44px}
.seg{display:inline-flex;border:1px solid var(--rule);border-radius:var(--r);padding:3px;background:var(--white);gap:2px}
.seg button{border:0;background:none;padding:8px 14px;border-radius:3px;font-size:14px;cursor:pointer;color:var(--slate);transition:background-color .18s var(--ease),color .18s}
.seg button:hover{color:var(--midnight)}
.seg button[aria-selected="true"],.seg button[aria-checked="true"]{background:var(--midnight);color:var(--white)}
.views{display:flex;flex-wrap:wrap;gap:6px}
.vchip{border:1px solid var(--line);background:var(--white);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer;color:var(--navy2);transition:all .15s var(--ease)}
.vchip:hover{border-color:var(--midnight)}
.vchip[aria-pressed="true"]{background:var(--midnight);color:var(--white);border-color:var(--midnight)}
.vchip.add{border-style:dashed;color:var(--slate)}
.vchip-wrap{display:inline-flex;align-items:center}.vchip-wrap .x{font-size:16px;padding:2px 6px}
.pop{position:relative}
.pop>summary{list-style:none}.pop>summary::-webkit-details-marker{display:none}
.pop-body{position:absolute;z-index:20;top:calc(100% + 6px);left:0;min-width:300px;max-width:min(420px,90vw);background:var(--white);border:1px solid var(--line);border-radius:6px;box-shadow:0 12px 32px rgba(3,15,43,.12);padding:16px;display:flex;flex-direction:column;gap:10px;animation:pop .16s var(--ease)}
.bulkbar{position:sticky;top:8px;z-index:6;display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:var(--midnight);color:var(--white);padding:10px 14px;border-radius:6px;box-shadow:0 10px 24px rgba(3,15,43,.2);animation:rise .2s var(--ease)}
.bulkbar .btn{background:transparent;color:var(--white);border-color:rgba(255,255,255,.4)}
.bulkbar .btn:hover{background:rgba(255,255,255,.1)}
.bulkbar select.input{min-height:34px;padding:4px 10px;font-size:13px}

/* board */
.colval{font-size:12px;color:var(--slate);margin-top:-6px}
.pcard{transition:border-color .15s,box-shadow .2s var(--ease),transform .2s var(--ease)}
.pcard:hover{box-shadow:0 6px 18px rgba(3,15,43,.08);transform:translateY(-1px)}
.pcard:active{cursor:grabbing}
.pcard.moved{animation:settle .5s var(--ease)}
.col{transition:background-color .15s}
.col.drop{background:var(--fill2)}

/* charts: one hue, thin marks, labels in text colours */
.chart{display:flex;flex-direction:column;gap:6px}
.ch-t{font-family:var(--serif);font-size:20px}
.ch-s{margin:0 0 8px;color:var(--slate);font-size:13px}
.bars{display:flex;flex-direction:column;gap:8px}
.bar-row{display:grid;grid-template-columns:minmax(90px,140px) 1fr minmax(48px,auto);gap:12px;align-items:center;font-size:13.5px;padding:2px 0;border-radius:3px}
.bar-row:hover{background:var(--hover)}
.bl{color:var(--navy2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bt{height:14px;position:relative}
.bt i{position:absolute;inset:0 auto 0 0;background:var(--midnight);border-radius:0 4px 4px 0;transform-origin:left;animation:grow .6s var(--ease) both}
.bv{text-align:right;font-variant-numeric:tabular-nums;color:var(--midnight);font-weight:500}
.cols-chart{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;align-items:end;height:180px;padding-top:6px}
.cc{display:flex;flex-direction:column;align-items:center;gap:4px;height:100%}
.ct{flex:1;width:100%;max-width:34px;display:flex;align-items:flex-end;border-bottom:1px solid var(--rule)}
.ct i{display:block;width:100%;background:var(--midnight);border-radius:4px 4px 0 0;transform-origin:bottom;animation:growY .6s var(--ease) both}
.cv{font-size:12px;font-variant-numeric:tabular-nums;color:var(--navy2);min-height:16px}
.cl{font-size:11px;color:var(--slate);white-space:nowrap}
#tip{position:fixed;z-index:60;pointer-events:none;background:var(--midnight);color:var(--white);font-size:12.5px;padding:7px 10px;border-radius:4px;max-width:280px;opacity:0;transition:opacity .12s}

/* dialogs */
.dlg{border:0;border-radius:8px;padding:26px;width:min(560px,92vw);box-shadow:0 30px 80px rgba(3,15,43,.25);color:var(--midnight)}
.dlg[open]{animation:dlg .22s var(--ease)}
.dlg::backdrop{background:rgba(3,15,43,.35);backdrop-filter:blur(2px);animation:fade .2s ease}
.bare{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.chip-r{position:relative}
.chip-r input{position:absolute;opacity:0}
.chip-r span{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border:1px solid var(--rule);border-radius:var(--r);font-size:13px;cursor:pointer;transition:all .15s}
.chip-r input:checked+span{background:var(--midnight);color:var(--white);border-color:var(--midnight)}
.chip-r input:focus-visible+span{outline:2px solid var(--midnight);outline-offset:2px}

/* import */
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:150px;border:1.5px dashed var(--rule);border-radius:6px;background:var(--cream);cursor:pointer;text-align:center;padding:20px;transition:all .18s var(--ease)}
.drop:hover,.drop.on{border-color:var(--midnight);background:var(--fill2)}
.drop.on{transform:scale(1.01)}
.map select{min-height:38px;font-size:14px}

/* prospect record */
.h1-input{font-family:var(--serif);font-size:clamp(30px,4vw,42px);line-height:1.1;border:1px solid transparent;background:transparent;padding:2px 6px;margin-left:-7px;border-radius:var(--r);width:100%;transition:border-color .15s}
.h1-input:hover{border-color:var(--line)}.h1-input:focus{border-color:var(--rule);outline:none}
.tasklist,.contacts,.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.tasklist li{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.tasklist li input[type=checkbox]{width:19px;height:19px;accent-color:var(--midnight)}
.tasklist .tt{flex:1 1 180px}
.tasklist li.done .tt{text-decoration:line-through;color:var(--slate)}
.contacts li{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--line)}
.timeline li{display:grid;grid-template-columns:62px 1fr;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:14px}
.timeline li.act strong{color:var(--midnight)}

/* loading skeleton */
.skel{display:flex;flex-direction:column;gap:14px}
.skel i{display:block;height:18px;border-radius:4px;background:linear-gradient(90deg,var(--mist) 25%,#F6F8FB 50%,var(--mist) 75%);background-size:200% 100%;animation:shimmer 1.2s linear infinite}

/* motion */
.main.enter>*{animation:rise .28s var(--ease) both}
.main.enter>*:nth-child(2){animation-delay:.03s}.main.enter>*:nth-child(3){animation-delay:.06s}
.main.enter>*:nth-child(4){animation-delay:.09s}.main.enter>*:nth-child(n+5){animation-delay:.12s}
.nav a{transition:background-color .18s var(--ease),color .18s}
.card,.panel{transition:box-shadow .2s var(--ease),border-color .2s}
a.panel:hover{box-shadow:0 8px 22px rgba(3,15,43,.08)}
#toast{transform:translate(-50%,12px);transition:opacity .2s var(--ease),transform .25s var(--ease)}
#toast.show{transform:translate(-50%,0)}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes pop{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
@keyframes dlg{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes growY{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes settle{0%{box-shadow:0 0 0 3px var(--midnight);transform:scale(1.02)}100%{box-shadow:none;transform:none}}
@keyframes shimmer{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}}
@media (max-width:820px){.toolbar .search{flex-basis:100%}.tablewrap{max-height:none}.pop-body{position:fixed;left:16px;right:16px;top:auto;bottom:16px;min-width:0;max-width:none}}
[hidden]{display:none!important}
.input.auto,select.input.auto{width:auto}
.toolbar{position:relative;z-index:15}
.views{position:relative;z-index:1}
.pop.keep .pop-body{animation:none}
.meter{position:relative;height:14px;background:var(--mist);border-radius:4px}
.meter i{position:absolute;inset:0 auto 0 0;background:var(--midnight);border-radius:4px;transform-origin:left;animation:grow .6s var(--ease) both}
.meter b{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--hot);transform:translateX(-1px)}
.key{display:inline-block;width:12px;height:12px;border-radius:2px;vertical-align:-1px;margin-right:6px}
.key.solid{background:var(--midnight)}.key.tick{width:2px;background:var(--hot)}
.pop-body .btn{justify-content:flex-start;width:100%}
.bar .pop-body{left:0}
.money-in{display:inline-flex;align-items:center;border:1px solid var(--rule);border-radius:var(--r);background:var(--white);padding-left:10px}
.money-in span{font-size:14px;color:var(--slate)}
.money-in input{border:0;width:110px;min-height:34px}

/* progress feedback */
#topbar{position:fixed;top:0;left:0;right:0;height:3px;z-index:100;pointer-events:none;opacity:0;transition:opacity .25s}
#topbar.on{opacity:1;background:linear-gradient(90deg,transparent 0,var(--midnight) 30%,var(--midnight) 60%,transparent 100%);background-size:50% 100%;background-repeat:no-repeat;animation:sweep 1.1s var(--ease) infinite}
#topbar.done{animation:none;background:var(--midnight);opacity:0;transition:opacity .35s}
.btn.busy{position:relative;color:transparent!important;pointer-events:none}
.btn.busy::after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-color:var(--rule) var(--rule) var(--rule) var(--midnight);animation:spin .7s linear infinite}
.btn.primary.busy::after{border-color:rgba(255,255,255,.35) rgba(255,255,255,.35) rgba(255,255,255,.35) #fff}
.pbar{display:block;height:6px;background:var(--mist);border-radius:3px;overflow:hidden;position:relative}
.pbar i{display:block;height:100%;background:var(--midnight);border-radius:3px;transition:width .5s var(--ease);position:relative;overflow:hidden}
.pbar i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);animation:shine 1.2s linear infinite}
.pbar.indet i{width:35%;animation:indet 1.3s var(--ease) infinite}
#jobs{position:fixed;right:20px;bottom:20px;z-index:40;width:min(340px,calc(100vw - 32px));background:var(--white);border:1px solid var(--line);border-radius:8px;box-shadow:0 14px 36px rgba(3,15,43,.16);padding:14px 16px;display:flex;flex-direction:column;gap:8px;font-size:14px;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .25s var(--ease),transform .3s var(--ease)}
#jobs.show{opacity:1;transform:none;pointer-events:auto}
#jobs.ok{border-color:var(--done-bg);background:var(--done-bg);color:var(--done)}
.scanning{display:flex;flex-direction:column;gap:8px}
@keyframes sweep{from{background-position:-50% 0}to{background-position:150% 0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes shine{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@keyframes indet{0%{transform:translateX(-100%)}100%{transform:translateX(300%)}}
@media (max-width:820px){#jobs{right:16px;bottom:16px}}
.pbar.thin{height:3px}

/* sidebar stays in place and scrolls on its own when it grows */
@media (min-width:821px){
  .side{position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}
  .side::-webkit-scrollbar{width:6px}.side::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:3px}
  .shell{align-items:flex-start}
}
.settings{display:grid;grid-template-columns:220px 1fr;gap:24px;align-items:start}
.setnav{display:flex;flex-direction:column;gap:2px;position:sticky;top:16px}
.setnav a{padding:10px 14px;border-radius:var(--r);text-decoration:none;color:var(--navy2);transition:background-color .15s}
.setnav a:hover{background:var(--mist)}.setnav a[aria-current="page"]{background:var(--midnight);color:var(--white)}
.setpane{display:flex;flex-direction:column;gap:16px}
.setpane h3.label{margin-top:8px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.form-grid .span2{grid-column:1/-1}
.tplrow{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--line);border-radius:var(--r);margin-bottom:10px}
.segrow,.cfrow{margin-bottom:8px}
.conn{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 0;border-top:1px solid var(--line)}
.savebar{position:sticky;bottom:0;background:var(--white);padding:12px 0 2px;border-top:1px solid var(--line)}
code{font-family:ui-monospace,Menlo,monospace;font-size:12.5px;background:var(--cream);padding:1px 5px;border-radius:3px}
.segtab{text-decoration:none;border:0;background:none;padding:8px 14px;border-radius:3px;font-size:14px;color:var(--slate);transition:background-color .18s var(--ease),color .18s}
.segtab:hover{color:var(--midnight)}.segtab[aria-selected="true"]{background:var(--midnight);color:var(--white)}
.srcchip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:12px 14px;border:1px solid var(--rule);border-radius:6px;background:var(--white);cursor:pointer;flex:1 1 220px;transition:all .15s var(--ease)}
.srcchip span{font-size:12.5px;color:var(--slate)}.srcchip em{font-style:normal;font-size:12px;color:var(--warm)}
.srcchip[aria-pressed="true"]{border:2px solid var(--midnight);padding:11px 13px;background:var(--hover)}
.results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.res{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:6px;background:var(--white);animation:rise .25s var(--ease) both}
.res input[type=checkbox]{width:18px;height:18px;margin-top:3px;accent-color:var(--midnight)}
.res-main{flex:1 1 auto;min-width:0}
.res.in_pipeline,.res.dismissed{opacity:.6}
.res.added{border-color:var(--done-bg);background:var(--done-bg)}
.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.danger{color:var(--hot)!important;border-color:var(--hot-bg)!important}
@media (max-width:820px){.settings{grid-template-columns:1fr}.setnav{position:static;flex-direction:row;flex-wrap:wrap}.form-grid{grid-template-columns:1fr}}
.btn.danger-fill{background:var(--hot);border-color:var(--hot);color:#fff}.btn.danger-fill:hover{background:#7E3520;color:#fff}
.tag.new{background:var(--mist);color:var(--navy2);border:1px dashed var(--rule)}
.discovered{font-size:13px;color:var(--slate)}
.discovered strong{color:var(--midnight);font-weight:600}
.qlinks{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0}
.qlink{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid var(--midnight);border-radius:999px;text-decoration:none;font-size:14px;font-weight:500;background:var(--white);transition:background-color .15s,color .15s,transform .15s var(--ease)}
.qlink span{font-size:13px;width:16px;text-align:center}
.qlink:hover{background:var(--midnight);color:var(--white);transform:translateY(-1px)}
.chipl{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:4px;background:var(--cream);text-decoration:none;color:var(--navy2)}
.chipl:hover{background:var(--mist)}
.igstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.igstats div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r)}
.igstats strong{font-family:var(--serif);font-size:22px;font-weight:400}
.auditsetup{display:flex;flex-direction:column;gap:14px;padding:16px;border:1px solid var(--line);border-radius:6px;background:var(--side)}
.divider{height:1px;background:var(--line)}
details>summary{cursor:pointer}
@media (max-width:820px){.igstats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* discover v2 */
.disc{display:grid;grid-template-columns:minmax(300px,360px) 1fr;gap:20px;align-items:start}
.disc-builder{position:sticky;top:16px;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 32px);overflow-y:auto}
.disc-results{display:flex;flex-direction:column;gap:12px;min-width:0}
.disc-empty{line-height:1.7}
.seg.small button{padding:6px 12px;font-size:13px}
.form-grid.tight{gap:10px}
.chips-scroll{max-height:150px;overflow-y:auto;padding:2px}
.chip-r span{min-height:32px;font-size:12.5px}
.warnword{font-style:normal;color:var(--warm)}
.recent{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.linkbtn{background:none;border:0;padding:2px 0;text-align:left;color:var(--midnight);text-decoration:underline;cursor:pointer;font-size:13px}
.res-tools{gap:8px}
.res-head{justify-content:space-between}
.res{align-items:flex-start}
.fav{width:22px;height:22px;border-radius:4px;margin-top:1px;flex:none;object-fit:contain}
.labels{gap:6px;margin-top:6px}
select.mini,.mini{font-size:12px;min-height:28px;padding:2px 6px;border:1px solid var(--rule);border-radius:4px;background:var(--white);color:var(--navy2);text-decoration:none;cursor:pointer}
.mini-note{font-size:11.5px}
.snip summary{list-style:none;cursor:pointer}.snip summary::-webkit-details-marker{display:none}
.snip[open] summary{display:none}
.res-actions{align-self:center}
.count{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--hot);color:#fff;font-size:11px;text-align:center;margin-left:4px}

/* board v2 */
.board-tools{gap:10px;align-items:center}
.board-tools label{display:inline-flex;align-items:center;gap:6px;color:var(--slate)}
.boardwrap{padding-bottom:6px}
.board{display:grid;gap:12px;min-width:min-content;margin-bottom:12px}
.col{background:var(--cream);border-radius:6px;padding:0;display:flex;flex-direction:column;min-height:200px;max-height:calc(100vh - 260px);min-width:0}
.colhead{position:sticky;top:0;padding:12px 12px 8px;background:var(--cream);border-radius:6px 6px 0 0;z-index:1}
.colhead h2{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;margin:0}
.cnt{font-size:12px;background:var(--white);border-radius:9px;padding:1px 8px;color:var(--navy2)}
.colbody{overflow-y:auto;padding:0 10px 12px;display:flex;flex-direction:column;gap:8px;scrollbar-width:thin}
.col.collapsed{min-height:200px;padding:0}
.colbtn{writing-mode:vertical-rl;transform:rotate(180deg);display:flex;align-items:center;justify-content:space-between;gap:10px;height:100%;min-height:200px;width:100%;border:0;background:transparent;cursor:pointer;padding:12px 0;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--navy2)}
.colbtn:hover{background:var(--fill2);border-radius:6px}
.pcard{position:relative;cursor:pointer}
.pcard .qa{display:none;gap:4px;flex-wrap:wrap;margin-top:2px}
.pcard:hover .qa,.pcard:focus-within .qa{display:flex}
.pcard.dragging{opacity:.4}
.pcard .days{font-size:11px;color:var(--slate);white-space:nowrap}
.pcard .days.overdue{color:var(--hot);font-weight:600}
.pcard.compact{flex-direction:row;align-items:center;gap:8px;padding:7px 10px;min-height:0}
.pcard.compact .d{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13.5px}
.board.compact{gap:8px}.board.compact .colbody{gap:4px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--warm)}.dot.overdue{background:var(--hot)}
.more{align-self:stretch}
.lane{margin-bottom:8px}
.lanehead{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;margin:6px 0;border:1px solid var(--line);border-radius:6px;background:var(--white);cursor:pointer;font-weight:600;font-size:14px}
.lanehead:hover{border-color:var(--midnight)}
.lane .col{max-height:420px}
@media (max-width:980px){.disc{grid-template-columns:1fr}.disc-builder{position:static;max-height:none}}
.opt{display:flex;align-items:flex-start;gap:10px;padding:6px 0;cursor:pointer;font-size:14px;line-height:1.4}
.opt input{width:18px;height:18px;margin-top:1px;flex:none;accent-color:var(--midnight)}
.opt span{display:flex;flex-direction:column;gap:2px}
.opt strong{font-size:13.5px}.opt small{font-size:12.5px;color:var(--slate)}

/* place picker */
.pp{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:44px;padding:5px 8px;border:1px solid var(--rule);border-radius:var(--r);background:var(--white);cursor:text}
.pp:focus-within{border-color:var(--midnight)}
.pp-in{flex:1 1 120px;min-width:100px;border:0;outline:none;padding:6px 4px;background:transparent}
.pp.single{padding:0 8px}
.ppchip{display:inline-flex;align-items:center;gap:6px;padding:4px 4px 4px 10px;background:var(--mist);border-radius:3px;font-size:13px;animation:pop .15s var(--ease)}
.ppchip .x{min-width:24px;min-height:24px}
#dlp,#d_placep{position:relative}
.pp-list{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 4px);margin:0;padding:6px;list-style:none;background:var(--white);border:1px solid var(--line);border-radius:6px;box-shadow:0 18px 40px rgba(3,15,43,.14);max-height:340px;overflow:auto;animation:pop .14s var(--ease)}
.pp-list li[role=option]{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:4px;cursor:pointer}
.pp-list li[aria-selected=true],.pp-list li[role=option]:hover{background:var(--mist)}
.pp-flag{font-size:18px;width:24px;text-align:center;flex:none}
.pp-main{display:flex;flex-direction:column;min-width:0;flex:1}.pp-main small{color:var(--slate);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-kind{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate)}
.pp-hint{padding:10px;color:var(--slate);font-size:13px}.pp-src{padding:6px 10px 2px;color:var(--slate);font-size:11px;text-align:right}

/* website previews */
.sprev{margin:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--white);animation:rise .25s var(--ease)}
.sprev>a{display:block;aspect-ratio:16/10;background:linear-gradient(90deg,var(--mist) 25%,#f6f8fb 50%,var(--mist) 75%);background-size:200% 100%;overflow:hidden}
.sprev.gen>a{animation:shimmer 1.4s linear infinite}
.sprev>a img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;transition:transform .5s var(--ease),opacity .3s}
.sprev.gen>a img{opacity:.35}.sprev>a:hover img{transform:scale(1.02)}
.sprev.noshot>a{display:none}
.sprev figcaption{display:flex;gap:8px;align-items:center;padding:10px 12px;font-size:13px;border-top:1px solid var(--line)}
.sprev figcaption span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sprev.big{margin-top:12px}
.prevgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.prevgrid:empty{display:none}
.thumb{flex:none;width:120px;aspect-ratio:16/10;border:1px solid var(--line);border-radius:4px;overflow:hidden;padding:0;background:var(--mist);cursor:zoom-in}
.thumb img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.thumb.none{cursor:default;visibility:hidden}
.dlg.wide{width:min(980px,94vw)}
@media(max-width:700px){.thumb{display:none}}

/* prospect stepper */
.pnav{position:sticky;top:0;z-index:20;display:flex;gap:12px;align-items:center;justify-content:space-between;margin:-8px -8px 8px;padding:8px;background:var(--white);border-bottom:1px solid var(--line);box-shadow:0 6px 12px -10px rgba(3,15,43,.25)}
.pnav-pos{flex:1;text-align:center}
.pnav-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:bottom}
.pnav .btn{min-height:36px}
.pbody{display:flex;flex-direction:column;gap:inherit}
.pbody.in-next{animation:slideL .28s var(--ease)}.pbody.in-prev{animation:slideR .28s var(--ease)}
@keyframes slideL{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes slideR{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
@media(max-width:640px){.pnav-pos{display:none}.pnav-name{max-width:90px}}

/* favourite, tags, rating */
.star{flex:none;width:44px;height:44px;border:1px solid var(--rule);border-radius:50%;background:var(--white);font-size:22px;line-height:1;cursor:pointer;color:var(--slate);transition:color .15s,border-color .15s}
.star[aria-pressed=true]{color:#B8860B;border-color:#E6C77A;background:var(--amber-bg)}
.star.pop-anim{animation:starpop .3s var(--ease)}
@keyframes starpop{40%{transform:scale(1.25)}100%{transform:none}}
.fav-star{color:#B8860B}
.mine{margin-left:4px;color:var(--slate);font-size:12px}
.tagbox{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ptag{display:inline-flex;align-items:center;gap:2px;padding:2px 2px 2px 10px;border:1px solid var(--rule);border-radius:999px;font-size:13px;animation:pop .15s var(--ease)}
.ptag .x{min-width:26px;min-height:26px}
.tag-in{border:1px dashed var(--rule);border-radius:999px;padding:5px 12px;font-size:13px;width:120px;background:transparent}
.tag-in:focus{outline:none;border-style:solid;border-color:var(--midnight);width:180px}
.tagsug{border:0;background:none;color:var(--slate);font-size:12px;cursor:pointer;padding:4px 6px;border-radius:999px}.tagsug:hover{background:var(--mist);color:var(--midnight)}
.rating{display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:6px;min-width:260px}
.rating .seg button[aria-checked=true].rate-hot{background:var(--hot);color:#fff}
.rating .seg button[aria-checked=true].rate-warm{background:var(--warm);color:#fff}
.rating .seg button[aria-checked=true].rate-cold{background:var(--navy2);color:#fff}
.score-in{display:flex;align-items:baseline;gap:4px}
.score-in input{width:84px;font-family:var(--serif);font-size:30px;border:1px solid transparent;border-radius:var(--r);padding:0 6px;background:transparent;-moz-appearance:textfield}
.score-in input:hover{border-color:var(--line)}.score-in input:focus{border-color:var(--rule);outline:none}
.score-in input::-webkit-inner-spin-button{opacity:.4}
.rating-src{max-width:280px}
.linkbtn{border:0;background:none;padding:0;text-decoration:underline;cursor:pointer;color:inherit;font:inherit}

/* pitch page preview */
.pitchframe{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:6px;height:420px;cursor:zoom-in;background:#fff}
.pitchframe iframe{position:absolute;top:0;left:0;width:1100px;height:760px;border:0;transform-origin:0 0;pointer-events:none}
.pitchframe:after{content:"View full page";position:absolute;right:10px;bottom:10px;background:var(--midnight);color:var(--on-accent);font-size:12px;padding:6px 10px;border-radius:3px;opacity:0;transition:opacity .2s}
.pitchframe:hover:after{opacity:1}
.dlg.pitchdlg{width:96vw;height:94vh;max-width:none;padding:0;display:flex;flex-direction:column}
.dlg.pitchdlg[open]{display:flex}
.pitchbar{gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);justify-content:space-between}
.pitchbar strong{flex:1}
.pitchstage{flex:1;background:var(--mist);display:flex;justify-content:center;overflow:hidden}
.pitchstage iframe{width:100%;height:100%;border:0;background:#fff;transition:width .3s var(--ease);box-shadow:0 0 0 1px var(--line)}
.disc-builder .pp-list{position:static;margin-top:4px;box-shadow:none;max-height:300px}

/* Instagram profile card */
.igcard{display:flex;flex-direction:column;gap:14px}
.igtop{display:flex;gap:18px;align-items:center}
.igava{position:relative;flex:none;width:76px;height:76px;border-radius:50%;padding:3px;background:conic-gradient(from 200deg,#feda75,#fa7e1e,#d62976,#962fbf,#4f5bd5,#feda75);text-decoration:none}
.igava span,.igava img{position:absolute;inset:3px;border-radius:50%;border:3px solid var(--white)}
.igava span{display:grid;place-items:center;background:var(--mist);font-weight:600;color:var(--navy2);font-size:20px}
.igava img{width:calc(100% - 6px);height:calc(100% - 6px);object-fit:cover;z-index:1;background:var(--white)}
.igmeta{min-width:0;display:flex;flex-direction:column;gap:4px}
.ighandle{font-weight:600;font-size:17px;text-decoration:none;overflow:hidden;text-overflow:ellipsis}
.igv{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#0095f6;color:#fff;font-size:10px;font-weight:700}
.igname{font-size:14px}
.igcounts{display:flex;gap:14px;flex-wrap:wrap;font-size:14px}.igcounts b{font-weight:600}
.igbio{margin:0;font-size:14px;white-space:pre-line}
.iglink{font-size:14px;font-weight:600;color:#00376b;text-decoration:none;margin-top:-8px}
.iggrid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin:0 -2px}
.igtile{position:relative;aspect-ratio:4/5;background:var(--mist);overflow:hidden}
.igtile>button:first-child{all:unset;display:block;width:100%;height:100%;cursor:zoom-in}
.igtile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ease)}
.igtile:hover img{transform:scale(1.04)}
.igtile .noimg img{display:none}
.igreel{position:absolute;top:6px;right:8px;color:#fff;font-size:12px;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.igrm{position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(3,15,43,.6);color:#fff;cursor:pointer;opacity:0;transition:opacity .15s}
.igtile:hover .igrm,.igrm:focus-visible{opacity:1}
.igadd{gap:8px}.igadd input{flex:1 1 160px}
.dlg.igdlg{width:min(560px,94vw);padding:16px;display:flex;flex-direction:column;gap:10px}
.dlg.igdlg[open]{display:flex}
.igdlg-in{display:flex;align-items:center;gap:8px}
.igdlg-in iframe{flex:1;height:min(720px,78vh);border:1px solid var(--line);border-radius:6px;background:#fff}
.igarrow{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--rule);background:var(--white);cursor:pointer;font-size:18px}
.igarrow[disabled]{opacity:.3;cursor:default}
.igph{position:absolute;inset:0;display:grid;place-items:center;font-size:22px;color:var(--rule);z-index:0}
.igtile img{position:relative;z-index:1}

/* audit setup, preview and review */
.auditsetup{display:flex;flex-direction:column;gap:14px}
.auditsetup[data-mode="auto"] .am-custom,.auditsetup[data-mode="custom"] .am-auto{display:none}
.am-auto{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;padding:12px 14px;background:var(--mist);border-radius:6px}
.am-custom{display:flex;flex-direction:column;gap:14px;animation:rise .2s var(--ease)}
.seg.nseg button{min-width:38px}
.pv{display:flex;flex-direction:column;gap:8px;animation:rise .2s var(--ease)}
.pvrow{display:grid;grid-template-columns:120px 1fr;gap:10px;font-size:14px;padding:4px 0;border-bottom:1px solid var(--line)}
.review{display:flex;flex-direction:column;gap:14px;border-color:#E6C77A;box-shadow:0 0 0 3px var(--amber-bg)}
.rv-head{font-family:var(--serif);font-size:22px}
.rflist{list-style:none;margin:8px 0 10px;padding:0;display:flex;flex-direction:column;gap:10px}
.rf{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--white);transition:opacity .2s}
.rf.off{opacity:.45}
.rf-top{gap:8px;align-items:center}
.rf-keep{border:0;min-height:0;gap:6px}.rf-keep .n{font-family:var(--serif);font-size:18px;width:18px;text-align:center}
.rf-title{flex:1;font-weight:600}
.iconbtn{width:32px;height:32px;border:1px solid var(--rule);border-radius:4px;background:var(--white);cursor:pointer}
.rv-actions{gap:8px;padding-top:6px;border-top:1px solid var(--line)}
.fposts{display:flex;gap:6px;flex-wrap:wrap}.fposts img{width:64px;aspect-ratio:4/5;object-fit:cover;border-radius:3px;display:block}
@media(max-width:640px){.pvrow{grid-template-columns:1fr}}

.pubbar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:10px 12px;background:var(--mist);border-radius:6px}
.publink{font-weight:600;word-break:break-all}

/* ---------- record page ---------- */
.main:has(.record){max-width:1680px;padding-top:24px}
.record{display:flex;flex-direction:column;gap:14px}
.record .pbody{display:flex;flex-direction:column;gap:16px}
.rhead{position:sticky;top:var(--pn,49px);z-index:15;background:var(--white);padding:12px 0 10px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.rh-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rh-fav{width:28px;height:28px;border-radius:6px}
.rh-name{flex:1 1 260px;min-width:0;display:flex;flex-direction:column}
.rh-name .h1-input{font-size:clamp(24px,2.4vw,34px)}
.rh-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-actions{display:flex;gap:8px;align-items:center}
.rh-actions .pop-body,.ratingpop .pop-body{right:0;left:auto}
.rh-actions .pop-body .btn{justify-content:flex-start;width:100%}
.ratechip{list-style:none;cursor:pointer;padding:6px 12px;border-radius:999px;border:1px solid var(--line);font-size:13px;font-weight:600;white-space:nowrap}
.ratechip::-webkit-details-marker{display:none}
.ratechip.rate-hot{background:var(--hot-bg);border-color:var(--hot-bg);color:var(--hot)}
.ratechip.rate-warm{background:var(--warm-bg);border-color:var(--warm-bg);color:var(--warm)}
.ratechip.rate-cold{background:var(--info-bg);border-color:var(--info-bg);color:var(--info)}
.ratingpop .rating{flex-direction:column;align-items:flex-start}
.rhead.slim{padding:6px 0}
.rhead.slim .rh-sub,.rhead.slim .spath{display:none}
.rhead.slim .rh-name .h1-input{font-size:20px}
.spath{list-style:none;margin:0;padding:0;display:flex;gap:2px;flex-wrap:wrap}
.spath li{flex:1 1 0;min-width:84px}
.spath button{width:100%;font:inherit;font-size:12.5px;padding:7px 10px;border:0;background:var(--mist);color:var(--midnight);cursor:pointer;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%,10px 50%);transition:background .15s}
.spath li:first-child button{clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%);border-radius:4px 0 0 4px}
.spath button:hover{filter:brightness(.95)}
.spath button.ok{background:var(--done-bg);color:var(--done)}
.spath button.now{background:var(--midnight);color:var(--on-accent);font-weight:600}
.spath .sp-lost{flex:0 0 auto;min-width:0;margin-left:8px}
.spath .sp-lost button{clip-path:none;border-radius:4px;background:transparent;border:1px solid var(--line);color:var(--slate)}
.spath .sp-lost button.lost{background:var(--hot);color:#fff;border-color:var(--hot)}
.rgrid{display:grid;grid-template-columns:268px minmax(0,1fr) 320px;grid-template-areas:"props main mirror";gap:24px;align-items:start}
.record.nomirror .rgrid{grid-template-columns:268px minmax(0,1fr) auto}
.rprops{grid-area:props}.rmain{grid-area:main}.rmirror{grid-area:mirror}.mirror-on{grid-area:mirror}
.rprops .qlinks{gap:6px}
.rprops .qlink{min-height:30px;padding:0 10px;font-size:12.5px;gap:6px;border-color:var(--rule)}
.rprops .field{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:8px}
.rprops .field>label,.rprops .field>span.sm{font-weight:500;color:var(--slate);font-size:12.5px}
.rprops .field .input{min-height:32px;padding:4px 8px;font-size:13.5px}
.rprops .field .tagbox{grid-column:1/-1}
.rprops .field:has(.tagbox){grid-template-columns:1fr}
.rprops,.rmirror{position:sticky;top:var(--stick,180px);max-height:calc(100vh - var(--stick,180px) - 16px);overflow:auto;display:flex;flex-direction:column;gap:14px;padding-right:4px;scrollbar-width:thin}
.rprops .props{display:flex;flex-direction:column;gap:8px}
.rprops .field{gap:3px}
.rprops .pcard{border:1px solid var(--line);border-radius:6px;padding:12px;background:var(--white)}
.chipl{display:inline-block;padding:3px 8px;border:1px solid var(--line);border-radius:999px;font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rmain{min-width:0;display:flex;flex-direction:column;gap:14px}
.rtabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;position:sticky;top:var(--stick,180px);z-index:12;background:var(--white)}
.rtabs button{font:inherit;font-size:14px;background:none;border:0;border-bottom:2px solid transparent;padding:10px 14px;cursor:pointer;color:var(--slate);white-space:nowrap;display:inline-flex;gap:6px;align-items:center}
.rtabs button[aria-selected="true"]{color:var(--midnight);border-bottom-color:var(--midnight);font-weight:600}
.tb{font-size:11px;padding:1px 7px;border-radius:999px;background:var(--mist);color:var(--midnight);font-weight:600}
.tb.warm{background:var(--warm-bg);color:var(--warm)}.tb.done{background:var(--done-bg);color:var(--done)}.tb.info{background:var(--info-bg);color:var(--info)}
.rpane{display:flex;flex-direction:column;gap:16px}
.rpane.in{animation:rise .2s var(--ease) both}
.glance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:1180px){.glance{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gcard{text-align:left;font:inherit;background:var(--white);border:1px solid var(--line);border-radius:6px;padding:14px;display:flex;flex-direction:column;gap:4px;cursor:pointer;transition:border-color .15s}
.gcard:hover{border-color:var(--midnight)}
.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rm-head{justify-content:space-between}
.mini-ig{border:1px solid var(--line);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--white)}
.mi-ava{width:40px;height:40px;border-radius:50%;object-fit:cover}
.mi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.mi-grid img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.mirror-on{display:none;writing-mode:vertical-rl;font:inherit;font-size:12px;border:1px solid var(--line);background:var(--white);border-radius:6px;padding:12px 6px;cursor:pointer;position:sticky;top:var(--stick,180px)}
.record.nomirror .rmirror{display:none}
.record.nomirror .mirror-on{display:block}
.nextdock{display:none}
.cmdk{border:0;border-radius:10px;padding:0;width:min(560px,92vw);box-shadow:0 24px 60px rgba(3,15,43,.25);margin-top:12vh}
.cmdk::backdrop{background:rgba(3,15,43,.3)}
.cmdk .input{border:0;border-bottom:1px solid var(--line);border-radius:0;font-size:16px;padding:16px}
.cmdk ul{list-style:none;margin:0;padding:6px;max-height:50vh;overflow:auto}
.cmdk li{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;border-radius:6px;cursor:pointer}
.cmdk li[aria-selected="true"],.cmdk li:hover{background:var(--mist)}
@media (max-width:1600px){
  .rgrid,.record.nomirror .rgrid{grid-template-columns:268px minmax(0,1fr);grid-template-areas:"props main" "mirror main";grid-template-rows:auto 1fr}
  .rprops,.rmirror{position:static;max-height:none;overflow:visible}
  .mirror-on{display:none!important}
  .record.nomirror .rmirror{display:flex}
  #mirroroff{display:none}
}
@media (max-width:900px){
  .rgrid,.record.nomirror .rgrid{grid-template-columns:1fr;grid-template-areas:"main" "props" "mirror";grid-template-rows:auto}
  .rprops,.rmirror{position:static;max-height:none;overflow:visible}
  .rtabs{top:0}
  .rhead{position:static}
  .rh-actions .nextbtn{display:none}
  .spath{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .glance{grid-template-columns:1fr}
  .nextdock{display:block;position:sticky;bottom:0;padding:10px 0;background:linear-gradient(transparent,var(--white) 30%);z-index:14}
  .nextdock .btn{width:100%;justify-content:center}
}
.rprops .field input,.rprops .field select{font-size:13.5px}
.spath button{white-space:nowrap}
/* first look: website and Instagram sit above the tabs on every record */
.firstlook{position:relative;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:16px;align-items:start}
.firstlook.one{grid-template-columns:1fr}
.fl-site .sprev>a{aspect-ratio:16/10}
.fl-site .sprev figcaption{font-size:14px;padding:12px 14px}
.fl-ig{min-width:0}
.fl-ig>section,.fl-ig>.card{margin:0}
.fl-ig .iggrid{margin:0}
.fl-toggle{position:absolute;top:-30px;right:0;font:inherit;font-size:12px;background:none;border:0;color:var(--slate);cursor:pointer;text-decoration:underline}
.firstlook.shut{display:block;height:0;margin-bottom:6px}
.firstlook.shut>div{display:none}
.rgrid,.record .rgrid{grid-template-columns:268px minmax(0,1fr)!important;grid-template-areas:"props main"!important;grid-template-rows:auto!important}
.rmain{gap:16px;padding-top:28px}
@media (max-width:1180px){.firstlook{grid-template-columns:1fr}.fl-ig .iggrid{grid-template-columns:repeat(6,1fr)}}
@media (max-width:900px){.rgrid,.record .rgrid{grid-template-columns:1fr!important;grid-template-areas:"main" "props"!important}.fl-ig .iggrid{grid-template-columns:repeat(3,1fr)}}
/* database view */
.setnav-db{margin-top:10px;border-top:1px solid var(--line);padding-top:12px!important}
.main:has(.dbwrap){max-width:1680px}
.dbmeta code{font-size:12.5px;background:var(--mist);padding:1px 6px;border-radius:3px}
.dbwrap{display:grid;grid-template-columns:170px minmax(0,1fr) auto;gap:18px;align-items:start}
.dbtypes{display:flex;flex-direction:column;gap:2px;position:sticky;top:16px}
.dbtypes button{display:flex;justify-content:space-between;gap:10px;font:inherit;font-size:14px;text-align:left;background:none;border:0;border-radius:4px;padding:8px 10px;cursor:pointer;color:var(--midnight)}
.dbtypes button:hover{background:var(--mist)}
.dbtypes button[aria-pressed="true"]{background:var(--midnight);color:var(--white)}
.dbtypes button[aria-pressed="true"] .muted{color:var(--side-text)}
.dbmain{min-width:0;display:flex;flex-direction:column;gap:12px}
.dbbar{gap:10px}.dbbar .input{flex:1 1 260px}
.tblwrap{overflow:auto;border:1px solid var(--line);border-radius:6px;max-height:calc(100vh - 230px)}
.dbt td.mono{font-size:12px;white-space:nowrap;max-width:230px;overflow:hidden;text-overflow:ellipsis}
.dbt td{padding:8px 12px}.dbt td:nth-child(3){min-width:180px}
.dbt tbody tr{cursor:pointer}
.dbt tbody tr.on{background:var(--info-bg)}
.dbt .num{text-align:right}.nowrap{white-space:nowrap}
.dbdrawer{width:min(440px,32vw);position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto;border:1px solid var(--line);border-radius:6px;padding:14px;background:var(--white);display:flex;flex-direction:column;gap:8px}
.dbdrawer[hidden]{display:none}
.dbdh{justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:nowrap}
.dbkey{word-break:break-all;margin-top:2px}
.jsonv{margin:0;font-family:ui-monospace,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;background:var(--hover);border:1px solid var(--line);border-radius:4px;padding:12px}
.jsonv.big{max-height:calc(100vh - 230px);overflow:auto}
.jsonv .jk{color:var(--midnight);font-weight:600}.jsonv .js{color:#0b6b3a}.jsonv .jnum{color:#9a4b00}.jsonv .jb,.jsonv .jn{color:#7a3fb8;font-style:normal}
@media (max-width:1100px){.dbwrap{grid-template-columns:1fr}.dbtypes{flex-direction:row;flex-wrap:wrap;position:static}.dbdrawer{width:auto;position:static;max-height:none}}
@media (max-width:1700px){
  .dbwrap{grid-template-columns:170px minmax(0,1fr)}
  .dbdrawer{position:fixed;top:16px;right:16px;bottom:16px;width:min(480px,calc(100vw - 32px));max-height:none;z-index:40;box-shadow:0 18px 48px rgba(3,15,43,.22);animation:rise .18s var(--ease)}
}
.dbt td:nth-child(3){max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* ---------- pitch page builder ---------- */
.main:has(.builder){max-width:none;padding:0;gap:0}
.builder{display:flex;flex-direction:column;height:100vh;min-height:560px}
.bb-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 18px;border-bottom:1px solid var(--line);background:var(--white);position:sticky;top:0;z-index:5}
.bb-title{font-family:var(--serif);font-size:20px;font-weight:400}
.bb-sp{flex:1}
.bb-grid{flex:1;min-height:0;display:grid;grid-template-columns:272px minmax(0,1fr) 340px}
.bb-left,.bb-right{overflow:auto;padding:14px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:14px;scrollbar-width:thin}
.bb-right{border-right:0;border-left:1px solid var(--line)}
.bb-centre{background:var(--mist);overflow:hidden;display:flex;justify-content:center;align-items:flex-start;padding:12px}
.bb-stage{overflow:hidden;background:#fff;box-shadow:0 10px 30px rgba(3,15,43,.12);border-radius:4px;position:relative}
.bb-stage iframe{border:0;transform-origin:0 0;display:block;background:#fff}
.bb-box{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:8px}
#btree{display:flex;flex-direction:column;gap:2px}
.bt-sec{border:1px solid transparent;border-radius:6px;padding:2px 4px}
.bt-sec.sel{border-color:var(--rule);background:var(--white)}
.bt-sec.off .bt-name{opacity:.45;text-decoration:line-through}
.bt-sec.dragging{opacity:.4}.bt-sec.over{border-color:var(--midnight);border-style:dashed}
.bt-row{display:flex;align-items:center;gap:4px}
.bt-name{flex:1;min-width:0;text-align:left;font:inherit;font-size:14px;background:none;border:0;padding:7px 4px;cursor:pointer;color:var(--midnight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:4px}
.bt-name:hover{background:var(--mist)}
.bt-grip{cursor:grab;color:var(--slate);font-size:11px;letter-spacing:-2px;width:14px;text-align:center}
.bt-lock{color:var(--slate);width:14px;display:inline-grid;place-items:center}
.bt-ctl{display:flex;gap:1px;opacity:.55;transition:opacity .15s}
.bt-sec:hover .bt-ctl,.bt-sec.sel .bt-ctl,.bt-blk:hover .bt-ctl{opacity:1}
.ib{width:24px;height:24px;border:0;background:none;border-radius:4px;cursor:pointer;color:var(--midnight);font-size:12px;display:inline-grid;place-items:center}
.ib:hover:not(:disabled){background:var(--mist)}.ib:disabled{opacity:.25;cursor:default}
.bt-blocks{list-style:none;margin:0 0 4px 18px;padding:0;display:flex;flex-direction:column;gap:1px}
.bt-blk{display:flex;align-items:center;gap:2px;border-radius:4px}
.bt-blk.sel{background:var(--info-bg)}
.bt-blk .bt-name{font-size:13px}
.bt-addwrap{padding:0 4px 0 22px}
.bt-add summary{list-style:none;cursor:pointer;padding:4px 0;font-size:12.5px}
.bt-add summary::-webkit-details-marker{display:none}
.bt-add .pop-body .btn{justify-content:flex-start;width:100%;text-align:left}
.bt-pick{white-space:normal;line-height:1.35}
.bp-h h2{font-size:24px;margin:2px 0 6px}
.bf{display:flex;flex-direction:column;gap:5px;padding:10px 0;border-bottom:1px solid var(--line)}
.bf-h{display:flex;align-items:center;gap:8px}
.bf-h label{font-size:13px;font-weight:600;flex:1}
.badge{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:999px;font-weight:600}
.badge.auto{background:var(--info-bg);color:var(--info)}.badge.edited{background:var(--done-bg);color:var(--done)}.badge.hidden{background:var(--mist);color:var(--slate)}
.wc{font-size:11.5px;color:var(--slate);font-variant-numeric:tabular-nums}.wc.over{color:var(--hot);font-weight:700}
.bf textarea{resize:vertical;font-size:14px;line-height:1.5}
.bf-a{display:flex;gap:12px}
.bf-auto{font-style:italic}
.imglist{display:flex;flex-direction:column;gap:6px}
.imgrow{display:flex;gap:6px;align-items:center}.imgrow img{width:40px;height:40px;object-fit:cover;border-radius:3px;background:var(--mist);flex:none}.imgrow .input{flex:1}
.qpicks{display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.chk{display:flex;gap:8px;align-items:center;font-size:13.5px}
.bgl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.bgl li{font-size:12.5px;padding-left:14px;position:relative;line-height:1.4}
.bgl li:before{content:"";position:absolute;left:0;top:6px;width:7px;height:7px;border-radius:50%}
.bgl li.bad:before{background:var(--hot)}.bgl li.warnl:before{background:var(--warm)}
.bgl .linkbtn{text-align:left;font-size:12.5px;text-decoration:none;color:var(--midnight)}
.bgl .linkbtn:hover{text-decoration:underline}
@media (max-width:1100px){
  .builder{height:auto}
  .bb-grid{grid-template-columns:1fr}
  .bb-left,.bb-right{border:0;border-bottom:1px solid var(--line);max-height:none}
  .bb-centre{min-height:70vh}
}
.shell:has(.builder) .side{display:none}

/* ===================== sidebar: collapsible ===================== */
.side{transition:flex-basis .2s var(--ease),padding .2s var(--ease)}
.side-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px}
.side-k{display:none;font-family:var(--serif);font-size:22px;line-height:1;color:var(--white)}
.sidetoggle{background:none;border:1px solid rgba(255,255,255,.18);color:var(--side-text);width:32px;height:32px;border-radius:var(--r);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto}
.sidetoggle:hover{background:rgba(255,255,255,.08);color:var(--white)}
.sidetoggle svg{transition:transform .2s var(--ease)}
.side .ni{display:inline-flex;flex:0 0 auto}
.side .nav a,.side .add{display:flex;align-items:center;gap:12px}
.side .add{justify-content:center}
.side .who button{display:flex;align-items:center;gap:8px}
.side .who .ni{display:none}
.shell.side-min .side{flex-basis:72px;padding:24px 12px;gap:20px}
.shell.side-min .side .nl,.shell.side-min .side-logo{display:none}
.shell.side-min .side-k{display:block}
.shell.side-min .side-top{flex-direction:column;gap:14px}
.shell.side-min .sidetoggle svg{transform:rotate(180deg)}
.shell.side-min .side .nav a{justify-content:center;padding:11px 0}
.shell.side-min .side .add{padding:0;min-height:44px}
.shell.side-min .side .who{align-items:center}
.shell.side-min .side .who .ni{display:inline-flex}
.shell.side-min .side .who button{text-decoration:none;padding:8px}
@media (max-width:820px){
  .side-top{width:100%}
  .shell.side-min .side{flex-basis:100%;padding:12px 20px}
  .shell.side-min .side-top{flex-direction:row}
  .shell.side-min .side .nav,.shell.side-min .side .add,.shell.side-min .side .who{display:none}
  .shell.side-min .side-logo{display:block}.shell.side-min .side-k{display:none}
  .shell.side-min .sidetoggle svg{transform:rotate(-90deg)}
  .sidetoggle svg{transform:rotate(90deg)}
}

/* ===================== plan chip (Pipeline, record, Today) ===================== */
.planchip{list-style:none;display:inline-flex;align-items:center;gap:4px;min-height:30px;padding:0 10px;border-radius:999px;border:1px dashed var(--rule);font-size:12px;font-weight:600;color:var(--slate);cursor:pointer;white-space:nowrap;background:var(--white)}
.planchip::-webkit-details-marker{display:none}
.planchip:hover{border-color:var(--midnight);color:var(--midnight)}
.planchip.is-today{border:1px solid var(--midnight);background:var(--midnight);color:var(--white)}
.planchip.is-set{border:1px solid var(--rule);color:var(--navy2);background:var(--mist)}
.planchip.is-late{border:1px solid var(--warm);color:var(--warm);background:var(--warm-bg)}
.planchip.is-done{border:1px solid var(--done-bg);color:var(--done);background:var(--done-bg)}
.rh-actions .planpop .planchip{min-height:44px;padding:0 16px;font-size:14px;border-radius:var(--r)}
.planmenu{display:flex;flex-direction:column;gap:6px;min-width:220px}
.planmenu .btn{justify-content:space-between;min-height:38px}
.planmenu .btn[aria-pressed="true"]{background:var(--mist);border-color:var(--midnight)}
.planpick{display:flex;flex-direction:column;gap:4px;margin-top:2px}
.btn.danger{color:var(--hot)}

/* ===================== Today ===================== */
.today-head h1{font-size:clamp(30px,3.4vw,40px)}
.weekstrip{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap}
.weekstrip>.iconbtn{align-self:center}
.wday{flex:1 1 84px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--white);cursor:pointer;text-align:left;transition:border-color .15s,background-color .15s}
.wday:hover{border-color:var(--rule)}
.wday .wd{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--slate);font-weight:600}
.wday .dn{font-family:var(--serif);font-size:22px;line-height:1.1}
.wday .wc{font-size:12px;color:var(--slate);font-weight:600}.wday .wc.over{color:var(--warm)}
.wday .wbar{width:100%;height:3px;background:var(--mist);border-radius:2px;overflow:hidden;margin-top:4px}
.wday .wbar i{display:block;height:100%;background:var(--midnight)}
.wday.past{opacity:.6}
.wday.is-today .wd{color:var(--midnight)}
.wday.is-today::after{content:"Today";font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--midnight)}
.wday[aria-current="date"]{border-color:var(--midnight);box-shadow:inset 0 0 0 1px var(--midnight);opacity:1}
.today-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}
.dayplan{display:flex;flex-direction:column;gap:16px;padding:24px}
.dp-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.dp-head h2{font-size:28px;line-height:1.1}
.dp-prog{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:180px}
.dp-prog .meter{display:block;width:180px;height:6px;background:var(--mist);border-radius:3px;overflow:hidden}
.dp-prog .meter i{display:block;height:100%;background:var(--done);transition:width .3s var(--ease)}
.planlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.pr{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--white);transition:border-color .15s,box-shadow .15s,opacity .15s}
.pr:hover{border-color:var(--rule)}
.pr.dragging{opacity:.5;box-shadow:0 6px 20px rgba(3,15,43,.12)}
.pr[draggable="true"]{cursor:grab}
.pr.hero{padding:20px 18px;border-color:var(--midnight);box-shadow:0 1px 0 var(--midnight)}
.pr.hero .pname{font-family:var(--serif);font-size:24px}
.pr.hero .label{display:block;margin-bottom:2px}
.pr.done{background:var(--cream)}
.pr.done .pname{text-decoration:line-through;color:var(--slate)}
.pr .pname{font-weight:600;text-decoration:none;font-size:16px}
.pmeta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px;color:var(--navy2);margin-top:2px}
.pmeta .carry{color:var(--warm);font-weight:600;font-size:12px}
.pscore{display:flex;align-items:center;gap:8px}
.pscore .num{font-family:var(--serif);font-size:20px;min-width:26px;text-align:right}
.pctl{display:flex;align-items:center;gap:2px}
.pctl .iconbtn{width:32px;height:32px}
.pctl .iconbtn.x:hover{color:var(--hot)}
.pctl .planpop>summary{list-style:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.pctl .planpop>summary::-webkit-details-marker{display:none}
.pctl .pop-body{right:0;left:auto}
.pcheck{position:relative;display:inline-flex;width:26px;height:26px;cursor:pointer}
.pcheck input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.pcheck span{width:26px;height:26px;border:1.5px solid var(--rule);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;transition:all .15s}
.pcheck:hover span{border-color:var(--midnight)}
.pcheck input:checked+span{background:var(--done);border-color:var(--done)}
.pcheck input:checked+span::after{content:"";width:6px;height:11px;border:solid var(--white);border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}
.pcheck input:focus-visible+span{outline:2px solid var(--midnight);outline-offset:2px}
.dp-empty{text-align:center;padding:32px 16px;display:flex;flex-direction:column;gap:14px;border:1px dashed var(--rule);border-radius:var(--r)}
.dp-empty p{margin:0;font-size:22px}
.dp-empty.ok{border-color:var(--done-bg);background:var(--done-bg)}
.dp-empty.ok .btn{align-self:center}
.donelist summary{cursor:pointer;padding:4px 0;color:var(--slate)}
.donelist .planlist{margin-top:8px}
.today-side{display:flex;flex-direction:column;gap:16px}
.side-card{display:flex;flex-direction:column;gap:12px;padding:18px}
.sc-head{display:flex;justify-content:space-between;align-items:center}
.minilist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.minilist li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.minilist li:first-child{border-top:0;padding-top:0}
.minilist li>div{display:flex;flex-direction:column;min-width:0}
.minilist .sub{font-size:12px;color:var(--slate);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.minilist .btn.sm{min-height:32px;padding:0 10px}
.glances{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.glance{display:flex;flex-direction:column;gap:2px;padding:12px;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;transition:border-color .15s}
.glance:hover{border-color:var(--rule)}
.glance .n{font-family:var(--serif);font-size:24px;line-height:1.1}
.glance .l{font-size:12px;color:var(--slate)}
@media (max-width:1100px){.today-grid{grid-template-columns:1fr}}
@media (max-width:640px){
  .pr{grid-template-columns:auto minmax(0,1fr) auto;row-gap:10px}
  .pr .pscore{grid-column:3;grid-row:1}
  .pr .pgo{grid-column:2/4}
  .pr .pctl{grid-column:2/4;justify-content:flex-end}
  .wday{flex-basis:calc(25% - 8px)}
}

/* ===================== add-prospects picker ===================== */
.pickdlg{width:min(720px,calc(100vw - 32px))}
.pickform{display:flex;flex-direction:column;gap:14px}
.pklist{list-style:none;margin:0;padding:0;max-height:min(52vh,520px);overflow-y:auto;border:1px solid var(--line);border-radius:var(--r)}
.pklist li{border-top:1px solid var(--line)}.pklist li:first-child{border-top:0}
.pkrow{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer}
.pkrow:hover{background:var(--mist)}
.pkrow.on{background:var(--cream)}
.pkrow input{width:18px;height:18px;accent-color:var(--midnight);flex:0 0 auto}
.pkname{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}
.pkname .sub{font-size:12px;color:var(--slate)}
.pkrow .num{font-family:var(--serif);font-size:18px;min-width:26px;text-align:right}
.minilist .btn{white-space:nowrap;flex:0 0 auto}
.shell.side-min .side{width:72px;min-width:0;overflow-x:hidden}

/* ===================== campaigns ===================== */
.cchip{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 10px;border-radius:999px;background:color-mix(in srgb,var(--cc) 14%,var(--tint-base));color:var(--midnight);font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap;max-width:220px}
.cchip i{width:8px;height:8px;border-radius:50%;background:var(--cc);flex:0 0 auto}
.cchip:hover{background:color-mix(in srgb,var(--cc) 24%,var(--tint-base));color:var(--midnight)}
.cchip .cx{border:0;background:none;padding:0 0 0 2px;font-size:14px;line-height:1;color:var(--slate);cursor:pointer}
.cchip .cx:hover{color:var(--hot)}
.cchips{display:inline-flex;flex-wrap:wrap;gap:6px}
.cdot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px;flex:0 0 auto;vertical-align:middle}
.rh-camps{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.rh-camps .origin{margin-left:auto}
.campop .pop-body{min-width:280px}
.campmenu{display:flex;flex-direction:column;gap:8px}
.camplist{display:flex;flex-direction:column;gap:2px;max-height:280px;overflow-y:auto}
.camplist .check{display:flex;align-items:center;gap:8px;border:0;min-height:36px;padding:0 4px;border-radius:4px}
.camplist .check:hover{background:var(--mist)}
.cswitch select{min-width:220px;font-weight:600}
.cstat{display:inline-block;padding:3px 9px;border-radius:3px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;background:var(--mist);color:var(--navy2)}
.cstat.active{background:var(--done-bg);color:var(--done)}.cstat.planned{background:var(--info-bg);color:var(--info)}
/* library */
.csec{display:flex;flex-direction:column;gap:12px}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.cgrid.small{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.ccard{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:6px;overflow:hidden;text-decoration:none;background:var(--white);transition:border-color .15s,box-shadow .15s,transform .15s}
.ccard:hover{border-color:var(--rule);box-shadow:0 8px 24px rgba(3,15,43,.08);transform:translateY(-1px);color:var(--midnight)}
.ccover{position:relative;height:150px;background:var(--mist);overflow:hidden}
.ccard.small .ccover{height:96px}
.ccover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ccover .cstat{position:absolute;top:10px;left:10px}
.cbody{display:flex;flex-direction:column;gap:6px;padding:14px 16px 16px}
.cname{font-family:var(--serif);font-size:20px;font-weight:400;line-height:1.2}
.ccard.small .cname{font-size:16px}
.cgoal{display:flex;flex-direction:column;gap:4px}
.cgoal .meter{display:block;height:6px;background:var(--mist);border-radius:3px;overflow:hidden}
.cgoal .meter i{position:static;display:block;height:100%;background:var(--midnight);border-radius:3px;animation:none}
.cgoal.sm{font-size:12px}.cgoal.sm .meter{height:4px}
/* timeline */
.ctl{position:relative;padding:18px 18px 22px;overflow-x:auto}
.ctl-months{position:relative;height:22px;border-bottom:1px solid var(--line);min-width:640px}
.ctl-months span{position:absolute;top:0;font-size:12px;color:var(--slate);padding-left:6px;border-left:1px solid var(--line);height:22px}
.ctl-rows{position:relative;min-width:640px;padding-top:10px;display:flex;flex-direction:column;gap:8px}
.ctl-row{position:relative;height:34px}
.ctl-bar{position:absolute;top:0;height:34px;border-radius:4px;background:color-mix(in srgb,var(--cc) 22%,var(--tint-base));border-left:4px solid var(--cc);display:flex;align-items:center;padding:0 10px;text-decoration:none;overflow:hidden}
.ctl-bar span{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ctl-bar.done{opacity:.6}
.ctl-now{position:absolute;top:0;bottom:-8px;width:2px;background:var(--hot)}
/* campaign page */
.cpage{display:flex;flex-direction:column;gap:18px}
.ccover.big{height:220px;border-radius:6px}
.coverpop{position:absolute;right:14px;bottom:14px}
.coverpop .pop-body{right:0;left:auto;top:auto;bottom:calc(100% + 6px)}
.coverpop>summary{list-style:none;background:rgba(255,255,255,.9)}
.chead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.chead-l{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}
.chead .h1-input{font-size:clamp(28px,3.2vw,38px)}
.cdate{display:inline-flex;align-items:center;gap:6px;color:var(--slate)}
.cdate input{border:1px solid var(--rule);border-radius:4px;padding:4px 6px;font:inherit;font-size:13px}
.swatches{gap:6px}
.sw input{position:absolute;opacity:0}.sw span{display:block;width:26px;height:26px;border-radius:50%;cursor:pointer;border:2px solid #fff;box-shadow:0 0 0 1px var(--rule)}
.sw input:checked+span{box-shadow:0 0 0 2px var(--midnight)}
.swatches.mini .swb{width:18px;height:18px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--rule);cursor:pointer;padding:0}
.swatches.mini .swb[aria-pressed="true"]{box-shadow:0 0 0 2px var(--midnight)}
.ctabs{border-bottom:1px solid var(--line)}
.cov{display:flex;flex-direction:column;gap:16px}
.cov-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cov-grid .card{display:flex;flex-direction:column;gap:10px}
.cmood .moodgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.moodgrid figure{position:relative;margin:0;aspect-ratio:4/5;border-radius:4px;overflow:hidden;background:var(--mist)}
.moodgrid figure img{width:100%;height:100%;object-fit:cover}
.moodgrid figure.broken::after{content:"Image unavailable";position:absolute;inset:0;display:grid;place-items:center;font-size:12px;color:var(--slate)}
.moodgrid .cx{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(255,255,255,.9);cursor:pointer}
.moodadd{grid-column:span 2;display:flex;flex-direction:column;gap:6px;justify-content:center;padding:8px;border:1px dashed var(--rule);border-radius:4px}
.goalrow{display:grid;grid-template-columns:auto 90px auto;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.goalrow:first-child{border-top:0}
.goalrow .cgoal{grid-column:1/-1}
.cboard{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:12px;align-items:start;min-width:min-content}
.ccol{display:flex;flex-direction:column;gap:8px;background:var(--cream);border:1px solid var(--line);border-radius:6px;padding:10px}
.ccol-h{display:flex;justify-content:space-between;align-items:center;padding:2px 4px}
.ccardp{display:flex;flex-direction:column;gap:6px;background:var(--white);border:1px solid var(--line);border-radius:4px;padding:10px 12px}
.ccardp .cx{border:0;background:none;cursor:pointer;color:var(--slate);font-size:16px;line-height:1}
.ccardp .cx:hover{color:var(--hot)}
.ccardp .num{font-family:var(--serif);font-size:16px}
.cfunnel{display:flex;align-items:stretch;gap:6px;flex-wrap:wrap}
.cf{flex:1 1 90px;display:flex;flex-direction:column;gap:2px;padding:12px;border:1px solid var(--line);border-radius:4px}
.cf .n{font-size:26px;line-height:1.1}.cf .rate{font-size:12px;font-weight:700;color:var(--done)}
.cf-arrow{align-self:center;color:var(--rule)}
@media (max-width:900px){.cov-grid{grid-template-columns:1fr}.cmood .moodgrid{grid-template-columns:repeat(3,minmax(0,1fr))}.chead{flex-direction:column}}
.ctabs{position:static}
.ctabs a{font-size:14px;border-bottom:2px solid transparent;padding:10px 14px;color:var(--slate);white-space:nowrap;display:inline-flex;gap:6px;align-items:center;text-decoration:none}
.ctabs a:hover{color:var(--midnight)}
.ctabs a[aria-selected="true"]{color:var(--midnight);border-bottom-color:var(--midnight);font-weight:600}
.goalrow select{max-width:220px}

/* ===================== campaign briefs, sequence, fit, and the app-wide fixes ===================== */
/* brief editor (New campaign dialog and the Brief tab) */
.ncform{display:flex;flex-direction:column;gap:16px}
.ncsteps{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:10px}
.ncsteps button{border:0;background:none;padding:6px 10px;border-radius:var(--r);font-size:13px;color:var(--slate);cursor:pointer}
.ncsteps button.done{color:var(--midnight)}
.ncsteps button[aria-current="step"]{background:var(--midnight);color:var(--white);font-weight:600}
.ncbody{display:flex;flex-direction:column;gap:14px;max-height:min(62vh,640px);overflow:auto;padding-right:4px}
.bfield{display:flex;flex-direction:column;gap:6px;min-width:0}
.bfield>.sub{font-weight:600;color:var(--navy2);margin:0}
.brief{display:flex;flex-direction:column;gap:16px}
.bsec{display:flex;flex-direction:column;gap:14px;scroll-margin-top:16px}
.chips-scroll .chip{min-height:32px;font-size:12.5px;padding:0 11px}
.chipadd{width:110px;min-height:32px;border-style:dashed}
.objrow{display:grid;grid-template-columns:1fr 2fr auto;gap:8px;align-items:start;margin-bottom:8px}
.seqrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.seqrow label{display:flex;align-items:center;gap:6px}
.seqn{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--midnight);color:var(--white);font-size:12px;font-weight:600;flex:0 0 auto}
@media (max-width:820px){.objrow{grid-template-columns:1fr}}

/* campaign page */
.kpis{display:flex;gap:18px}.kpis>div{display:flex;flex-direction:column}.kpis .n{font-size:30px;line-height:1}
.lead{font-size:20px;line-height:1.35;margin:4px 0 10px}
.pace{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--mist);color:var(--navy2);white-space:nowrap}
.pace.ahead{background:var(--done-bg);color:var(--done)}.pace.behind{background:var(--hot-bg);color:var(--hot)}
.tb.hot{background:var(--hot-bg);color:var(--hot)}
.fit{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 7px;border-radius:3px;font-variant-numeric:tabular-nums}
.fit.hi{background:var(--done-bg);color:var(--done)}.fit.mid{background:var(--warm-bg);color:var(--warm)}.fit.lo{background:var(--mist);color:var(--slate)}
.flag{display:inline-block;font-size:11.5px;font-weight:600;color:var(--hot);background:var(--hot-bg);padding:2px 7px;border-radius:3px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
.ctbl td{vertical-align:middle}.ctbl .ck{width:34px}
.ctbl .sub{display:block}
.seqwrap{display:flex;flex-direction:column;gap:16px}
.seqsteps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.seqsteps li{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.seqsteps li:last-child{border-bottom:0}
.seqlist{padding:0 16px 8px}
.seqdue{display:grid!important;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center}
.seqdue.late .sub.nowrap{color:var(--overdue);font-weight:600}
@media (max-width:820px){.seqdue{grid-template-columns:auto 1fr}.seqdue>.row{grid-column:1/-1}}
.nexttouch{color:var(--navy2);font-weight:600}
.late{color:var(--overdue);font-weight:600}

/* record: working campaign */
.workunder{display:inline-flex;align-items:center;gap:6px}
.rcamp{border:1px solid var(--line);border-left:3px solid var(--cc,var(--midnight));border-radius:6px;background:var(--white);margin-top:10px}
.rcamp>summary{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px 14px;cursor:pointer;list-style:none}
.rcamp>summary::-webkit-details-marker{display:none}
.rcamp-b{display:flex;flex-direction:column;gap:12px;padding:0 14px 14px}
.rcamp ol.tight{margin:4px 0 0;padding-left:18px}
.obj{border-top:1px solid var(--line);padding:6px 0}.obj summary{cursor:pointer;font-size:14px}.obj p{margin:6px 0 0;font-size:14px;color:var(--navy2)}
.sub.warn{color:var(--warm);font-weight:600}

/* pipeline: campaign in the title, filters folded into one menu */
.ptitle{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.titlesel{appearance:none;-webkit-appearance:none;border:0;border-bottom:2px solid var(--cc,var(--rule));background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23030F2B' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 4px center;padding:2px 24px 2px 2px;font:inherit;font-size:20px;color:var(--midnight);cursor:pointer;max-width:100%}
.titlesel:focus-visible{outline:2px solid var(--midnight);outline-offset:3px}
.filterpop{min-width:min(520px,90vw)}
/* the plan chip only shows on rows that have a plan, or on hover and focus */
.tbl tr .planchip:not(.is-set):not(.is-today):not(.is-late):not(.is-done){opacity:0;transition:opacity .15s}
.tbl tr:hover .planchip,.tbl tr:focus-within .planchip,.planpop[open] .planchip{opacity:1!important}
@media (hover:none){.tbl tr .planchip{opacity:1!important}}

/* find for a campaign */
.findcamp{gap:10px;align-items:center;padding:10px 14px;border:1px solid var(--line);border-left:3px solid var(--cc,var(--rule));border-radius:6px;background:var(--white)}

/* background jobs: a small docked pill instead of a card over the content */
#jobs{right:16px;bottom:16px;width:min(300px,calc(100vw - 32px));padding:10px 14px;gap:6px;font-size:13px;box-shadow:0 8px 22px rgba(3,15,43,.12)}
#jobs .muted.sm{display:none}
#jobs:hover .muted.sm{display:inline}
.main{padding-bottom:96px}

.ctabs{overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap;max-width:100%}
.ctabs::-webkit-scrollbar{display:none}
.ctabs a{white-space:nowrap}
.today-side .tag{white-space:nowrap}
.bulkbar select,.bulkbar input{color:var(--midnight);background-color:var(--white)}
.seqdue>.row{flex-wrap:nowrap}
.brief{max-width:920px}
.briefnav{position:sticky;top:0;z-index:5;display:flex;gap:4px;flex-wrap:wrap;background:var(--white);padding:8px 0;margin-bottom:-4px}
.briefnav a{padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--white);font-size:13px;text-decoration:none;color:var(--midnight)}
.bsec select.sm-in,.ncbody select.sm-in{max-width:420px}
@media (max-width:760px){#jobs .pbar+.sm{display:none}}
@media (max-width:820px){.pop-body{bottom:84px;max-height:calc(100vh - 120px);overflow:auto}}

/* ===================== Pipeline redesign: monday-style groups, stat strip, side panel ===================== */
.phead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.pstats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:8px;background:var(--white);overflow:hidden}
.pstat{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 16px;border:0;border-right:1px solid var(--line);background:none;cursor:pointer;text-align:left;font:inherit;color:var(--midnight);transition:background-color .15s}
.pstat:last-child{border-right:0}
.pstat:hover{background:var(--mist)}
.pstat[aria-pressed="true"]{background:var(--midnight);color:var(--white)}
.pstat[aria-pressed="true"] .l{color:var(--side-text)}
.pstat .l{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate)}
.pstat .v{font-family:var(--serif);font-size:26px;line-height:1.1;font-variant-numeric:tabular-nums}
.pbar-views{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;border-bottom:1px solid var(--line);margin-bottom:-12px}
.vtabs{display:flex;gap:2px}
.vtabs button{display:inline-flex;align-items:center;gap:8px;border:0;background:none;padding:10px 14px;font:inherit;font-size:14px;color:var(--slate);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.vtabs button span{font-size:15px;opacity:.7}
.vtabs button:hover{color:var(--midnight)}
.vtabs button[aria-selected="true"]{color:var(--midnight);font-weight:600;border-bottom-color:var(--midnight)}
.viewmenu{margin-bottom:6px}
.viewmenu .pop-body{left:auto;right:0}
.vmenu{min-width:260px;gap:2px!important}
.vitem{display:block;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:var(--r);font:inherit;font-size:14px;cursor:pointer;color:var(--midnight)}
.vitem:hover{background:var(--mist)}
.vitem[aria-pressed="true"]{background:var(--mist);font-weight:600}
.vitem-wrap{display:flex;align-items:center}
.ptools{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ptools .search{flex:0 1 320px;min-width:180px}
.ptools .cnt{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:4px;border-radius:999px;background:var(--midnight);color:var(--white);font-size:11.5px}
.tsel{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--slate)}
.pcount{margin-left:auto;font-size:13px;color:var(--slate);font-variant-numeric:tabular-nums}
.fchips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:-12px}
.fchip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;border-radius:999px;background:var(--info-bg);color:var(--info);font-size:12.5px;font-weight:600}
.fchip .x{border:0;background:none;cursor:pointer;color:inherit;font-size:14px;line-height:1;padding:0 4px}

/* grouped table */
.tgroups{display:flex;flex-direction:column;gap:22px}
.tgroup{--gc:#6A788C}
.tg-head{display:flex;align-items:center;gap:10px;border:0;background:none;padding:2px 0 8px;cursor:pointer;font:inherit;color:var(--gc)}
.tg-caret{font-size:12px;width:12px}
.tg-name{font-weight:700;font-size:16px}
.tg-count{font-size:12.5px;color:var(--slate);background:var(--mist);border-radius:999px;padding:1px 8px}
.tg-sum{font-size:13px;color:var(--navy2);font-variant-numeric:tabular-nums}
.tgroup .tablewrap{border:1px solid var(--line);border-left:4px solid var(--gc);border-radius:6px;background:var(--white);padding:0}
.gtbl{width:100%}
.gtbl tbody tr{cursor:pointer;transition:background-color .12s}
.gtbl tbody tr:hover{background:var(--hover)}
.gtbl tbody tr:has(input[data-sel]:checked){background:var(--info-bg)}
.gtbl tbody tr.peeked{background:var(--mist);box-shadow:inset 3px 0 0 var(--midnight)}
.gtbl td{vertical-align:middle}
.gtbl tfoot td{border-top:1px solid var(--line);padding:8px 12px;background:transparent;font-size:13px}
.gtbl tfoot .sub{display:inline;margin-left:6px}
.tierbar{display:flex;height:8px;width:110px;border-radius:999px;overflow:hidden;background:var(--mist)}
.tierbar i{display:block;height:100%}
.tgroup.off .tg-head{opacity:.75}
.spill{appearance:none;-webkit-appearance:none;border:0;border-radius:4px;background:var(--sc);color:#fff;font:inherit;font-size:12.5px;font-weight:600;padding:6px 26px 6px 12px;min-width:118px;text-align:left;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center}
.spill:focus-visible{outline:2px solid var(--midnight);outline-offset:2px}
.spill option{background:var(--white);color:var(--midnight)}
.c-stage{width:1%}

/* floating bulk bar */
.bulkbar.floating{position:fixed;left:50%;top:auto;bottom:22px;transform:translateX(-50%);z-index:45;max-width:min(1100px,calc(100vw - 32px));border-radius:10px;padding:10px 12px 10px 16px;box-shadow:0 18px 44px rgba(3,15,43,.3)}
.bulkbar .bcount span{display:inline-grid;place-items:center;min-width:26px;height:26px;border-radius:6px;background:var(--white);color:var(--midnight);margin-right:6px}
.bulkbar .bclose{color:var(--white);order:99}

/* side panel */
.peek{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);z-index:40;background:var(--white);border-left:1px solid var(--line);box-shadow:-24px 0 60px rgba(3,15,43,.12);padding:24px;display:flex;flex-direction:column;gap:16px;overflow:auto;transform:translateX(104%);transition:transform .25s var(--ease)}
.peek.open{transform:none}
.pk-head{display:flex;justify-content:space-between;gap:12px}
.pk-head h2{font-size:28px;line-height:1.15;margin:2px 0 0}
.pk-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pk-box{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px solid var(--line);border-left:3px solid var(--cc,var(--midnight));border-radius:6px}
.pk-facts{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.pk-fact{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;align-items:start}
.pk-fact .sub{margin:0}
.main:has(~ .peek.open),body:has(.peek.open) .main{padding-right:calc(clamp(20px,4vw,48px) + 0px)}

/* board columns get their stage colour */
.col{border-top:3px solid var(--sc,var(--rule))}
.colhead h2{color:var(--sc,var(--midnight))}

@media (max-width:1100px){.pstats{grid-template-columns:repeat(3,minmax(0,1fr))}.pstat:nth-child(3){border-right:0}.pstat:nth-child(-n+3){border-bottom:1px solid var(--line)}}
@media (max-width:820px){
  .pstats{grid-template-columns:repeat(2,minmax(0,1fr))}.pstat{border-bottom:1px solid var(--line)}.pstat:nth-child(odd){border-right:1px solid var(--line)}.pstat:nth-child(even){border-right:0}.pstat .v{font-size:21px}
  .vtabs{overflow-x:auto;scrollbar-width:none}.vtabs button{padding:10px 10px;white-space:nowrap}
  .pbar-views{flex-wrap:wrap}
  .ptools .search{flex-basis:100%}
  .pcount{margin-left:0}
  .peek{top:auto;height:86vh;width:100vw;border-left:0;border-top:1px solid var(--line);border-radius:14px 14px 0 0;transform:translateY(104%);bottom:0;padding-bottom:96px}
  .bulkbar.floating{bottom:84px;overflow-x:auto;flex-wrap:nowrap}
}

/* ===================== Today redesign: scoreboard and one work queue ===================== */
.scoreboard{display:flex;gap:20px;align-items:stretch;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:16px 18px;background:var(--white)}
.sb-main{display:flex;gap:14px;align-items:center;min-width:240px}
.sb-ring{--p:0;width:64px;height:64px;border-radius:50%;background:conic-gradient(var(--midnight) calc(var(--p) * 1%),var(--mist) 0);display:grid;place-items:center;flex:0 0 auto}
.sb-ring span{width:50px;height:50px;border-radius:50%;background:var(--white);display:flex;align-items:baseline;justify-content:center;padding-top:13px;box-sizing:border-box;font-family:var(--serif);font-size:20px;font-variant-numeric:tabular-nums}
.sb-ring small{font-size:12px;color:var(--slate)}
.sb-main .sub{display:block}
.sb-tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;flex:1;min-width:320px}
.sb-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:1px solid var(--line);border-radius:8px;background:var(--white);padding:10px 12px;cursor:pointer;font:inherit;color:var(--midnight);text-align:left}
.sb-tile .n{font-family:var(--serif);font-size:24px;line-height:1}
.sb-tile .l{font-size:12px;color:var(--slate)}
.sb-tile.zero{opacity:.55}
.sb-tile.overdue:not(.zero){border-color:var(--hot-bg);background:var(--hot-bg);color:var(--hot)}
.sb-tile[aria-pressed="true"]{border-color:var(--midnight);box-shadow:inset 0 0 0 1px var(--midnight)}
.weekstrip.compact .wday{padding:8px 10px;min-height:0}
.weekstrip.compact .wd{font-size:12px}
.queue{display:flex;flex-direction:column;gap:10px;padding:20px}
.q-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.q-head h2{font-size:26px;margin:0}
.qtabs{display:flex;gap:4px;flex-wrap:wrap}
.qtabs button{border:1px solid var(--line);background:var(--white);border-radius:999px;padding:5px 11px;font:inherit;font-size:12.5px;cursor:pointer;color:var(--navy2)}
.qtabs button span{color:var(--slate);margin-left:2px}
.qtabs button[aria-selected="true"]{background:var(--midnight);border-color:var(--midnight);color:var(--white)}
.qtabs button[aria-selected="true"] span{color:var(--side-text)}
.qsec{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);margin:10px 0 0}
.qsec.late{color:var(--hot)}
.qlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.qrow{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:12px 4px;border-bottom:1px solid var(--line);transition:opacity .25s,transform .25s}
.qrow.late{box-shadow:inset 3px 0 0 var(--hot)}
.qrow.leaving{opacity:.3;transform:translateX(8px)}
.qmain{min-width:0;display:flex;flex-direction:column;gap:6px}
.qwhy{display:flex;flex-wrap:wrap;gap:6px}
.qr{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:2px 8px;border-radius:4px;background:var(--mist);color:var(--navy2)}
.qr i{font-style:normal;opacity:.8}
.qr.q-touch{background:var(--info-bg);color:var(--info)}
.qr.q-review,.qr.q-prompt{background:var(--warm-bg);color:var(--warm)}
.qr.q-reply,.qr.q-signal{background:var(--done-bg);color:var(--done)}
.qr.late{background:var(--hot-bg);color:var(--hot)}
.qside{display:flex;align-items:center;gap:8px}
.qlater .pop-body{left:auto;right:0}
.sdot{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--slate)}
.sdot::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--sc)}
.campmini{display:flex;flex-direction:column;gap:4px;padding:10px 0 10px 12px;border-left:3px solid var(--cc);text-decoration:none;color:var(--midnight);margin-top:6px}
.campmini:hover strong{text-decoration:underline}
.campmini .meter{height:5px;margin-top:4px}
@media (max-width:1100px){.sb-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:820px){.qrow{grid-template-columns:auto 1fr}.qside{grid-column:2;flex-wrap:wrap}.sb-tiles{min-width:0;grid-template-columns:repeat(3,minmax(0,1fr))}.scoreboard{padding:14px}}
.phead,.pstats,.pbar-views,.ptools,.fchips{position:relative;z-index:6}.pbar-views{z-index:7}
.phead h1{font-family:var(--serif);font-size:clamp(32px,4vw,44px);line-height:1.1;margin:0;font-weight:400}
.gtbl .c-company{min-width:190px}
@media (max-width:820px){.phead>.row>.btn:not(.primary),.phead>.row>details{display:none}}

/* campaign pipeline tab */
#ctab.cpipe{display:flex;flex-direction:column;gap:20px}
.cp-actions{gap:8px;flex-wrap:wrap}
.getstarted{display:flex;flex-direction:column;gap:18px;padding:24px}
.getstarted h2{font-size:28px;margin:2px 0 0}
.gs-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.gs-opt{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--white);text-align:left;font:inherit;color:var(--midnight);cursor:pointer;text-decoration:none;transition:border-color .15s,box-shadow .2s}
.gs-opt:hover:not([disabled]){border-color:var(--midnight);box-shadow:0 8px 20px rgba(3,15,43,.08)}
.gs-opt[disabled]{opacity:.5;cursor:default}
.gs-n{display:inline-grid;place-items:center;min-width:36px;height:36px;padding:0 8px;border-radius:8px;background:var(--mist);font-family:var(--serif);font-size:20px}
.gs-steps{list-style:none;margin:0;padding:14px 0 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px 22px;font-size:14px}
.gs-steps li{display:flex;align-items:center;gap:8px;color:var(--slate)}
.gs-steps li.ok{color:var(--midnight)}
.gs-dot{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--rule);font-size:11px}
.gs-steps li.ok .gs-dot{background:var(--done);border-color:var(--done);color:var(--white)}
.gs-banner{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;text-decoration:none;color:var(--midnight);border-left:3px solid var(--midnight)}
.gs-banner strong{display:block;font-size:17px;margin-top:2px}
.bulkbar .bsep{width:1px;align-self:stretch;background:rgba(255,255,255,.25)}
@media (max-width:1000px){.gs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.gs-grid{grid-template-columns:1fr}}
.gtbl .c-touch{min-width:190px}.gtbl .c-next{min-width:150px}[hidden]{display:none!important}

/* ==============================================================================================   LIFE OS DESIGN LAYER
   One house with Life OS (life/app.css): Apple and Notion calm, a KDYLLON accent through Playfair page
   titles, letterspaced labels and midnight navy. Old token names map onto the new palette so every
   earlier rule picks up the same colours.
   ===================================================================================================== */
:root{
  --ink:#1D1D1F;--ink2:#37352F;--muted:#787774;--faint:#A5A29C;
  --bg:#FFFFFF;--side:#F7F7F5;--fill:#F1F1EF;--fill2:#EBEBE8;--hover:rgba(55,53,47,.06);--line:rgba(55,53,47,.09);--line2:rgba(55,53,47,.16);
  --accent:#030F2B;--accent-soft:#E8EBF2;
  --green:#34A853;--red:#D44C3A;--red-bg:#FCEDEA;--amber:#B7791F;--amber-bg:#FBF3DB;
  --sans:-apple-system,BlinkMacSystemFont,'SF Pro Text','Inter','Helvetica Neue',Helvetica,Arial,sans-serif;
  --display:-apple-system,BlinkMacSystemFont,'SF Pro Display','Inter','Helvetica Neue',sans-serif;
  --r:10px;--r-sm:7px;--shadow:0 1px 2px rgba(15,15,15,.04),0 2px 8px rgba(15,15,15,.04);--pop:0 12px 40px rgba(15,15,15,.14),0 2px 6px rgba(15,15,15,.06);
  --ease:cubic-bezier(.2,.7,.2,1);--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);
  /* old names, new values */
  --midnight:#030F2B;--white:#FFFFFF;--cream:var(--side);--mist:var(--fill);--rule:var(--line2);
  --slate:var(--muted);--navy2:var(--ink2);--side-text:var(--muted);
  --hot:var(--red);--hot-bg:var(--red-bg);--warm:var(--amber);--warm-bg:var(--amber-bg);--done:#1E7B38;--done-bg:#E6F4EA;
  --info:var(--accent);--info-bg:var(--accent-soft);--overdue:var(--red);--overdue-bg:var(--red-bg);
}
html,body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
body{overscroll-behavior-y:none}
a{color:inherit}a:hover{color:inherit}
:focus-visible{outline:2px solid rgba(3,15,43,.45);outline-offset:2px;border-radius:6px}
h1,h2,h3{font-weight:600}
.serif{font-family:var(--display);font-weight:600;letter-spacing:-.01em}
h1.serif,.head h1,.phead h1,.h1-input.serif,.cpage .h1-input,.pk-head h2,.dlg h2.serif,dialog h2.serif,.auth h1{font-family:var(--serif);font-weight:400;letter-spacing:-.005em}
.label,.sc-head .label,h2.label,.qsec,.pstat .l{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:600}
.sub,.muted,.sm.muted{color:var(--muted)}
.num,td.right,.tnum,.v,.n{font-variant-numeric:tabular-nums}

/* buttons: borderless fill pills, primary midnight, ghost quiet */
.btn{min-height:36px;padding:0 14px;border-radius:var(--r-sm);border:0;background:var(--fill);color:var(--ink);font-size:14px;font-weight:500;gap:7px;box-shadow:none;transition:background-color .15s,opacity .15s,transform .1s}
.btn:hover{background:var(--fill2);color:var(--ink)}
.btn:active{transform:scale(.98)}
.btn.primary{background:var(--accent);color:var(--on-accent)}
.btn.primary:hover{background:var(--accent-hover);color:var(--on-accent);opacity:1}
.btn.quiet{background:transparent;color:var(--muted);border:0}
.btn.quiet:hover{background:var(--hover);color:var(--ink)}
.btn.sm{min-height:30px;padding:0 10px;font-size:13px}
.btn.lg{min-height:44px;padding:0 18px;font-size:15px}
.btn.danger,.btn.quiet.danger{color:var(--red)}
.btn.danger-fill{background:var(--red);color:#fff}
.linkbtn{color:var(--muted);text-decoration:none}.linkbtn:hover{color:var(--ink)}
.iconbtn{border:0;background:transparent;color:var(--faint);border-radius:6px}
.iconbtn:hover{background:var(--hover);color:var(--ink)}

/* segmented controls (iOS) for every tab row and view switcher */
.seg,.vtabs,.rtabs,.ctabs,.qtabs{display:inline-flex;background:var(--fill);border:0;border-radius:9px;padding:2px;gap:2px;width:auto;max-width:100%;overflow-x:auto;scrollbar-width:none}
.seg::-webkit-scrollbar,.rtabs::-webkit-scrollbar{display:none}
.seg button,.seg a,.vtabs button,.rtabs a,.rtabs button,.qtabs button{border:0;background:transparent;padding:5px 12px;border-radius:7px;font-size:13px;font-weight:500;color:var(--ink2);cursor:pointer;white-space:nowrap;text-decoration:none;margin:0;box-shadow:none;min-height:0;line-height:20px}
.seg button:hover,.seg a:hover,.vtabs button:hover,.rtabs a:hover,.qtabs button:hover{color:var(--ink);background:rgba(255,255,255,.5)}
.seg [aria-selected="true"],.seg [aria-pressed="true"],.seg [aria-checked="true"],.vtabs [aria-selected="true"],.rtabs [aria-selected="true"],.rtabs [aria-current="page"],.qtabs [aria-selected="true"]{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.1),0 0 0 .5px rgba(0,0,0,.04);font-weight:500}
.qtabs [aria-selected="true"] span,.qtabs button span{color:var(--faint)}
.vtabs button span{opacity:.6}
.seg.small button{padding:3px 10px;font-size:12.5px}
.pbar-views{border-bottom:0;margin-bottom:0;align-items:center}
.ctabs{margin:4px 0 0}

/* tags: 5px radius, coloured dot for coloured tags, mono outline for domains */
.tag{display:inline-flex;align-items:center;gap:6px;padding:1px 8px;font-size:12px;font-weight:500;border-radius:5px;background:var(--fill);color:var(--ink2);line-height:20px;border:0;white-space:nowrap}
.tag.hot,.tag.warm,.tag.done,.tag.info,.tag.cold,.tag.unreachable,.tag.new{padding-left:7px}
.tag.hot::before,.tag.warm::before,.tag.done::before,.tag.info::before,.tag.cold::before,.tag.unreachable::before{content:"";width:8px;height:8px;border-radius:3px;background:currentColor;flex:0 0 8px}
.tag.hot{background:var(--red-bg);color:var(--red)}
.tag.warm,.tag.unreachable{background:var(--amber-bg);color:var(--amber)}
.tag.done{background:var(--done-bg);color:var(--done)}
.tag.info{background:var(--accent-soft);color:var(--accent)}
.tag.cold{background:var(--fill);color:var(--ink2)}
.tag.new{background:transparent;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line2);border:0}
.tag.mono,.mono-tag{font-family:ui-monospace,'SF Mono',Menlo,monospace;font-size:11.5px;background:transparent;box-shadow:inset 0 0 0 1px var(--line2);color:var(--muted)}
.tag[class*="seg-"]{background:var(--fill);color:var(--ink2)}
.tag.seg-d2c::before,.tag.seg-premium::before,.tag.seg-startup::before{content:"";width:8px;height:8px;border-radius:3px;flex:0 0 8px}
.tag.seg-d2c::before{background:#4F7F94}.tag.seg-premium::before{background:#9A7B35}.tag.seg-startup::before{background:#5E7F5D}
.cchip{border-radius:5px;background:var(--fill);color:var(--ink2);font-weight:500;line-height:20px}
.fchip{border-radius:5px;background:var(--accent-soft);color:var(--accent);font-weight:500}

/* inputs: borderless fill, white with a ring on focus, 16px text so iOS doesn't zoom */
.input,textarea.input,select.input,.input.sm-in,input.sm-in,select.sm-in{min-height:40px;padding:8px 12px;border:0;border-radius:var(--r-sm);background:var(--fill);font-size:16px;color:var(--ink);box-shadow:none;outline:none;transition:box-shadow .15s,background-color .15s}
.input.sm-in,input.sm-in,select.sm-in{min-height:32px;padding:4px 10px;font-size:14px}
.input:focus,textarea.input:focus,select.input:focus,.sm-in:focus{background:var(--card);box-shadow:0 0 0 1px var(--line2),0 0 0 4px rgba(3,15,43,.08);border:0}
.input::placeholder{color:var(--faint)}
select.input{padding-right:30px}
.field label,.field>.sm,.bfield>.sub{font-size:13px;font-weight:500;color:var(--muted)}
.chip{min-height:32px;padding:0 12px;border-radius:var(--r-sm);border:0;background:var(--fill);color:var(--ink2);font-size:13px;font-weight:500}
.chip:hover{background:var(--fill2)}
.chip[aria-pressed="true"]{background:var(--accent);color:var(--on-accent)}
.chip-r span{border:0;background:var(--fill);border-radius:var(--r-sm);font-weight:500;color:var(--ink2)}
.chip-r input:checked+span{background:var(--accent);color:var(--on-accent)}
.check input[type=checkbox],input[type=checkbox]{accent-color:var(--accent)}

/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--shadow)}
.card h2:not(.label):not(.serif),.card .ch-t{font-family:var(--display);font-size:17px;font-weight:600;letter-spacing:-.01em}
.card-head{border-bottom:1px solid var(--line)}
.warn-box{background:var(--amber-bg);color:var(--amber);border:0;border-radius:var(--r-sm)}
.err-box{background:var(--red-bg);color:var(--red);border:0;border-radius:var(--r-sm)}
.empty,.card.empty{color:var(--muted)}

/* shell: Notion sidebar */
.shell{display:flex;min-height:100vh;min-height:100dvh;flex-wrap:nowrap}
.side{position:sticky;top:0;height:100vh;height:100dvh;flex:0 0 244px;background:var(--side);color:var(--ink2);border-right:1px solid var(--line);padding:14px 10px;display:flex;flex-direction:column;gap:18px;overflow-y:auto;scrollbar-color:var(--line2) transparent}
.side::-webkit-scrollbar-thumb{background:var(--line2)}
.side-top{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:36px}
.ws{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:6px;min-width:0}
.ws .av{width:24px;height:24px;flex:0 0 24px;border-radius:6px;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:14px}
.ws b{display:block;font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap}
.ws span{display:block;font-size:10.5px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase;line-height:1.3}
.sidetoggle{border:0;background:transparent;color:var(--faint);width:28px;height:28px;border-radius:6px}
.sidetoggle:hover{background:var(--hover);color:var(--ink)}
.side-add{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:6px;color:var(--ink2);text-decoration:none;font-size:14px;font-weight:500}
.side-add:hover{background:var(--hover);color:var(--ink)}
.side-add .ni{color:var(--muted)}
.side .nav{display:flex;flex-direction:column;gap:1px}
.side .nav a{display:flex;align-items:center;gap:10px;color:var(--ink2);padding:6px 10px;border-radius:6px;text-decoration:none;font-size:14px;font-weight:500}
.side .nav a .ni{color:var(--muted)}
.side .nav a:hover{background:var(--hover);color:var(--ink2)}
.side .nav a[aria-current="page"]{background:var(--fill2);color:var(--ink);font-weight:500}
.side .nav a[aria-current="page"] .ni{color:var(--ink)}
.side .sec{display:flex;flex-direction:column;gap:1px}
.side .sec .label{padding:4px 10px 6px;font-size:10.5px}
.side .sec a{display:flex;align-items:center;gap:10px;padding:5px 10px;border-radius:6px;text-decoration:none;font-size:13.5px;color:var(--ink2)}
.side .sec a:hover{background:var(--hover)}
.side .sec i{width:10px;height:10px;border-radius:3px;flex:0 0 10px}
.side .sec small{margin-left:auto;color:var(--faint);font-variant-numeric:tabular-nums;display:inline-flex}
.side .sec .ell{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side .who{margin-top:auto;font-size:12px;color:var(--muted);display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px}
.side .who .nl{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side .who button{background:none;border:0;color:var(--muted);padding:2px 0;cursor:pointer;font-size:12px;text-decoration:none;white-space:nowrap}
.side .who button:hover{color:var(--ink)}
.shell.side-min .side{flex-basis:64px;padding:14px 8px;gap:14px}
.shell.side-min .side .nl,.shell.side-min .side .sec{display:none}
.shell.side-min .side-top{flex-direction:column;gap:10px}
.shell.side-min .ws{padding:6px}
.shell.side-min .side .nav a,.shell.side-min .side-add{justify-content:center;padding:8px 0}
.shell.side-min .side .who{justify-content:center}
.shell.side-min .side .who .ni{display:inline-flex}
.main{flex:1 1 auto;min-width:0;padding:44px clamp(20px,5vw,72px) 72px;display:flex;flex-direction:column;gap:26px;max-width:1240px;margin:0 auto;width:100%}
.main:has(.record),.main:has(.dbwrap){max-width:1240px}
.tabbar{display:none}
.head,.phead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px}
.head>div:first-child,.phead>.pt{display:flex;flex-direction:column;gap:6px}
.head h1,.phead h1{font-family:var(--serif);font-weight:400;font-size:clamp(32px,3.6vw,42px);line-height:1.08;letter-spacing:-.005em;margin:0}
.ptitle{flex-direction:row!important;align-items:baseline!important;flex-wrap:wrap;gap:12px!important}
.head .row,.head-actions{gap:8px}
.titlesel{font-family:var(--sans);font-size:15px;font-weight:500;color:var(--ink2);border-bottom:0;background-color:var(--fill);border-radius:var(--r-sm);padding:6px 30px 6px 12px;background-position:right 10px center}
.titlesel:hover{background-color:var(--fill2)}

/* dialogs: Apple sheets */
.dlg,dialog.dlg{border:0;border-radius:14px;padding:22px;box-shadow:var(--pop);color:var(--ink)}
.dlg::backdrop,dialog::backdrop{background:rgba(15,15,15,.28);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.dlg[open]{animation:sheetpop .22s var(--ease)}
@keyframes sheetpop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.dlg h2,.dlg h2.serif{font-family:var(--serif);font-weight:400;font-size:24px;letter-spacing:0}

/* toast: dark frosted pill */
#toast{background:rgba(29,29,31,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;padding:10px 16px;border-radius:12px;font-size:14px;box-shadow:var(--pop);bottom:calc(24px + var(--safe-b));display:flex;gap:14px;align-items:center;max-width:calc(100% - 32px);z-index:60}
#toast button{background:none;border:0;color:#9FB4FF;cursor:pointer;padding:0;font-weight:600}

/* loading: 2px midnight shimmer at the top, skeleton blocks for content */
.loading{height:2px;position:fixed;top:0;left:0;right:0;z-index:70;background:linear-gradient(90deg,transparent,var(--accent),transparent);background-size:40% 100%;background-repeat:no-repeat;animation:loadbar 1s linear infinite;opacity:0;transition:opacity .2s;pointer-events:none}
.loading.on{opacity:1}
@keyframes loadbar{from{background-position:-40% 0}to{background-position:140% 0}}
.skel i{border-radius:8px;background:linear-gradient(90deg,var(--fill),#f8f8f6,var(--fill));background-size:200% 100%}
.pbar{background:var(--fill);border-radius:3px}.pbar i{background:var(--accent)}
.meter{background:var(--fill);border-radius:3px}.meter i{background:var(--accent);border-radius:3px}

/* stats and KPI tiles: --side, no border */
.pstats{display:grid;gap:10px;border:0;background:transparent;border-radius:0;overflow:visible}
.pstat,.glance,.stat,.card.stat,.sb-tile,.kpis>div,.cf{background:var(--side);border:0!important;border-radius:var(--r);padding:14px 16px;box-shadow:none}
.pstat:hover,.glance:hover,.sb-tile:hover{background:var(--fill)}
.pstat[aria-pressed="true"],.sb-tile[aria-pressed="true"]{background:var(--accent);color:var(--on-accent);box-shadow:none}
.pstat[aria-pressed="true"] .l,.sb-tile[aria-pressed="true"] .l{color:rgba(255,255,255,.7)}
.pstat .v,.glance .n,.stat .n,.card.stat .n,.sb-tile .n,.kpis .n,.cf .n,.tile .n{font-family:var(--display);font-weight:600;letter-spacing:-.01em;font-size:26px;line-height:1.15;font-variant-numeric:tabular-nums}
.pstat .l,.glance .l,.sb-tile .l,.card.stat .muted{font-size:12px;letter-spacing:0;text-transform:none;font-weight:400;color:var(--muted)}
.glances{gap:8px}
.sb-tile.zero{opacity:.6}
.sb-tile.overdue:not(.zero){background:var(--red-bg);color:var(--red)}

/* pipeline table: Notion database */
.tgroups{gap:28px}
.tg-head{color:var(--ink2);padding:0 2px 8px;gap:8px}
.tg-name{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;padding:1px 9px;border-radius:5px;line-height:22px;color:var(--gc);background:color-mix(in srgb,var(--gc) 13%,var(--tint-base))}
.tg-caret{color:var(--faint)}
.tg-count{background:transparent;color:var(--faint);padding:0;font-size:12.5px}
.tg-sum{color:var(--muted);font-size:12.5px}
.tgroup .tablewrap{border:0;border-left:0;border-radius:0;background:transparent;box-shadow:none;border-top:1px solid var(--line)}
.tbl{border-collapse:collapse}
.tbl th{position:sticky;top:0;background:var(--card);font-size:12px;font-weight:500;color:var(--muted);border-bottom:1px solid var(--line);padding:8px 10px;text-transform:none;letter-spacing:0}
.tbl td{border-top:0;border-bottom:1px solid var(--line);padding:8px 10px;height:44px;vertical-align:middle}
.tbl tbody tr:hover{background:var(--hover)}
.tbl tbody tr:nth-child(even){background:transparent}
.gtbl tbody tr:hover{background:var(--hover)}
.gtbl tbody tr.peeked{background:var(--accent-soft);box-shadow:none}
.gtbl tbody tr:has(input[data-sel]:checked){background:var(--accent-soft)}
.gtbl tfoot td{background:transparent;border-bottom:0;color:var(--muted);height:36px}
.tbl .c-value,.tbl .c-score,.tbl td.right,.tbl th[data-sort="value"],.tbl th[data-sort="score"]{text-align:right;font-variant-numeric:tabular-nums}
.tbl .c-score>*{vertical-align:middle}
.tbl a.strong{color:var(--ink);font-weight:500}
.spill{border-radius:5px;font-size:12px;font-weight:500;padding:3px 24px 3px 9px;min-width:0;line-height:20px;background-color:color-mix(in srgb,var(--sc) 15%,var(--tint-base));color:color-mix(in srgb,var(--sc) 80%,var(--tint-ink));
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23787774' stroke-width='1.5'/%3E%3C/svg%3E");background-position:right 8px center}
.cell-select{border:0;background:transparent}
.bulkbar,.bulkbar.floating{background:var(--card);color:var(--ink);box-shadow:var(--pop);border:1px solid var(--line);border-radius:12px}
.bulkbar .bcount span{background:var(--accent);color:var(--on-accent)}
.bulkbar .bclose{color:var(--faint)}
.bulkbar .bsep{background:var(--line2)}
.bulkbar select,.bulkbar input{background-color:var(--fill);color:var(--ink)}
.fav-star{color:var(--amber)}

/* board: no column backgrounds, coloured pill heads, white cards that lift */
.col{background:transparent;border-top:0;border-radius:0}
.colhead{background:var(--card);padding:4px 4px 10px}
.colhead h2{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none;padding:1px 9px;border-radius:5px;line-height:22px;color:color-mix(in srgb,var(--sc,#787774) 85%,var(--tint-ink));background:color-mix(in srgb,var(--sc,#787774) 14%,var(--tint-base))}
.colhead .cnt{background:transparent;color:var(--faint);font-weight:500}
.colbody{gap:8px}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:12px 13px;transition:box-shadow .15s,transform .15s}
.pcard:hover{box-shadow:var(--pop);border-color:var(--line)}
.pcard .d{font-weight:500;font-size:14px}
.col.over{background:var(--hover)}

/* side panel */
.peek{background:var(--card);border-left:1px solid var(--line);box-shadow:var(--pop)}
.pk-head h2{font-size:30px}
.pk-fact{border-bottom:1px solid var(--line);font-size:14px}
.pk-fact .sub{color:var(--muted)}
.pk-box{border:1px solid var(--line);border-left:3px solid var(--cc,var(--accent));border-radius:var(--r-sm);background:var(--side)}

/* Today: Life OS structure */
.weekstrip{display:grid!important;grid-template-columns:auto repeat(7,minmax(0,1fr)) auto;gap:6px;align-items:center}
.weekstrip .wday{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border:0;border-radius:var(--r);background:transparent;cursor:pointer;min-width:0;min-height:0;box-shadow:none;transition:background-color .15s}
.weekstrip .wday:hover{background:var(--hover)}
.weekstrip .wday[aria-current="date"]{background:var(--fill);border:0;box-shadow:none}
.wday .dow{font-size:11.5px;color:var(--muted);font-weight:500;letter-spacing:0;text-transform:none}
.wday .dn{font-family:var(--display);font-size:17px;font-weight:600;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--ink)}
.wday.is-today .dn{background:var(--red);color:#fff}
.wday.past .dn{color:var(--muted)}
.wday.is-today.past .dn{color:#fff}
.wday .ct{font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}
.wday .wbar,.wday .wc,.wday .wd{display:none}
.ring{width:22px;height:22px}.ring circle{fill:none;stroke-width:3}.ring .bg{stroke:var(--fill2)}
.ring .fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .5s var(--ease)}
.ring.full .fg{stroke:var(--green)}
.scoreboard{border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);background:var(--card);padding:16px 18px}
.sb-main .ring{width:44px;height:44px}.sb-main .ring circle{stroke-width:4}
.sb-main b{font-family:var(--display);font-size:22px;font-weight:600;letter-spacing:-.01em;display:block;line-height:1.1}
.sb-main .sub{font-size:13px}
.sb-ring{display:none}
.queue{padding:20px;gap:4px}
.q-head h2{font-family:var(--display);font-size:17px;font-weight:600;letter-spacing:-.01em}
.qsec{padding:14px 4px 8px;margin:0}
.qsec.late{color:var(--red)}
.qlist{gap:0}
.qrow{grid-template-columns:28px minmax(0,1fr) auto;gap:2px 12px;align-items:start;padding:11px 8px 11px 6px;border-bottom:0;border-radius:8px;position:relative;transition:background-color .12s,opacity .25s,transform .25s}
.qrow+.qrow::after{content:"";position:absolute;left:46px;right:8px;top:0;height:1px;background:var(--line)}
.qrow:hover{background:var(--hover)}
.qrow:hover::after,.qrow:hover+.qrow::after{opacity:0}
.qrow.late{box-shadow:none}
.qrow.upnext{background:var(--accent-soft)}
.qrow.upnext::after,.qrow.upnext+.qrow::after{opacity:0}
.qrow .eyebrow{display:none;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--accent);margin-bottom:1px}
.qrow.upnext .eyebrow{display:block}
.qmain{gap:3px}
.qmain .pname{font-family:var(--sans);font-weight:500;font-size:15px;line-height:1.35;color:var(--ink);text-decoration:none}
.qmain .pname:hover{text-decoration:underline}
.qwhy{gap:4px 10px;font-size:12.5px;color:var(--muted)}
.qr{background:transparent;padding:0;font-size:12.5px;font-weight:400;color:var(--muted);gap:5px}
.qr i{width:8px;height:8px;border-radius:3px;background:var(--c,var(--faint));font-size:0;opacity:1}
.qr.q-touch{--c:#4F7F94;color:var(--muted);background:transparent}.qr.q-follow_up{--c:#9A7B35}.qr.q-review,.qr.q-prompt{--c:var(--amber);color:var(--muted);background:transparent}
.qr.q-reply,.qr.q-signal{--c:var(--green);color:var(--muted);background:transparent}.qr.q-planned{--c:var(--faint)}
.qr.late{color:var(--red);background:transparent;font-weight:500}
.qside{opacity:.0;transition:opacity .15s}
.qrow:hover .qside,.qrow:focus-within .qside,.qrow.upnext .qside{opacity:1}
.qside .tag{display:none}
.sdot{font-size:12.5px}
.sdot::before{border-radius:3px}
/* Reminders check: 22px circle that fills with the row colour and shows a white tick */
.pcheck{position:relative;display:inline-flex;width:22px;height:22px;margin-top:1px;cursor:pointer}
.pcheck input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:1;width:100%;height:100%}
.pcheck span{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line2);background:var(--card);display:flex;align-items:center;justify-content:center;transition:background-color .18s,border-color .18s,transform .15s}
.pcheck:hover span{border-color:var(--c,var(--accent))}
.pcheck:active span{transform:scale(.88)}
.pcheck input:checked+span{background:var(--c,var(--accent));border-color:var(--c,var(--accent))}
.pcheck span::after{content:"";width:6px;height:10px;border:solid #fff;border-width:0 2.4px 2.4px 0;transform:rotate(45deg) scale(.6);margin-top:-2px;opacity:0;transition:opacity .15s,transform .2s var(--ease)}
.pcheck input:checked+span::after{opacity:1;transform:rotate(45deg) scale(1)}
.pcheck input:focus-visible+span{outline:2px solid rgba(3,15,43,.45);outline-offset:2px}
details.donelist>summary{cursor:pointer;list-style:none;font-size:13px;color:var(--muted);padding:8px 4px;display:flex;align-items:center;gap:6px;font-weight:400}
details.donelist>summary::-webkit-details-marker{display:none}
details.donelist>summary::before{content:"›";display:inline-block;transition:transform .2s;font-size:15px}
details.donelist[open]>summary::before{transform:rotate(90deg)}
.pr.done .pname{color:var(--faint);text-decoration:line-through;text-decoration-color:var(--line2)}
.today-side{gap:16px}
.side-card{padding:18px}
.campmini{border-left:0;padding:10px 0;border-top:1px solid var(--line);margin:0}
.campmini:first-of-type{border-top:0}
.campmini strong{display:inline-flex;align-items:center;gap:8px;font-weight:500;font-size:13.5px}
.campmini strong::before{content:"";width:8px;height:8px;border-radius:3px;background:var(--cc)}
.campmini .meter{height:5px}
.minilist li{border-top:1px solid var(--line)}
.minilist li:first-child{border-top:0}
.pace{background:var(--fill);color:var(--ink2);border-radius:5px;font-weight:500}
.pace.ahead{background:var(--done-bg);color:var(--done)}.pace.behind{background:var(--red-bg);color:var(--red)}.pace.on_track{background:var(--accent-soft);color:var(--accent)}
/* the plan view for other days keeps the same rows */
.dayplan,.dp-head{border:0}
.pr{border:0;border-radius:8px}
.pr.hero{background:var(--accent-soft);border:0;box-shadow:none}

/* prospect record: Notion page */
.record .rh-title,.record h1{font-family:var(--serif);font-weight:400}
.rprops{background:transparent;border:0;box-shadow:none;padding:0}
.rprops .prop,.rprops .row{border-bottom:1px solid var(--line)}
.rprops label,.rprops .pl{color:var(--muted);font-size:13px;font-weight:400}
.spath button{border-radius:5px;background:var(--fill);border:0;color:var(--ink2);font-weight:500}
.spath button.ok{background:var(--done-bg);color:var(--done)}
.spath button.now{background:var(--accent);color:var(--on-accent)}
.spath button.now.lost{background:var(--red)}
.finding{border-top:1px solid var(--line)}
.finding .n{background:var(--fill);color:var(--ink2);border-radius:6px}
.rcamp{border:1px solid var(--line);border-left:3px solid var(--cc,var(--accent));border-radius:var(--r);background:var(--card);box-shadow:var(--shadow)}

/* campaigns */
.ccard{border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;background:var(--card);transition:box-shadow .15s,transform .15s}
.ccard:hover{box-shadow:var(--pop);transform:translateY(-1px)}
.ccover{border-radius:0}
.ccover.big{border-radius:var(--r)}
.cstat,.cstat.active,.cstat.planned,.cstat.done{background:var(--card);color:var(--ink);border-radius:5px;font-size:11px;letter-spacing:.12em;font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.cname{font-weight:600;font-size:15px}
.ctl-bar{border-radius:6px}
.gs-opt{border:0;background:var(--side);border-radius:var(--r)}
.gs-opt:hover:not([disabled]){background:var(--fill);border:0;box-shadow:none}
.gs-n{background:var(--card);box-shadow:var(--shadow);font-family:var(--display);font-weight:600}
.gs-banner{border:1px solid var(--line);border-left:3px solid var(--accent)}
.ncsteps button[aria-current="step"]{background:var(--accent)}

/* settings: iOS grouped lists */
.settings{gap:28px}
.setnav{gap:1px}
.setnav a{display:flex;padding:6px 10px;border-radius:6px;font-size:14px;font-weight:500;color:var(--ink2);text-decoration:none;border:0}
.setnav a:hover{background:var(--hover)}
.setnav a[aria-current="page"]{background:var(--fill2);color:var(--ink)}
.setpane{background:transparent;border:0;box-shadow:none;padding:0;display:flex;flex-direction:column;gap:14px;max-width:760px}
.setpane>h2.serif{font-family:var(--serif);font-weight:400;font-size:28px}
.setpane .form-grid{display:flex;flex-direction:column;gap:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.setpane .form-grid>.field{display:grid;grid-template-columns:minmax(140px,220px) minmax(0,1fr);align-items:center;gap:4px 16px;padding:8px 14px;min-height:48px}
.setpane .form-grid>.field+.field{border-top:1px solid var(--line)}
.setpane .form-grid>.field>label{font-size:14.5px;color:var(--ink);font-weight:400}
.setpane .form-grid>.field>.muted.sm,.setpane .form-grid>.field>.hint{grid-column:2;font-size:12.5px}
.setpane .form-grid>.field.span2{grid-template-columns:1fr}
.setpane .form-grid>.field.span2>label{font-size:13px;color:var(--muted)}
.setpane .form-grid .input{background:transparent}
.setpane .form-grid .input:focus{background:var(--card)}
.setpane .check,.setpane label.check{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 14px;background:var(--card);border:1px solid var(--line);border-radius:0;margin:0;font-size:14.5px}
.setpane .check+.check{border-top:0}
.setpane .check:first-of-type{border-radius:var(--r) var(--r) 0 0}.setpane .check:last-of-type{border-radius:0 0 var(--r) var(--r)}
.setpane .check:only-of-type{border-radius:var(--r)}
/* iOS switches in Settings */
.setpane input[type=checkbox],input.toggle{position:relative;width:46px;height:28px;flex:0 0 46px;appearance:none;-webkit-appearance:none;background:var(--fill2);border-radius:14px;cursor:pointer;transition:background-color .2s;margin:0;order:2}
.setpane input[type=checkbox]::after,input.toggle::after{content:"";position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.2);transition:transform .2s var(--ease)}
.setpane input[type=checkbox]:checked,input.toggle:checked{background:var(--green)}
.setpane input[type=checkbox]:checked::after,input.toggle:checked::after{transform:translateX(18px)}
.setpane .tplrow,.setpane .segrow,.setpane .cfrow,.setpane .workrow,.setpane .qrow2{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.setpane>.muted,.setpane>p.muted{font-size:12.5px;padding:0 14px}

/* motion: short and calm */
.main.enter>*{animation-duration:.2s}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* tablet */
@media (max-width:820px){
  .shell{display:flex}
  .side{position:sticky;flex:0 0 244px;padding:14px 10px;gap:18px;height:100vh}
  .side .nav{flex-direction:column;flex-wrap:nowrap}
  .side .who{margin-top:auto;flex-direction:row}
  .head>.row>.btn:not(.primary){display:inline-flex}
}

/* phone: iOS large titles, white cards on --side, translucent tab bar */
@media (max-width:760px){
  html,body{background:var(--side)}
  .shell{display:block}
  .side{display:none}
  .main{padding:calc(14px + var(--safe-t)) 16px calc(100px + var(--safe-b));gap:18px;max-width:none}
  .head,.phead{align-items:flex-start}
  .head h1,.phead h1{font-size:34px}
  .head>.row,.head .head-actions,.phead>.row{width:100%}
  .head>.row>.btn,.head>.row>a.btn,.phead>.row>.btn,.phead>.row>a.btn{flex:1 1 0;min-height:44px}
  .phead>.row>details{display:none}
  .card,.scoreboard,.queue,.side-card{padding:16px 14px;border-radius:14px;box-shadow:none}
  .tgroup .tablewrap{background:var(--card);border-radius:14px;border:1px solid var(--line)}
  .pstat,.glance,.sb-tile{background:var(--card);border:1px solid var(--line)!important}
  .btn{min-height:44px}.btn.sm{min-height:36px}
  .weekstrip{gap:2px;margin:0 -6px;grid-template-columns:repeat(7,minmax(0,1fr))}
  .weekstrip #wkprev,.weekstrip #wknext{display:none}
  .weekstrip .wday{padding:6px 0 8px}
  .wday .dn{font-size:16px;width:30px;height:30px}
  .qrow{grid-template-columns:26px minmax(0,1fr);padding:11px 6px 11px 4px}
  .qrow+.qrow::after{left:42px;right:0}
  .qside{opacity:1;grid-column:2;flex-wrap:wrap}
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(249,249,247,.86);
    -webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);border-top:.5px solid var(--line2);padding:6px 6px calc(4px + var(--safe-b))}
  .tabbar>a,.tabbar .navmore>summary{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0;min-height:44px;font-size:10.5px;color:var(--faint);text-decoration:none;font-weight:500;cursor:pointer;list-style:none}
  .tabbar .navmore>summary::-webkit-details-marker{display:none}
  .tabbar svg{width:24px;height:24px}
  .tabbar>a[aria-current="page"]{color:var(--accent)}
  .navmore{display:block;position:relative}
  .navmore-b{position:absolute;right:4px;bottom:calc(100% + 10px);background:var(--card);border-radius:14px;box-shadow:var(--pop);padding:6px;display:flex;flex-direction:column;min-width:200px}
  .navmore-b a,.navmore-b button{color:var(--ink);text-decoration:none;padding:12px;min-height:44px;border-radius:8px;background:none;border:0;text-align:left;font:inherit;font-size:15px}
  .navmore-b a:hover,.navmore-b button:hover{background:var(--hover)}
  .navmore-b a[aria-current="page"]{background:var(--fill)}
  #toast{bottom:calc(86px + var(--safe-b))}
  #jobs{bottom:calc(84px + var(--safe-b))}
  .bulkbar.floating{bottom:calc(84px + var(--safe-b))}
  .dlg,dialog.dlg{margin:auto auto 0;width:100%;max-width:none;border-radius:16px 16px 0 0;padding:20px 18px calc(20px + var(--safe-b))}
  .dlg[open]{animation:sheetup .28s var(--ease)}
  @keyframes sheetup{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
  .peek{border-radius:16px 16px 0 0;padding-bottom:calc(24px + var(--safe-b))}
  .setpane .form-grid>.field{grid-template-columns:1fr}
  .setpane .form-grid>.field>.muted.sm{grid-column:1}
  .pstats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.weekstrip .wday{border:0!important;box-shadow:none!important;opacity:1;flex:none;text-align:center}
.weekstrip .wday::after,.weekstrip .wday::before{display:none!important;content:none!important}
.weekstrip #wktoday{grid-column:1 / -1;justify-self:start}
.qtabs,.vtabs,.rtabs{flex-wrap:nowrap}
.qtabs button[aria-selected="true"],.vtabs button[aria-selected="true"],.rtabs a[aria-selected="true"],.seg button[aria-selected="true"],.seg a[aria-selected="true"],.seg button[aria-checked="true"],.seg button[aria-pressed="true"]{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.1),0 0 0 .5px rgba(0,0,0,.04);border:0}
.vtabs button,.rtabs a{border-bottom:0!important}
.sb-tiles{min-width:0}
@media (max-width:760px){
  .scoreboard{flex-direction:column;gap:14px}
  .sb-tiles{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .sb-tile{padding:10px}
  .sb-tile .n{font-size:20px}
  .q-head{flex-direction:column;align-items:stretch}
  .qtabs{width:100%}
}
.wday .ct{border:0;width:auto;max-width:none;display:block;flex:none}
@media (max-width:1100px){.today-grid{grid-template-columns:minmax(0,1fr)}}
.queue,.today-grid>*{min-width:0}

/* Save links sheet and the phone's quick add button */
.saveform{display:flex;flex-direction:column;gap:14px}
.savedlg{width:min(560px,94vw)}
.sv-paste{position:relative}
.sv-paste textarea{min-height:104px;resize:vertical;font-size:16px;padding-right:80px}
.sv-paste #sv_clip{position:absolute;top:8px;right:8px}
.sv-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;max-height:40vh;overflow:auto}
.sv-list:empty{display:none}
.sv-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.sv-item:first-child{border-top:0}
.sv-kind{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:5px;background:var(--fill);color:var(--ink2);white-space:nowrap}
.sv-kind.k-instagram,.sv-kind.k-post{background:#FCE8F1;color:#A3245B}.sv-kind.k-tiktok{background:#E8F7F7;color:#106C6C}.sv-kind.k-website{background:var(--accent-soft);color:var(--accent)}
.sv-main{display:flex;flex-direction:column;gap:4px;min-width:0}
.sv-src{font-size:13.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sv-item.have{opacity:.7}
.sv-opts{gap:12px;align-items:flex-end}
.sv-tog{display:flex;align-items:center;gap:10px;font-size:14px;min-height:40px}
.fab{display:none}
@media (max-width:760px){
  .fab{display:flex;align-items:center;justify-content:center;position:fixed;right:16px;bottom:calc(84px + var(--safe-b));z-index:39;width:56px;height:56px;border-radius:50%;border:0;background:var(--accent);color:var(--on-accent);box-shadow:var(--pop);cursor:pointer;transition:transform .15s}
  .fab:active{transform:scale(.94)}
  .shell:has(.builder) .fab,.shell:has(.peek.open) .fab{display:none}
  .savedlg{width:100%}
  .sv-list{max-height:34vh}
  .sv-opts{flex-direction:column;align-items:stretch}
  #jobs{bottom:calc(150px + var(--safe-b))}
}
@media (max-width:760px){
  .sv-opts>*{flex:none!important}
  .shell:has(.record) .fab,.shell:has(.dbwrap) .fab{display:none}
  #jobs{left:16px;right:16px;width:auto;padding:8px 12px}
}
@media (max-width:760px){
  .pstats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .pstat{padding:8px 10px}.pstat .v{font-size:18px}.pstat .l{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .setnav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;background:var(--fill);border-radius:9px;padding:2px;gap:2px}
  .setnav::-webkit-scrollbar{display:none}
  .setnav a{white-space:nowrap;padding:6px 12px;font-size:13px}
  .setnav a[aria-current="page"]{background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,.1)}
  .setnav .setnav-db{display:none}
  #jobs{font-size:12px;gap:4px}
}

/* shortlist (was favourites): a quiet bookmark beside the record's actions */
.iconbtn.shortlist{width:34px;height:34px;color:var(--faint);display:inline-flex;align-items:center;justify-content:center}
.iconbtn.shortlist[aria-pressed="true"]{color:var(--accent);background:var(--accent-soft)}
.fav-star{display:inline-flex;vertical-align:-2px;color:var(--accent)}
.fav-star svg{width:13px;height:13px}
.rh-actions .btn svg{width:15px;height:15px}

/* Live: the phone's call sheet */
.lv-card{display:flex;flex-direction:column;gap:14px;border-top:3px solid var(--cc)}
.lv-top{display:flex;justify-content:space-between;align-items:center}
.lv-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(52,168,83,.5);animation:lvpulse 2s infinite}
@keyframes lvpulse{0%{box-shadow:0 0 0 0 rgba(52,168,83,.45)}70%{box-shadow:0 0 0 8px rgba(52,168,83,0)}100%{box-shadow:0 0 0 0 rgba(52,168,83,0)}}
.lv-name{font-family:var(--serif);font-weight:400;font-size:clamp(30px,6vw,40px);line-height:1.08;margin:0}
.lv-meta{gap:8px;align-items:center;flex-wrap:wrap}
.lv-people{display:flex;flex-direction:column;gap:2px;font-size:15px}
.lv-acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.lv-act{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 14px;border-radius:12px;background:var(--side);text-decoration:none;color:var(--ink);transition:background-color .15s,transform .1s}
.lv-act:hover{background:var(--fill)}
.lv-act:active{transform:scale(.98)}
.lv-act strong{display:block;font-weight:600;font-size:15px}
.lv-act small{display:block;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.lv-act>span:last-child{min-width:0}
.lv-ic{width:36px;height:36px;flex:0 0 36px;border-radius:50%;display:grid;place-items:center;background:var(--card);font-size:17px;box-shadow:var(--shadow)}
.lv-act.call{background:var(--accent);color:var(--on-accent)}.lv-act.call small{color:rgba(255,255,255,.72)}.lv-act.call .lv-ic{background:rgba(255,255,255,.14);color:#fff;box-shadow:none}
.lv-act.call:hover{background:var(--accent-hover)}
.lv-act.wa .lv-ic{color:#1E7B38}.lv-act.dm .lv-ic{color:#A3245B}
.lv-log{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:14px}
.lv-out{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.lv-out .btn{min-height:44px;white-space:normal;line-height:1.2;text-align:center}
.lv-nav{justify-content:space-between}
.lv-nav .btn{min-height:44px;flex:1 1 0}
.lv-brief{display:flex;flex-direction:column}
.lv-obj{display:flex;flex-direction:column;padding:10px 0;border-bottom:1px solid var(--line)}
.lv-notes{white-space:pre-line}
.lv-empty{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.lv-empty h2{font-family:var(--serif);font-weight:400;font-size:28px}
.lv-load{display:flex;gap:10px;flex-wrap:wrap;width:100%}
.lv-load .btn{flex:1 1 200px}
.lv-list{list-style:none;margin:0;padding:0}
.lv-list li{display:flex;align-items:center;gap:6px;border-top:1px solid var(--line)}
.lv-list li:first-child{border-top:0}
.lv-q{flex:1;display:grid;grid-template-columns:22px minmax(0,1fr);gap:0 10px;align-items:center;text-align:left;border:0;background:none;padding:10px 4px;min-height:52px;cursor:pointer;font:inherit;color:var(--ink);border-radius:8px}
.lv-q .sub{grid-column:2}
.lv-q:hover{background:var(--hover)}
.lv-list li.on .lv-q{background:var(--accent-soft)}
.lv-list li.done strong{color:var(--faint);text-decoration:line-through}
.lv-tick{grid-row:span 2;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line2);display:grid;place-items:center;font-size:11px;color:#fff}
.lv-list li.done .lv-tick{background:var(--green);border-color:var(--green)}
@media (min-width:1000px){.main:has(.lv-card){max-width:760px}}
@media (max-width:760px){.lv-acts{grid-template-columns:1fr 1fr}.lv-out{grid-template-columns:repeat(2,minmax(0,1fr))}.shell:has(.lv-card) .fab{display:none}}
.lv-acts{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.lv-act{min-width:0}
.lv-act.call.alt{background:var(--side);color:var(--ink)}.lv-act.call.alt small{color:var(--muted)}.lv-act.call.alt .lv-ic{background:var(--card);color:var(--accent);box-shadow:var(--shadow)}
.lv-act.call.alt:hover{background:var(--fill)}
.lv-ic svg{display:block}
.lv-act.dm .lv-ic{color:#A3245B}.lv-act.wa .lv-ic{color:#1E7B38}.lv-act.email .lv-ic,.lv-act.sms .lv-ic,.lv-act.web .lv-ic,.lv-act.tt .lv-ic{color:var(--accent)}
body:has(.lv-card) #jobs{display:none!important}
.sv-place{margin-top:2px}
.sv-place .pp-in,.sv-place input{min-height:32px;font-size:14px}
@media (max-width:760px){
  .sv-place .pp-in,.sv-place input{font-size:16px;min-height:40px}
  /* record: properties right under the title, as in a Notion page, so location and contacts are one scroll away */
  .rgrid,.record .rgrid{grid-template-areas:"props" "main"!important}
  .rprops{position:static!important}
}
/* place picker reads as a Life OS input: borderless fill, white with a ring on focus */
.pp{border:0;background:var(--fill);border-radius:var(--r-sm);min-height:40px;padding:2px 8px;transition:background .15s var(--ease),box-shadow .15s var(--ease)}
.pp:focus-within{background:var(--card);box-shadow:0 0 0 1px var(--line2),0 0 0 4px rgba(3,15,43,.08)}
.sv-place .pp{min-height:34px}
@media (max-width:760px){.sv-item{grid-template-columns:1fr;gap:6px}.sv-item .sv-kind{justify-self:start}}
/* quotes: built from the shared design layer (tokens, segmented controls, cards, stat tiles), so light and dark follow it */
.qw{display:flex;flex-direction:column;gap:20px}
.qw .tnum,.qt-list .tnum{font-variant-numeric:tabular-nums}
.qw-head{align-items:flex-end}
.qw-hl{flex:1 1 360px;min-width:0}
.qw-hl .label a{color:inherit;text-decoration:none}.qw-hl .label a:hover{color:var(--ink)}
.qw-head .head-actions{align-items:center}
.qexp .pop-body{left:auto;right:0;min-width:240px;padding:6px;gap:2px}
.qexp .pop-body .btn{justify-content:flex-start;width:100%}
.qw-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;position:sticky;top:0;z-index:12;background:var(--bg);padding:8px 0;margin:-8px 0}
.qsteps .qstep{display:inline-flex;align-items:center;gap:8px}
.qs-n{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;background:var(--fill2);color:var(--muted);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}
.qstep[aria-selected="true"] .qs-n{background:var(--accent);color:var(--on-accent)}
.qs-n.done{background:var(--done-bg);color:var(--done)}
.qw-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}
.qw-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.qw-sum{position:sticky;top:60px;display:flex;flex-direction:column;gap:14px;padding:16px;border-radius:var(--r);background:var(--side)}
.qs-price .n{display:block;margin-top:2px;font-size:30px}
.qs-tiers{list-style:none;margin:0;padding:0;font-size:13px}.qs-tiers li{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid var(--line);color:var(--muted)}
.qs-tiers li span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qs-tiers li.on{color:var(--ink);font-weight:600}
.qs-dl{display:grid;grid-template-columns:1fr 1fr;gap:12px 10px;margin:0}
.qs-dl dt{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:600}
.qs-dl dd{margin:2px 0 0;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.qs-warn{margin:0;padding:10px 12px 10px 26px;background:var(--amber-bg);color:var(--amber);border-radius:var(--r-sm);font-size:13px}
.qs-ok{margin:0;padding:10px 12px;background:var(--done-bg);color:var(--done);border-radius:var(--r-sm);font-size:13px}
.qgroup+.qgroup{margin-top:18px}
.qg-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:14px 0 6px}
.qg-head h3{font-size:14px;font-weight:600;color:var(--ink)}
.qlines{width:100%;min-width:700px}.qlines td{padding:6px;vertical-align:middle;height:auto}.qlines th{padding:8px 6px}
.qlines .qi{min-width:220px}.qlines .qcol-n{width:76px}.qlines .qu{width:112px}.qlines .qc{width:110px}.qlines .qm{width:84px}
.qlines tbody tr.qmore,.qlines tbody tr.qmore:hover{background:var(--side)}
.qlines tbody tr.qmore td{border-bottom:1px solid var(--line)}
.qflags{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.qmore-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px;align-items:end;padding:6px 0}
.qmore-grid .qnote{grid-column:1/-1}
.qchk{display:flex;align-items:center;gap:8px;font-size:13px;min-height:32px;color:var(--ink2)}.qchk input{width:16px;height:16px}
.qadd{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.qform{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.qbars{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.qbar{display:grid;grid-template-columns:190px minmax(0,1fr) 110px;gap:12px;align-items:center;font-size:14px}
.qbar .ql{display:flex;flex-direction:column;min-width:0}.qbar .tnum{text-align:right}
.qbar .qt{height:8px;background:var(--fill);border-radius:4px;overflow:hidden}.qbar .qt i{display:block;height:100%;background:var(--line2);border-radius:4px}
.qbar.on .qt i{background:var(--muted)}.qbar.final{padding-top:10px;border-top:1px solid var(--line)}.qbar.final .qt i{background:var(--accent)}
.qsumt{width:100%}.qsumt td{padding:7px 0;height:auto;border-bottom:1px solid var(--line)}.qsumt td.right{padding-left:12px;white-space:nowrap}
.qsumt tr.tot td{font-weight:600;color:var(--ink)}.qsumt tr.sub td{color:var(--muted);font-size:13px;border-bottom:0}
.qwhere{display:flex;height:8px;border-radius:4px;overflow:hidden;margin-top:14px;background:var(--fill);gap:2px}.qwhere i{display:block;height:100%}
.qlegend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:12px;color:var(--muted)}.qlegend i{display:inline-block;width:8px;height:8px;border-radius:3px;margin-right:6px}
.qprop{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:16px;align-items:start}
.qpform{display:flex;flex-direction:column;gap:12px}
.qtiers{display:flex;flex-direction:column;gap:10px}.qtier{background:var(--side);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:6px}
.qpview{position:sticky;top:60px}
.qframe{border-radius:var(--r);overflow:hidden;height:calc(100vh - 120px);min-height:520px;background:#FFFFFF;box-shadow:var(--shadow),0 0 0 1px var(--line)}
.qframe iframe{width:100%;height:100%;border:0;display:block}
.qcomment-new{display:flex;flex-direction:column;gap:8px;margin-top:12px}.qctext{white-space:pre-wrap;margin-top:4px;color:var(--ink2)}
.qprint{position:fixed;right:0;bottom:0;width:0;height:0;border:0;visibility:hidden}
.qnext{display:flex;justify-content:flex-end}
.qcheck{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.qcheck li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink2)}.qcheck li>span{width:18px;text-align:center;font-weight:600}
.qcheck li.ok>span{color:var(--done)}.qcheck li.todo{color:var(--amber)}
.ratecard{min-width:860px;width:100%}.ratecard td{padding:6px;height:auto}.ratecard td:nth-child(4),.ratecard td:nth-child(5){width:110px}
.tierrow input:first-child{flex:0 1 240px}
.qq-new{padding:14px 16px;border-radius:var(--r);background:var(--side)}
.pstats.qq-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.pstat .sub{display:block;margin-top:2px}
.pstat[aria-pressed="true"] .sub{color:inherit;opacity:.75}
.qq-table{width:100%}.qq-table tbody tr{cursor:pointer}
.qq-table td:first-child,.qq-table td:nth-child(2){max-width:260px}
.qq-table td:first-child a,.qq-table td:nth-child(2) a{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qq-count{font-size:12px;color:var(--faint);margin-left:4px;font-variant-numeric:tabular-nums}
@media (max-width:1100px){.qw-grid{grid-template-columns:1fr}.qw-sum{position:static;order:-1}.qprop{grid-template-columns:1fr}.qpview{position:static}.qframe{height:70vh}.qmore-grid{grid-template-columns:1fr 1fr}.pstats.qq-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.qbar{grid-template-columns:1fr 90px}.qbar .qt{grid-column:1/-1;order:3}.qmore-grid{grid-template-columns:1fr}.qw-bar{position:static}}
/* Today: seven scoreboard tiles now that quotes have one */
.sb-tiles{grid-template-columns:repeat(7,minmax(0,1fr))}
@media (max-width:1100px){.sb-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* ---------- brand marks ---------- */
.bm{--bm:28px;position:relative;flex:none;width:var(--bm);height:var(--bm);border-radius:calc(var(--bm) * .26);background:var(--bmc,#4E5D7E);color:#fff;display:inline-grid;place-items:center;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(55,53,47,.08);vertical-align:middle}
.bm b{font:600 calc(var(--bm) * .38)/1 'SF Pro Display',-apple-system,BlinkMacSystemFont,'Inter',sans-serif;letter-spacing:.02em}
.bm img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:12%;background:#fff;opacity:0;transition:opacity .2s var(--ease)}
.bm img.ig{object-fit:cover;padding:0}
.bm img.on{opacity:1}
.co{display:flex;align-items:center;gap:10px;min-width:0}
.co-t{min-width:0}
.co-n{display:flex;align-items:center;gap:4px;min-width:0}
.co-n a,.co-t .sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.pcard .pc-top{align-items:center}
.pcard .pc-top .d{flex:1;min-width:0}
.pcard.compact{display:flex;align-items:center;gap:8px}
.qrow>.bm,.pr>.bm{align-self:center}
.pk-head{display:flex;gap:12px;align-items:center}
.rh-top>.bm{align-self:center}
.lv-id{display:flex;align-items:center;gap:14px;min-width:0}
.lv-id .lv-name{margin:0;min-width:0}
.lv-q .bm{margin-right:2px}
.qrow{grid-template-columns:28px 34px minmax(0,1fr) auto}
.qrow+.qrow::after{left:92px}
.qrow>.bm{margin-top:1px;align-self:start}
.pr{grid-template-columns:auto 34px minmax(0,1fr) auto auto auto}
@media (max-width:820px){.pr{grid-template-columns:auto 34px minmax(0,1fr) auto}.qrow .qside{grid-column:3}}
@media (max-width:760px){.qrow{grid-template-columns:26px 34px minmax(0,1fr)}.qrow+.qrow::after{left:82px}.qrow .qside{grid-column:3}}
/* today's run in a campaign */
.runstrip{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:14px 16px;margin:0 0 18px;background:var(--accent-soft);border-radius:var(--r)}
.runstrip.quiet{background:var(--side);padding:10px 16px}
.rs-t{display:flex;flex-direction:column;gap:2px;flex:1 1 200px;min-width:0}
.rs-t strong{font:600 17px/1.25 'SF Pro Display',-apple-system,BlinkMacSystemFont,'Inter',sans-serif;letter-spacing:-.01em}
.rs-stack{display:flex;align-items:center}
.rs-stack a{margin-left:-8px;border-radius:9px;box-shadow:0 0 0 2px var(--accent-soft);transition:transform .15s var(--ease)}
.rs-stack a:first-child{margin-left:0}
.rs-stack a:hover{transform:translateY(-2px);z-index:1}
.rs-more{margin-left:6px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.rs-go{display:flex;gap:8px}
@media (max-width:760px){.runstrip{gap:12px}.rs-go{flex:1 1 100%}.rs-go .btn{flex:1}}

/* ---------- pipeline scrolling: one page scroll, sticky tools, sticky group headings, frozen company column ---------- */
.ptools{position:sticky;top:0;z-index:9;background:var(--bg);margin:0 -8px;padding:10px 8px;transition:box-shadow .2s var(--ease)}
.ptools.stuck{box-shadow:0 1px 0 var(--line),0 8px 16px -14px rgba(15,15,15,.35)}
.tgroups{position:relative}
.tg-head{position:sticky;top:var(--tools-h,0px);z-index:5;width:100%;background:var(--bg);padding-top:8px;margin-top:-8px}
.tgroup .tablewrap{max-height:none!important;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--line2) transparent;scroll-padding-left:240px}
.gtbl{border-collapse:separate;border-spacing:0}
.gtbl th.ck,.gtbl td.ck{position:sticky;left:0;z-index:2;width:40px;min-width:40px;background:var(--bg)}
.gtbl th[data-sort="company"]:nth-child(2),.gtbl td.c-company:nth-child(2){position:sticky;left:40px;z-index:2;background:var(--bg);transition:box-shadow .2s var(--ease)}
.tablewrap.scrolled td.c-company:nth-child(2),.tablewrap.scrolled th[data-sort="company"]:nth-child(2){box-shadow:8px 0 12px -10px rgba(15,15,15,.28)}
.gtbl tbody tr:hover td.ck,.gtbl tbody tr:hover td.c-company{background:color-mix(in srgb,var(--bg),#37352F 6%)}
.gtbl tbody tr.peeked td.ck,.gtbl tbody tr.peeked td.c-company,.gtbl tbody tr:has(input[data-sel]:checked) td.ck,.gtbl tbody tr:has(input[data-sel]:checked) td.c-company{background:var(--accent-soft)}
.gtbl tfoot td.ck{background:var(--bg)}
.gtbl .c-company{min-width:230px;max-width:320px}
/* the board scrolls with the page; columns grow, the row scrolls sideways */
.col{max-height:none!important}
.colbody{overflow:visible!important}
.boardwrap{overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:auto}}

@media (max-width:760px){
  /* phone: tools stay under your thumb, stats become one swipeable row, the table becomes a list */
  .ptools{margin:0 -16px;padding:8px 16px;background:var(--side);flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:6px}
  .ptools::-webkit-scrollbar{display:none}
  .ptools .search{flex:0 0 46%;min-width:0}
  .ptools>*{flex:none}
  .ptools .pcount{display:none}
  .tg-head{background:var(--side)}
  .pstats{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 -16px;padding:0 16px;gap:8px}
  .pstats::-webkit-scrollbar{display:none}
  .pstat{flex:0 0 38%;scroll-snap-align:start;border:0!important}
  .tgroup .tablewrap{overflow:visible;border-radius:14px}
  .gtbl,.gtbl tbody{display:block;width:100%}
  .gtbl thead,.gtbl tfoot{display:none}
  .gtbl tbody tr{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;column-gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);min-height:60px}
  .gtbl tbody tr:last-child{border-bottom:0}
  .gtbl td{display:none;border:0!important;height:auto!important;padding:0!important;position:static!important;background:transparent!important;box-shadow:none!important}
  .gtbl td.ck,.gtbl td.c-company,.gtbl td.c-stage{display:block}
  .gtbl td.c-company{min-width:0;max-width:none}
  .gtbl td.c-touch{display:block;grid-column:2/4;font-size:12.5px;margin-top:4px}
  .gtbl td.c-stage select,.gtbl td.c-stage .spill{max-width:120px}
}
.phead{z-index:11}.pstats{z-index:6}.pbar-views{z-index:10}
@media (max-width:760px){.pstats{margin:0 -16px!important;padding:0 16px!important;scroll-padding-left:16px}.pstats::after{content:"";flex:0 0 1px}}

/* ---------- appearance: light tokens that dark mode swaps ---------- */
:root{--tint-base:#FFFFFF;--tint-ink:#000000;--card:#FFFFFF;--on-accent:#FFFFFF;--accent-hover:#0B1D45;--row-hover:color-mix(in srgb,var(--bg),#37352F 6%);color-scheme:light}
.themerow{padding:0 2px}
.themeseg{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}
.themeseg button{font-size:12px;min-height:26px}
.side-min .themerow{display:none}
.nm-theme{padding:6px 8px}
.nm-theme .themeseg button{min-height:32px}

/* dark: Notion's night palette, KDYLLON midnight turns into a soft ice blue so it still reads as the accent */
:root[data-theme="dark"]{
  color-scheme:dark;
  --ink:#ECECEA;--ink2:#D2D2CF;--muted:#9B9A97;--faint:#6E6D6A;
  --bg:#191919;--side:#202020;--card:#252525;--fill:#2C2C2C;--fill2:#373737;
  --hover:rgba(255,255,255,.055);--line:rgba(255,255,255,.085);--line2:rgba(255,255,255,.15);
  --accent:#DCE3F5;--accent-hover:#FFFFFF;--on-accent:#0A1430;--accent-soft:rgba(140,165,230,.16);
  --green:#4CC46B;--red:#F07462;--red-bg:rgba(240,116,98,.15);--amber:#E3A54A;--amber-bg:rgba(227,165,74,.15);
  --done:#5ACB79;--done-bg:rgba(90,203,121,.14);
  --shadow:0 1px 2px rgba(0,0,0,.35);--pop:0 14px 44px rgba(0,0,0,.6),0 2px 8px rgba(0,0,0,.4);
  --tint-base:#252525;--tint-ink:#FFFFFF;--midnight:#DCE3F5;--white:#252525;--row-hover:color-mix(in srgb,var(--bg),#fff 5%);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --ink:#ECECEA;--ink2:#D2D2CF;--muted:#9B9A97;--faint:#6E6D6A;
    --bg:#191919;--side:#202020;--card:#252525;--fill:#2C2C2C;--fill2:#373737;
    --hover:rgba(255,255,255,.055);--line:rgba(255,255,255,.085);--line2:rgba(255,255,255,.15);
    --accent:#DCE3F5;--accent-hover:#FFFFFF;--on-accent:#0A1430;--accent-soft:rgba(140,165,230,.16);
    --green:#4CC46B;--red:#F07462;--red-bg:rgba(240,116,98,.15);--amber:#E3A54A;--amber-bg:rgba(227,165,74,.15);
    --done:#5ACB79;--done-bg:rgba(90,203,121,.14);
    --shadow:0 1px 2px rgba(0,0,0,.35);--pop:0 14px 44px rgba(0,0,0,.6),0 2px 8px rgba(0,0,0,.4);
    --tint-base:#252525;--tint-ink:#FFFFFF;--midnight:#DCE3F5;--white:#252525;--row-hover:color-mix(in srgb,var(--bg),#fff 5%);
  }
}
.gtbl tbody tr:hover td.ck,.gtbl tbody tr:hover td.c-company{background:var(--row-hover)}
/* dark details: the glass tab bar, header cells, tags with fixed light tints */
:root{--glass:rgba(249,249,247,.86)}
.gtbl th{background:var(--bg)}
@media (max-width:760px){.tabbar{background:var(--glass)!important}.navmore-b{background:var(--card)}}
:root[data-theme="dark"]{--glass:rgba(32,32,32,.86)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--glass:rgba(32,32,32,.86)}}
:root[data-theme="dark"] .sv-kind.k-instagram,:root[data-theme="dark"] .sv-kind.k-post{background:rgba(227,73,140,.16);color:#F28BB8}
:root[data-theme="dark"] .sv-kind.k-tiktok{background:rgba(32,170,170,.16);color:#6FD3D3}
:root[data-theme="dark"] .coverpop>summary,:root[data-theme="dark"] .moodgrid .cx{background:rgba(37,37,37,.9)}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .sv-kind.k-instagram,:root:not([data-theme="light"]) .sv-kind.k-post{background:rgba(227,73,140,.16);color:#F28BB8}
  :root:not([data-theme="light"]) .sv-kind.k-tiktok{background:rgba(32,170,170,.16);color:#6FD3D3}
  :root:not([data-theme="light"]) .coverpop>summary,:root:not([data-theme="light"]) .moodgrid .cx{background:rgba(37,37,37,.9)}
}
.lv-act.call small{color:color-mix(in srgb,var(--on-accent) 72%,transparent)}
.lv-act.call .lv-ic{background:color-mix(in srgb,var(--on-accent) 14%,transparent);color:var(--on-accent)}

/* ---------- clean edges: long names stay inside their chips, cells and menus ---------- */
.cchip{max-width:min(100%,240px);min-width:0;overflow:hidden}
.cchip .cn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cchip i,.cchip .cx{flex:none}
.cchips{display:inline-flex;flex-wrap:wrap;gap:4px;max-width:100%;min-width:0}
td .cchips{max-width:260px}
select.input,select.sm-in,.cell-select,.titlesel{max-width:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.field{min-width:0}
.field>select,.field>input{min-width:0}
.campop .pop-body{width:min(320px,calc(100vw - 32px))}
.camplist .check{min-width:0}
.camplist .cm-n{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.camplist .check .sub{flex:none;white-space:nowrap}
.camplist .cdot{flex:none}
textarea.h1-input{display:block;resize:none;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere;min-height:0;height:auto;color:inherit}
.rhead.slim textarea.h1-input{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-name{min-width:0;flex:1 1 280px}
/* the stage path keeps every word whole */
.spath li{min-width:max-content}
.spath button{padding-left:16px;padding-right:18px}
@media (max-width:760px){.spath li{flex:0 0 auto}}
/* money field reads as one input */
.money-in{border:0;background:var(--fill);border-radius:var(--r-sm);padding-left:12px;min-height:40px;transition:background .15s,box-shadow .15s}
.money-in:focus-within{background:var(--card);box-shadow:0 0 0 1px var(--line2),0 0 0 4px rgba(3,15,43,.08)}
.money-in input,.money-in input:focus{background:transparent!important;box-shadow:none!important;width:100%;min-width:0;flex:1}
.props .money-in{display:flex;width:100%}
/* campaign picker rows line up */
.camplist .check input{flex:none;width:16px;height:16px;margin:0}
/* labels on the properties list sit on one line */
.rprops .field:not(:has(.tagbox)){grid-template-columns:104px minmax(0,1fr)}.rprops .field>label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:760px){
  .seg:not(.themeseg):not(.small),.main>.seg{overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap;max-width:100%}
  .seg::-webkit-scrollbar{display:none}
  .seg>*{flex:none}
}
@media (max-width:760px){
  .bulkbar.floating{left:12px!important;right:12px!important;transform:none!important;max-width:none!important;bottom:calc(84px + var(--safe-b))!important;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;animation:none}
  .bulkbar.floating::-webkit-scrollbar{display:none}
  .bulkbar.floating>*{flex:none}
  body:has(#bulk:not([hidden])) .fab{display:none}
  .gtbl td.c-stage select,.gtbl td.c-stage .spill{width:auto;max-width:132px;min-width:0}
  .gtbl td.c-stage{justify-self:end}
}
@media (max-width:760px){
  .gtbl td.ck{width:auto!important;min-width:0!important}
  .gtbl td.c-stage{justify-self:stretch;width:112px}
  .gtbl td.c-stage select,.gtbl td.c-stage .spill{display:block;width:100%;max-width:112px;margin-left:auto}
  .gtbl tbody tr{grid-template-columns:28px minmax(0,1fr) 112px}
}
.phead .pt,.ptitle{min-width:0;max-width:100%}
.ptitle .titlesel{min-width:0;max-width:min(100%,360px);flex:0 1 auto}
@media (max-width:760px){.ptitle{flex-wrap:wrap}.ptitle .titlesel{max-width:100%}}
.fit .fit-q{font-style:normal;margin-left:3px;opacity:.6;font-size:.85em}

/* activity: an icon per channel, logged time on hover, a menu on entries Keane logged */
.timeline .tl-body{display:flex;gap:10px;align-items:flex-start;min-width:0}
.timeline .tl-main{flex:1;min-width:0}
.tl-ic{flex:none;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--fill);color:var(--ink2)}
.tl-ic.ch-email{color:#3B6FB6}.tl-ic.ch-sms{color:#2E8B57}.tl-ic.ch-whatsapp{color:#1F9D55}.tl-ic.ch-instagram{color:#C13584}
.tl-ic.ch-dm{color:#7C5A82}.tl-ic.ch-call{color:#B0714E}.tl-ic.ch-meeting{color:#5F8FA3}.tl-ic.ch-video{color:#984126}.tl-ic.ch-linkedin{color:#0A66C2}
.tl-ic.ch-in_person{color:#6A788C}.tl-ic.ch-note{color:var(--muted)}
.tl-when{cursor:default;font-variant-numeric:tabular-nums}
.tl-meta:empty{display:none}
.tl-menu{flex:none;opacity:0;transition:opacity .15s var(--ease)}
.timeline li:hover .tl-menu,.tl-menu[open],.tl-menu:focus-within{opacity:1}
@media (hover:none){.tl-menu{opacity:1}}
.tl-menu .pop-body{right:0;left:auto;min-width:140px;display:flex;flex-direction:column}
.tl-activity_deleted strong{font-weight:500;color:var(--muted)}
.lchans .chip-r span{display:inline-flex;align-items:center;gap:6px}
.lch-ic{display:inline-grid;font-style:normal;opacity:.8}

/* ---------- Network ---------- */
.nw-groups{flex-wrap:wrap;margin-bottom:4px}
.nw-groups .tb{opacity:.6;font-variant-numeric:tabular-nums;margin-left:2px}
.nw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.nw-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:16px;transition:box-shadow .15s var(--ease),transform .15s var(--ease)}
.nw-card:hover{box-shadow:var(--pop);transform:translateY(-1px)}
.nw-top{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;min-width:0;padding-right:24px}
.nw-id{display:flex;flex-direction:column;min-width:0}
.nw-id strong{font:600 16px/1.25 var(--display);letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nw-id .sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nw-roles{display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-width:0}
.nw-roles .tag{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.nw-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto}
.nw-rate{font-weight:600;font-variant-numeric:tabular-nums}
.nw-meta{font-size:12.5px;min-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nw-pick{position:absolute;top:12px;right:12px;opacity:0;transition:opacity .15s}
.nw-card:hover .nw-pick,.nw-pick:has(input:checked){opacity:1}
@media (hover:none){.nw-pick{opacity:1}}
.nstars{color:#C9962B;letter-spacing:1px;font-size:13px;white-space:nowrap}.nstars i{font-style:normal;color:var(--line2)}
.nw-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:8px}
.nw-hid{flex:1 1 280px;min-width:0}
.nw-hid h1{margin:2px 0 6px;overflow-wrap:anywhere}
.nw-contact{gap:6px;margin:14px 0 18px;flex-wrap:wrap;align-items:center}
.nw-rec .rtabs{position:static;margin-bottom:16px}
.nw-cat{font:600 13px/1.3 var(--sans);margin:18px 0 6px;color:var(--ink2)}.nw-cat:first-of-type{margin-top:6px}
.nw-rates td.strong{min-width:180px}
.nw-rates td.sub{min-width:160px;font-size:13px}
.nw-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.nw-dl{display:grid;grid-template-columns:130px minmax(0,1fr);gap:8px 14px;margin:10px 0 0}
.nw-dl dt{color:var(--muted);font-size:13px}.nw-dl dd{margin:0}
.nw-private{background:var(--side)}
.nw-dlg{width:min(760px,calc(100vw - 32px))}
.nw-form{display:flex;flex-direction:column;gap:14px}
.nw-fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 12px}
.nw-rolepick{display:flex;flex-direction:column;gap:4px;max-height:280px;overflow:auto;padding-right:4px}
.nw-rolepick summary{cursor:pointer;font-weight:500;padding:6px 0}
.nw-rolepick .row{gap:6px;padding:2px 0 8px}
.nw-more>summary{cursor:pointer;padding:4px 0}
.nw-prev{max-height:280px;overflow:auto}
.nw-cmpdlg{width:min(1100px,calc(100vw - 32px))}
.nw-cmptbl th[scope=row]{color:var(--muted);font-weight:500;white-space:nowrap}
.nw-cmptbl thead a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:600}
.nw-cmptbl td{min-width:180px;vertical-align:top}
.np-list{display:flex;flex-direction:column;gap:12px;max-height:min(60vh,560px);overflow:auto}
.np-sup header{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.np-sup header .sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.np-sup ul{list-style:none;margin:0;padding:0}
.np-sup li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.np-item{display:flex;flex-direction:column;min-width:0}.np-item .sub{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.np-acts .input{width:64px}
@media (max-width:760px){
  .nw-grid{grid-template-columns:1fr}
  .nw-head .head-actions{width:100%}
  .np-sup li{grid-template-columns:minmax(0,1fr) auto}.np-acts{grid-column:1/-1}
  .nw-dl{grid-template-columns:1fr}.nw-dl dt{margin-top:6px}
}
.nw-rates{table-layout:fixed;width:100%}
.nw-rates th:nth-child(1),.nw-rates td:nth-child(1){width:30%}
.nw-rates th:nth-child(2),.nw-rates td:nth-child(2){width:auto}
.nw-rates th:nth-child(3),.nw-rates td:nth-child(3){width:56px}
.nw-rates th:nth-child(4),.nw-rates td:nth-child(4){width:130px}
.nw-rates th:nth-child(5),.nw-rates td:nth-child(5){width:110px}
.nw-rates th:last-child,.nw-rates td:last-child{width:84px}
.nw-rates td{overflow-wrap:anywhere}
@media (max-width:760px){.nw-rates{table-layout:auto;min-width:560px}}
.nw-rate{min-width:0}.nw-cats{font-weight:500;font-size:13.5px;color:var(--ink2);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.tb.tbtn{border:0;cursor:pointer;font:inherit;font-size:11px;font-weight:600;background:var(--info-bg);color:var(--info)}
.tb.tbtn:hover{filter:brightness(.96)}
a.tb{text-decoration:none}
.qnet-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0 4px;padding:10px 14px;border-radius:10px;background:var(--warm-bg);color:var(--warm);font-weight:600;font-size:14px}
