:root{
  --brand:#5a32a3; --brand-deep:#34195f; --brand-soft:#efe9f8; --gold:#d99b2c; --gold-soft:#f7ecd4;
  --paper:#faf8fc; --card:#ffffff; --ink:#1c1626; --ink-soft:#4a4358; --muted:#7a7388;
  --line:#e6e1ee; --line-soft:#efecf5;
  --r:#cf4436; --r-bg:#fbe7e4; --y:#cf9526; --y-bg:#f8eecf; --g:#3f9b6b; --g-bg:#e0f0e7; --warn:#cf7326;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Roboto,Helvetica,Arial,sans-serif;
  --serif:Georgia,"Times New Roman",serif;
  --shadow:0 1px 2px rgba(28,22,38,.06),0 8px 24px rgba(28,22,38,.06); --radius:10px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer}
a{color:var(--brand)}

.wfbar{background:linear-gradient(140deg,#2c1552 0%,#4d2b8f 55%,#5f37ad 100%);color:#fff;padding:.7rem 1.1rem;display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;position:sticky;top:0;z-index:20}
.wfbar .mark{font-weight:800;letter-spacing:-.01em;font-size:.95rem;display:flex;align-items:center;gap:.5rem}
.wfbar .mark .dot{width:9px;height:9px;border-radius:50%;background:var(--gold)}
.wftag{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(217,155,44,.5);padding:.15rem .45rem;border-radius:20px}
.views{display:flex;gap:.25rem;margin-left:auto;flex-wrap:wrap}
.views a{background:transparent;color:#d8cff0;border:1px solid transparent;padding:.35rem .7rem;border-radius:7px;font-size:.82rem;font-weight:600;text-decoration:none}
.views a:hover{color:#fff;background:rgba(255,255,255,.08)}
.views a.on{color:var(--brand-deep);background:#fff}

.wrap{max-width:1180px;margin:0 auto;padding:1.4rem 1.1rem 5rem}
.narrow{max-width:900px}
.block-lbl{font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:.6rem}
.block-sub{font-size:.83rem;color:var(--muted);margin:-.3rem 0 .7rem;font-style:italic}
.eyebrow{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700}


.sheet{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.7rem;box-shadow:var(--shadow);margin-bottom:1.1rem}
.sheet h2{font-size:1.35rem;font-weight:800;letter-spacing:-.015em;margin-bottom:.3rem}
.sheet h3{font-size:1.02rem;font-weight:800;margin-bottom:.4rem}
.lead{font-family:var(--serif);font-size:1rem;color:var(--ink-soft)}

.pill{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:700;padding:.2rem .55rem;border-radius:20px}
.pill.ok{background:var(--g-bg);color:var(--g)}.pill.warn{background:var(--y-bg);color:var(--warn)}
.pill.brand{background:var(--brand-soft);color:var(--brand)}.pill.grey{background:var(--paper);color:var(--muted);border:1px solid var(--line)}
.pill.dec{background:var(--line-soft);color:var(--muted)}.pill.red{background:var(--r-bg);color:var(--r)}
.pill .d{width:6px;height:6px;border-radius:50%;background:currentColor}
.btn{background:var(--brand);color:#fff;border:none;padding:.7rem 1rem;border-radius:8px;font-weight:700;font-size:.92rem}
.btn:hover{background:var(--brand-deep)}
.btn.ghost{background:var(--card);border:1.5px solid var(--line);color:var(--ink-soft)}
.btn.sm{padding:.4rem .7rem;font-size:.8rem}
.btn.gold{background:var(--gold);color:#2a1e05}
.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}

.hero{background:linear-gradient(140deg,#2c1552 0%,#4d2b8f 55%,#5f37ad 100%);color:#fff;border-radius:14px;padding:1.7rem 1.8rem;margin-bottom:1.1rem}
.hero .who{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem;font-size:.78rem;color:#d8cdf5}
.hero h1{font-size:1.55rem;font-weight:800;letter-spacing:-.02em;margin:.6rem 0 .35rem;max-width:26ch;line-height:1.22}
.hero .sub{font-family:var(--serif);font-style:italic;font-size:.98rem;color:#e7ddf7;max-width:56ch}

.gapgrid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
@media(max-width:760px){.gapgrid{grid-template-columns:1fr}}
.gapbox{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:.9rem 1rem}
.gapbox .block-lbl{margin-bottom:.35rem}
.gapbox p{font-size:.88rem;color:var(--ink-soft)}
.gapbox.cost{background:var(--r-bg);border-color:color-mix(in srgb,var(--r) 30%,transparent)}
.gapbox.cost .block-lbl{color:var(--r)}

.numtable{width:100%;border-collapse:collapse;font-size:.87rem}
.numtable th{text-align:left;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:.4rem .5rem;border-bottom:1px solid var(--line)}
.numtable td{padding:.5rem;border-bottom:1px solid var(--line-soft)}
.numtable td.v{font-weight:800;color:var(--brand)}
.numtable td.miss{color:var(--muted);font-style:italic}
.locked{display:flex;gap:.6rem;align-items:center;background:var(--brand-soft);border-radius:8px;padding:.6rem .8rem;font-size:.82rem;color:var(--ink-soft);margin-top:.8rem}
.locked b{color:var(--brand)}

.drop{border:2px dashed var(--line);border-radius:10px;padding:1.6rem;text-align:center;background:var(--paper)}
.drop .big{font-weight:800;font-size:1rem;margin-bottom:.25rem}
.drop p{font-size:.85rem;color:var(--muted);max-width:46ch;margin:0 auto .9rem}
.uploaded{border:1px solid color-mix(in srgb,var(--g) 35%,transparent);background:var(--g-bg);border-radius:10px;padding:1rem 1.1rem}
.uploaded .fn{font-weight:700;font-size:.9rem}
.uploaded .meta{font-size:.79rem;color:var(--ink-soft);margin-top:.2rem}
.readbar{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:.9rem}
.readcell{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.7rem .8rem}
.readcell .v{font-size:1.2rem;font-weight:800;letter-spacing:-.02em}
.readcell .k{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-top:.15rem;line-height:1.3}

.irow{display:flex;gap:.8rem;align-items:center;padding:.6rem .2rem;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.irow .iid{font-size:.72rem;font-weight:800;color:var(--muted);width:58px;flex:none;letter-spacing:.03em}
.irow .it{font-size:.89rem;font-weight:600;flex:1;min-width:180px}
.irow .ir{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.irow.declined .it{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line)}
.pcs{font-size:.72rem;color:var(--muted);font-weight:700}
.addrow{display:flex;gap:.6rem;align-items:center;padding:.7rem .2rem 0;font-size:.83rem;color:var(--brand);font-weight:700}

.readout{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--card);box-shadow:var(--shadow)}
.readout-top{background:#2c1552;color:#fff;padding:1.2rem 1.4rem}
.readout-top h3{font-size:1.15rem;font-weight:800;color:#fff}
.readout-top .m{font-size:.78rem;color:#d8cdf5;margin-top:.25rem}
.readout-body{padding:1.3rem 1.4rem}
.rsec{margin-bottom:1.3rem}
.rsec p{font-size:.9rem;color:var(--ink-soft)}
.actions{list-style:none}
.actions li{display:flex;gap:.6rem;align-items:flex-start;padding:.55rem 0;border-bottom:1px solid var(--line-soft);font-size:.88rem;color:var(--ink-soft)}
.actions li:last-child{border-bottom:none}
.actions .sq{width:16px;height:16px;border:1.5px solid var(--line);border-radius:4px;flex:none;margin-top:.15rem}

.sponsor-top{display:flex;gap:1.4rem;align-items:flex-end;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem 1.4rem;box-shadow:var(--shadow);margin-bottom:1.1rem}
.sponsor-top .figure{font-size:2.6rem;font-weight:800;letter-spacing:-.03em;color:var(--brand);line-height:1}
.sponsor-top .of{font-size:1rem;color:var(--muted);font-weight:700}
.stuck{border-left:4px solid var(--y);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.2rem;margin-bottom:.6rem;box-shadow:var(--shadow)}
.stuck .t{font-weight:800;font-size:.95rem}
.stuck .d{font-size:.86rem;color:var(--ink-soft);margin-top:.2rem}
.stuck.ask{border-left-color:var(--r)}

.atable{width:100%;border-collapse:collapse;font-size:.87rem;background:var(--card)}
.atable th{text-align:left;font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:.55rem .6rem;border-bottom:1px solid var(--line);white-space:nowrap}
.atable td{padding:.6rem;border-bottom:1px solid var(--line-soft);vertical-align:middle}
.atable tr:hover td{background:var(--paper)}
.atable .co{font-weight:700}
.atable .mini{width:74px;height:7px;border-radius:4px;background:var(--line);overflow:hidden;display:block}
.atable .mini i{display:block;height:100%;background:var(--g)}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.bench{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
@media(max-width:760px){.bench{grid-template-columns:1fr}}
.foot{margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid var(--line);font-size:.78rem;color:var(--muted)}

/* --- inventory grid (carried from the Install Lab's grid block) --- */
.gridwrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--card);margin-bottom:.4rem}
.gtable{width:100%;border-collapse:collapse;font-size:.86rem;min-width:820px}
.gtable th{text-align:left;font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:.55rem .7rem;border-bottom:1px solid var(--line);white-space:nowrap}
.gtable td{padding:.6rem .7rem;border-bottom:1px solid var(--line-soft);vertical-align:middle}
.gtable tr:hover td{background:var(--paper)}
.gtable .gid{font-size:.7rem;font-weight:800;color:var(--muted);letter-spacing:.03em;white-space:nowrap}
.gtable .gname{font-weight:700;white-space:nowrap}
.gtable .theirs{color:var(--ink-soft)}
.gtable .empty{color:var(--muted);font-style:italic}
.gtable .owner{font-size:.8rem;color:var(--ink-soft);white-space:nowrap}
.gtable tr.added td{background:color-mix(in srgb,var(--brand-soft) 55%,transparent)}
.ryg{display:inline-flex;gap:4px}
.ryg span{width:26px;height:26px;border-radius:6px;border:1.5px solid var(--line);background:var(--card);color:var(--muted);font-weight:800;font-size:.72rem;display:grid;place-items:center}
.ryg span.r.on{background:var(--r-bg);border-color:var(--r);color:var(--r)}
.ryg span.y.on{background:var(--y-bg);border-color:var(--y);color:var(--y)}
.ryg span.g.on{background:var(--g-bg);border-color:var(--g);color:var(--g)}
.half{border:1px solid var(--line);border-radius:10px;padding:1.1rem 1.2rem;background:var(--card)}
.half.today{background:var(--paper)}
.half h4{font-size:.95rem;font-weight:800;margin-bottom:.1rem}
.half .cap{font-size:.78rem;color:var(--muted);margin-bottom:.8rem}
.fieldbox{background:var(--card);border:1.5px solid var(--line);border-radius:8px;padding:.7rem .8rem;font-size:.87rem;color:var(--ink-soft);margin-bottom:.6rem}
.fieldbox.blank{color:var(--muted);font-style:italic;border-style:dashed}
.fieldlbl{font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:.25rem}

/* --- the PIC chart (carried from the Install Lab's picbuild block) --- */
.picwrap{overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:.4rem}
.picchart{width:100%;border-collapse:collapse;background:var(--card);min-width:760px}
.picchart thead th{background:var(--ink);color:#fff;padding:.6rem .8rem;text-align:left;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;font-weight:800;width:33.33%}
.picchart thead th:first-child{background:var(--r)}
.picchart td{vertical-align:top;font-size:.82rem;padding:.75rem .8rem;border-bottom:1px solid var(--line);border-right:1px solid var(--line-soft);color:var(--ink-soft)}
.picchart td:last-child{border-right:none}
.picchart td b{color:var(--ink);display:block;margin-bottom:.3rem;font-size:.87rem}
.picchart ul{margin:0;padding-left:1.05rem}
.picchart li{margin-bottom:.22rem}
.picchart tr.ghost td{color:var(--muted);font-style:italic;text-align:center;background:var(--paper);border-right:none}
.picchart tr.blank td{background:var(--paper);color:var(--muted);font-style:italic}
.rule{display:flex;gap:.6rem;align-items:center;background:var(--gold-soft);border-radius:8px;padding:.55rem .8rem;font-size:.82rem;color:var(--ink-soft);margin:.6rem 0 0}
.rule b{color:#8a5f10}
.wired{list-style:none;margin-top:.4rem}
.wired li{display:flex;gap:.6rem;align-items:flex-start;padding:.55rem 0;border-bottom:1px solid var(--line-soft);font-size:.88rem;color:var(--ink-soft)}
.wired li:last-child{border-bottom:none}
.wired .bx{width:17px;height:17px;border:1.5px solid var(--line);border-radius:4px;flex:none;margin-top:.12rem;display:grid;place-items:center;font-size:.65rem;font-weight:800;color:transparent}
.wired li.done .bx{background:var(--g);border-color:var(--g);color:#fff}
.wired li.done{color:var(--ink)}

.deliv{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap;background:#2c1552;color:#fff;border-radius:10px;padding:1.1rem 1.3rem;margin-top:1rem}
.deliv .dl{flex:1;min-width:260px}
.deliv .dt{font-weight:800;font-size:1.02rem;margin-bottom:.25rem}
.deliv p{font-size:.85rem;color:#d8cdf5}
.deliv .btn.ghost{background:transparent;border-color:rgba(255,255,255,.3);color:#e7ddf7}
.waits{background:var(--gold-soft);border-left:3px solid var(--gold);border-radius:0 8px 8px 0;padding:.8rem 1rem;font-size:.88rem;color:var(--ink-soft);margin-top:.5rem}
.waits b{color:#8a5f10}

/* --- exec / CRO view (carried from the Install Lab's exec view) --- */
.lyr{width:100%;border-collapse:collapse;font-size:.87rem;background:var(--card)}
.lyr th{text-align:left;font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:.55rem .7rem;border-bottom:1px solid var(--line);white-space:nowrap}
.lyr td{padding:.7rem;border-bottom:1px solid var(--line-soft);vertical-align:top}
.lyr .chip{width:24px;height:24px;border-radius:6px;display:grid;place-items:center;font-weight:800;font-size:.72rem}
.lyr .chip.r{background:var(--r-bg);color:var(--r)}
.lyr .chip.y{background:var(--y-bg);color:var(--y)}
.lyr .chip.g{background:var(--g-bg);color:var(--g)}
.lyr .nm{font-weight:700;white-space:nowrap}
.lyr .base{font-weight:800;color:var(--muted);white-space:nowrap}
.lyr .cnt{font-weight:800;color:var(--brand);white-space:nowrap}
.lyr .what{color:var(--ink-soft);min-width:260px}
.lyr .st{white-space:nowrap}
.since{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}
@media(max-width:820px){.since{grid-template-columns:1fr}}
.sincebox{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:var(--shadow)}
.sincebox .h{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;margin-bottom:.4rem}
.sincebox.built .h{color:var(--g)} .sincebox.moving .h{color:var(--warn)} .sincebox.open .h{color:var(--r)}
.sincebox p{font-size:.87rem;color:var(--ink-soft)}
.ntable{width:100%;border-collapse:collapse;font-size:.88rem}
.ntable th{text-align:left;font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:.5rem .6rem;border-bottom:1px solid var(--line)}
.ntable td{padding:.55rem .6rem;border-bottom:1px solid var(--line-soft)}
.ntable td.n{font-weight:800;text-align:right;white-space:nowrap}
.ntable td.now{color:var(--brand)}
.ntable td.tgt{color:var(--muted)}
.ntable td.none{color:var(--muted);font-style:italic;text-align:right}
.ntable .stamp{display:block;font-size:.68rem;font-weight:600;color:var(--muted);letter-spacing:.02em;margin-top:.1rem}
.ntable .stale .stamp{color:var(--warn)}

/* --- homebase / progress dashboard --- */
.hb{display:grid;grid-template-columns:minmax(280px,1fr) 2fr;gap:1.1rem;align-items:stretch;margin-bottom:1.1rem}
@media(max-width:900px){.hb{grid-template-columns:1fr}}
.heronum{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 1.5rem;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:center}
.heronum .fig{font-size:3.2rem;font-weight:800;letter-spacing:-.04em;color:var(--brand);line-height:.95}
.heronum .of{font-size:1.05rem;color:var(--muted);font-weight:700;margin-top:.2rem}
.heronum .stamp2{font-size:.82rem;color:var(--ink-soft);margin-top:.7rem;max-width:30ch}
.heronum .stamp2 b{color:var(--ink)}
.meterwrap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem 1.4rem;box-shadow:var(--shadow)}
.meter{height:14px;border-radius:7px;background:var(--line);overflow:hidden;display:flex;gap:2px;margin:.5rem 0 .8rem}
.meter i{display:block;height:100%;border-radius:3px}
.meter .ver{background:var(--g)}
.meter .dec{background:repeating-linear-gradient(135deg,var(--muted) 0 4px,color-mix(in srgb,var(--muted) 45%,#fff) 4px 8px)}
.meter .prog{background:var(--gold)}
.mkey{display:flex;gap:1.1rem;flex-wrap:wrap;font-size:.76rem;color:var(--ink-soft)}
.mkey span{display:inline-flex;align-items:center;gap:.4rem}
.mkey i{width:10px;height:10px;border-radius:3px;display:inline-block;flex:none}
.mkey i.dec{background:repeating-linear-gradient(135deg,var(--muted) 0 3px,color-mix(in srgb,var(--muted) 45%,#fff) 3px 6px)}
.mkey b{color:var(--ink);font-weight:800}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:.5rem;margin-top:1rem}
.tile{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:.65rem .75rem}
.tile .v{font-size:1.35rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);line-height:1.1}
.tile .k{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-top:.2rem;line-height:1.35}
.tile.act{border-color:color-mix(in srgb,var(--r) 40%,transparent);background:var(--r-bg)}
.tile.act .v{color:var(--r)}
.pickup{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:var(--radius);padding:1.2rem 1.3rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap;box-shadow:var(--shadow);margin-bottom:1.1rem}
.pickup .b{flex:1;min-width:250px}
.pickup .id{font-size:.72rem;font-weight:800;letter-spacing:.06em;color:var(--brand);text-transform:uppercase}
.pickup h4{font-size:1.05rem;font-weight:800;margin:.2rem 0 .25rem}
.pickup p{font-size:.87rem;color:var(--ink-soft)}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:1.1rem}
@media(max-width:820px){.twocol{grid-template-columns:1fr}}
.qbox{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem;box-shadow:var(--shadow)}
.qbox .h{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;margin-bottom:.6rem;color:var(--muted)}
.qline{display:flex;gap:.6rem;align-items:baseline;padding:.45rem 0;border-bottom:1px solid var(--line-soft);font-size:.86rem;color:var(--ink-soft)}
.qline:last-child{border-bottom:none}
.qline .qid{font-size:.7rem;font-weight:800;color:var(--muted);flex:none;width:54px}
.lyr tr.opened td{background:var(--brand-soft)}
.subrow td{padding:0 !important;background:var(--paper) !important}
.subrow .inner{padding:.3rem 1rem .8rem 3.2rem}
.doors{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.4rem}
.door{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.6rem .9rem;font-size:.85rem;font-weight:700;color:var(--brand);text-decoration:none;box-shadow:var(--shadow)}
.door:hover{background:var(--brand-soft)}

/* --- blueprint text renders in its own voice, never blended with the app's --- */
.bpq{background:var(--paper);border-left:3px solid var(--ink);border-radius:0 8px 8px 0;padding:.75rem .95rem;margin:.2rem 0 .8rem}
.bpq .src{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--muted);margin-bottom:.3rem}
.bpq p{font-size:.89rem;color:var(--ink-soft)}
.bpq.chk{border-left-color:var(--g)}
.bpq.chk .src{color:var(--g)}
.gtable .msince{font-size:.72rem;font-weight:700;color:var(--g);white-space:nowrap}
.gtable .mnot{font-size:.72rem;font-weight:700;color:var(--r);white-space:nowrap}
.gtable .minst{font-size:.72rem;font-weight:700;color:var(--warn);white-space:nowrap}
.gtable .why{font-size:.76rem;color:var(--muted);font-style:italic;display:block;margin-top:.15rem}

/* --- app-only: inputs, sign-in, verification --- */
.ta,.tin{width:100%;padding:.6rem .7rem;border:1.5px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font-family:inherit;font-size:.88rem;margin-bottom:.6rem}
.ta:focus,.tin:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}
.ta{resize:vertical;min-height:70px}
.crumb{font-size:.8rem;color:var(--muted);margin-bottom:.7rem}
.crumb a{font-weight:700;text-decoration:none}
.verify{background:var(--g-bg);border:1px solid color-mix(in srgb,var(--g) 35%,transparent);border-radius:8px;padding:.9rem 1rem;margin-top:.8rem}
.verify .who{font-size:.8rem;color:var(--ink-soft);margin-top:.3rem}
.asgonly{background:#2c1552;color:#fff;border-radius:8px;padding:1rem 1.1rem;margin-top:.8rem}
.asgonly .block-lbl{color:var(--gold)}
.asgonly p{font-size:.84rem;color:#d8cdf5}
.asgonly .btn.ghost{background:transparent;border-color:rgba(255,255,255,.3);color:#e7ddf7}
.ryg button{width:26px;height:26px;border-radius:6px;border:1.5px solid var(--line);background:var(--card);color:var(--muted);font-weight:800;font-size:.72rem}
.ryg button.r.on{background:var(--r-bg);border-color:var(--r);color:var(--r)}
.ryg button.y.on{background:var(--y-bg);border-color:var(--y);color:var(--y)}
.ryg button.g.on{background:var(--g-bg);border-color:var(--g);color:var(--g)}
.ryg button:not(.on):hover{border-color:var(--brand);color:var(--brand)}
.gate-stage{min-height:70vh;display:grid;place-items:center;padding:2rem 0}
.gate{width:min(430px,100%);background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.gate-top{background:linear-gradient(140deg,#2c1552 0%,#4d2b8f 55%,#5f37ad 100%);color:#fff;padding:1.8rem 1.7rem 1.6rem}
.gate-top h1{font-size:1.7rem;font-weight:800;letter-spacing:-.02em;margin:.5rem 0 .3rem}
.gate-top .sub{color:#e7ddf7;font-family:var(--serif);font-style:italic;font-size:.96rem}
.gate-body{padding:1.5rem 1.7rem 1.8rem}
.field{margin-bottom:.8rem}
.field label{display:block;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:.3rem}
.field input{width:100%;padding:.6rem .7rem;border:1.5px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font-size:.92rem}
.field input:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}
.btn.wide{width:100%}
.flash{position:fixed;left:50%;bottom:1.5rem;transform:translateX(-50%);max-width:min(560px,92vw);background:var(--ink);color:#fff;padding:.8rem 1.1rem;border-radius:10px;font-size:.87rem;box-shadow:var(--shadow);z-index:50}
.empty{color:var(--muted);font-style:italic}
