:root{
  --ink:#101828; --rail:#111c2e; --rail-2:#0b1524;
  --canvas:#fbfaf8; --card:#fff; --line:#e7e3dc; --line-2:#f1ede6;
  --muted:#6b7280; --faint:#9aa1ac;
  --gold:#b08d4f; --gold-soft:#f4ecdd;
  --red:#b4442f; --red-soft:#fbeeea;
  --amber:#a76a1a; --amber-soft:#fdf3e3;
  --green:#2f6b4f; --green-soft:#eaf3ee;
  --blue:#2c4a7c; --blue-soft:#eaf0f9;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--canvas);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
.app{display:grid;grid-template-columns:236px 1fr;min-height:100vh}
.rail{background:var(--rail);color:#cfd6e2;display:flex;flex-direction:column;padding:22px 0;position:sticky;top:0;height:100vh;overflow-y:auto}
.brand{display:flex;align-items:center;gap:11px;padding:0 22px 26px}
.mark{width:30px;height:30px;border:1.5px solid var(--gold);transform:rotate(45deg);display:grid;place-items:center;flex:none}
.mark i{width:7px;height:7px;border:1.5px solid var(--gold);border-radius:50%}
.brand h1{font-family:var(--serif);font-size:16px;letter-spacing:.16em;color:#fff;font-weight:500}
.brand p{font-size:8.5px;letter-spacing:.26em;color:var(--gold);margin-top:3px}
.rail h2{font-size:9px;letter-spacing:.16em;color:#5d6879;padding:16px 22px 7px;text-transform:uppercase}
.nav{display:flex;align-items:center;gap:11px;padding:8px 22px;color:#c3cbd8;font-size:13.5px;border-left:2px solid transparent;cursor:pointer;user-select:none;width:100%;background:none;border-top:0;border-right:0;border-bottom:0;font-family:var(--sans);text-align:left}
.nav:hover{color:#fff;background:rgba(255,255,255,.04)}
.nav.on{color:#fff;background:var(--rail-2);border-left-color:var(--gold)}
.nav .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5;flex:none}
.pill{margin-left:auto;background:rgba(176,141,79,.22);color:#e2c894;font-size:10.5px;padding:1px 7px;border-radius:9px;font-variant-numeric:tabular-nums}
.rail .foot{margin-top:auto;padding-top:18px}
.who{display:flex;align-items:center;gap:10px;padding:14px 22px 0;border-top:1px solid rgba(255,255,255,.07);margin-top:12px}
.who .av{width:26px;height:26px;border-radius:50%;background:var(--gold);color:#1a1206;display:grid;place-items:center;font-size:10px;font-weight:700}
.who b{color:#fff;font-size:12.5px;display:block}
.who span{font-size:10.5px;color:#7c8697}
.top{display:flex;align-items:center;gap:14px;padding:14px 30px;border-bottom:1px solid var(--line);background:var(--card);position:sticky;top:0;z-index:5}
.search{flex:1;max-width:430px;color:var(--faint);font-size:13px}
.kbd{border:1px solid var(--line);border-radius:4px;padding:1px 6px;font-size:10.5px;color:var(--faint)}
.btn{background:var(--rail);color:#fff;border:0;border-radius:7px;padding:8px 15px;font-size:13px;font-weight:600;cursor:pointer;font-family:var(--sans)}
.ghost{background:var(--card);border:1px solid var(--line);color:var(--ink);border-radius:7px;padding:7px 11px;cursor:pointer;font-family:var(--sans);font-size:13px}
main{padding:26px 30px 60px}
.eyebrow{font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:var(--gold);font-weight:700}
.hello{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin:6px 0 22px}
.hello h2{font-family:var(--serif);font-size:33px;font-weight:500;letter-spacing:-.01em}
.hello p{color:var(--muted);margin-top:5px;font-size:13.5px}
.north{min-width:280px}
.north .row{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:700}
.north .row b{color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:0}
.bar{height:3px;background:var(--line);margin:7px 0 5px;border-radius:2px;overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),#d9b878)}
.north small{color:var(--faint);font-size:11.5px}
.signals{display:grid;grid-template-columns:1.15fr repeat(3,1fr);background:var(--card);border:1px solid var(--line);border-radius:11px;overflow:hidden;margin-bottom:20px}
.signals .lead{padding:15px 18px;border-right:1px solid var(--line)}
.signals .lead b{display:flex;align-items:center;gap:8px;font-size:14px}
.signals .lead b i{width:8px;height:8px;border-radius:50%;background:var(--gold)}
.signals .lead span{color:var(--faint);font-size:12px;display:block;margin-top:3px}
.sig{padding:15px 18px;border-right:1px solid var(--line);display:flex;align-items:center;gap:11px}
.sig:last-child{border-right:0}
.sig .ic{width:19px;flex:none;font-size:14px;text-align:center}
.sig b{font-size:13.5px;display:block} .sig span{font-size:11.5px;color:var(--muted)}
.sig .arw{margin-left:auto;color:var(--faint)}
.s-red{background:var(--red-soft)} .s-red b{color:var(--red)}
.grid{display:grid;grid-template-columns:1fr 372px;gap:18px;align-items:start}
.panel{background:var(--card);border:1px solid var(--line);border-radius:11px;overflow:hidden}
.day{padding:9px 20px;background:#fcfbf9;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--faint);font-weight:700;display:flex;justify-content:space-between}
.mtg{display:flex;gap:15px;padding:14px 20px;border-bottom:1px solid var(--line);align-items:flex-start}
.mtg:last-child{border-bottom:0}
.when{width:52px;flex:none;text-align:right}
.when b{font-family:var(--serif);font-size:17px;font-variant-numeric:tabular-nums;display:block}
.when span{font-size:10.5px;color:var(--faint)}
.av2{width:32px;height:32px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff}
.body{flex:1;min-width:0}
.nm{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.nm b{font-size:14.5px}
.chip{font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;font-weight:700;padding:2px 7px;border-radius:4px} .c-gold{background:var(--gold-soft);color:#7d5f22}
.c-red{background:var(--red-soft);color:var(--red)}
.sub{font-size:12.5px;color:var(--muted);margin-top:2px}
.facts{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px;font-size:11.5px;color:var(--muted);align-items:center}
.facts b{color:var(--ink);font-variant-numeric:tabular-nums}
/* THE DEAL CARD, s102. The line used to run the label into the value —
   "Upfront1.50%" — and the two actions were the same grey as everything else,
   so neither could be found. Figures are stated in full: a commission is a
   number Courtney is going to be paid, not "R 0.41m". */
.dealhead{align-items:baseline;padding-bottom:11px}
.dealhead b{font-size:16px}
.dealhead .amt{font-size:14px;font-weight:600;color:var(--ink);
  font-variant-numeric:tabular-nums;white-space:nowrap}
/* Foreign deals show their own currency first, then the rand alongside. */
.dealhead .amt .inzar{color:var(--faint);font-weight:500}
/* The stage weight, shown wherever a weighted figure is. The forecast is
   never a black box — if a column says R400k, the percentage that produced
   it is right next to it. s102. */
.wt{color:var(--faint);font-weight:500;font-size:.85em}

/* THE PIPELINE CARD — four figures, forecast against actual. s102. */
/* FULL WIDTH, LESS HEIGHT, s103. Same four figures, same three columns — the
   card was simply eating a screenful. Row padding roughly halved, the header
   row tightened to a label strip, the figures down from 22px to 17px and the
   subline onto the same line where it fits. */
.pipegrid{display:grid;grid-template-columns:120px 1fr 1fr;gap:0}
.pipegrid>div{padding:8px 16px;border-bottom:1px solid var(--line-2)}
.pipegrid>div:nth-child(-n+3){padding:5px 16px;border-bottom:1px solid var(--line)}
.pipegrid>div:nth-last-child(-n+3){border-bottom:0}
.pipegrid .rl{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--faint);font-weight:700;display:flex;align-items:center}
.pipegrid .hd{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--faint);font-weight:700}
.pipegrid .v{font-size:17px;font-weight:600;color:var(--ink);
  font-variant-numeric:tabular-nums;line-height:1.25}
.pipegrid .sub{font-size:11px;color:var(--faint);margin-top:1px}
.pipegrid .zero .v{color:var(--faint)}
/* Only the pipeline card. Other cards keep their normal header. s103. */
#cd-pipe .cdh{padding:8px 16px}
#cd-pipe .cdh h3{font-size:15px}
#cd-pipe .cdb{padding:0}
.dm-why{display:block;margin-top:5px;font-size:11px;line-height:1.35;color:var(--amber)}

/* The first board column holds people, not deals — quieter, so the eye reads
   the money columns first and this one as a to-do list. s102. */
.col.nodeal{background:#faf9f7}
.col.nodeal .colh .r2{font-style:italic}
.pcard.wait{opacity:.92}
.pcard.wait .nm b{font-weight:600}

.facts.dealfacts{gap:0;margin:2px 0 16px;font-size:12px;align-items:stretch}
.facts.dealfacts>div{display:flex;flex-direction:column;gap:5px;padding:0 22px;
  border-left:1px solid var(--line);min-width:0}
.facts.dealfacts>div:first-child{padding-left:0;border-left:0}
.facts.dealfacts>div>span{font-size:10px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--faint);font-weight:700;white-space:nowrap}
.facts.dealfacts>div>b{font-size:16px;font-weight:600;white-space:nowrap;
  font-variant-numeric:tabular-nums}

/* The two actions. Moving it forward is the thing you do most, so it looks
   like a button. Killing it is deliberate, so it is quiet but reachable —
   never hidden, because a deal that cannot die leaves no denominator. */
.dealacts{display:flex;gap:10px;align-items:center;padding-top:2px}
.deal-go{background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:8px;
  padding:9px 18px;font-size:13px;font-weight:600;font-family:var(--sans);cursor:pointer;
  transition:opacity .15s}
.deal-go:hover{opacity:.85}
.deal-lost{background:none;border:1px solid var(--line);border-radius:8px;
  padding:9px 14px;font-size:13px;font-family:var(--sans);color:var(--muted);cursor:pointer;
  transition:border-color .15s,color .15s}
.deal-lost:hover{border-color:var(--red);color:var(--red)}
.facts .sep{color:var(--line)}
.warn{color:var(--red);font-weight:600} .ok{color:var(--green);font-weight:600}
.flag{display:inline-flex;gap:5px;background:var(--red-soft);color:var(--red);border:1px solid #f0d6cf;border-radius:5px;padding:4px 8px;font-size:11.5px;font-weight:600;margin-top:8px}
.flag.amb{background:var(--amber-soft);color:var(--amber);border-color:#f0e0c4}
.flag.gr{background:var(--green-soft);color:var(--green);border-color:#cfe2d6}
.internal{display:flex;gap:15px;padding:9px 20px;border-bottom:1px solid var(--line);align-items:center;color:var(--faint);font-size:12.5px}
.internal .when b{font-size:13px;color:var(--faint);font-family:var(--sans);font-weight:600}
.q{display:flex;gap:11px;padding:12px 18px;border-bottom:1px solid var(--line);align-items:flex-start}
.q:last-of-type{border-bottom:0}
.ring{width:15px;height:15px;border:1.5px solid #d4cec3;border-radius:50%;flex:none;margin-top:2px}
.q .t{flex:1;min-width:0} .q b{font-size:13.5px;display:block}
.q span{font-size:11.5px;color:var(--faint);display:block;margin-top:1px}
.q .rt{text-align:right;flex:none;font-variant-numeric:tabular-nums}
.q .rt b{font-size:12.5px} .q .rt span{font-size:10.5px}
.wide{display:block;text-align:center;margin:12px 18px 16px;border:1px solid var(--line);border-radius:7px;padding:9px;font-size:12.5px;color:var(--muted);text-decoration:none}
.stats{display:grid;grid-template-columns:repeat(4,1fr);background:var(--card);border:1px solid var(--line);border-radius:11px;margin-top:18px;overflow:hidden}
.stat{padding:16px 20px;border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat .eyebrow{color:var(--faint);font-size:9.5px}
.stat b{font-family:var(--serif);font-size:25px;font-weight:500;display:block;margin:5px 0 2px;font-variant-numeric:tabular-nums}
.stat span{font-size:11.5px;color:var(--faint)}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:700;padding:10px 20px;border-bottom:1px solid var(--line);background:#fcfbf9}
td{padding:11px 20px;border-bottom:1px solid var(--line-2);font-size:13px;vertical-align:top}
tr:last-child td{border-bottom:0}
td.n{text-align:right;font-variant-numeric:tabular-nums}
th.n{text-align:right}
.cols{display:grid;grid-template-columns:repeat(5,1fr);gap:11px}
.col{background:#fcfbf9;border:1px solid var(--line);border-radius:9px;padding:11px;min-height:150px}
.col h4{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700;display:flex;justify-content:space-between}
.col .val{font-family:var(--serif);font-size:15px;margin:5px 0 9px;color:var(--ink)}
.kc{background:var(--card);border:1px solid var(--line);border-radius:7px;padding:8px 9px;margin-bottom:7px}
.kc b{font-size:12.5px;display:block}
.kc span{font-size:10.5px;color:var(--faint);display:block;margin-top:2px}
.kc .ln{height:2px;border-radius:2px;margin-top:6px}
.legend{display:flex;gap:14px;padding:0 20px 14px;font-size:11.5px;color:var(--muted)}
.legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}
.note{margin-top:22px;border:1px dashed #d8d2c7;border-radius:9px;padding:14px 18px;background:#fdfcfa;color:var(--muted);font-size:12.5px}
.note b{color:var(--ink)}

.rec-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:20px;flex-wrap:wrap}
/* BACK, s103. Sits above the eyebrow so the name still reads as the top of the
   page. Generous tap target — this gets used on a phone with one thumb. */
/* DIARY CONTROLS, s103. Own row beneath the header so the view switcher sits
   in the same place on all three views. */
.dnav{display:flex;justify-content:space-between;align-items:center;gap:14px;
  margin:-8px 0 14px;flex-wrap:wrap}
.backb{display:inline-flex;align-items:center;gap:4px;background:none;border:0;cursor:pointer;
  color:var(--muted);font-size:12.5px;font-weight:600;letter-spacing:.02em;
  padding:6px 10px 6px 0;margin:0 0 2px -2px;min-height:34px}
.backb:hover{color:var(--ink)}
.rec-name{font-family:var(--serif);font-size:31px;font-weight:500;margin-top:4px}
.rec-sub{color:var(--muted);font-size:13.5px;margin-top:3px}
.rec-acts{display:flex;gap:13px;align-items:center}
.saved{font-size:11.5px;color:var(--faint)}
.form{max-width:980px}
.fs{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:20px 22px;margin-bottom:16px}
.fs h3{font-family:var(--serif);font-size:19px;font-weight:500;margin-bottom:15px;padding-bottom:11px;border-bottom:1px solid var(--line)}
.fs h3 em{font-style:normal;font-size:12.5px;color:var(--faint);font-family:var(--sans);font-weight:400}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:13px 20px}
.fs label{display:block}
.fs label span{display:block;font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);font-weight:700;margin-bottom:4px}
.fs input,.fs textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-family:var(--sans);font-size:13.5px;color:var(--ink);background:#fdfdfc}
.fs textarea{resize:vertical;line-height:1.55}
.fs input:focus,.fs textarea:focus{outline:2px solid var(--gold);outline-offset:-1px;background:#fff}
.fs input[readonly]{background:#f7f5f2;color:var(--muted)}
.fs label.full{margin-top:13px}
.tag{font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding:2px 7px;border-radius:4px}
.tag.red{background:var(--red-soft);color:var(--red)}
.tag.amb{background:var(--amber-soft);color:var(--amber)}
.tag.grn{background:var(--green-soft);color:var(--green)}
.ghost.sm{margin-top:11px;font-size:12.5px;padding:6px 11px}
.steps{list-style:none}
.steps li{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.steps li input[type=checkbox]{width:15px;height:15px;flex:none;accent-color:var(--gold)}
.steps li input[type=text],.steps li input:not([type]){flex:1}
.steps .dt{font-size:11.5px;color:var(--faint);white-space:nowrap;min-width:62px;text-align:right}
.steps .dt.left{text-align:left;min-width:74px;font-weight:700;color:var(--muted)}
.steps.plain li input{background:#f7f5f2}
.hint{margin-top:12px;font-size:12px;color:var(--muted);line-height:1.5}
.hint.warn{color:var(--red)}
@media(max-width:760px){.fgrid{grid-template-columns:1fr}}

.readfirst{border-radius:9px;padding:13px 17px;margin-bottom:18px;max-width:980px}
.readfirst b{display:block;font-size:14.5px;margin-bottom:3px}
.readfirst span{font-size:12.5px;opacity:.85}
.readfirst.amb{background:var(--amber-soft);border:1px solid #f0e0c4;color:var(--amber)}
.readfirst.red{background:var(--red-soft);border:1px solid #e8cfc7;color:var(--red)}
.liq{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:15px}
.liq div{background:#fdfcfa;padding:10px 13px}
.liq span{display:block;font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);font-weight:700}
.liq b{font-size:15px;font-variant-numeric:tabular-nums;margin-top:3px;display:block}
.liq b.grn{color:var(--green)} .liq b.amb{color:var(--amber)} .liq b.red{color:var(--red)}
.tl{list-style:none}
.tl li{display:flex;gap:13px;font-size:13px;padding:6px 0;border-bottom:1px solid var(--line-2);color:var(--muted)}
.tl li:last-child{border-bottom:0}
.tl .d{flex:none;width:72px;font-weight:700;color:var(--ink);font-size:12px}
@media(max-width:760px){.liq{grid-template-columns:1fr 1fr}}

.form2{max-width:1080px;display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.form2 .cd{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.form2 .cd.wide{grid-column:1/-1}
.cdh{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line)}
.cdh h3{font-family:var(--serif);font-size:18px;font-weight:500}
.cdtag{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;opacity:.85}
.cdb{padding:16px 18px}
.cdlab{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:700;margin-bottom:8px}
.cd-warm .cdh{background:#fdf6ec;color:#7d5f22} .cd-warm{border-color:#efe1c9}
.cd-act .cdh{background:var(--red-soft);color:var(--red)} .cd-act{border-color:#eed8d1}
.cd-need .cdh{background:#eaf4ee;color:var(--green)} .cd-need{border-color:#cfe4d7}
.cd-money .cdh{background:#f3f0e8;color:#6c5a2e} .cd-money{border-color:#e4ddcb}
.cd-gate .cdh{background:#f1eef7;color:#4c3f75} .cd-gate{border-color:#ddd6ea}
.cd-plain .cdh{background:#fcfbf9;color:var(--muted)}
.riq span i{font-style:normal;background:#e6ddf3;color:#4c3f75;font-size:8.5px;letter-spacing:.06em;padding:1px 5px;border-radius:3px;margin-left:5px;vertical-align:1px}
.riq input{border-color:#ddd3ee;background:#fdfcff}
.docs{list-style:none}
.docs li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-2);font-size:13px}
.docs li:last-child{border-bottom:0}
.docs b{flex:none;font-weight:600}
.docs span{color:var(--faint);font-size:11.5px;flex:1}
.docs em{font-style:normal;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;padding:2px 7px;border-radius:4px}
.docs em.ok{background:var(--green-soft);color:var(--green)}
.docs em.out{background:var(--blue-soft);color:var(--blue)}
.docs em.wait{background:var(--amber-soft);color:var(--amber)}
.docs em.miss{background:#f1efec;color:var(--faint)}
.dic{width:8px;height:8px;border-radius:2px;flex:none}
.dic.in{background:var(--green)} .dic.out{background:var(--blue)}
.dic.wait{background:var(--amber)} .dic.none{background:#d5d0c7}
.steps .dt.away{color:var(--amber)} .steps .dt.hi{font-weight:700;color:var(--red)}
.mix{display:flex;gap:2px;height:9px;border-radius:5px;overflow:hidden;margin:14px 0 9px}
@media(max-width:1000px){.form2{grid-template-columns:1fr}}

/* ---- record fields: read-first, edit on touch ---- */
.form2 .fs input,.form2 .fs textarea{border:0}
.cdb .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:2px 26px}
.cdb label{display:block;padding:9px 10px;border-radius:7px;margin:0 -10px;transition:background .12s}
.cdb label:hover{background:#faf8f4}
.cdb label span{display:block;font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:700;margin-bottom:3px}
.cdb input,.cdb textarea{width:100%;border:0;border-bottom:1px solid transparent;border-radius:0;padding:1px 0 3px;background:none;font-family:var(--sans);font-size:15px;font-weight:500;color:var(--ink);line-height:1.4}
.cdb textarea{font-weight:400;font-size:14px;line-height:1.6;resize:vertical}
.cdb input::placeholder,.cdb textarea::placeholder{color:#c3bdb3;font-weight:400;font-style:italic}
.cdb input:hover,.cdb textarea:hover{border-bottom-color:var(--line)}
.cdb input:focus,.cdb textarea:focus{outline:0;border-bottom-color:var(--gold);background:none}
.cdb label.full{margin-top:10px}
.cdb .riq input{border-bottom:1px solid #e6ddf3;background:none}
.cdb .riq input:focus{border-bottom-color:#7b68a8}
.cdb .riq span i{background:none;color:#7b68a8;border:1px solid #ded5ef;font-size:8px;padding:1px 5px;font-weight:700}
/* steps */
.form2 .steps li{padding:7px 10px;margin:0 -10px 2px;border-radius:7px}
.form2 .steps li:hover{background:#faf8f4}
.form2 .steps li input:not([type=checkbox]){border:0;border-bottom:1px solid transparent;padding:2px 0;font-size:14.5px;font-weight:500}
.form2 .steps li input:not([type=checkbox]):hover{border-bottom-color:var(--line)}
.form2 .steps li input:not([type=checkbox]):focus{outline:0;border-bottom-color:var(--gold)}
/* cards, lighter */
.form2 .cd{border-radius:14px;box-shadow:0 1px 2px rgba(16,24,40,.03)}
.cdh{padding:15px 22px 14px;border-bottom:1px solid rgba(0,0,0,.05)}
.cdh h3{font-size:19px;letter-spacing:-.01em}
.cdb{padding:14px 22px 20px}
.ghost.sm{margin-top:14px;border-style:dashed;color:var(--muted)}
.ghost.sm:hover{border-style:solid;color:var(--ink)}

.form2{max-width:none;display:grid;grid-template-columns:repeat(12,1fr);gap:16px;align-items:start} .sp4{grid-column:span 4} .sp5{grid-column:span 5}
.sp6{grid-column:span 6} .sp7{grid-column:span 7} .sp8{grid-column:span 8}
.sp9{grid-column:span 9} .sp12{grid-column:span 12}
.cdb .fgrid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:2px 26px}
.readfirst{max-width:none}
/* action bar */
.actbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);
  border-radius:12px;padding:11px 16px;margin-bottom:18px;position:sticky;top:57px;z-index:4;
  box-shadow:0 1px 2px rgba(16,24,40,.03)}
.actbar .lbl{font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:700;margin-right:3px}
.qa{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fdfdfc;border-radius:8px;
  padding:7px 13px;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;font-family:var(--sans)}
.qa:hover{background:#fff;border-color:#d8d2c7}
.qa i{width:7px;height:7px;border-radius:50%;flex:none}
.qa.call i{background:var(--blue)} .qa.wa i{background:#25a066} .qa.em i{background:var(--gold)}
.qa.mt i{background:#7b68a8} .qa.nt i{background:var(--faint)}
.clock{margin-left:auto;display:flex;align-items:center;gap:14px}
.clock .cw{text-align:right}
.clock .cw span{display:block;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:700}
.clock .cw b{font-size:13.5px}
@media(max-width:1200px){.sp3,.sp4,.sp5{grid-column:span 6}.sp7,.sp8,.sp9{grid-column:span 12}}
@media(max-width:800px){.form2>div{grid-column:span 12!important}}
.ai{padding:13px 0;border-bottom:1px solid var(--line-2)}
.ai:first-child{padding-top:2px} .ai:last-child{border-bottom:0;padding-bottom:2px}
.aih{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.ai .k{font-style:normal;font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;font-weight:700;padding:2px 8px;border-radius:5px}
.k.lead{background:#e7eefb;color:#2c4a7c}
.k.ask{background:#e9f3ec;color:var(--green)}
.k.pin{background:#f3eeff;color:#5b4a8a}
.k.care{background:var(--red-soft);color:var(--red)}
.k.mom{background:var(--amber-soft);color:var(--amber)}
.ai .src{font-size:10px;color:var(--faint);letter-spacing:.04em}
.ai p{font-size:13px;line-height:1.6;color:var(--ink)}

.readfirst.grn{background:var(--green-soft);border:1px solid #cfe4d7;color:var(--green)}
.cdb label span em.tiny{font-style:normal;text-transform:none;letter-spacing:0;font-size:10.5px;color:var(--faint);font-weight:400}

.trig{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;background:var(--card);
  border:1px solid var(--line);border-radius:14px;padding:20px 24px;margin-bottom:9px;box-shadow:0 1px 2px rgba(16,24,40,.03)}
.tb{border:1px solid var(--line);background:#fdfdfc;border-radius:9px;padding:11px 22px;font-size:14px;font-weight:600;
  cursor:pointer;font-family:var(--sans);color:var(--ink)}
.tb.on{background:var(--green-soft);border-color:#bcd8c6;color:var(--green)}
.tb:hover{border-color:#d2ccc1}
.cap{display:grid;grid-template-columns:230px 1fr 250px;gap:18px;align-items:start}
.cur{font-family:var(--serif);font-size:34px;color:var(--faint)}
.tg{border:0;background:#fdfdfc;padding:9px 15px;font-size:13px;font-weight:600;cursor:pointer;font-family:var(--sans);color:var(--muted)}
.tg.on{background:var(--rail);color:#fff}
.skip{border:0;background:none;color:var(--faint);font-size:12.5px;cursor:pointer;font-family:var(--sans);margin-left:auto}
.skip:hover{color:var(--muted);text-decoration:underline}
@media(max-width:1100px){.cap{grid-template-columns:1fr}}

.blk{display:flex;justify-content:space-between;align-items:center;gap:26px;flex-wrap:wrap;background:var(--rail);
  color:#dfe5ee;border-radius:14px;padding:20px 24px;margin-bottom:18px}
.blk .eyebrow{color:var(--gold)}
.clq{display:flex;align-items:center;gap:15px;padding:14px 18px;border-bottom:1px solid var(--line-2)}
.clq:last-child{border-bottom:0}
.clq.sm{align-items:flex-start;gap:12px}
.clw{width:56px;flex:none;text-align:right}
.clw b{font-family:var(--serif);font-size:16px;display:block;font-variant-numeric:tabular-nums}
.clw span{font-size:10.5px;color:var(--faint)}
.clb{flex:1;min-width:0}
.clb>b{font-size:14px;display:block}
.clb .sub{font-size:12px;color:var(--muted);margin-top:2px;display:block}

.tk{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.tick{font-size:11.5px;padding:4px 10px;border-radius:6px;border:1px solid var(--line);color:var(--faint);background:#fdfdfc}
.tick.on{background:var(--green-soft);border-color:#cfe4d7;color:var(--green);font-weight:600}
.tick.add{border-style:dashed;color:var(--faint);cursor:pointer}
.tick.unk{border-style:dashed;color:#b9b3a8}
.blank{border:1px dashed var(--line);border-radius:9px;padding:14px 16px;color:var(--faint);font-size:12.5px;line-height:1.6;background:#fdfcfa}
.blank b{display:block;color:var(--muted);font-size:13px;margin-bottom:3px;font-weight:600}
.rp{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}
.rp .v{font-size:26px;font-family:var(--serif);font-weight:500;line-height:1.1}
.rp span{display:block;font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:700;margin-bottom:4px}
.aum{text-align:right}
.aum span{display:block;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:700}
.aum b{font-family:var(--serif);font-size:30px;font-weight:500;line-height:1.15;display:block;margin-top:2px}
.aum small{display:block;color:var(--faint);font-size:11.5px;margin-top:2px}
.ps{font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;font-weight:700;padding:2px 8px;border-radius:5px}
.ps.red{background:#fff;color:var(--red);border:1px solid #e8cfc7}
.ps.amb{background:#fff;color:var(--amber);border:1px solid #f0e0c4}
.ps.grn{background:#fff;color:var(--green);border:1px solid #cfe4d7}
.rpv .lab{font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:700}
.rpv .big{font-family:var(--serif);font-size:24px;font-weight:500;line-height:1.2;display:block}
.rpv .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rpq .qn{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:700}
.rpq .qt{font-size:14.5px;font-weight:600;margin:4px 0 11px;line-height:1.35}
.opts{display:flex;flex-wrap:wrap;gap:6px}
.opt{font-size:12px;padding:6px 11px;border-radius:7px;border:1px solid var(--line);background:#fff;cursor:pointer;font-family:var(--sans)}
.opt:hover{background:var(--rail);color:#fff;border-color:var(--rail)}
.stack{display:flex;flex-direction:column;gap:14px;min-width:0}
.form2{gap:14px}
.stack>.cd{width:100%}
.form2>.grow{align-self:stretch}
.cd.grow{display:flex;flex-direction:column}
.cd.grow .cdb{flex:1;display:flex;flex-direction:column}
.cd.grow .cdb>label.full:last-child{flex:1;display:flex;flex-direction:column;margin-top:14px}
.cd.grow .cdb>label.full:last-child textarea{flex:1;min-height:70px}
.stack.grow{height:100%}
.pol{border:1px solid #e0d9cb;border-radius:11px;overflow:hidden;margin-bottom:14px;background:#fff}
.pol:last-child{margin-bottom:0}
.ccy{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:18px}
.ccy div{background:#fdfcfa;padding:10px 13px}
.ccy span{display:block;font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);font-weight:700}
.ccy b{font-size:15px;margin-top:3px;display:block}
.ccy small{display:block;color:var(--faint);font-size:11px;margin-top:1px}

 .bands .on b{color:#4c3f75}

.adv{display:flex;flex-direction:column;align-items:flex-end;gap:4px}

.zone{display:none} .zone.on{display:block}
.seg{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--card)}
.seg button{border:0;background:none;padding:7px 13px;font-size:12.5px;font-family:var(--sans);color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:6px}
.seg button.on{background:var(--rail);color:#fff;font-weight:600}
.seg button+button{border-left:1px solid var(--line)}
.scope{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:10px 16px;margin-bottom:16px;font-size:12.5px}
.scope .lbl{font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);font-weight:700}
.scope .rule{color:var(--muted)}
.scope .out{margin-left:auto;display:flex;gap:16px;color:var(--muted)}
.scope .out b{color:var(--ink);font-variant-numeric:tabular-nums}
.scope .out .zero{color:var(--red)}

.tiles{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1.2fr;gap:12px;margin-bottom:16px}
.tile{border:1px solid var(--line);border-radius:10px;padding:13px 16px;background:var(--card);
      box-shadow:0 1px 2px rgba(16,24,40,.04)}
.tile .lb{font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;font-weight:700}
.tile .big{font-family:var(--serif);font-size:26px;font-weight:500;font-variant-numeric:tabular-nums;margin:5px 0 2px;display:flex;align-items:baseline;gap:9px}
.tile .big em{font-style:normal;font-size:15px;color:var(--muted)}
.tile .big em i{font-style:normal;color:var(--line);margin:0 4px}
.tile .sm{font-size:11.5px;color:var(--faint)}
.chip.c-deal{background:var(--green-soft);color:var(--green)}
.chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.chipf{border:1px solid var(--line);background:var(--card);border-radius:16px;padding:5px 13px;font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--muted);cursor:pointer}
.chipf.on{background:var(--gold-soft);border-color:#e0cba4;color:#7d5f22}
.chipf.warn{color:var(--red);border-color:#e8cfc7}
.doors{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.srch{flex:1;max-width:430px;border:1px solid transparent;border-radius:7px;padding:6px 10px;font-family:var(--sans);
  font-size:13px;color:var(--ink);background:none}
.srch:focus{outline:none;border-color:var(--line);background:#fdfcfa}
.srch::placeholder{color:var(--faint)}
.kb{display:grid;grid-template-columns:repeat(6,minmax(224px,1fr));gap:13px;min-width:1380px;align-items:start}
.kch{padding:11px 13px 10px;border-bottom:1px solid var(--line)}
.kch .t{display:flex;align-items:center;gap:7px;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.kch .t em{font-style:normal;margin-left:auto;font-variant-numeric:tabular-nums;font-size:12px}
.kch .v{font-family:var(--serif);font-size:15px;margin-top:6px;font-variant-numeric:tabular-nums;color:var(--ink)}
.kch .v i{font-style:normal;color:var(--line);margin:0 5px;font-weight:300}
.kch .v .nil{color:var(--faint)}

.pc{background:var(--card);border:1px solid var(--line);border-radius:8px;margin-bottom:8px;overflow:hidden;
    box-shadow:0 1px 1px rgba(16,24,40,.03)}
.pc.alert{border-color:#e8cfc7}
.pcb{background:var(--red-soft);color:var(--red);font-size:10px;letter-spacing:.09em;text-transform:uppercase;font-weight:700;padding:5px 10px;display:flex;gap:6px;align-items:center;border-bottom:1px solid #f0d6cf}
.pcb.amb{background:var(--amber-soft);color:var(--amber);border-bottom-color:#f0e0c4}
.pcn{display:flex;align-items:flex-start;gap:7px}
.pcn b{font-size:13.5px;line-height:1.25;flex:1}
.pcv{font-family:var(--serif);font-size:16px;font-variant-numeric:tabular-nums;margin:7px 0 3px}
.pcv i{font-style:normal;color:var(--line);margin:0 5px;font-weight:300}
.pcv .nil{color:var(--faint);font-size:14px}
.pcs{font-size:11px;color:var(--faint)}
.pcs .nat{color:var(--muted);font-variant-numeric:tabular-nums}
.pcd{margin-top:8px;background:var(--amber-soft);border:1px solid #f0e0c4;color:var(--amber);border-radius:5px;padding:5px 8px;font-size:10.5px;font-weight:600}
.pca{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line);border-radius:6px;padding:7px 9px;margin-top:9px;background:#fdfcfa}
.pca .ring{margin-top:1px}
.pca .tx{flex:1;min-width:0}
.pca .tx b{font-size:12px;font-weight:600;display:block}
.pca .tx span{font-size:11px;color:var(--faint);display:block}
.pca.none{border-style:dashed;border-color:#e0c3ba}
.pca.none .ring{border-color:var(--red)}
.pca.none .tx b{color:var(--red)}
.pca.due .tx span{color:var(--red);font-weight:600}
.pcf{display:flex;justify-content:space-between;align-items:center;margin-top:9px;font-size:11px;color:var(--faint)}
.pcf .mv{color:var(--muted);font-weight:600;cursor:pointer}
.mvp{border-top:1px solid var(--line);background:#fbf9f6;padding:10px}
.mvp .h{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:7px}
.mvo{display:block;width:100%;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:6px;
  padding:7px 9px;margin-bottom:5px;cursor:pointer;font-family:var(--sans);font-size:12px}
.mvo:hover{border-color:var(--gold)}
.mvo b{display:block;font-size:12.5px}
.mvo.term{border-color:#e8cfc7} .mvo.term b{color:var(--red)}
.mvp .cx{font-size:11px;color:var(--muted);cursor:pointer;text-decoration:underline;margin-top:3px;display:inline-block}
.mvw{background:var(--amber-soft);border:1px solid #f0e0c4;color:var(--amber);border-radius:5px;padding:6px 8px;
  font-size:11px;font-weight:600;margin-bottom:7px}
.mvf label{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:700;margin:6px 0 3px}
.mvf select,.mvf input{width:100%;border:1px solid var(--line);border-radius:5px;padding:6px 8px;font-size:12px;font-family:var(--sans);background:#fff}
th[data-sort]{cursor:pointer;user-select:none}
th[data-sort]:hover{color:var(--ink)}
th .ar{margin-left:5px;color:var(--gold);font-size:10px}
.fld select{appearance:none;-webkit-appearance:none;border:0;background:none;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;padding:0;margin:0 2px 0 0;outline:none}
.fld select:focus{color:var(--gold)}
.plist td .nm2{font-weight:600}
.plist .muted{color:var(--faint);font-size:11.5px}
@media(max-width:1100px){.kb{min-width:1320px}}
@media(max-width:1100px){.app{grid-template-columns:1fr}.rail{display:none}.grid,.grid-2{grid-template-columns:1fr}.signals,.stats{grid-template-columns:1fr 1fr}.cols{grid-template-columns:1fr 1fr}}

/* Mission Control — s75 */
.sync{font-size:12px;color:var(--muted)}
.wkd{display:flex;gap:14px;padding:10px 20px;border-bottom:1px solid var(--line);align-items:baseline;font-size:12.5px}
.wkd:last-child{border-bottom:0}
.wkd b{width:52px;flex:none;text-align:right;font-family:var(--serif);font-size:13.5px;font-weight:500;color:var(--muted)}
.wkd span{color:var(--ink)}
.wkd span i{font-style:normal;color:var(--line);margin:0 7px}
.wkd span em{font-style:normal;color:var(--red);font-weight:600;margin-left:5px;font-size:11.5px}
.wkd span.none{color:var(--faint)}
.cl{display:flex;gap:15px;padding:14px 20px;border-bottom:1px solid var(--line);align-items:flex-start}
.catch{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.ck{border:1px solid var(--line);background:var(--card);border-radius:16px;padding:5px 13px;font-size:11.5px;
    font-family:var(--sans);color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:6px}
.ck:before{content:"";width:11px;height:11px;border:1.5px solid #d4cec3;border-radius:50%;flex:none}
.ck.done{background:var(--green-soft);border-color:#cfe2d6;color:var(--green);font-weight:600}
.ck.done:before{border-color:var(--green);background:var(--green)}
.ck.held{background:var(--amber-soft);border-color:#f0e0c4;color:var(--amber);font-weight:600}
.ck.held:before{display:none}
.chg{display:flex;gap:14px;padding:9px 20px;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.chg:last-child{border-bottom:0}
.chg .d{width:52px;flex:none;text-align:right;color:var(--faint);font-variant-numeric:tabular-nums}

/* the tick — s75 */
.q[data-task]{transition:opacity .26s ease,transform .26s ease,max-height .3s ease .08s,padding .3s ease .08s;max-height:150px}
.q[data-task] .ring{cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.q[data-task]:hover .ring{border-color:var(--green)}
.q[data-task] .ring.on{background:var(--green);border-color:var(--green);transform:scale(1.25)}
.q[data-task].gone{opacity:0;transform:translateX(16px);max-height:0;padding-top:0;padding-bottom:0;border-bottom-color:transparent;overflow:hidden}
.undo{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;background:var(--green-soft);
      color:var(--green);font-size:12px;font-weight:600;border-bottom:1px solid var(--line);animation:slipin .22s ease}
.undo button{background:none;border:0;color:var(--green);font-family:var(--sans);font-size:12px;font-weight:700;
      text-decoration:underline;cursor:pointer;padding:0}
@keyframes slipin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.ck{transition:background .18s,border-color .18s,color .18s,transform .18s}
.ck.pop{transform:scale(1.08)}

.rm{display:flex;gap:11px;padding:13px 18px;border-bottom:1px solid var(--line);align-items:center}
.rm:last-of-type{border-bottom:0}
.rm .t{flex:1;min-width:0}
.rm b{font-size:13.5px;display:block}
.rm span{font-size:11.5px;color:var(--faint);display:block;margin-top:1px}
.ghost.sm{padding:5px 11px;font-size:12px}

.hello{flex-wrap:wrap}
.wk{display:flex;gap:26px;margin-left:auto}
.wk .g{min-width:150px}
.wk .row{display:flex;justify-content:space-between;gap:14px;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--faint);font-weight:700}
.wk .row b{color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:0;font-size:13px}
.wk .row b i{font-style:normal}
.wk small{color:var(--faint);font-size:11px}
.wk .bar i{background:var(--green);transition:width .45s ease}
.wk .bar i.under{background:linear-gradient(90deg,var(--amber),#d1a05a)}
.signals.two{grid-template-columns:1.3fr 1fr 1fr}

.ck.oc{background:var(--blue-soft);border-color:#cfdcf0;color:var(--blue);font-weight:600}
.ck.oc:before{display:none}
.ck.oc.bad{background:var(--card);border-color:var(--line);color:var(--muted)}
.res{font-size:11.5px;color:var(--muted);border:1px solid var(--line);border-radius:16px;padding:5px 13px;background:#fbfaf8}
.res.bad{background:var(--red-soft);border-color:#f0d6cf;color:var(--red);font-weight:600}
.mt{font-size:11px;color:var(--faint);padding:5px 0 5px 4px;display:flex;align-items:center;gap:8px}
.mt em{font-style:normal;color:var(--muted);text-decoration:underline;cursor:pointer}
.sig[data-jump]{cursor:pointer}
.sig[data-jump]:hover{background:#fcfbf9}
.mt select{font-family:var(--sans);font-size:11.5px;padding:2px 5px;border:1px solid var(--line);border-radius:5px;background:var(--card)}

.ledger{display:flex;gap:26px;align-items:center;background:var(--card);border:1px solid var(--line);
  border-radius:11px;padding:13px 20px;margin-bottom:18px;font-size:12px;color:var(--muted)}
.ledger b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:14px;margin-right:5px}
.ledger .rr{margin-left:auto;color:var(--faint)}
th.n,td.n{text-align:right;font-variant-numeric:tabular-nums}
.seg.small button{padding:5px 10px;font-size:11.5px}
td b.bad{color:var(--red)} td b.good{color:var(--green)}

/* live shell — s75 */
.dstats .lead .fill{color:var(--muted)}
.dstats .lead .fill b{font-weight:700;color:var(--ink)}
.dstats .lead .fill a{color:var(--blue);text-decoration:none;font-weight:600}
.dstats .lead .fill a:hover{text-decoration:underline}

.gap{display:block;font-size:10.5px;color:var(--red);font-weight:600;margin-top:2px}
.gap.ok{color:var(--green)}

.cflow{display:grid;grid-template-columns:repeat(2,1fr);gap:0 34px}
.cflow label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:8px 0;border-bottom:1px solid var(--line-2)}
.cflow label span{font-size:12.5px;color:var(--muted)}
.cflow label input{width:130px;text-align:right;border:0;border-bottom:1px solid transparent;
  background:none;font-family:var(--sans);font-size:13.5px;font-variant-numeric:tabular-nums;padding:2px 0}
.cflow label input:focus{border-bottom-color:var(--line);outline:none}
.ctot{display:grid;grid-template-columns:repeat(2,1fr);gap:0 34px;margin-top:10px}
.ctot div{display:flex;justify-content:space-between;padding:7px 0;font-size:13px;font-weight:600}
.ctot div.full{grid-column:1/-1;border-top:1px solid var(--line);margin-top:6px;font-size:14px}
.ctot b{font-variant-numeric:tabular-nums}
.ahead,.arow{display:grid;grid-template-columns:100px 1fr 62px 120px 118px 100px 26px;gap:10px;
  align-items:center;padding:8px 0;border-bottom:1px solid var(--line-2)}
.ahead span{font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:700}
.ahead .n,.arow .n{text-align:right}
.arow{font-size:13px}
.arow b{font-weight:600}
.arow .muted{color:var(--faint);font-size:11.5px}
.arow-new input,.arow-new select{border:0;border-bottom:1px solid var(--line);background:none;
  font-family:var(--sans);font-size:13px;padding:5px 0;width:100%}
.arow .x{border:0;background:none;color:var(--faint);cursor:pointer;font-size:16px;line-height:1}
.arow .x:hover{color:var(--red)}
@media(max-width:900px){.cflow,.ctot{grid-template-columns:1fr}
  .ahead{display:none}.arow{grid-template-columns:1fr 1fr;gap:4px}}

.mtgb .pushed{font-style:normal;font-size:9.5px;font-weight:700;margin-left:5px;opacity:.7}
.dstats .lead .cmp .warn{color:var(--red)}

.dstats .lead .cmp{font-size:11px;color:var(--faint);margin-top:3px}
.dstats .lead .warn{color:var(--red);font-weight:600}
.dstats .lead .up{color:var(--green);font-size:9px}
.dstats .lead .down{color:var(--red);font-size:9px}

.dstats{display:grid;grid-template-columns:1.15fr repeat(4,1fr);background:var(--card);
  border:1px solid var(--line);border-radius:11px;overflow:hidden;margin-bottom:10px}
.dstats .lead{padding:14px 18px;background:#fcfbf9;border-right:1px solid var(--line)}
.dstats .lead b{display:block;font-family:var(--serif);font-size:16px;font-weight:500}
.dstats .lead span{display:block;font-size:11.5px;color:var(--faint);margin-top:4px}
.dstats .sg{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;
  border-left:1px solid var(--line)}
.dstats .sg b{display:block;font-size:14px;font-weight:600}
.dstats .sg span{display:block;font-size:11.5px;opacity:.8;margin-top:3px}
.dstats .sg .arw{margin-left:auto;font-size:14px;opacity:.5}
.dstats .sg.on{box-shadow:inset 0 -3px 0 currentColor}
.dstats .sg:hover{filter:brightness(.985)}
.legend{display:flex;flex-wrap:wrap;gap:16px;margin:0 2px 16px;font-size:11px;color:var(--faint)}
.legend .lg{display:flex;align-items:center;gap:6px}
.legend .lg i{width:11px;height:11px;border-radius:3px;border:1px solid;display:inline-block}
.legend .lg i.lg-unrec{background:var(--card);border-color:var(--line);box-shadow:inset 3px 0 0 var(--red)}
.legend .lg i.lg-cx{background:#f2efe9;border-color:var(--line);opacity:.5}
@media(max-width:900px){.dstats{grid-template-columns:1fr 1fr}
  .dstats .lead,.dstats .sg{border-left:0;border-top:1px solid var(--line-2)}}

.scrim{position:fixed;inset:0;background:rgba(28,26,23,.18);z-index:70}
.nowline{height:0;border-top:2px solid var(--red);align-self:start;position:relative;z-index:2;
  margin-top:-1px;pointer-events:none}
.nowline:before{content:"";position:absolute;left:-4px;top:-4px;width:7px;height:7px;
  border-radius:50%;background:var(--red)}
.mcell .owed{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--red);
  margin-left:5px;vertical-align:middle}

.trowhead{display:grid;grid-template-columns:1fr 138px 26px;gap:8px;margin:14px 0 4px}
.trowhead span{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:700}
.trow{display:grid;grid-template-columns:1fr 138px 26px;gap:8px;align-items:center;margin-bottom:8px}
.trow input{border:0;border-bottom:1px solid var(--line);background:none;padding:7px 0;
  font-family:var(--sans);font-size:14.5px;width:100%}
.tk-x{border:0;background:none;color:var(--faint);font-size:18px;cursor:pointer;line-height:1;padding:0}
.tk-x:hover{color:var(--red)}

.dstats{display:grid;grid-template-columns:1.25fr repeat(4,1fr);background:var(--card);
  border:1px solid var(--line);border-radius:11px;overflow:hidden;margin-bottom:16px}
@media(max-width:900px){.dstats{grid-template-columns:1fr 1fr}
  .dstats .cell{border-left:0;border-top:1px solid var(--line-2)}}

.wkhead{display:grid;grid-template-columns:62px repeat(7,1fr);border-bottom:1px solid var(--line);
  background:#fcfbf9;position:sticky;top:57px;z-index:3}
.wkhead div{padding:9px 8px;text-align:center;border-left:1px solid var(--line-2)}
.wkhead div:first-child{border-left:0}
.wkhead b{display:block;font-family:var(--serif);font-size:16px;font-weight:500}
.wkhead span{font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:700}
.wkhead .isnow b{color:var(--gold)}
.wkgrid{display:grid;grid-template-columns:62px repeat(7,1fr);grid-auto-rows:26px;position:relative}
.hrlab{grid-column:1;font-size:10.5px;color:var(--faint);text-align:right;padding:0 8px;
  transform:translateY(-6px)}
.slot{border-top:1px solid var(--line-2);border-left:1px solid var(--line-2);cursor:pointer}
.slot:hover{background:#fbfaf8}
.slot.half{border-top-style:dotted}
.dayco{display:grid;gap:2px;min-width:0}
.mtgb{border-radius:7px;padding:4px 7px;font-size:11.5px;line-height:1.25;overflow:hidden;cursor:pointer;
  border:1px solid;min-width:0}
.mtgb b{display:block;font-weight:600;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mtgb span{color:inherit;opacity:.75;font-size:10.5px}
.m-discovery{background:var(--blue-soft);border-color:#cfdcf0;color:var(--blue)}
.m-presentation{background:#f7f0e0;border-color:#e8dcbe;color:#7d5f22}
.m-closing{background:var(--green-soft);border-color:#cfe4d7;color:var(--green)}
.m-client_review{background:#efeaf6;border-color:#ddd3ea;color:#5b4a86}
.m-internal{background:#f2efe9;border-color:var(--line);color:var(--muted)}
.m-other{background:#f2efe9;border-color:var(--line);color:var(--muted)}
.mtgb.unrec{box-shadow:inset 3px 0 0 var(--red)}
.mtgb.cx{opacity:.45;text-decoration:line-through}
.mgrid{display:grid;grid-template-columns:repeat(7,1fr)}
.mcell{min-height:96px;border-top:1px solid var(--line-2);border-left:1px solid var(--line-2);
  padding:6px 7px;cursor:pointer}
.mcell:hover{background:#fbfaf8}
.mcell.off{background:#fcfbf9;color:var(--faint)}
.mcell b{font-size:12px;font-variant-numeric:tabular-nums}
.mcell .mm{font-size:10.5px;margin-top:3px;border-radius:4px;padding:1px 5px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mcell.isnow b{color:var(--gold);font-weight:700}
.drawer{position:fixed;right:0;top:0;bottom:0;width:420px;max-width:100%;background:var(--card);
  border-left:1px solid var(--line);box-shadow:-14px 0 34px rgba(28,26,23,.10);z-index:80;
  display:flex;flex-direction:column}
.dwh{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;
  border-bottom:1px solid var(--line)}
.dwb{padding:18px 20px;overflow-y:auto}
.dwb label{display:block;margin-bottom:12px}
.dwb label span{display:block;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--faint);font-weight:700;margin-bottom:5px}
.dwb input,.dwb select,.dwb textarea{width:100%;font-family:var(--sans);font-size:15px;padding:8px 0;
  border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink)}
.dwb textarea{min-height:70px;padding:8px 0}
.dwfind{position:relative}
.dwfind .hits{position:absolute;left:0;right:0;top:100%}
@media(max-width:900px){.wkgrid,.wkhead{grid-template-columns:44px repeat(7,1fr)}
  .drawer{width:100%}}

.capture{display:none;margin-top:8px}
.capture.on{display:block}
.capture .nx{display:grid;grid-template-columns:1fr 150px;gap:8px;margin-top:8px}
.capture .nx input{border:0;border-bottom:1px solid var(--line);background:none;
  font-family:var(--sans);font-size:13.5px;padding:4px 0;width:100%}
.noteb.wnote{display:none;margin-top:8px}
.noteb.wnote.on{display:block}

.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.tile b{display:block;font-family:var(--serif);font-size:26px;font-weight:500;margin-top:4px}
.tile span{display:block;font-size:11.5px;color:var(--faint);margin-top:4px}
.tile.t-open{background:#fdf9f0;border-color:#eee0c4}
.tile.t-shase{background:var(--blue-soft);border-color:#dbe3ef}
.tile.t-sit{background:#fcfbf9;border-color:var(--line)}
.tile.t-won{background:var(--green-soft);border-color:#d8e7de}
.tile.t-closed{background:var(--red-soft);border-color:#f0dcd6}
.doors{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:12px}
.door{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 18px}
.dh{display:flex;justify-content:space-between;align-items:center}
.dstat{font-size:13.5px;margin-top:6px}
.dstat b{font-family:var(--serif);font-size:20px;font-weight:500;margin-right:5px}
.dstat i{font-style:normal;color:var(--faint);margin-right:16px}
.boardnote{font-size:11.5px;color:var(--faint);text-align:center;margin:10px 0 14px}
.board{display:grid;grid-auto-flow:column;grid-auto-columns:270px;gap:14px;overflow-x:auto;padding-bottom:14px}
.col{background:#fbfaf8;border:1px solid var(--line);border-radius:12px;min-height:120px}
.colh{padding:12px 14px;border-bottom:1px solid var(--line);background:var(--card);border-radius:12px 12px 0 0}
.colh .r1{display:flex;justify-content:space-between;align-items:center}
.colh .r1 p{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
.colh .r1 b{font-family:var(--serif);font-size:16px;font-weight:500}
.colh .r2{font-size:12px;color:var(--faint);margin-top:4px;font-variant-numeric:tabular-nums}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:10px;margin:10px;padding:12px 13px;cursor:pointer}
.pcard:hover{border-color:#d8d0c2}
.pcard .nm{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.pcard .nm b{font-size:13.5px;font-weight:600}
.pcard .fig{font-size:12.5px;color:var(--muted);margin-top:5px;font-variant-numeric:tabular-nums}
.pcard .src{font-size:11px;color:var(--faint);margin-top:3px}
.pcard .na{margin-top:9px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:12px}
.pcard .na b{display:block;font-weight:600;font-size:12.5px}
.pcard .na span{color:var(--faint);font-size:11px}
.pcard .na.book{background:var(--blue-soft);border-color:#dbe3f0}
.pcard .na.book b{color:var(--blue)}
.pcard .na.warn{border-color:#f0d6cf;background:var(--red-soft);color:var(--red)}
.pcard .foot2{display:flex;justify-content:space-between;margin-top:9px;font-size:11px;color:var(--faint)}
.pcard .flagr{border:1px solid #f0d6cf;background:var(--red-soft);color:var(--red);border-radius:7px;
  padding:5px 9px;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:9px}
.chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.chipf{border:1px solid var(--line);background:var(--card);border-radius:18px;padding:6px 13px;
  font-size:11.5px;font-family:var(--sans);color:var(--muted);cursor:pointer;white-space:nowrap}
.chipf.on{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}
.chipf b{font-variant-numeric:tabular-nums;margin-left:5px}
.filters{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px}
.filters input,.filters select{font-family:var(--sans);font-size:13px;padding:8px 10px;
  border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);width:100%}
.crow{display:grid;grid-template-columns:1fr 110px 70px 110px 70px;gap:10px;padding:11px 20px;
  border-top:1px solid var(--line-2);align-items:center;cursor:pointer;font-size:13px}
.crow:hover{background:#fbfaf8}
.crow b{font-weight:600;font-size:13.5px}
.crow small{display:block;color:var(--faint);font-size:11px}
.crow .n{text-align:right;font-variant-numeric:tabular-nums}
.crow .q{color:var(--red)}
.chead{display:grid;grid-template-columns:1fr 110px 70px 110px 70px;gap:10px;padding:9px 20px;
  background:#fcfbf9;border-top:1px solid var(--line);font-size:9.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--faint);font-weight:700}
/* SIX COLUMNS ON THE PROSPECT LIST, s103. Meeting status is its own column and
   is not a number, so it sits left-aligned next to the name. Scoped to this
   list because the same row grid renders the client book, which has five. */
#p-list .crow,#p-list .chead{grid-template-columns:1fr 130px 105px 60px 115px 60px}
#p-list .crow .q{color:var(--red)}
.chead .n{text-align:right}
.fact2{padding:12px 0;border-bottom:1px solid var(--line-2);font-size:13px;line-height:1.55}
.fact2:last-child{border-bottom:0}
.fact2 b{font-weight:700}
.fact2 p{font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);
  font-weight:700;margin-bottom:4px}
@media(max-width:900px){.tiles{grid-template-columns:1fr 1fr}.doors{grid-template-columns:1fr}
  .filters{grid-template-columns:1fr}
  .crow,.chead{grid-template-columns:1fr 90px 60px}
  .crow .h3,.chead .h3{display:none}
  /* Narrow: name, meeting status, days quiet. AUM and next meeting drop —
     the status is the column worth keeping on a phone. s103. */
  #p-list .crow,#p-list .chead{grid-template-columns:1fr 105px 55px}
  #p-list .crow>*:nth-child(3),#p-list .chead>*:nth-child(3),
  #p-list .crow>*:nth-child(5),#p-list .chead>*:nth-child(5){display:none}}

.cd{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;
  box-shadow:0 1px 2px rgba(16,24,40,.03)}
.wrapz{padding:26px 30px 90px}
.finder{position:relative;flex:1;max-width:430px}
.hits{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 5px);background:var(--card);
  border:1px solid var(--line);border-radius:9px;max-height:340px;overflow:auto;
  box-shadow:0 14px 32px rgba(28,26,23,.14)}
.hit{padding:10px 13px;border-bottom:1px solid var(--line-2);cursor:pointer}
.hit:last-child{border-bottom:0} .hit:hover{background:#fbfaf8}
.hit b{display:block;font-size:14px;font-weight:600} .hit span{font-size:11.5px;color:var(--faint)}
.msg{padding:11px 14px;border-radius:9px;font-size:13px;margin-bottom:16px;display:none}
.msg.on{display:block}
.msg.ok{background:var(--green-soft);color:var(--green);border:1px solid #cfe4d7}
.msg.bad{background:var(--red-soft);color:var(--red);border:1px solid #e8cfc7}
.hide{display:none!important}
#login{max-width:350px;margin:16vh auto;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
#login .cdb label{display:block;margin-bottom:14px}
#login input{width:100%;border:0;border-bottom:1px solid var(--line);padding:4px 0;font-size:15px;
  font-family:var(--sans);background:none}
.btn{background:var(--ink);color:#fff;border:0;border-radius:8px;padding:11px 18px;font-size:14px;
  font-family:var(--sans);font-weight:600;cursor:pointer}
.btn[disabled]{opacity:.45;cursor:default}
.mini{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 12px;
  font-size:12.5px;font-family:var(--sans);color:var(--muted);cursor:pointer}
.nav.off{opacity:.32;cursor:default}
.ev{display:flex;gap:13px;padding:12px 0;border-bottom:1px solid var(--line-2);align-items:flex-start}
.ev:last-child{border-bottom:0}
.ev .dt{width:78px;flex:none;font-size:11.5px;color:var(--faint);padding-top:2px}
.ev .tx{flex:1;min-width:0}
.ev .tx b{font-size:13.5px;font-weight:600}
.ev .tx em{display:block;font-style:normal;font-size:11.5px;color:var(--faint);margin-top:2px}
.ev .tx .nt2{margin-top:6px;font-size:12.5px;color:var(--muted);white-space:pre-wrap;line-height:1.55}
.ev .go{margin-left:auto;flex:none}
.tag{font-size:9px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;
  padding:2px 7px;border-radius:4px;margin-left:8px;vertical-align:middle}
.t-held{background:var(--green-soft);color:var(--green)}
.t-no{background:var(--red-soft);color:var(--red)}
.t-mv{background:var(--amber-soft);color:var(--amber)}
.t-bk{background:var(--blue-soft);color:var(--blue)}
.outs{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}
.outs button{border:1px solid var(--line);background:var(--card);border-radius:16px;
  padding:6px 14px;font-size:12.5px;font-family:var(--sans);cursor:pointer;color:var(--muted)}
.outs button{background:var(--card);border-color:var(--line);color:var(--faint)}
.outs button:hover{border-color:#d8d0c2;color:var(--muted)}
.outs button.h.on{background:var(--green-soft);border-color:var(--green);color:var(--green);font-weight:700}
.outs button.n.on{background:var(--red-soft);border-color:var(--red);color:var(--red);font-weight:700}
.outs button.m.on{background:var(--amber-soft);border-color:var(--amber);color:var(--amber);font-weight:700}
.noteb{display:none;margin-top:8px;width:100%;border:0;border-bottom:1px solid var(--line);
  background:none;font-family:var(--sans);font-size:14px;padding:4px 0}
.noteb.on{display:block}
.none2{color:var(--faint);font-size:13px;padding:8px 0}
.pol{display:flex;justify-content:space-between;gap:12px;padding:11px 0;
  border-bottom:1px solid var(--line-2);align-items:baseline}
.pol:last-child{border-bottom:0}
.pol b{font-size:13.5px;font-weight:600} .pol span{font-size:11.5px;color:var(--faint);display:block}
.pol .v{text-align:right;font-variant-numeric:tabular-nums;font-size:13.5px;font-weight:600;white-space:nowrap}
.lrow{display:flex;gap:14px;padding:13px 20px;border-bottom:1px solid var(--line-2);
  align-items:center;cursor:pointer}
.lrow:hover{background:#fbfaf8}
.lrow:last-child{border-bottom:0}
.lrow b{font-size:14px;font-weight:600;flex:1;min-width:0}
.lrow .s{font-size:11.5px;color:var(--faint);white-space:nowrap}
.wk{display:flex;gap:26px;margin-left:auto}
.wk .g{min-width:150px}
.wk .row{display:flex;justify-content:space-between;gap:14px;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--faint);font-weight:700}
.wk .row b{color:var(--ink);letter-spacing:0;font-size:13px;font-variant-numeric:tabular-nums}
.wk small{color:var(--faint);font-size:11px}
.wk .bar i{background:var(--green);transition:width .45s ease}
.wk .bar i.under{background:linear-gradient(90deg,var(--amber),#d1a05a)}
@media(max-width:900px){.app{grid-template-columns:1fr}.rail{position:static;height:auto}.wrapz{padding:18px 16px 80px}}

/* DEAL MODAL — add / edit a deal. s95. */
.dm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:300;display:flex;align-items:center;justify-content:center;padding:20px}
.dm-box{background:var(--card);border-radius:14px;width:100%;max-width:560px;box-shadow:0 8px 40px rgba(0,0,0,.18);display:flex;flex-direction:column;max-height:90vh;overflow:hidden}
.dm-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line);flex-shrink:0}
.dm-head h3{font-size:17px;font-weight:700;letter-spacing:-.02em}
.dm-close{width:30px;height:30px;border:1px solid var(--line);border-radius:7px;background:transparent;cursor:pointer;font-size:16px;color:var(--muted);display:flex;align-items:center;justify-content:center;line-height:1}
.dm-body{padding:20px 22px;overflow-y:auto;flex:1}
.dm-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}
.dm-grid.full{grid-template-columns:1fr}
.dm-field{display:flex;flex-direction:column;gap:4px}
.dm-field label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:700}
.dm-field input,.dm-field select{border:1px solid var(--line);border-radius:7px;padding:8px 10px;font-size:13.5px;font-family:var(--sans);color:var(--ink);background:#fdfdfc;width:100%}
.dm-field input:focus,.dm-field select:focus{outline:2px solid var(--gold);outline-offset:-1px}
.dm-foot{padding:14px 22px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;flex-shrink:0}
/* Edit pencil on deal card */
.deal-edit-btn{font-size:11.5px;color:var(--muted);background:none;border:1px solid var(--line);
  border-radius:7px;padding:5px 11px;cursor:pointer;transition:border-color .15s,color .15s;
  font-family:var(--sans);white-space:nowrap}
.deal-edit-btn:hover{border-color:var(--gold);color:var(--gold)}
/* Add deal trigger */
.deal-add-btn{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);background:var(--card);border:1px dashed var(--line);border-radius:9px;padding:11px 16px;cursor:pointer;width:100%;margin-top:12px;transition:border-color .15s,color .15s}
.deal-add-btn:hover{border-color:var(--gold);color:var(--gold)}
.deal-add-btn .plus{font-size:18px;font-weight:300;line-height:1}

/* TOOLKIT ZONE — s95 */
#tk-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:4px 0}
.tk-tile{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:10px}
.tk-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.tk-top h3{font-size:15px;font-weight:700;letter-spacing:-.02em;line-height:1.3}
.tk-tag{font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;padding:3px 8px;border-radius:5px;background:#edf4ef;color:#2a5a40;white-space:nowrap;flex-shrink:0}
.tk-desc{font-size:13px;color:var(--muted);line-height:1.55;flex:1}
.tk-btn{display:inline-block;text-align:center;text-decoration:none;font-size:13px;padding:9px 0;width:100%;border-radius:8px;margin-top:4px}
@media(max-width:900px){#tk-tiles{grid-template-columns:1fr}}

/* EARNINGS ZONE — s95 */
.e-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.e-tile{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px}
.e-tile p{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:6px}
.e-tile b{display:block;font-size:22px;font-weight:700;letter-spacing:-.02em;margin-bottom:3px}
.e-tile span{font-size:11px;color:var(--muted)}
.e-banner{background:#fdf9ee;border:1px solid #e8d87a;border-radius:9px;padding:11px 16px;font-size:13px;color:#7a6518;margin-bottom:16px;line-height:1.5}
.e-banner b{font-weight:700}
/* Bar chart */
.e-bars{display:flex;gap:6px;align-items:flex-end;height:100px;padding:8px 0 0}
.e-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px}
.e-bar-wrap{flex:1;width:100%;display:flex;align-items:flex-end}
.e-bar{width:100%;background:var(--muted,#9b9684);border-radius:3px 3px 0 0;min-height:2px;opacity:.45;transition:height .3s}
.e-bar.cur{background:var(--gold,#a76a1a);opacity:1}
.e-bar-lbl{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.e-bar-val{font-size:9px;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
/* Table */
.e-tbl-wrap{font-size:13px}
.e-row{display:grid;grid-template-columns:90px 1.8fr 1fr 1fr 1fr 80px;gap:8px;padding:8px 18px;border-bottom:1px solid var(--line-2)}
.e-row:last-child{border-bottom:none}
.e-head{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700;background:var(--bg-1,#f9f7f3);border-radius:6px 6px 0 0}
.e-r{text-align:right;font-variant-numeric:tabular-nums}
.e-nm{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.e-date{color:var(--muted);font-size:12px}
.e-type{font-size:12px;color:var(--muted)}
.e-comm{font-weight:600;color:var(--ink)}
.e-pill{font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:4px;font-weight:700;text-align:center}
.e-written{background:#edf4ef;color:#2a5a40}
.e-issued{background:#edf0f7;color:#2a2f52}
/* Pipeline table — 4-col */
#z-earnings .e-row:has(.e-type:last-of-type){grid-template-columns:2fr 1fr 1fr 1fr}
@media(max-width:1000px){.e-tiles{grid-template-columns:1fr 1fr}.e-row{grid-template-columns:80px 1fr 1fr 1fr}}

/* MISSION CONTROL STRIP — s95 */
.mc-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:14px 0}
.ms-tile{background:var(--card,#fff);border:1px solid var(--line,#e8e3db);border-radius:10px;padding:13px 15px}
.ms-lbl{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted,#9b9684);font-weight:700;margin-bottom:6px}
.ms-val{display:block;font-size:20px;font-weight:700;letter-spacing:-.02em;color:var(--ink,#1a1a1a);line-height:1.1;margin-bottom:3px}
.ms-sub{font-size:11px;color:var(--muted,#9b9684)}
.ms-hot .ms-val{color:#b84030}
.ms-dim .ms-val{color:var(--muted,#9b9684);font-size:15px;padding-top:4px}
@media(max-width:1000px){.mc-strip{grid-template-columns:repeat(3,1fr)}}

/* DASHBOARD ZONE — clean rewrite s95 */
.db-sh{display:flex;align-items:center;gap:10px;margin:20px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.db-ix{font-size:11px;color:#a76a1a;font-weight:700;letter-spacing:.08em;min-width:22px}
.db-sh-lbl{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--ink)}
.db-sh-meta{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-left:auto}
.db-eyebrow{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:6px}
.db-kpi-num{font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1.1;margin-bottom:3px}
.db-kpi-sub{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.4}
.brass{color:#a76a1a}
.db-progress{height:4px;background:var(--line-2,#eee);border-radius:2px;overflow:hidden;margin:8px 0 3px}
.db-progress-fill{height:100%;border-radius:2px;background:#a76a1a}
.brass-fill{background:#a76a1a}

/* 01 Business snapshot */
.db-bento{display:grid;grid-template-columns:1.8fr 1.1fr 1fr;gap:12px;margin-bottom:20px}
.db-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.db-aum-card,.db-ring-card,.db-kpi-card{background:var(--card,#fff);border:1px solid var(--line);border-radius:10px;padding:18px}
.db-aum-card{display:flex;flex-direction:column;justify-content:space-between}
.db-aum-num{font-size:34px;font-weight:700;letter-spacing:-.03em;color:var(--ink);margin:8px 0}
.db-aum-foot{display:flex;gap:16px;font-size:12px;color:var(--muted)}

/* AS AT — every figure built on a feed carries the date the feed last moved.
   Quiet by default: a current number should not shout. Turns amber only once
   the feed is past its own cycle, so the page complains about itself rather
   than waiting for someone to notice. s97. */
.asat{font-size:11px;color:var(--muted);letter-spacing:.02em}
.asat.late{color:var(--amber);font-weight:500}
.asat.none{color:var(--red)}
.db-ring-center{position:relative;display:flex;align-items:center;justify-content:center;margin:8px 0}
.db-ring-num{position:absolute;font-size:15px;font-weight:700;color:var(--ink)}
.db-ring-sub{font-size:11px;color:var(--muted);text-align:center}

/* 02 Growth metrics */
.db-growth-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}
.db-g-card{background:var(--card,#fff);border:1px solid var(--line);border-radius:10px;padding:18px}

/* 03 Commission */
.db-comm-row{display:grid;grid-template-columns:1.6fr 1fr 1.6fr;gap:12px;margin-bottom:20px}
.db-card{background:var(--card,#fff);border:1px solid var(--line);border-radius:10px;padding:16px}
.db-card-sm{}
.db-card-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;margin-bottom:14px}
.db-card-head span:last-child{color:var(--muted);font-weight:400}

/* Monthly bars */
.db-bars{display:flex;gap:2px;align-items:flex-end;height:100px}
.db-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}
.db-bar-bg{flex:1;width:100%;display:flex;align-items:flex-end}
.db-bar-fill{width:100%;background:rgba(155,150,132,.4);border-radius:2px 2px 0 0;min-height:1px;transition:height .3s}
.db-bar-cur{background:#a76a1a}
.db-bar-lbl{font-size:8px;color:var(--muted);text-transform:uppercase;white-space:nowrap}
.db-bar-val{font-size:8px;color:var(--muted);font-variant-numeric:tabular-nums;min-height:10px}

/* Income mix */
.db-mix-item{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:8px}
.db-mix-item b{margin-left:auto;font-weight:700}
.db-mix-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.db-mix-dot.gold{background:#a76a1a}
.db-mix-dot.slate{background:#2c4a7c}

/* Year on year */
.db-yoy-chart{display:flex;align-items:flex-end;gap:3px;height:100px;padding-bottom:2px}
.db-yoy-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0}
.db-yoy-bars{display:flex;gap:2px;align-items:flex-end;flex:1;width:100%}
.db-yoy-bar{flex:1;border-radius:2px 2px 0 0;min-height:1px}
.db-yoy-prev{background:var(--line-2,#e0e0e0)}
.db-yoy-curr{background:#a76a1a}
.db-yoy-leg{display:flex;gap:16px;font-size:11px;color:var(--muted);margin-top:10px;align-items:center;flex-wrap:wrap}
.db-leg-dot{display:inline-block;width:10px;height:10px;border-radius:2px;flex-shrink:0}
.db-leg-dot.yoy-prev{background:var(--line-2,#e0e0e0);border:1px solid var(--line)}
.db-leg-dot.yoy-curr{background:#a76a1a}

/* 04 Book analytics */
.db-book-row{display:grid;grid-template-columns:1.8fr 1fr;gap:12px;margin-bottom:20px}
.db-plat-row{display:grid;grid-template-columns:60px 1fr 70px;gap:8px;align-items:center;margin-bottom:7px;font-size:12px}
.db-plat-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.db-plat-bar{height:6px;background:var(--line-2,#eee);border-radius:3px;overflow:hidden}
.db-plat-bar div{height:100%;background:#2c4a7c;border-radius:3px}
.db-plat-val{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}
.db-split-bar{display:flex;height:18px;border-radius:5px;overflow:hidden;margin-bottom:14px}
.db-split-item{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:10px}
.db-split-item b{margin-left:auto;font-weight:700}
.db-swatch-off{display:inline-block;width:12px;height:12px;background:#2c4a7c;border-radius:3px;flex-shrink:0}
.db-swatch-on{display:inline-block;width:12px;height:12px;background:#edf0f7;border:1px solid var(--line);border-radius:3px;flex-shrink:0}

@media(max-width:1100px){
  .db-bento{grid-template-columns:1fr 1fr}
  .db-comm-row{grid-template-columns:1fr}
  .db-book-row{grid-template-columns:1fr}
  .db-growth-grid{grid-template-columns:1fr}
}

/* Who recorded it, s105. The history row grows a third column on the right —
   there was empty space there and the author is the fact that makes the whole
   record evidence rather than a list. */
.ev .tx{flex:1}
.ev .by{font-size:12px;color:var(--faint);text-align:right;letter-spacing:.02em;
  white-space:nowrap;padding-top:2px;min-width:74px}

/* THE HEADER OF A PERSON'S FILE, s105.
   The line under the name was a sentence of five things read at one weight —
   status, category, adviser, source and city. Source and city print again on
   the card below, so they came off. The two that are left are the two you act
   on, and they are now objects: what this person is, and whose they are. */
.rec-sub{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;
  color:var(--muted);font-size:13.5px}

/* The status. The most important fact on the page, so it is the only thing in
   the header with a fill. Its colour says what kind of state it is: nobody has
   phoned yet, being worked, booked, or finished with. */
.ps-now{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;
  padding:4px 10px;border-radius:5px;background:var(--line-2);color:var(--muted)}
.ps-new{background:var(--red-soft);color:var(--red)}
.ps-trying{background:var(--amber-soft);color:var(--amber)}
.ps-booked{background:var(--green-soft);color:var(--green)}
.ps-not-now{background:var(--blue-soft);color:var(--blue)}
.ps-not-interested,.ps-unqualified{background:var(--line-2);color:var(--faint)}

/* Whose lead it is. Reference, so it is quiet — and it is deliberately not the
   same shape as the status, because it is a different kind of fact. */
.ps-adv{font-weight:600;color:var(--ink)}
.ps-adv:before{content:'Allocated to ';color:var(--faint);font-weight:400}

/* The tier sits with the name, because it describes the person. On the far
   right it belonged to the page instead. Lifted off the baseline so it reads
   against a 31px serif rather than sitting under it. */
.rec-name{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rec-tier{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;font-weight:700;
  padding:5px 11px;border-radius:5px;background:var(--line-2);color:var(--muted);
  position:relative;top:2px}
.rec-tier.t1{background:var(--gold-soft);color:#7d5f22}
.rec-tier.t2{background:var(--amber-soft);color:var(--amber)}
.rec-tier.t3{background:var(--blue-soft);color:var(--blue)}

/* READ-ONLY UNTIL EDIT IS PRESSED, s105.
   A locked field must not look like an empty box waiting for a cursor, and an
   unlocked one must be obvious enough that nobody types into the wrong card. */
#ff-core input[readonly],#ff-personal input[readonly]{
  border-color:transparent;background:transparent;cursor:default;padding-left:0}
.cd.editing #ff-core input,.cd.editing #ff-personal input{
  border-color:var(--line);background:var(--card)}
.cdh #ff-edit,.cdh #ff-done{margin-left:auto}
