/* Tracue final design (canvas artboards 2 + 3): 13px text, 12px tables; colours and fonts from tokens.css (PO-206). Tokens first, then shell, list, panel, mobile. */
:root{--lg-bg:var(--bg);--lg-rail:var(--bg);--lg-card:var(--surface);--lg-ink:var(--text);--lg-mute:var(--text-muted);--lg-dim:var(--text-faint);--lg-line:var(--line);--lg-line2:var(--line);--lg-btn:var(--line-strong);
--lg-accent:var(--accent-text);--lg-accent-dk:var(--accent);--lg-warm:var(--accent-bg);--lg-warm-line:var(--accent-bg);--lg-ok:var(--ok);--lg-ok-bg:var(--ok-bg);--lg-phase:var(--info);--lg-phase-bg:var(--info-bg);--lg-warn:var(--warn);--lg-warn-bg:var(--warn-bg);
--lg-hover:var(--surface-2);--lg-well:var(--surface-3);--lg-mono:ui-monospace,"SF Mono",Menlo,monospace}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--lg-bg);color:var(--lg-ink);font:13px/18px var(--font-text),system-ui,sans-serif;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--lg-accent)}a:hover{color:var(--lg-accent-dk)}
button,select,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.inl{display:inline}
h1,h3{margin:0}
h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--lg-dim);font-weight:600}
.dim{color:var(--lg-dim)}
:focus-visible{outline:2px solid var(--lg-accent);outline-offset:2px}

/* ---------- top bar */
.top{height:48px;flex:0 0 auto;display:flex;align-items:center;gap:14px;padding:0 16px;background:var(--lg-card);border-bottom:1px solid var(--lg-line);position:sticky;top:0;z-index:30}
.logo{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--lg-ink);text-decoration:none}
.logo i{width:18px;height:18px;border-radius:5px;background:var(--lg-ink);display:inline-block}
.offers{display:flex;gap:4px;margin-left:8px;flex-wrap:nowrap;min-width:0;overflow-x:auto}
.offer{padding:5px 10px;border-radius:8px;border:1px solid var(--lg-btn);background:var(--lg-card);font-weight:600;font-size:12px;min-height:30px;text-decoration:none;color:var(--lg-ink);display:inline-flex;align-items:center;white-space:nowrap}
.offer.on{border-color:var(--lg-ink);background:var(--lg-well)}
.offer.add{border-style:dashed;color:var(--lg-mute);font-weight:400}
.info{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:12px;color:var(--lg-mute)}
.info b{color:var(--lg-ink)}
.pill{min-height:28px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;padding:3px 8px;border-radius:999px;font-weight:600;text-decoration:none}
.pill.ok{background:var(--lg-ok-bg);color:var(--lg-ok)}
.pill.credits{border:1px solid var(--lg-btn);background:var(--lg-card);color:var(--lg-ink)}
.smps{display:none}
.pill.credits .smp{font-style:normal;font-weight:400;color:var(--lg-dim);font-size:12px}
.pill.credits b{font-family:var(--lg-mono);color:var(--lg-accent)}
.me summary{list-style:none;width:28px;height:28px;border-radius:50%;background:var(--btn-primary-bg);color:var(--btn-primary-fg);display:flex;align-items:center;justify-content:center;font-weight:600;cursor:pointer}
.me summary::-webkit-details-marker{display:none}
.me{position:relative}
.me .menu{position:absolute;right:0;top:36px;background:var(--lg-card);border:1px solid var(--lg-line);border-radius:10px;padding:10px 12px;min-width:200px;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.me .menu p{margin:0 0 8px;color:var(--lg-mute)}
.me .menu button{width:100%;min-height:36px;border:1px solid var(--lg-btn);background:var(--lg-card);border-radius:8px}

/* ---------- shell */
.shell{flex:1 1 auto;display:flex;min-height:0;position:relative}
.rail{width:188px;flex:0 0 auto;border-right:1px solid var(--lg-line);background:var(--lg-rail);padding:12px 10px;display:flex;flex-direction:column;gap:2px}
.rail a{padding:8px 10px;border-radius:8px;font-weight:600;color:var(--lg-ink);text-decoration:none;display:flex;justify-content:space-between}
.rail a[aria-current=page]{background:var(--lg-well)}
.rail a:hover{background:var(--lg-hover)}
.rail hr{width:calc(100% - 8px);border:0;border-top:1px solid var(--lg-line);margin:8px 4px}
.rail .beta{margin-top:auto;font-size:12px;color:var(--lg-mute);padding:8px 10px;line-height:15px}
.n{font-family:var(--lg-mono);font-size:12px;color:var(--lg-mute)}
.n.hot{color:var(--lg-accent)}
.main{flex:1 1 auto;min-width:0;padding:16px 28px 28px}
.stub{max-width:560px;margin:40px auto}
.stub h1{font-size:20px;font-weight:600;margin-bottom:8px}
.flash{margin:0 0 10px;padding:8px 12px;border-radius:8px;background:var(--lg-ok-bg);color:var(--lg-ok)}
.btn{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:8px;background:var(--btn-primary-bg);color:var(--btn-primary-fg);text-decoration:none;font-weight:600}
.btn:hover{color:var(--btn-primary-hover-fg);background:var(--btn-primary-hover-bg)}

/* ---------- companies */
.cohead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.cohead h1{font-size:20px;font-weight:600}
.sub{color:var(--lg-mute);font-size:12px}
.acts{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--lg-line);overflow-x:auto}
.tab{padding:8px 12px;border-bottom:2px solid transparent;font-weight:600;color:var(--lg-mute);text-decoration:none;white-space:nowrap}
.tab.on{border-bottom-color:var(--lg-ink);color:var(--lg-ink)}
.tab .n{font-size:12px;margin-left:2px}
.filters{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:10px 0}
.fform{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.fchip,.filters select{padding:4px 12px;border-radius:999px;border:1px solid var(--lg-btn);background:var(--lg-card);font-size:12px;text-decoration:none;color:var(--lg-ink);min-height:32px;display:inline-flex;align-items:center}
.fchip.on{background:var(--btn-primary-bg);color:var(--btn-primary-fg);border-color:var(--lg-ink)}
.filters input{height:32px;padding:0 10px;border:1px solid var(--lg-btn);border-radius:999px;font-size:12px;width:200px;background:var(--lg-card)}
.sub b{color:var(--lg-ink)}
.sub b.hot{color:var(--lg-accent)}
.sort{margin-left:auto;font-size:12px;color:var(--lg-mute)}
.sort b{color:var(--lg-ink)}
.mini{display:inline-flex;align-items:center;padding:3px 9px;border:1px solid var(--lg-btn);background:var(--lg-card);border-radius:6px;font-size:12px;text-decoration:none;color:var(--lg-ink);min-height:28px}
.mini[disabled]{opacity:.55;cursor:default}
.apply{display:none}
.list{background:var(--lg-card);border:1px solid var(--lg-line);border-radius:12px;overflow:hidden}
.banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 14px;border-bottom:1px solid var(--lg-line2);font-size:12px;color:var(--lg-mute)}
.banner.warm{background:var(--lg-warm);border-bottom-color:var(--lg-warm-line);color:var(--lg-accent-dk)}
.row{display:grid;grid-template-columns:210px minmax(0,1fr) 220px 90px 70px;gap:12px;align-items:center;padding:9px 14px;border-top:1px solid var(--lg-line2);font-size:12px;line-height:16px}
.banner+.row{border-top:0}
.row.fit{grid-template-columns:minmax(0,1fr) 240px 90px 70px}
.row.hid{grid-template-columns:150px minmax(0,1fr) auto}
.row.on{background:var(--lg-hover)}
.row.seen .nm{color:var(--lg-mute)}
.sig{display:flex;flex-direction:column;min-width:0}
.sig .lab{color:var(--lg-ok);font-weight:600;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.sig .lab.prog{color:var(--lg-mute)}
.sig .when{font-size:12px;color:var(--lg-dim)}
.sig .again{font-size:12px;color:var(--lg-accent);font-weight:600}
.more{color:var(--lg-dim);font-weight:400}
.dot{width:7px;height:7px;border-radius:50%;background:var(--lg-accent);display:inline-block}
.rowname{display:flex;flex-direction:column;min-width:0;text-decoration:none;color:var(--lg-ink)}
.nm{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.words{font-weight:400;color:var(--lg-mute)}
.meta{font-size:12px;color:var(--lg-dim)}
.person{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--lg-dim)}
.person.ok{color:var(--lg-mute)}
.state{font-size:12px;font-weight:600;color:var(--lg-mute)}
.why{padding:4px 8px;border-radius:6px;border:1px solid var(--lg-btn);background:var(--lg-card);font-size:12px;font-weight:600;text-decoration:none;color:var(--lg-ink);text-align:center;min-height:28px;display:inline-flex;align-items:center;justify-content:center}
.kind{font-size:12px;color:var(--lg-dim)}
.empty{padding:18px 14px;color:var(--lg-mute)}
.pager{display:flex;align-items:center;gap:12px;padding:9px 14px;border-top:1px solid var(--lg-line2);color:var(--lg-mute);font-size:12px}
.pager .hint{margin-left:auto;color:var(--lg-dim)}
.soon{display:inline-block;position:relative}
.soon summary{list-style:none;cursor:pointer;padding:5px 10px;border-radius:8px;border:1px solid var(--lg-btn);background:var(--lg-card);font-size:12px;display:inline-block}
.soon summary::-webkit-details-marker{display:none}
.soon p{margin:4px 0 0;font-size:12px;color:var(--lg-mute);max-width:260px;position:absolute;z-index:5;background:var(--lg-card);border:1px solid var(--lg-line);border-radius:8px;padding:8px 10px;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.cr{color:var(--lg-accent)}
.phase{padding:1px 6px;border-radius:4px;background:var(--lg-phase-bg);color:var(--lg-phase);font-size:12px;font-weight:600}
.phase.soonp{background:var(--lg-warn-bg);color:var(--lg-warn)}
.soonbtn{padding:2px 8px;border:1px dashed var(--lg-btn);border-radius:6px;color:var(--lg-mute)}

/* ---------- list beside the open panel (v14): the panel pushes the list, which shrinks to one line per company */
.has-panel .main{padding:16px 20px 28px}
.has-panel .acts,.has-panel .person,.has-panel .state,.has-panel .meta,.has-panel .sig .when,.has-panel .sig .again,.has-panel .sort{display:none}
.has-panel .row{grid-template-columns:170px minmax(0,1fr) 64px}
.has-panel .row.fit{grid-template-columns:minmax(0,1fr) 64px}
.has-panel .row.hid{grid-template-columns:130px minmax(0,1fr) auto}
.has-panel .sig .lab{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}
.has-panel .filters input{width:150px}
.sheet{display:none}
.ftoggle,#ftoggle{display:none}
.filters-body{display:contents}
.tweaks{display:inline-flex;gap:6px;flex-wrap:wrap;margin-left:auto}

/* ---------- Following, Import, Results, Settings */
.narrow{max-width:860px}
.narrow .card,.co .card{margin:12px 0}
.frow{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1.2fr) minmax(0,1.2fr) 100px 70px;gap:12px;align-items:center;padding:10px 14px;border-top:1px solid var(--lg-line2);font-size:12px;text-decoration:none;color:var(--lg-ink)}
a.frow:hover{background:var(--lg-hover)}
.frow.fhead{color:var(--lg-dim);font-weight:600;border-top:0}
.fname,.fperson,.flast{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.flast.hot{color:var(--lg-ok);font-weight:600}
.fperson{color:var(--lg-mute)}.fstate{font-weight:600;color:var(--lg-mute)}.fnext{color:var(--lg-dim)}
.irow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) 80px;gap:10px;padding:6px 0;border-top:1px solid var(--lg-line2);font-size:12px;align-items:center}
.irow:first-of-type{border-top:0}
.ilist{display:flex;flex-direction:column}
.okcard{border-color:var(--lg-ok);background:var(--ok-bg)}
.rej{margin:4px 0;padding-left:18px;color:var(--lg-mute)}
.narrow textarea{min-height:140px;font-family:var(--lg-mono)}
.resgrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start}
.rrow{display:grid;grid-template-columns:minmax(0,1.4fr) 80px 70px 80px 60px minmax(0,1fr);gap:8px;padding:8px 0;border-top:1px solid var(--lg-line2);font-size:12px}
.rrow.rhead{color:var(--lg-dim);font-weight:600;border-top:0}
.rrow .note{color:var(--lg-ok);font-weight:600}
.rrow2{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid var(--lg-line2);font-size:12px}
.empty-in{color:var(--lg-mute);padding:6px 0}
.orow,.srow{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 0;border-top:1px solid var(--lg-line2);font-size:12px;flex-wrap:wrap}
.tiers{display:flex;gap:8px;flex-wrap:wrap}
.tiers span{padding:3px 10px;border:1px solid var(--lg-line);border-radius:999px;font-size:12px}
.delform{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--lg-mute)}
.mbx{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mb{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--lg-line);border-radius:10px;font-size:12px}
.mb.on{border-color:var(--lg-ink);background:var(--lg-hover)}
.phase.okp{background:var(--lg-ok-bg);color:var(--lg-ok)}

/* ---------- B0 */
.startwrap{max-width:780px;margin:24px auto;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}
.startline{font-size:28px;line-height:36px;font-weight:600;letter-spacing:-.01em}
.startline .hot{color:var(--lg-accent)}
.startform{width:100%;display:flex;flex-direction:column;gap:12px;align-items:stretch}
.siteline{display:flex;gap:8px}
.siteline input{flex:1 1 auto;height:48px;padding:0 16px;border:1.5px solid var(--lg-ink);border-radius:10px;background:var(--lg-card);font-size:15px}
.act.big{height:48px;padding:0 20px;border-radius:10px;font-size:14px}
.pick{display:flex;flex-direction:column;gap:6px;align-items:center}
.oneline summary{cursor:pointer;color:var(--lg-accent);text-decoration:underline;font-size:12px}
.oneline input,.oname{width:100%;height:36px;margin-top:6px;padding:0 12px;border:1px solid var(--lg-btn);border-radius:8px;background:var(--lg-card)}
.exbox{width:100%;background:var(--lg-card);border:1px solid var(--lg-line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;text-align:left}
.exrow{display:grid;grid-template-columns:200px minmax(0,1fr) 210px;gap:12px;font-size:12px;line-height:16px}
.exlead{color:var(--lg-mute);font-weight:600}.exlead.sig{color:var(--lg-ok)}
.exwho{color:var(--lg-mute)}
.reveal .rl{opacity:0;animation:rlin .35s forwards}
.reveal .rl:nth-child(1){animation-delay:.1s}.reveal .rl:nth-child(2){animation-delay:.45s}.reveal .rl:nth-child(3){animation-delay:.8s}.reveal .rl:nth-child(4){animation-delay:1.15s}
.reveal .rcol .card:not(:first-child),.reveal .rcol+.rcol{opacity:0;animation:rlin .45s 1.4s forwards}
@keyframes rlin{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.reveal .rl,.reveal .rcol .card:not(:first-child),.reveal .rcol+.rcol{animation:none;opacity:1}}

/* radio chips on B0: no ✕/+ marks, the chosen one is filled and carries a ✓ (Stone #12) */
.pick .ctog input:checked + span::before{content:"✓ "}
.pick .ctog span::after{content:""!important}
.pick .ctog:has(input:checked){background:var(--btn-primary-bg);color:var(--btn-primary-fg);border-color:var(--lg-ink)}

/* ---------- B1 */
.siterow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.siterow label{font-weight:600}
.siterow input{height:32px;padding:0 10px;border:1px solid var(--lg-btn);border-radius:8px;min-width:200px;flex:1 1 200px;background:var(--lg-card);font-family:var(--lg-mono)}
.readgrid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;align-items:start}
.rcol{display:flex;flex-direction:column;gap:14px;min-width:0}
.card{background:var(--lg-card);border:1px solid var(--lg-line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.readlines{display:flex;flex-direction:column;gap:6px;font-family:var(--lg-mono);font-size:12px}
.rl b{display:inline-block;width:14px;color:var(--lg-ok)}
.rl.dimline{color:var(--lg-dim)}.rl.dimline b{color:var(--lg-dim)}
.mono{font-family:var(--lg-mono)}
.sent{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px solid var(--lg-line2);border-radius:8px}
.sent>span{flex:1 1 auto}
.sent.gone{color:var(--lg-dim)}
.edit{flex:0 0 auto}.edit summary{list-style:none;cursor:pointer}.edit summary::-webkit-details-marker{display:none}
.edit form{display:flex;flex-direction:column;gap:6px;margin-top:6px;min-width:260px}
.seedrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--lg-mute)}
.seedrow input{height:32px;padding:0 10px;border:1px solid var(--lg-btn);border-radius:8px;flex:1 1 200px;background:var(--lg-hover)}
.icphead{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline}
.live{font-size:12px;color:var(--lg-mute)}.live b{color:var(--lg-ink)}
.lvl{display:flex;gap:10px;align-items:flex-start;padding-top:6px;border-top:1px solid var(--lg-line2)}
.lvlname{flex:0 0 150px;font-weight:600;font-size:12px;color:var(--lg-mute)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.ctog{display:inline-flex;gap:6px;align-items:center;padding:4px 10px;border:1px solid var(--lg-ink);border-radius:999px;background:var(--lg-well);font-size:12px;cursor:pointer;min-height:32px}
.ctog input{position:absolute;opacity:0;width:1px;height:1px}
.ctog span:first-of-type::after{content:" ✕";color:var(--lg-dim)}
.ctog.off{border-style:dashed;border-color:var(--lg-btn);background:var(--lg-card);color:var(--lg-dim)}
.ctog.off span:first-of-type::after{content:" +"}
.ctog:has(input:focus-visible){outline:2px solid var(--lg-accent);outline-offset:2px}
.ctog.static{cursor:default;border-color:var(--lg-btn);background:var(--lg-card)}
.ctog.static span::after{content:""!important}
.sigs{display:flex;flex-direction:column}
.sigrow{display:grid;grid-template-columns:36px minmax(0,1fr) 64px;gap:10px;align-items:start;padding:10px 0;border-top:1px solid var(--lg-line2);cursor:pointer}
.sigrow:first-child{border-top:0}
.sigrow.locked{opacity:.65;cursor:default}
.sigrow input{position:absolute;opacity:0;width:1px;height:1px}
.sw{width:32px;height:18px;border-radius:999px;background:var(--line-strong);position:relative;margin-top:2px;flex:0 0 auto}
.sw::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .12s}
.sigrow input:checked + .sw{background:var(--lg-ok)}
.sigrow input:checked + .sw::after{left:16px}
.sigrow input:focus-visible + .sw{outline:2px solid var(--lg-accent);outline-offset:2px}
.sigtext{display:flex;flex-direction:column;gap:2px;min-width:0}
.sigcount{text-align:right;font-family:var(--lg-mono);font-size:12px;color:var(--lg-mute)}
.sigfoot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid var(--lg-line2);padding-top:10px}
.flash.err{background:var(--danger-bg);color:var(--danger)}

/* ---------- today */
.quiet{background:var(--lg-card);border:1px solid var(--lg-line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:10px;max-width:760px}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:6px 0 12px}
.tile{background:var(--lg-card);border:1px solid var(--lg-line);border-radius:12px;padding:12px 16px;display:flex;flex-direction:column;gap:2px}
.tile b{font-size:26px;line-height:30px}
.tile span{font-weight:600}
.tile i{font-style:normal;color:var(--lg-mute);font-size:12px}
.trow{display:grid;grid-template-columns:130px minmax(0,1fr) 240px 70px;gap:12px;align-items:center;padding:10px 14px;border-top:1px solid var(--lg-line2);font-size:12px;text-decoration:none;color:var(--lg-ink)}
.trow:first-child{border-top:0}
.trow:hover{background:var(--lg-hover)}
.tkind{color:var(--lg-ok);font-weight:600}
.tperson{color:var(--lg-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topen{color:var(--lg-accent);font-weight:600;text-align:right}
.pad{padding:10px 4px}

/* ---------- panel */
.panel{position:sticky;top:48px;align-self:flex-start;height:calc(100vh - 48px);flex:0 0 480px;width:480px;background:var(--lg-card);border-left:1px solid var(--lg-line);display:flex;flex-direction:column;min-height:0;overflow:hidden}
.phead{padding:14px 18px 0;border-bottom:1px solid var(--lg-line2);display:flex;flex-direction:column;gap:8px}
.pnav{display:flex;align-items:center;gap:8px}
.sq{width:28px;height:28px;border:1px solid var(--lg-btn);background:var(--lg-card);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--lg-ink)}
.sq.off{opacity:.35}
.sq.x{margin-left:auto}
.pos{font-size:12px;color:var(--lg-dim)}
.ptitle{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.pname{font-size:16px;font-weight:700}
.dom{font-family:var(--lg-mono);font-size:12px}
.pacts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.act{height:32px;padding:0 12px;border:1px solid var(--lg-btn);border-radius:8px;background:var(--lg-card);font-size:12px;display:inline-flex;align-items:center;text-decoration:none;color:var(--lg-mute);cursor:pointer}
.act.primary{background:var(--btn-primary-bg);color:var(--btn-primary-fg);border-color:var(--lg-ink);font-weight:600}
.act.on{color:var(--lg-ok);border-color:var(--lg-ok);font-weight:600}
.act.off{opacity:.5;cursor:default}
.act.wide{width:100%;justify-content:center}
.pstate{margin-left:auto;font-size:12px;font-weight:600;color:var(--lg-mute)}
.nf summary{list-style:none}.nf summary::-webkit-details-marker{display:none}
.nf .reasons{display:flex;gap:6px;flex-wrap:wrap;font-size:12px;margin-top:6px;align-items:center;position:absolute;background:var(--lg-card);border:1px solid var(--lg-line);border-radius:10px;padding:8px 10px;z-index:6;box-shadow:0 8px 24px rgba(0,0,0,.35);max-width:520px}
.nf{position:relative}
.chipbtn{padding:2px 9px;border-radius:999px;border:1px solid var(--lg-btn);background:var(--lg-card);font-size:12px;min-height:26px}
.ptabs{display:flex;gap:2px;margin-top:2px}
.ptab{padding:6px 10px;border-bottom:2px solid transparent;font-weight:600;font-size:12px;color:var(--lg-mute);text-decoration:none}
.ptab.on{border-bottom-color:var(--lg-ink);color:var(--lg-ink)}
.pbody{padding:12px 18px 18px;overflow:auto;display:flex;flex-direction:column;gap:14px;font-size:12px;line-height:17px;flex:1 1 auto}
.blk{display:flex;flex-direction:column;gap:5px}
.ev{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px;padding:6px 0;border-top:1px solid var(--lg-line2)}
.ev.expired{color:var(--lg-dim);opacity:.8}
.ev .d,.msg .d{font-family:var(--lg-mono);font-size:12px}
.ev .q{display:block;font-style:italic}
.evi{padding:3px 0}
.btnchip{display:inline-block;padding:1px 8px;border:1px solid var(--lg-btn);border-radius:6px;background:var(--lg-hover);font-weight:600}
.chip{display:inline-block;padding:1px 6px;border-radius:4px;font-size:12px;font-weight:600;background:var(--lg-well);color:var(--lg-mute)}
.chip.dm{background:var(--lg-ok-bg);color:var(--lg-ok)}
.chip.ai{background:var(--lg-phase-bg);color:var(--lg-phase)}
.chip.adv{background:var(--lg-warn-bg);color:var(--lg-warn)}
.person-card{padding:8px 10px;border:1px solid var(--lg-line2);border-radius:8px;display:flex;flex-direction:column;gap:2px;margin-top:2px}
.person-card .ttl{color:var(--lg-mute)}
.eml .em{font-family:var(--lg-mono)}
.st.ok{color:var(--lg-ok);font-weight:600}.st.catch_all{color:var(--lg-warn);font-weight:600}.st.none{color:var(--lg-dim)}
.warn{padding:6px 10px;border-radius:8px;background:var(--lg-warn-bg);color:var(--lg-warn)}
.inbox{padding:8px 10px;border:1px dashed var(--lg-btn);border-radius:8px}
.more summary{cursor:pointer;color:var(--lg-accent);margin:4px 0}
.pfind{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.finding{padding:8px 10px;border-radius:8px;background:var(--lg-ok-bg);color:var(--lg-ok)}
.ai{border-top:1px solid var(--lg-line2);padding-top:10px}
.aihead{display:flex;align-items:center;gap:8px}
.aitext{color:var(--lg-mute);font-style:italic}
.contact,.convo{display:flex;flex-direction:column;gap:12px}
.to .em{font-family:var(--lg-mono);font-weight:500}
.oph{display:flex;align-items:center;gap:10px;margin-bottom:4px}
textarea{width:100%;border:1px solid var(--lg-btn);border-radius:8px;padding:8px 10px;background:var(--lg-card);resize:vertical;line-height:17px}
.mailrow{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.contacted{padding:10px 12px;border-radius:10px;background:var(--lg-ok-bg);color:var(--lg-ok)}
.outc{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:6px;color:var(--lg-mute)}
.msg{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px;padding:6px 0;border-top:1px solid var(--lg-line2)}
.msg .mt{white-space:pre-wrap}
.convo label{font-weight:600}

/* ---------- mobile */
@media (max-width:900px){
 .info .checked,.info .pill.ok{display:none}
 .main{padding:12px 16px 80px}
 .rail{position:fixed;bottom:0;left:0;right:0;width:auto;flex-direction:row;justify-content:space-around;padding:4px 6px;border-right:0;border-top:1px solid var(--lg-line);z-index:40;background:var(--lg-rail)}
 .rail a{min-height:44px;align-items:center;font-size:12px;gap:4px;padding:0 8px}
 .rail hr,.rail .beta{display:none}
 .rail>a[href="/offers"],.rail>a[href$="/settings"],.rail>a[href$="/accounts"]{display:none}
 .row,.row.fit,.row.hid{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px}
 .row .sig{grid-column:1/-1}
 .row .person{grid-column:1}
 .row .state{display:none}
 .why{min-width:56px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
 .panel,.has-panel .panel{position:fixed;top:0;bottom:0;left:0;right:0;width:100%;height:auto;flex:none;z-index:50}
 .has-panel .person,.has-panel .state,.has-panel .meta,.has-panel .sig .when,.has-panel .sig .again{display:block}
 .has-panel .row,.has-panel .row.fit,.has-panel .row.hid{grid-template-columns:minmax(0,1fr) auto}
 .sheet{display:block;position:relative}
 .sheet summary{list-style:none;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer}
 .sheet summary::-webkit-details-marker{display:none}
 .sheetbody{position:absolute;right:0;bottom:52px;background:var(--lg-card);border:1px solid var(--lg-line);border-radius:10px;padding:6px;min-width:220px;box-shadow:0 8px 24px rgba(0,0,0,.35);display:flex;flex-direction:column}
 .sheetbody a,.sheetbody button{min-height:44px;display:flex;align-items:center;padding:0 12px;text-align:left;border:0;background:none;text-decoration:none;color:var(--lg-ink);width:100%}
 .sq{width:44px;height:44px}
 .act,.chipbtn,.mini,.fchip{min-height:44px}
 .tab,.ptab{min-height:44px;display:inline-flex;align-items:center}
 .acts{margin-left:0;width:100%}
 .has-panel .acts{display:none}
 .sent .mini,.edit summary{min-width:44px;justify-content:center}
 .readgrid{grid-template-columns:1fr}
 .sub a,.dim a,.pad a,.banner a,.stub a:not(.btn){display:inline-flex;align-items:center;min-height:44px;padding:0 4px}
 .logo{min-height:44px;min-width:44px}
 .resgrid,.mbx{grid-template-columns:1fr}
 .frow{grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;min-height:44px}
 .frow.fhead{display:none}
 .frow .fperson,.frow .fnext{display:none}
 .frow .flast{grid-column:1/-1;order:3}
 .rrow{grid-template-columns:minmax(0,1.4fr) 52px 52px 52px 44px}
 .rrow .note{grid-column:1/-1}
 .irow{grid-template-columns:minmax(0,1fr) 70px}
 .irow>span:nth-child(2){grid-column:1/-1;order:3}
 .orow .mini,.srow .mini,.delform button,.delform input{min-height:44px;min-width:44px}
 .startline{font-size:22px;line-height:30px}
 .siteline{flex-direction:column}
 .exrow{grid-template-columns:1fr;gap:2px}
 .oneline summary{min-height:44px;display:flex;align-items:center}
 .oneline input,.oname{min-height:44px}
 .seedrow input{min-height:44px}
 .edit form textarea{min-width:0}
 .lvl{flex-direction:column;gap:4px}
 .ctog,.sigrow{min-height:44px}
 .sigrow{padding:12px 0}
 .tiles{grid-template-columns:1fr}
 .trow{grid-template-columns:minmax(0,1fr) auto;min-height:44px}
 .trow .tperson{display:none}
 .trow .tkind{grid-column:1/-1}
 .filters input{width:100%}
 .offer{min-height:44px}
 .offers{flex:1 1 auto;margin-left:0;scrollbar-width:none}
 .offer{max-width:150px;overflow:hidden;text-overflow:ellipsis}
 .ofm:not(.cur){display:none}
 .smpl{display:none}
 .smps{display:inline}
 .lt{display:none}
 .offer.add{min-width:44px;justify-content:center;flex:0 0 auto}
 .siterow input{min-height:44px}
 .info{margin-left:0;gap:8px}
 .pill.credits{padding:2px 8px}
 .top{gap:8px;padding:0 10px}
 .pager .hint{display:none}
 .filters select,.filters input,.soon summary,.nf summary,.me summary,.logo,.pill.credits,.rowname,.btn,.me .menu button,.more summary{min-height:44px}
 .filters select,.filters input,.soon summary,.me summary,.pill.credits{display:inline-flex;align-items:center}
 .dom{display:inline-flex;align-items:center;min-height:44px}
 .pbody a[aria-label],.ev a,.evi a{padding:14px 14px;margin:-14px -8px}
 .ftoggle{display:inline-flex}
 #ftoggle:not(:checked) ~ .filters-body{display:none}
 .filters-body{display:flex;flex-direction:column;gap:6px;width:100%}
 .pill.credits{min-height:44px}
 .me summary{width:44px;height:44px}
}

/* ---------- Explore (Stone's canvas NBD3zcSW9nEX8evgc8k7xp): filter rail + table; plain GET/POST forms, the checkbox toggle needs no script */
.xwrap{display:block;margin:-16px -28px -28px}
.xform{display:none}
.xrail{background:var(--lg-card);overflow:auto}
.xtoggle{display:none}
.xrailhead{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--lg-line);font-size:12px}
.xrailhead b{font-size:14px}
.xgrp{padding:10px 14px;border-bottom:1px solid var(--lg-line2)}
.xgh{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--lg-mute);font-weight:600;margin-bottom:6px}
.xopt{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:12px;cursor:pointer;min-height:24px}
.xopt input,.xpill input,.xck input{position:absolute;opacity:0;width:1px;height:1px}
.xbox{width:14px;height:14px;border:1.5px solid var(--line-strong);border-radius:3px;background:var(--lg-card);flex:none;display:inline-block}
.xopt input:checked + .xbox,.xck input:checked + .xbox{background:var(--lg-ink);border-color:var(--lg-ink)}
.xopt input:focus-visible + .xbox,.xck input:focus-visible + .xbox,.xpill input:focus-visible + span{outline:2px solid var(--lg-accent);outline-offset:2px}
.xl{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xopt .n{margin-left:auto}
.xpills{display:flex;flex-wrap:wrap;gap:5px}
.xpill span{display:inline-flex;gap:6px;align-items:center;padding:3px 9px;border-radius:999px;border:1px dashed var(--line-strong);font-size:12px;min-height:26px;background:var(--lg-card);cursor:pointer}
.xpill input:checked + span{border-style:solid;border-color:var(--lg-ink);background:var(--lg-well);font-weight:600}
.xinp{width:100%;height:30px;border:1px solid var(--lg-btn);border-radius:8px;padding:0 9px;font-size:12px;background:var(--lg-card)}
.xnote{font-size:11px;margin-top:4px;line-height:15px}
.xmore{font-size:11px;padding-top:4px}
.xyears,.xsel{display:flex;gap:6px}
.xsel select{flex:1 1 0;min-width:0;height:30px;border:1px solid var(--lg-btn);border-radius:8px;background:var(--lg-card);font-size:12px}
.xapply{margin:12px 14px;width:calc(100% - 28px);justify-content:center}
.soonp{font-size:11px;padding:1px 6px;border-radius:999px;background:var(--lg-phase-bg);color:var(--lg-phase);font-weight:600;text-transform:none;letter-spacing:0}
.xmain{min-width:0}
.xmain .cohead{margin-bottom:6px}
.xtools{margin-left:auto;display:flex;gap:6px;align-items:center;padding-bottom:4px}
.xp{padding:4px 10px;border:1px solid var(--lg-btn);border-radius:999px;font-size:12px;text-decoration:none;color:var(--lg-ink);background:var(--lg-card);min-height:28px;display:inline-flex;align-items:center}
.xp.on{border-color:var(--lg-ink);background:var(--lg-well);font-weight:600}
.xsort select{max-width:190px}
.xhead{display:flex;align-items:baseline;gap:10px;margin:10px 0 6px;color:var(--lg-mute);font-size:12px;flex-wrap:wrap}
.xhead b{color:var(--lg-ink)}
.xtotal{font-size:22px;font-weight:500}
.xchips{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 10px}
.xchip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:var(--btn-primary-bg);color:var(--btn-primary-fg);text-decoration:none;font-size:12px;min-height:26px}
.xchip:hover{opacity:.9}
.xchip.sug{background:var(--lg-card);color:var(--lg-ink);border:1px dashed var(--line-strong)}
.xwarn{padding:8px 12px;margin:0 0 10px;background:var(--lg-warm);border:1px solid var(--lg-warm-line);border-radius:8px;font-size:12px}
.xrow{display:grid;grid-template-columns:24px minmax(0,1.8fr) minmax(0,1fr) 70px minmax(0,1fr) minmax(0,1.5fr) 36px;gap:10px;align-items:center;padding:8px 14px;border-top:1px solid var(--lg-line2);font-size:12px;line-height:16px}
.xrow.xhd{border-top:0;background:var(--lg-rail);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--lg-mute);font-weight:600;padding-top:7px;padding-bottom:7px}
.xtr{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.xnm{min-width:0;overflow-wrap:anywhere}.xsize{white-space:nowrap}
.xnm b{font-size:13px;font-weight:600}
.xck{display:flex;cursor:pointer}
.sigon{color:var(--lg-ok);font-weight:600}
.xfit{font-weight:600}.xfit.strong{color:var(--lg-ok)}.xfit.possible{color:var(--lg-accent)}.xfit.weak,.xfit.unlikely{color:var(--lg-dim)}
.xact{text-align:right}
.xwatching{color:var(--lg-ok);font-weight:600;font-size:12px}
.xbulk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 4px;padding:10px 14px;background:var(--bar-bg);color:var(--bar-fg);border:1px solid var(--line);border-radius:10px;position:sticky;bottom:8px}
.xbulk .act{background:var(--surface-3);color:var(--text);border-color:var(--line-strong)}
.xbulk .act.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.xgrow{flex:1 1 auto}
.xhint{font-size:12px;color:var(--text-muted)}
.xfoot{font-size:11px;line-height:15px;margin-top:8px}
@media (max-width:900px){
  .xwrap{grid-template-columns:minmax(0,1fr);gap:10px}
  .xtoggle{display:inline-flex}
  .xrailhead{display:none}
  #xtoggle:not(:checked) ~ .xrailbody{display:none}
  .xrail{border:0;background:transparent}
  .xrail .xrailbody{background:var(--lg-card);border:1px solid var(--lg-line);border-radius:12px;margin-top:8px;overflow:hidden}
  .xopt{min-height:44px}.xpill span{min-height:44px;padding:0 14px}
  .xinp,.xsel select{height:44px}
  .xrow{grid-template-columns:28px minmax(0,1fr) auto;row-gap:2px}
  .xrow.xhd{display:none}
  .xrow > .xtr,.xrow > .mono,.xrow > .xfit{grid-column:2}
  .xact{grid-column:3;grid-row:1}
  .xtools{margin-left:0;flex-wrap:wrap}
  .xbulk{position:fixed;left:8px;right:8px;bottom:60px;margin:0;z-index:35;box-shadow:0 6px 24px rgba(0,0,0,.25)}      /* PO-192 (Stone): the bar of ticked rows stays at the bottom, above the phone's tab row */
  .xmain{padding-bottom:140px}
  .xbulk .act{min-height:44px}
  .xpill span{min-height:44px}
}

/* ---------- Accounts (admin) */
.alist .arow{display:grid;grid-template-columns:minmax(0,1.6fr) 80px minmax(0,1fr) minmax(0,3fr);gap:10px;align-items:center;padding:9px 14px;border-top:1px solid var(--lg-line2);font-size:12px}
.alist .arow.ahead{border-top:0;background:var(--lg-rail);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--lg-mute);font-weight:600}
.alist .arow.off{opacity:.65}
.acts-r{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.aform{display:inline-flex;gap:4px;align-items:center}
.anum{width:70px;height:28px;border:1px solid var(--lg-btn);border-radius:6px;padding:0 6px}
.apw{width:130px;height:28px;border:1px solid var(--lg-btn);border-radius:6px;padding:0 6px}
.arow-in{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.arow-in input{height:32px;border:1px solid var(--lg-btn);border-radius:8px;padding:0 10px;font-size:12px;min-width:180px}
.arow-in input.anum{min-width:0;width:80px}
@media (max-width:900px){.alist .arow{grid-template-columns:minmax(0,1fr) 60px}.alist .arow>span:nth-child(3){display:none}.alist .arow .acts-r{grid-column:1/-1}.anum,.apw{height:44px}}
.xsub{margin:2px 0 4px 22px;padding-left:8px;border-left:2px solid var(--lg-line2)}
.xnear{margin:6px 0 0}.xnear .xchip{font-size:11px;min-height:24px;padding:2px 8px}
.xprow{grid-template-columns:24px minmax(0,1.1fr) minmax(0,1.3fr) minmax(0,1.4fr) minmax(0,1fr) minmax(0,1.7fr) 112px}
.xmail .em{font-family:var(--lg-mono)}
@media (max-width:900px){.xprow{grid-template-columns:28px minmax(0,1fr) auto}.xprow.xhd{display:none}.xprow > .xmail{grid-column:2 / 4}}
.attr{padding:10px 28px 18px;font-size:11px;line-height:15px;color:var(--lg-dim);border-top:1px solid var(--lg-line2)}
.attr a{color:var(--lg-mute)}
.xli{font-size:11px;font-weight:600;text-decoration:none;border:1px solid var(--lg-btn);border-radius:4px;padding:0 4px;color:var(--lg-mute);margin-left:4px}
@media (max-width:900px){.attr{padding:10px 16px 76px}}
.xopen{color:inherit;text-decoration:none}.xopen:hover b{text-decoration:underline}
.xbulk.xhidden,.v3 .bar.xhidden{display:none}
.xbulk .xlink{background:none;border:0;padding:0;color:var(--bar-fg);text-decoration:underline;font:inherit;cursor:pointer}
.xbulk [hidden]{display:none}
.xcut{margin:-2px 0 10px}
.xexpall{margin-left:auto}.xmsg{margin:6px 0}.xhead{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.wsteps{list-style:none;padding:0;margin:16px 0;display:flex;flex-direction:column;gap:8px;font-size:14px}.wsteps li{color:var(--lg-mute)}.wsteps li.done,.wsteps li.run{color:var(--lg-ink)}.wsteps b{display:inline-block;width:18px;text-align:center}.wsteps li.done b{color:var(--lg-ok)}.wbar{width:140px;height:6px;vertical-align:middle;margin-left:8px}
.xhd span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}
.has-panel .xwrap{grid-template-columns:minmax(0,1fr)}.has-panel .xrail{display:none}
.has-panel .xrow:not(.xprow){grid-template-columns:24px minmax(0,1.6fr) minmax(0,2fr) 72px}
.has-panel .xrow:not(.xprow) > :nth-child(3),.has-panel .xrow:not(.xprow) > :nth-child(4),.has-panel .xrow:not(.xprow) > :nth-child(5),.has-panel .xrow:not(.xprow) > :nth-child(7),.has-panel .xrow:not(.xprow) > :nth-child(8){display:none}
.xrow.sel{background:var(--accent-bg)}
.blkh{padding:12px 14px 6px;border-top:1px solid var(--lg-line);font-size:13px}.ready{margin:0 0 14px}.ready h3{font-size:14px;margin:0 0 6px}.rcards{display:flex;gap:8px;flex-wrap:wrap}.rcard{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border:1px solid var(--lg-line);border-radius:10px;background:var(--lg-card);text-decoration:none;color:var(--lg-ink);min-width:200px;max-width:280px;font-size:12px}.rcard b{font-size:13px}
.scount.zero{opacity:.5}.info{margin-left:4px;color:var(--lg-mute);cursor:help;font-size:12px}
.undobar{position:fixed;left:50%;transform:translateX(-50%);bottom:72px;z-index:60;display:flex;gap:14px;align-items:center;background:var(--bar-bg);color:var(--bar-fg);border:1px solid var(--line);border-radius:10px;padding:10px 16px;box-shadow:var(--shadow-pop)}.undobar[hidden]{display:none}.undobar button{background:none;border:0;color:var(--bar-fg);text-decoration:underline;font:inherit;cursor:pointer;min-height:44px;min-width:44px}
.nf .reasons{min-width:220px}.nf .reasons .chipbtn{white-space:nowrap}.act.secondary{background:var(--lg-card);color:var(--lg-ink);border:1px solid var(--lg-btn)}.act.secondary[disabled]{opacity:.5;cursor:not-allowed}
.pnote{display:block;margin:4px 0 8px;padding:4px 10px;border-radius:8px;background:var(--lg-ok-bg);color:var(--lg-ok);font-size:12px;line-height:16px}
.jobs .job{margin:8px 0;padding:6px 8px;border:1px solid var(--lg-line2);border-radius:8px;background:var(--lg-card)}.jobs .job.off{opacity:.6;border:0;padding:2px 0;background:none}.jobs .jhead{margin-top:10px}.jt{display:inline-block;padding:0 6px;border-radius:4px;font-size:12px;background:var(--lg-well);color:var(--lg-mute)}.jt.hit,.jobs mark{background:var(--warn-bg);color:var(--warn)}
.xhire{margin-top:8px;padding:8px 0 2px;border-top:1px dashed var(--lg-line2)}.xhl{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--lg-mute);margin:8px 0 4px}.xpill.zero span{opacity:.5}
.cfl{margin:3px 0 0;font-size:12px}
.cphone{margin:10px 0;padding:8px 0;border-top:1px solid var(--lg-line2)}.cphone .plabel{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--lg-mute);margin-right:6px}.cphone .pnum{font-size:15px}.cphone.weak .pnum{color:var(--lg-mute);font-weight:400}.cphone .call{display:none;text-decoration:none}
@media (max-width:720px){.cphone .call{display:inline-flex}.cphone .mini{min-height:44px;padding:0 14px}.cphone .pnum{font-size:16px;display:block;margin:4px 0}}
.cf{display:inline-block;padding:1px 7px;border-radius:999px;font-size:12px;font-weight:600;background:var(--lg-well);color:var(--lg-mute)}
.cf.ok{background:var(--ok-bg);color:var(--ok)}.cf.ok2{background:var(--ok-bg);color:var(--ok)}.cf.warn{background:var(--warn-bg);color:var(--warn)}.cf.none{background:var(--lg-well);color:var(--text-muted)}
.xrow{grid-template-columns:24px minmax(0,1.5fr) minmax(130px,.9fr) 64px minmax(0,.9fr) minmax(0,2.3fr) 92px 62px 72px}
.xtr[data-label="Signal"]{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.xprog{width:100%;max-width:420px;height:10px;margin-top:6px}
@media (max-width:900px){
  .xrow{row-gap:2px}
  .xrow > [data-label]::before{content:attr(data-label) ": ";color:var(--lg-dim);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
  .xchip,.xp,.xpill span{min-height:44px}
  .xchips{gap:8px}
  .xtools{flex-wrap:nowrap;overflow-x:auto}
  .tabs{flex-wrap:nowrap;overflow-x:auto}
  .xrow .mini,.xact .mini{min-height:44px;min-width:44px}
}
@media (max-width:480px){.rail{padding:4px 2px;gap:0}.rail a{padding:0 4px;gap:2px;flex:1 1 0;min-width:0;justify-content:center}.rail .n{font-size:10px;padding:0 4px}.sheet{flex:0 0 44px}}
/* Explore rows on a phone: one card per company — name first, then the latest signal, then age · more · place with Watch at the bottom right (Stone wave 2 §4). Kept LAST so no table rule above can override it. */
@media (max-width:900px){
  .xrow:not(.xprow){grid-template-columns:28px minmax(0,1fr) auto;grid-template-areas:none;row-gap:2px;column-gap:8px;align-items:start;padding:10px 12px}
  .xrow.xhd:not(.xprow){display:none}
  .xrow:not(.xprow) > *{grid-column:2;min-width:0}
  .xrow:not(.xprow) > .xck{grid-column:1;grid-row:1}
  .xrow:not(.xprow) > .xnm{grid-column:2;grid-row:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
  .xrow:not(.xprow) > .xnm .dim{display:none}
  .xrow:not(.xprow) > :nth-child(4){grid-column:3;grid-row:1;text-align:right}
  .xrow:not(.xprow) > :nth-child(6){grid-row:2;grid-column:2 / 4}
  .xrow:not(.xprow) > :nth-child(5){grid-row:3;grid-column:2;color:var(--lg-mute)}
  .xrow:not(.xprow) > .xact{grid-column:3;grid-row:3;align-self:end}
  .xrow:not(.xprow) > .xact .mini{min-height:44px;min-width:64px}
  .xrow:not(.xprow) > :nth-child(3){display:none}
  .xrow:not(.xprow) > .xtr[data-label]::before{display:none}
  .xtr[data-label="Signal"]{-webkit-line-clamp:2}
}
@media (max-width:900px){
  .xrow:not(.xprow) > .mono::before,.xrow:not(.xprow) > .xfit::before{display:none}
  .xrow:not(.xprow) > .xfit{grid-column:2;font-size:11px}
  .xmain .cohead .sub{display:none}
}
@media (max-width:900px){
  .co .cohead .acts{flex-wrap:nowrap;overflow-x:auto;gap:6px;padding-bottom:2px;width:100%}
  .co .cohead .acts .soon{display:none}
  .co .cohead .acts .act{white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
  .xcut{display:none}
}


/* PO-189: Scan signals — the confirmation and the waiting page; on a phone the confirmation is a sheet from the bottom (buttons 44/48 px) */
.scanbox p,.scanjob p{margin:8px 0}.scanbox .warn{background:var(--lg-warn-bg);color:var(--lg-warn);padding:10px 12px;border-radius:8px}
.scanform{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}
.scanjob .wbar{width:100%;height:10px;margin:8px 0}.scanrow{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
@media (max-width:720px){
  .scanbox{position:fixed;left:0;right:0;bottom:0;margin:0;max-width:none;max-height:85vh;overflow:auto;background:var(--lg-card);border-radius:16px 16px 0 0;padding:20px 16px 24px;box-shadow:0 -8px 30px rgba(0,0,0,.18);z-index:30}
  .scanbox .scanform .act,.scanbox .act{min-height:44px;display:inline-flex;align-items:center}.scanbox .scanform .primary{min-height:48px;flex:1;justify-content:center}
  .scanjob .act{min-height:44px;display:inline-flex;align-items:center}.scanrow{grid-template-columns:minmax(0,1fr)}
  .xscan{min-height:44px}
}
.scandet{margin-top:4px}.scandet summary{cursor:pointer;color:var(--lg-accent);min-height:24px}.scandet .ev{margin:6px 0;line-height:1.4}.scandet .q{color:var(--lg-mute);font-style:italic;margin-top:2px}
@media (max-width:720px){.scandet summary{min-height:44px;display:flex;align-items:center}}
.scanline{display:block;min-width:0;overflow-wrap:anywhere}.scandet .ev{display:block;margin:8px 0}.scandet .evm{display:flex;flex-wrap:wrap;gap:2px 10px;margin-top:2px}.scandet .q{overflow-wrap:anywhere}
@media (max-width:720px){.scanrow{display:block}.scanrow .xnm{display:block;margin-bottom:2px}.xbulk .act{flex:1 1 auto;text-align:center}.xbulk .xgrow{display:none}}
/* PO-192 (Stone): the screen-reader-only label of the Sort form (position:absolute) sat beyond the clipped tab strip and widened the whole page to 429 px on a phone; the strip is now its containing block, so it is clipped with it */
.tabs{position:relative}
.mark{background:none;border:0;padding:0 4px;color:var(--lg-warn);cursor:pointer;font:inherit}.st.ok{color:var(--lg-ok)}.st.warn{color:var(--lg-warn)}.st.bad{color:var(--danger)}.dmdot{color:var(--lg-accent);font-size:10px;vertical-align:middle}

/* PO-196: Watch is a small sign that shows on hover (always on a phone, where there is no hover) */
.xw{background:none;border:1px solid var(--lg-btn);border-radius:6px;width:26px;height:26px;line-height:22px;padding:0;color:var(--lg-mute);opacity:0;cursor:pointer}.xrow:hover .xw,.xw:focus{opacity:1}
@media (hover:none),(max-width:900px){.xw{opacity:1;min-width:44px;min-height:44px}}


/* ---------- PO-206 L1: Tracue design system (variant B) on top of the legacy rules above.
   tokens.css owns the colours/fonts; the legacy names are aliased to them (--lg-*). components.css is linked screen by screen from L2. ---------- */
body{font-family:var(--font-text),system-ui,sans-serif;background:var(--bg);background-image:radial-gradient(1000px 360px at 50% -140px,rgba(255,122,0,.10),transparent 70%);background-repeat:no-repeat}
[data-theme="light"] body{background-image:radial-gradient(1000px 360px at 50% -140px,rgba(255,122,0,.07),transparent 70%)}
h1,.cohead h1,.stub h1{font-family:var(--font-display);font-weight:420;letter-spacing:var(--ls-tight)}
h1{font-size:28px;line-height:1.15}
h3{font-family:var(--font-display);letter-spacing:var(--ls-label-sm)}
a{color:var(--accent-text)}a:hover{color:var(--text)}
:focus-visible{outline:0;box-shadow:var(--focus)}
.top{background:var(--surface);border-bottom-color:var(--line)}
.logo{font-family:var(--font-display);font-size:18px;letter-spacing:-.04em}
.logo i{background:var(--accent);border-radius:6px}
.rail{background:var(--bg);width:216px;padding:16px 12px;gap:2px}
.rail .mgroup{font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:var(--ls-label-sm);text-transform:uppercase;color:var(--text-faint);padding:16px 12px 4px}
.rail .mgroup:first-child{padding-top:4px}
.rail a{padding:7px 12px;font-weight:500;font-size:14px;color:var(--text-muted);border-left:2px solid transparent;border-radius:8px;cursor:pointer}
.rail a:hover{background:var(--surface-2);color:var(--text)}
.rail a:active{transform:translateY(1px)}
.rail a[aria-current=page]{background:var(--accent-bg);color:var(--text);border-left-color:var(--accent)}
.n,.n.hot{color:var(--text-faint)}
.rail a[aria-current=page] .n{color:var(--text-muted)}
.n.hot::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--text-muted);margin-right:6px;vertical-align:middle}
.btn,.act.primary{font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--ls-label-sm);font-size:12px;border-radius:8px}
.act.primary:hover{background:var(--btn-primary-hover-bg);color:var(--btn-primary-hover-fg);border-color:var(--btn-primary-hover-bg)}
/* everything clickable lights up */
.act,.fchip,.offer,.xchip,.tab,.xp,.xpill span,.chipbtn{cursor:pointer}
.act:hover,.fchip:hover,.offer:hover,.xp:hover,.xpill span:hover,.chipbtn:hover{background:var(--surface-3);border-color:var(--text-muted)}
.act:active,.fchip:active,.btn:active,.offer:active{transform:translateY(1px)}
.row,.xrow,.trow,a.frow{cursor:pointer}
.row:hover,.xrow:hover,.trow:hover,a.frow:hover{background:var(--surface-2)}
.row:hover,.xrow:not(.xhd):hover{box-shadow:inset 2px 0 0 var(--accent)}
.row.on{background:var(--accent-bg);box-shadow:inset 2px 0 0 var(--accent)}
.xrow.sel{background:var(--accent-bg)}
.xrow.xhd,.xhd{background:var(--surface-2);color:var(--accent-text);font-family:var(--font-display);font-size:11px;letter-spacing:var(--ls-label-sm);text-transform:uppercase}
.tab.on{color:var(--accent-text);border-bottom-color:var(--accent)}
.pill.credits b{color:var(--accent-text)}
/* one dropdown: height 32, one chevron */
select{appearance:none;-webkit-appearance:none;height:32px;padding:0 32px 0 12px;font:500 13px/32px var(--font-text);background-color:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:8px;background-image:var(--chev);background-repeat:no-repeat;background-position:right 10px center;background-size:14px;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;max-width:100%}
select:hover{border-color:var(--text-muted)}
input,textarea{background:var(--surface-2);color:var(--text);border-color:var(--line)}
:root{--chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239AA5AB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
[data-theme="light"]{--chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23566068' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
/* "?" help: a tooltip on hover (about 150 ms), a tap on touch screens; markup <span class="qm" tabindex="0" data-tip="ind">?</span>, words in final.js HELP */
.qm{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;border:1px solid var(--line-strong);color:var(--text-muted);font-size:10px;font-weight:600;cursor:help;position:relative;margin-left:6px;vertical-align:middle}
.tooltip{position:fixed;z-index:90;max-width:260px;background:var(--surface-2);color:var(--text);border:1px solid var(--line-strong);border-radius:8px;box-shadow:var(--shadow-pop);padding:8px 10px;font-size:12px;line-height:17px;pointer-events:none;display:none}.tooltip b{display:block;margin-bottom:2px;font-weight:600}
.qm:hover,.qm:focus-visible{color:var(--text);border-color:var(--text)}
@media (max-width:760px){.rail .mgroup{display:none}}

/* People with nothing to open sit behind "+N more" (PO-199): a checkbox before the table opens them */
.v3 .tw .hid{display:none}
.v3 .tw #morepeople:checked ~ table .hid{display:table-row-group}
.v3 .tw #morepeople:checked ~ table .morebody{display:none}
.v3 .tw .hid td{opacity:.7}

/* Prospect screens (PO-206 L2) */
.v3.pro .xtoggle{display:none}
.v3 button.bmk{background:none;border:0;padding:0;min-height:0}
.v3 .xchip.p-chip{text-decoration:none}
.v3 .xchip.p-chip.sug{background:transparent;border:1px dashed var(--line-strong);color:var(--text-muted)}
.v3 .xck{display:inline-flex;align-items:center;cursor:pointer}
.v3 .xck .xbox{width:16px;height:16px;border:1.5px solid var(--line-strong);border-radius:4px;background:transparent;display:inline-block}
.v3 .xck input:checked + .xbox{background:var(--accent);border-color:var(--accent)}
.v3 .xck input{position:absolute;opacity:0;width:0;height:0}
.v3 .xall{display:inline-block}
.v3 a.rn{display:inline-flex;align-items:center;color:var(--text);text-decoration:none;max-width:100%}
.v3 a.rn:hover .il{color:var(--accent-text);text-decoration:underline}
.v3 td a:not(.rn):not(.lia){color:var(--text)}
.v3 .p-top .p-back{color:var(--text-muted);text-decoration:none}
.v3 .p-top h1 .xtotal{font-family:inherit}
.v3 .colmenu{position:relative}.v3 .colmenu summary{list-style:none;cursor:pointer}.v3 .colmenu summary::-webkit-details-marker{display:none}
.v3 .colmenu .dd{right:0;left:auto;top:36px;min-width:210px;padding:8px}
.v3 .colmenu .cmenu-i{display:flex;gap:8px;align-items:center;padding:4px 6px;border-radius:6px;cursor:pointer}.v3 .colmenu .cmenu-i:hover{background:var(--surface-3)}
.v3 .chv{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.v3 .bar .xcount{font-weight:500}.v3 .bar .xlink{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer;padding:0}
.v3 .bar select,.v3 .bar input[type=text]{height:32px;background:rgba(255,255,255,.08);color:inherit;border:1px solid var(--line-strong);border-radius:8px;padding:0 10px}
.v3 .empty1{display:flex;gap:12px;align-items:center;padding:28px 20px;color:var(--text-muted)}
.v3 .p-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;padding:20px}
.v3 .p-card{position:relative;padding:0}
.v3 .p-cardlink{display:flex;flex-direction:column;gap:4px;padding:14px 16px;color:var(--text);text-decoration:none}
.v3 .p-cardlink:hover b{color:var(--accent-text)}
.v3 .p-more{position:absolute;right:8px;top:8px}.v3 .p-more summary{cursor:pointer;list-style:none;padding:2px 8px;color:var(--text-muted)}.v3 .p-more .dd{right:0;left:auto;top:28px;min-width:230px}
.v3 .p-newlist{display:inline-flex;gap:8px}
.v3 .p-gone{padding:12px 20px;color:var(--text-muted);display:flex;flex-direction:column;gap:6px}
.v3 .p-ren{display:flex;gap:6px;padding:6px}
@media (max-width:900px){.v3.pro .xtoggle{display:inline-flex}.v3 .layout{grid-template-columns:minmax(0,1fr)}}

.savemenu{position:absolute;z-index:80;width:280px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-pop);padding:10px;display:flex;flex-direction:column;gap:6px}
.savemenu .sm-row{display:flex;gap:8px;align-items:center;padding:4px 6px;border-radius:6px;cursor:pointer}.savemenu .sm-row:hover{background:var(--surface-3)}
.savemenu .sm-new{height:32px;background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:0 10px}

/* Stone's L2a points: ink text on solid orange, one primary button in the bar, [hidden] always hides, popups */
.v3 [hidden]{display:none!important}
.v3 .p-btn.p-d,.v3 .bar .p-btn.p-d,.v3 .p-newlist .p-btn.p-d{background:var(--accent);color:var(--on-accent);border-color:transparent}
.v3 .p-btn.p-d:hover,.v3 .bar .p-btn.p-d:hover{background:var(--accent-soft);color:var(--on-accent)}
.v3 .bar .p-btn:not(.p-d){background:transparent;border:1px solid var(--line-strong);color:inherit}
.v3 .bar .p-btn:not(.p-d):hover{background:rgba(255,255,255,.1)}
.savemenu .sm-find{height:32px;background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:0 10px}
.savemenu .sm-list{display:flex;flex-direction:column;max-height:200px;overflow:auto}

/* Keywords / Technologies combo */
.combo{position:relative}
.combo-box{display:flex;gap:4px}.combo-box input{flex:1;min-width:0;height:32px;background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:0 10px}
.combo-arrow{width:32px;height:32px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;color:var(--text-muted);display:grid;place-items:center;padding:0}.combo-arrow:hover{border-color:var(--line-strong);color:var(--text)}
.combo-list{position:absolute;z-index:40;left:0;right:0;top:36px;max-height:300px;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-pop);padding:4px}
.cl-group{font-family:var(--font-display);font-size:11px;letter-spacing:var(--ls-label-sm);text-transform:uppercase;color:var(--text-faint);padding:8px 8px 2px}
.cl-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer}.cl-row:hover{background:var(--surface-3)}.cl-row.on{color:var(--accent-text)}
.cl-l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cl-n{color:var(--text-faint);font-size:12px;font-variant-numeric:tabular-nums}
.cl-act{display:none;gap:4px}.cl-row:hover .cl-act{display:inline-flex}.cl-row:hover .cl-n{display:none}
.cl-act button{height:22px;padding:0 8px;font-size:11px;border-radius:999px;border:1px solid var(--line-strong);background:transparent;color:var(--text);cursor:pointer}.cl-act button:hover{background:var(--surface-2)}
.cl-none{padding:10px;color:var(--text-muted)}
.combo-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.combo-chips .p-chip{margin:0}
.ccx{background:none;border:0;color:inherit;padding:0 0 0 2px;cursor:pointer;font-size:11px}
.cc-mode{margin-top:6px;font-size:12px;color:var(--text-muted)}.cc-mode label{display:inline-flex;gap:4px;align-items:center;margin-left:8px}
.v3 .kc{display:inline-block;height:22px;line-height:22px;padding:0 9px;margin-right:5px;border-radius:999px;background:var(--surface-3);color:var(--text);font-size:12px;text-decoration:none}
.xgrp:has(.combo-list:not([hidden])){position:relative;z-index:50}
.xgrp{overflow:visible}
.v3 .xgrp .combo{border:0;background:none;max-height:none;overflow:visible;position:relative;border-radius:0;margin:0}

/* combo box: ONE 32 px box, the thin chevron inside it (design system "Combo box") */
.combo-box{position:relative;display:block}
.combo-box input{width:100%;height:32px;padding:0 34px 0 12px}
.combo-box .combo-arrow{position:absolute;right:0;top:0;width:32px;height:32px;background:none;border:0;border-radius:0 8px 8px 0}
.combo-list{max-height:260px}
.js .xapply{display:none}
.cc-limit{margin-top:6px;font-size:12px;color:var(--danger)}
.v3 button.mk{background:none;border:0;padding:0;color:var(--text-muted);font:inherit;cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}.v3 button.mk:hover{color:var(--accent-text)}
.v3 .mk.off{color:var(--text-faint);cursor:not-allowed}
/* person panel */
.v3p .pperson{display:flex;gap:12px;align-items:center}
.v3p .avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-weight:600;color:#fff;flex:none}
.v3p .cohead2{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.v3p .prow.cobox{display:block}.v3p .prow{padding:6px 0}
.v3p .cph{display:flex;gap:8px;align-items:center;margin-top:6px}
.v3p .kwl{display:flex;gap:10px;align-items:center;margin-top:10px;padding-top:8px;border-top:1px solid var(--line);font-size:12px}
.v3p .hist{margin-top:16px;color:var(--text-muted)}.v3p .hist summary{cursor:pointer;list-style:none}
.v3p .nm2{color:var(--text);text-decoration:none}.v3p .nm2:hover b{color:var(--accent-text)}
.v3p .sec{font-family:var(--font-display);font-size:11px;letter-spacing:var(--ls-label-sm);text-transform:uppercase;color:var(--text-faint);margin:18px 0 4px}
.v3p .rl{display:inline-flex;gap:12px;align-items:center}.v3p .rl .p-ic{width:16px;height:16px;fill:none;stroke:var(--text-muted);stroke-width:1.6;flex:none}

/* waiting for an in-place answer */
html.busy .pmain{opacity:.55;transition:opacity .15s}
html.busy::before{content:"";position:fixed;left:0;top:0;height:3px;width:35%;background:var(--accent);z-index:300;animation:busyslide 1s linear infinite}
@keyframes busyslide{from{transform:translateX(-100%)}to{transform:translateX(300%)}}
.v3p .pnum{white-space:nowrap}

/* Mark as sent / ✓ Sent (Undo on hover) */
.v3p .btn-sent{background:var(--ok-bg);color:var(--ok);border-color:transparent;text-transform:none;letter-spacing:0}
.v3p .sentb .t2{display:none}.v3p .sentb:hover .t1{display:none}.v3p .sentb:hover .t2{display:inline}
.v3p .p-st{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:600}

/* PO-206: no top bar. The logo, the menu, the credits and Sign out live in the left column; the offer is chosen in the "Selling" bar of the screens that depend on it */
.rail{position:sticky;top:0;align-self:flex-start;height:100vh;overflow:auto}
.rail .logo{padding:6px 12px 14px;font-size:20px}
.rail .railfoot{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding:12px 4px 4px;border-top:1px solid var(--line)}
.rail .railfoot a,.rail .railfoot button{display:block;padding:6px 8px;border-radius:8px;color:var(--text-muted);text-decoration:none;background:none;border:0;text-align:left;font:inherit;cursor:pointer}
.rail .railfoot a:hover,.rail .railfoot button:hover{color:var(--text);background:var(--surface-2)}
.rail .railfoot .pill.credits{display:flex;justify-content:space-between;border:1px solid var(--line);background:var(--surface-2);color:var(--text)}
.rail .railfoot .adminlink{font-size:12px;color:var(--text-faint)}
.mtop{display:none}
.shell{min-height:100vh}
.ob{display:flex;align-items:center;gap:14px;padding:8px 20px;margin:-16px -28px 16px;border-bottom:1px solid var(--line);background:var(--surface);position:relative}
.ob .sp{flex:1}
.ob details.obm{position:relative}.ob details.obm summary{list-style:none;cursor:pointer;display:inline-flex;gap:8px;align-items:center;min-height:32px;white-space:nowrap}
.ob details.obm summary::-webkit-details-marker{display:none}
.ob .dd{position:absolute;left:0;top:36px;z-index:40;min-width:250px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-pop);padding:4px;display:flex;flex-direction:column}
.ob .dd form{display:block}.ob .dd button,.ob .dd a{display:block;width:100%;text-align:left;padding:7px 12px;border-radius:6px;border:0;background:none;color:var(--text);text-decoration:none;cursor:pointer}
.ob .dd button:hover,.ob .dd a:hover{background:var(--surface-3)}.ob .dd hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.ob .checked{color:var(--text-muted);font-size:12px}
@media (max-width:760px){
  .mtop{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:30}
  .rail .logo,.rail .railfoot{display:none}
  .rail{position:fixed;height:auto;top:auto}
  .ob{margin:-16px -16px 12px;padding:8px 16px;flex-wrap:wrap}
}
.ob .dd .offer.on::after{content:" \2713";color:var(--accent-text)}
.rail a.logo{justify-content:flex-start;gap:8px;color:var(--text);border-left:0;padding:6px 12px 14px;font-weight:600}
.rail a.logo:hover{background:none}

/* filter groups fold; a badge counts what is chosen in a folded group */
details.xgrp>summary.xgh{display:flex;justify-content:space-between;align-items:center;cursor:pointer;list-style:none;padding:2px 0}
details.xgrp>summary.xgh::-webkit-details-marker{display:none}
details.xgrp>summary .chv{width:14px;height:14px;fill:none;stroke:var(--text-muted);stroke-width:2;transition:transform .15s}
details.xgrp[open]>summary .chv{transform:rotate(180deg)}
details.xgrp .xn{font-style:normal;background:var(--surface-3);color:var(--text);border-radius:999px;padding:0 7px;font-size:11px;margin-left:6px;font-weight:600}
details.xgrp>.xgb{padding-top:8px}
.v3 .layout.nr{grid-template-columns:minmax(0,1fr)}.v3 .layout.nr>.xrail{display:none}
.v3 .p-top .hidefilters{display:inline-flex}

/* waiting: say so next to the title */
html.busy .p-top .sp::after{content:"Updating…";color:var(--text-muted);font-size:12px;padding-right:12px}
/* PO-206 L3c (Stone): "Selling: X" stays on one line and is cut with …; the Signals filter bars get 16px of air and two tidy rows */
.ob details.obm summary b{max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v3 .sigbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--line)}
.v3 .sigbar+.sigbar{padding-top:8px}
.v3 .sigbar .p-lbl{font-size:12px;color:var(--text-muted);margin-right:4px}
.v3 .sigbar .sp{flex:1}
/* PO-206 L4a: What I sell = the offers as cards; the whole card opens the editor, ⋯ has Rename / Duplicate / Delete */
.v3 .ocard{display:flex;flex-direction:column;gap:6px;min-height:104px}
.v3 .ocard .ohit{position:absolute;inset:0;border-radius:12px;z-index:1}
.v3 .ocard .ofacts{margin-top:auto;font-size:12px}
.v3 .omenu{position:absolute;right:10px;top:8px;z-index:3}
.v3 .omenu>summary{list-style:none;cursor:pointer;padding:2px 8px;border-radius:6px;color:var(--text-muted);font-size:18px;line-height:1}
.v3 .omenu>summary::-webkit-details-marker{display:none}
.v3 .omenu>summary:hover,.v3 .omenu[open]>summary{background:var(--surface-3,var(--surface-2));color:var(--text)}
.v3 .omenu .dd{position:absolute;left:auto;right:0;top:30px;min-width:260px;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;padding:8px;box-shadow:0 8px 24px rgba(0,0,0,.35);display:flex;flex-direction:column;gap:6px}
.v3 .omenu .orn{display:flex;gap:6px}.v3 .omenu .orn input{flex:1;min-width:0}
.v3 .omenu .mi{background:none;border:0;color:var(--text);text-align:left;padding:6px 8px;border-radius:6px;cursor:pointer;font:inherit;width:100%;list-style:none}
.v3 .omenu .mi:hover{background:var(--surface-2)}
.v3 .omenu .odel>summary::-webkit-details-marker{display:none}
.v3 .omenu .odel form{display:flex;flex-direction:column;gap:8px;padding:6px 8px}
.v3 .omenu .chk{font-size:12px;color:var(--text-muted)}
.ob details.obm{flex:0 0 auto;min-width:0;max-width:50%}
.ob .checked{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ob details.obm summary{max-width:100%;min-width:0}
.ob details.obm summary b{flex:none}
/* PO-206 L4b: Customers = up to five group cards; each card saves itself */
.v3 .otabs{display:flex;gap:4px;padding:0 20px;border-bottom:1px solid var(--line)}
.v3 .otab{padding:10px 14px;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-1px;text-decoration:none;font-size:14px}
.v3 .otab:hover{color:var(--text)}.v3 .otab.on{color:var(--text);border-bottom-color:var(--accent)}
.v3 .cgintro{display:flex;align-items:center;gap:10px;padding:14px 20px;flex-wrap:wrap}
.v3 .cgroups{display:flex;flex-direction:column;gap:14px;padding:0 20px 28px}
.v3 .cg{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:14px 16px}
.v3 .cg.off{opacity:.6}
.v3 .cghead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;position:relative}
.v3 .cgnum{width:24px;height:24px;border-radius:50%;background:var(--surface-2);display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-muted)}
.v3 .cgname{font:inherit;font-size:16px;font-weight:600;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text);padding:4px 8px;min-width:200px;max-width:340px}
.v3 .cgname:hover,.v3 .cgname:focus{border-color:var(--line-strong);background:var(--bg)}
.v3 .cgcount{color:var(--accent-text);font-size:13px;font-weight:600}
.v3 .cgprio,.v3 .cgon{font-size:12px;color:var(--text-muted);display:inline-flex;gap:6px;align-items:center}
.v3 .cgcols{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:12px}
@media (max-width:900px){.v3 .cgcols{grid-template-columns:1fr}}
.v3 .cgcol h3{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);margin:14px 0 6px;font-weight:600}.v3 .cgcol h3:first-child{margin-top:0}
.v3 .cgsec{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-top:1px solid var(--line)}
.v3 .cglab{font-size:13px;color:var(--text-muted)}
.v3 .cgpills{display:flex;flex-wrap:wrap;gap:6px}
.v3 .cpill{display:inline-flex;cursor:pointer}.v3 .cpill input{position:absolute;opacity:0;pointer-events:none}
.v3 .cpill span{border:1px solid var(--line-strong);border-radius:999px;padding:3px 10px;font-size:12px;color:var(--text-muted);background:var(--bg)}
.v3 .cpill:hover span{color:var(--text)}
.v3 .cpill input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.v3 .cpill input:focus-visible+span{outline:2px solid var(--accent-text);outline-offset:2px}
.v3 .xneg input:checked+span{background:#7c2330;border-color:#a33242;color:#fff}
.v3 .cgmore>summary{cursor:pointer;color:var(--accent-text);font-size:12px;margin:4px 0;list-style:none}
.v3 .cgmore>summary::-webkit-details-marker{display:none}
.v3 .cgfield{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted);margin-top:8px}
.v3 .cgbody .p-in{width:100%;max-width:360px}
.v3 .cgfoot{display:flex;align-items:center;gap:10px;margin-top:10px}
.v3.owrap{height:auto;background:transparent}

/* PO-206 L4c: Signals library */
.v3 .stbl td{vertical-align:top}.v3 .stbl .sgon{width:44px}.v3 .stbl .sgsum{white-space:nowrap}
.v3 .stbl tr.off b.il{color:var(--text-muted)}.v3 .stbl .sgn{text-align:right;width:160px}
.v3 .stbl .scount{font-variant-numeric:tabular-nums;color:var(--accent-text);font-weight:600}
.v3 .stbl tr.sect td{padding-top:14px}
.v3 .stbl select.p-in{min-width:86px}
.v3 .sw{appearance:none;-webkit-appearance:none;width:34px;height:20px;border-radius:999px;background:var(--surface-3,var(--line-strong));position:relative;cursor:pointer;border:0;vertical-align:middle;transition:background .15s}
.v3 .sw::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--text);transition:transform .15s}
.v3 .sw:checked{background:var(--accent)}.v3 .sw:checked::after{transform:translateX(14px);background:var(--on-accent)}
.v3 .sw:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}
.v3 .sgform{display:flex;flex-direction:column;gap:12px;padding-bottom:12px}
form.sr{display:none}
/* PO-206 L5: Settings = a menu on the left, one page at a time */
.v3 .setgrid{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;padding:12px 20px 40px;align-items:start}
@media (max-width:760px){.v3 .setgrid{grid-template-columns:1fr}}
.v3 .setnav{display:flex;flex-direction:column;gap:2px;position:sticky;top:60px}
.v3 .setnav a{padding:8px 12px;border-radius:8px;color:var(--text-muted);text-decoration:none;border-left:2px solid transparent}
.v3 .setnav a:hover{color:var(--text);background:var(--surface-2)}
.v3 .setnav a.on{color:var(--text);background:var(--surface);border-left-color:var(--accent)}
.v3 .setbody{max-width:760px;display:flex;flex-direction:column;gap:10px}
.v3 .setbody h2{font-size:20px;margin:0 0 4px}.v3 .setbody h3{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);margin:18px 0 4px;font-weight:600}
.v3 .setrow{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}
.v3 .setpick{display:flex;gap:8px}
.v3 .setform{display:flex;flex-direction:column;gap:10px;max-width:420px}
.v3 .setform label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}
.v3 .reqform{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.v3 .reqform .p-in{min-width:260px}
.v3 .reqline{margin-top:2px}
.v3 .bigcr{font-size:26px;color:var(--accent-text)}
.v3 .srow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}
/* PO-212: the filters column is open when you arrive; "« Hide filters" is at the top of it; once hidden, a vertical "Filters N" tab on the table's left edge opens it again */
.v3 .layout>.ftab{display:none}
.v3 .layout.nr>.ftab{display:flex;align-items:center;gap:8px;writing-mode:vertical-rl;transform:rotate(180deg);padding:14px 7px;border:1px solid var(--line-strong);border-left:0;border-radius:0 10px 10px 0;
  background:var(--surface);color:var(--text);cursor:pointer;font:600 12px var(--font-text);letter-spacing:.5px;align-self:start;margin-top:12px;grid-column:1;grid-row:1}
.v3 .layout.nr>.ftab:hover{background:var(--surface-2);border-color:var(--accent)}
.v3 div.layout.nr{grid-template-columns:36px minmax(0,1fr)}.v3 div.layout.nr>.pmain{grid-column:2;grid-row:1}
.v3 .p-top .hidefilters{display:none}
.v3 .xrailhead .hidefilters{display:inline-flex}
.v3 .xfind{width:100%;margin:0 0 8px;box-sizing:border-box}.v3 .xsel{font-size:12px;margin-bottom:6px}.v3 .xsel a{color:var(--accent-text)}
.v3 .xopt[hidden],.v3 .xpill[hidden]{display:none}
/* PO-213 C4: the Status cell of a row: "✓ Sent · 20 Oct" turns into Undo under the pointer */
.v3 button.p-st.sentb{border:0;cursor:pointer;font-family:inherit;min-width:104px;justify-content:center}
.v3 .p-st.sentb .t2{display:none}.v3 .p-st.sentb:hover{background:var(--danger-bg);color:var(--danger)}
.v3 .p-st.sentb:hover .t1{display:none}.v3 .p-st.sentb:hover .t2{display:inline}
/* PO-213 E2: every popup has a visible close */
.pclose{position:absolute;top:6px;right:6px;width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:var(--text-muted,var(--lg-dim));cursor:pointer;font-size:13px;line-height:1;z-index:2}
.pclose:hover{background:var(--surface-2,rgba(255,255,255,.08));color:var(--text,inherit)}
.savemenu{padding-top:30px}
.v3 .omenu .dd{padding-top:30px}.v3 details.colmenu>.dd,details.sheet>.sheetbody{padding-top:30px}
.v3 .findintro{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;margin-bottom:10px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface-2);font-size:13px}
.v3 .sgx{background:none;border:0;color:var(--text-muted);cursor:pointer;font-size:14px;padding:4px 8px;border-radius:6px}.v3 .sgx:hover{background:var(--danger-bg);color:var(--danger)}
.v3 .sgh{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);margin:22px 20px 4px;font-weight:600}
@media (max-width:900px){.v3 .layout>.ftab,.v3 .layout.nr>.ftab{display:none}.v3 .xrailhead .hidefilters{display:none}.v3 div.layout.nr{grid-template-columns:minmax(0,1fr)}.v3 div.layout.nr>.pmain{grid-column:1}}
/* PO-212: the Company column of People: plain text with a small letter tile (a logo later), underlined only under the pointer */
.v3 a.coln{display:inline-flex;align-items:center;gap:6px;color:var(--text);text-decoration:none;max-width:100%}
.v3 a.coln span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v3 a.coln:hover span{text-decoration:underline;color:var(--accent-text)}
.v3 a.coln .lg{width:20px;height:20px;font-size:9px;border-radius:5px;flex:none}
/* PO-215: a company logo sits over its letter tile (lazy; a missing one is dropped and the letters stay) */
.v3 .lg{position:relative;overflow:hidden}
.v3 .lg .lgimg{position:absolute;inset:0;width:100%;height:100%;box-sizing:border-box;padding:2px;object-fit:contain;background:#fff;border-radius:inherit;opacity:0}
.v3 .lg .lgimg.on{opacity:1}                    /* PO-215: a logo always sits on a white tile (dark and light theme alike) with 2px around it; until it has loaded the coloured letter tile shows */
.v3 .rn .lg{width:24px;height:24px}
.v3 .pname.pco{display:inline-flex;align-items:center;gap:10px}.v3 .pname.pco .lg{width:40px;height:40px;font-size:14px;border-radius:9px;margin-right:0}
/* PO-216: the mark of tracue.com (orange open ring and dot) with "tracue" in the same lower case and weight as the landing page */
.logo svg{width:22px;height:22px;flex:none}
.logo .lt{font-family:var(--font-display);font-weight:600;font-size:24px;letter-spacing:-.04em;line-height:1;text-transform:none}
.rail .logo{font-size:24px}
/* PO-218: the company description in the panel: two lines, "more" opens the rest */
.v3 .pdesc{margin:0 0 12px;font-size:13px;color:var(--text)}
.v3 .pdesc summary{cursor:pointer;list-style:none}.v3 .pdesc summary::-webkit-details-marker{display:none}
.v3 .pdesc .pdl{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.v3 .pdesc[open] .pdl{display:none}.v3 .pdesc .pdm{color:var(--accent-text);font-style:normal;font-size:12px}
.v3 .pdesc[open] .pdm{display:none}.v3 .pdesc p{margin:0}
/* PO-220: the head of the filters column is the prototype's one row: "« Filters (n)" on the left, a dim "Hide" on the right, the whole row clickable, never wrapping */
.v3 .xrailhead{display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;white-space:nowrap;padding:11px 16px;border-bottom:1px solid var(--line);font:600 14px var(--font-text);cursor:pointer;position:sticky;top:0;background:var(--surface);z-index:2;text-transform:none}
.v3 .xrailhead:hover{background:var(--surface-2)}
.v3 .xrailhead i{font-style:normal;background:var(--accent);color:var(--on-accent);border-radius:999px;padding:0 7px;font-size:11px;margin-left:6px;font-weight:600}
.v3 .xrailhead i[hidden]{display:none}
.v3 .xrailhead .dim{font-weight:400;font-size:12px}
.v3 .afl .aflclear{margin-left:4px;font-size:12px;white-space:nowrap}
/* PO-220: a person's LinkedIn is a small mono icon right after the name (shown only when there is one) */
.v3 .p-nm{white-space:nowrap}.v3 .p-nm .rn{display:inline-flex;max-width:calc(100% - 24px);vertical-align:middle}
.v3 .p-nm .nli{display:inline-flex;margin-left:6px;vertical-align:middle}
/* PO-220 (E5): the combo list floats (position set by the script), 320 px at most, wide enough for the names; + and − are two small buttons that replace the count under the pointer */
.combo-list{position:fixed;z-index:1000;max-height:320px;overflow-y:auto;overflow-x:hidden;box-sizing:border-box;min-width:0}
.cl-row{position:relative}.cl-row.act{background:var(--surface-3)}
.cl-n{min-width:34px;text-align:right}
.cl-act{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:var(--surface-3);border-radius:999px}
.cl-act button{width:24px;padding:0;font-size:14px;line-height:20px;text-align:center}
.cl-row:hover .cl-n,.cl-row.act .cl-n{visibility:hidden}.cl-row.act .cl-act{display:inline-flex}
.cl-row:hover .cl-n{display:inline;visibility:hidden}
/* PO-221: the panel header sits outside .v3, so it carries .v3 itself (buttons, the 40 px tile with a gap before the name); the People tab is one tidy row per person (v3.6) */
.phead.v3{height:auto;margin:0;background:transparent;background-image:none;font:inherit}
.v3 .pname.pco{display:inline-flex;align-items:center;gap:12px}
.v3p .ppr{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.v3p .ppl{display:flex;align-items:baseline;gap:8px;min-width:0;flex:1}
.v3p .ppl b{font-weight:600;white-space:nowrap;color:var(--text)}.v3p .ppn{text-decoration:none;color:var(--text)}.v3p .ppn:hover b{color:var(--accent-text)}
.v3p .ppt{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.v3p .ppa{display:flex;align-items:center;gap:10px;flex:none}
.v3p .dmb{background:var(--surface-3);color:var(--text);font-size:10px;letter-spacing:.4px;padding:0 6px;align-self:center}
.v3p .ppmore{margin-top:6px}.v3p .ppmore summary{cursor:pointer;color:var(--accent-text);font-size:12px;list-style:none}.v3p .ppmore[open] summary{margin-bottom:4px}
/* PO-221: What I sell › Description is a short form: label on the left, field on the right, no boxes, no monospace */
.v3 .odesc{display:flex;flex-direction:column;gap:14px;max-width:700px;padding:20px}
.v3 .odesc .fr{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;align-items:center}.v3 .odesc .fr.ftop{align-items:start}
.v3 .odesc label{color:var(--text-muted);font-size:13px}.v3 .odesc textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:70px}.v3 .odesc input.p-in{width:100%;box-sizing:border-box}
.v3 .odesc .savedline{font-size:12px}
/* PO-221: the family badge is a coloured pill (light text on a transparent tint of the same colour); a click filters by the family, hover brightens it, never underlined */
.v3 .fam,.v3 td .fam,.v3 a.fam{text-decoration:none}
.v3 .fam.badge-hiring,.v3 td .fam.badge-hiring{background:var(--fam-hiring-bg);color:var(--fam-hiring-fg)}
.v3 .fam.badge-launch,.v3 td .fam.badge-launch{background:var(--fam-launch-bg);color:var(--fam-launch-fg)}
.v3 .fam.badge-funding,.v3 td .fam.badge-funding{background:var(--fam-funding-bg);color:var(--fam-funding-fg)}
.v3 .fam.badge-site,.v3 td .fam.badge-site{background:var(--fam-site-bg);color:var(--fam-site-fg)}
.v3 .fam.badge-news,.v3 td .fam.badge-news{background:var(--fam-news-bg);color:var(--fam-news-fg)}
.v3 .fam.badge-domain,.v3 td .fam.badge-domain{background:var(--fam-domain-bg);color:var(--fam-domain-fg)}
.v3 .fam.badge-location,.v3 td .fam.badge-location{background:var(--fam-location-bg);color:var(--fam-location-fg)}
.v3 a.fam:hover{filter:brightness(1.35);box-shadow:0 0 0 1px currentColor;text-decoration:none}
.v3 .evt{color:var(--text)}.v3 .evl{display:flex;flex-direction:column;gap:2px;align-items:flex-start}
/* PO-221: a chosen pill is a light orange wash with orange text, an unchosen one a faint outline; the signal rows may wrap instead of cutting a word */
.v3 .cpill span{background:transparent;border-color:var(--line)}
.v3 .cpill input:checked+span{background:var(--accent-bg,rgba(255,122,0,.16));border-color:var(--accent);color:var(--accent-text)}
.v3 .stbl td:first-child{white-space:normal;min-width:280px}.v3 .stbl td.sgsum{white-space:normal;min-width:150px;max-width:260px}.v3 .stbl td{height:auto;padding-top:8px;padding-bottom:8px}
.tracue-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:2000;max-width:90vw;box-shadow:var(--shadow-pop)}
.v3 .xsep{font-family:var(--font-display);font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--text-faint);padding:14px 16px 4px}
/* PO-220: the filters column is as tall as the window while the page scrolls, and scrolls inside itself (no empty black block under it) */
.v3 .layout>.p-rail{position:sticky;top:0;align-self:start;height:100vh;max-height:100vh;overflow-y:auto;overflow-x:hidden}
/* PO-221: the Signals filter row: Date, Industry and Place are three 32 px fields side by side, as wide as they need */
.v3 .sigbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.v3 .sigbar select.select,.v3 .sigbar input.xinp{height:32px;width:auto;min-width:140px;max-width:240px;flex:0 0 auto}
.v3 .afl:empty{display:none}
/* PO-220 (Sean QA 1): a page without a filters column, or one whose column is hidden by the open panel, gives the table the whole width (never a 248 px column kept empty) */
.v3 .layout:not(:has(>.xrail)),.has-panel .v3 .layout:not(.nr),.xwrap.has-panel .layout{grid-template-columns:minmax(0,1fr)}
.v3 .layout:not(:has(>.xrail))>.pmain{grid-column:1}
/* PO-221 inventory: the plain pages (a message, a wait screen, Data sources, a screen that is not built) share the v3.6 look: a display-font title, muted text, design-system buttons */
.stub{max-width:720px;margin:0;padding:20px 28px}
.stub h1{font-family:var(--font-display);font-size:22px;font-weight:500;letter-spacing:-.01em;margin:0 0 12px;color:var(--text)}
.stub p{color:var(--text-muted);margin:0 0 10px;line-height:1.5}.stub p.dim{font-size:12px}
.stub .btn{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 14px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--text);text-decoration:none;font-size:13px;font-weight:500}
.stub .btn:hover{background:var(--surface-3)}
.stub .wsteps{list-style:none;padding:0;margin:14px 0}.stub .wsteps li{display:flex;gap:10px;align-items:center;padding:6px 0;color:var(--text-muted)}.stub .wsteps li.done{color:var(--text)}.stub .wsteps b{width:18px;text-align:center;color:var(--accent-text)}
/* PO-221: the admin Accounts page in the v3.6 look (the old a*/c* classes are gone) */
.v3 .accbody{padding:16px 20px;display:flex;flex-direction:column;gap:14px;max-width:1100px}
.v3 .acc-list{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.v3 .accrow{display:grid;grid-template-columns:minmax(0,1.6fr) 80px minmax(0,1fr) minmax(0,3fr);gap:10px;align-items:center;padding:9px 14px;border-top:1px solid var(--line);font-size:13px}
.v3 .accrow.acchead{border-top:0;background:var(--surface-2);font-family:var(--font-display);font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--text-faint)}
.v3 .accrow.off{opacity:.65}
.v3 .acc-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.v3 .acc-form{display:inline-flex;gap:6px;align-items:center}
.v3 .acc-new{padding:14px 16px}.v3 .acc-in{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.v3 .acc-in input.p-in{min-width:180px}.v3 input.anum{width:80px;min-width:0}.v3 input.apw{width:150px}
@media (max-width:900px){.v3 .accrow{grid-template-columns:minmax(0,1fr) 60px}.v3 .accrow>span:nth-child(3){display:none}.v3 .accrow .acc-acts{grid-column:1/-1}}
/* PO-220 (e2e smoke): Signals has no filters column, so its "nr" layout must not keep the 36 px tab column either */
.v3 div.layout.nr:not(:has(>.xrail)){grid-template-columns:minmax(0,1fr)}.v3 div.layout.nr:not(:has(>.xrail))>.pmain{grid-column:1}
.v3 .odesc textarea{min-height:96px}
/* PO-221: the buttons in the panel head are plain-case, as the design system's buttons in a panel (not the uppercase table-bar style) */
.phead.v3 .p-btn{text-transform:none;letter-spacing:0;font-family:var(--font-text);font-size:13px;font-weight:500}
/* PO-221 (Monday, Đại ca): buttons are plain case everywhere (Hide filters, Columns, Export, Save to list…), as the design system's buttons; only column headings and group titles stay capitals */
.v3 .p-btn.p-btn,.v3 .bar .p-btn,.v3 button.p-btn,.v3 a.p-btn,.v3 summary.p-btn{text-transform:none;letter-spacing:0;font-family:var(--font-text);font-size:13px;font-weight:500}
.v3 .p-btn.sm{font-size:12px}
/* PO-221 (Stone): column headings use --accent-text in both themes (the light theme's pale orange was 1.66:1); the Matches "What happened" cell is one left-aligned line: badge and words, the date dim on the right */
.v3 th{color:var(--accent-text)}
.v3 .evl{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left}
.v3 .evl>span:first-child{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v3 .evl .p-dim{flex:none;white-space:nowrap}
/* PO-221: /offers/new in the v3 frame: pills for the closest match (a tick on the chosen one), the one-line box and the button on one row */
.v3 .pick .cpill input:checked+span::before{content:"✓ "}
.v3 .startwrap{max-width:900px}.v3 .startline{font-size:15px;color:var(--text-muted);margin-bottom:14px}.v3 .startline .hot{color:var(--accent-text)}
.v3 .siteline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.v3 .siteline input.p-in{flex:1;min-width:260px;height:44px}
.v3 .pick{margin:14px 0}.v3 .pick .chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.v3 input.oname{max-width:360px}
.v3 .exbox{margin-top:22px}.v3 .exrow{display:grid;grid-template-columns:90px minmax(0,1fr) minmax(0,1fr);gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}.v3 .exlead.sig{color:var(--accent-text)}
.v3p .nm2{display:inline-flex;gap:8px;align-items:baseline;flex-wrap:wrap}
/* PO-221 (Stone 15): v3.css fixes the heading colour with a pale orange of its own; the headings use the token in both themes (the light theme needs 4.5:1) */
.v3 thead th,.v3 table.fx thead th{color:var(--accent-text)}
/* PO-221 (Monday, Sean's contrast e2e): the dim "Hide" at the head of the filters column uses the muted text token (4.5:1 on the dark surface too) */
.v3 .xrailhead .dim{color:var(--text-muted)}
/* PO-221: a customer group card: the ⋯ menu sits in the head's flow (it no longer covers "On"), boxes for State, City, Keywords and Technologies, no Save button (the card saves itself) */
.v3 .cg .cghead .omenu{position:static;margin-left:4px}.v3 .cg .cghead .omenu .dd{right:0;left:auto}
.v3 .cg .cgname{min-width:160px;max-width:300px;flex:0 1 auto}
.v3 .cg .cgsaved{min-width:48px}.v3 .cg .combo{margin:6px 0}.v3 .cg .combo-chips{margin-top:6px}
.v3 .cg select.p-in{height:32px}
.v3p .srcl{color:var(--text-muted);text-decoration:none;margin-left:4px}.v3p .srcl:hover{color:var(--accent-text)}
/* PO-235: a Find email / action button in a table row is neutral (grey outline, normal text); the accent only shows under the pointer. The columns pinned on the left have a right edge and a soft shadow, so what scrolls beneath them is never cut under the names */
.v3 td .p-btn.sm,.v3 td button.p-btn.sm{color:var(--text);border-color:var(--line-strong);background:transparent}
.v3 td .p-btn.sm:hover,.v3 td button.p-btn.sm:hover{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.v3 th[data-c="act"],.v3 td[data-c="act"]{border-right:1px solid var(--line-strong);box-shadow:6px 0 8px -6px rgba(0,0,0,.45)}
.addr{font-family:var(--font-mono,var(--lg-mono,monospace));font-size:12.5px}
.v3 td .loc{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v3p .locrow{display:block}.v3p .locrow .rl{display:flex;align-items:flex-start;gap:10px;width:100%}.v3p .locrow .rl>span:last-child{flex:1 1 0;min-width:0;display:block;overflow-wrap:anywhere}.v3p .locrow b{display:inline;color:var(--text);font-weight:500}.v3p .locrow .p-lvl{display:inline-block;vertical-align:baseline}.v3p .locbits{font-size:12px}
.v3 td .locn{display:inline-block;margin-left:4px;padding:0 6px;border-radius:999px;background:var(--surface-3);color:var(--text-muted);font-size:11px;font-weight:600}.v3 td .locm{margin-left:6px;font-size:11px}
.v3 td .locm{background:var(--accent-bg);color:var(--accent-text);border-radius:4px;padding:0 6px}.v3 td .locn{cursor:help;flex:none}
.v3p .locmore summary{cursor:pointer;color:var(--accent-text);font-size:12px;margin:4px 0}.v3p .locmore[open] summary{margin-bottom:2px}
.v3 td .loc{display:flex;align-items:center;gap:4px;min-width:0}

/* A6: first-time screens (What do you sell? / Reading your site): no menu, one centred column (v3.6 prototype 2 · First time in) */
body.solo{min-height:100vh;display:flex;flex-direction:column;align-items:center}
.solo .sbox{width:min(640px,calc(100% - 32px));padding:64px 0 32px}
.solo .slogo{display:inline-flex;gap:8px;align-items:center;margin-bottom:30px;font-size:20px;font-weight:600;color:var(--text);text-decoration:none}
.solo h1{font-size:28px;line-height:1.2;margin:0 0 8px;font-weight:500}.solo .sub{margin:0 0 16px}
.solo .srow{display:flex;gap:8px;margin-top:8px}.solo .srow .p-in{flex:1;min-width:0;padding:12px 14px;font-size:15px}
.solo textarea.sline{width:100%;height:80px;font-size:15px;padding:12px 14px}
.solo .sother,.solo .sskip{margin-top:14px}.solo .slink{display:inline-block;background:none;border:0;padding:0;color:var(--text-muted);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.solo .slink:hover{color:var(--text)}.solo .note{margin:0 0 12px}.solo .solo-out{position:fixed;right:16px;bottom:12px}
.solo .wsteps{margin:18px 0}.sugchip{margin-left:10px;align-self:center}
@media (max-width:560px){.solo .srow{flex-direction:column}.solo .sbox{padding-top:32px}}
.solo .note{padding:10px 12px;border-radius:8px;background:var(--surface-2,var(--surface-3));border:1px solid var(--border,transparent);color:var(--text)}
.solo-auth .sform{display:flex;flex-direction:column;gap:6px;margin-top:8px}.solo-auth label{font-size:13px;color:var(--text-muted);margin-top:8px}
.solo-auth .p-in{padding:12px 14px;font-size:15px}.solo-auth .p-big{margin-top:18px;width:100%}.solo-auth .flash{margin:4px 0}
.solo .sbox.solo-auth{width:min(400px,calc(100% - 32px))}
.solo-auth .forgot{margin-top:18px;font-size:13px}
/* A9: a logo tile never shrinks, whatever the name beside it; a long name is cut with "…" (its tooltip says it in full) in every table, in Today and in the panel */
.v3 .lg{flex:0 0 auto}.v3 .rn .lg{flex:0 0 24px;min-width:24px;min-height:24px}.v3 a.coln .lg{flex:0 0 20px;min-width:20px;min-height:20px}.v3 .pname.pco .lg{flex:0 0 40px;min-width:40px;min-height:40px}
.v3 a.rn{min-width:0}.v3 a.rn .il{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v3 .pname.pco{min-width:0;overflow-wrap:anywhere}
/* A10: an error is one sentence and one button; an empty result too */
.v3 .errbox{max-width:520px;margin:12vh auto 0;padding:0 16px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.v3 .errbox h1{font-size:28px;margin:0;font-weight:500}.v3 .errbox p{margin:0 0 8px;color:var(--text-muted);font-size:16px;line-height:1.5}
.v3 .empty1 .p-btn{flex:none}
.solo .errbox{margin-top:0;padding:0}
