/* Type: Geist and Geist Mono (Vercel, SIL OFL 1.1), variable weight, hosted with the app (no font CDN). */
@font-face{font-family:'Geist';font-style:normal;font-display:swap;font-weight:100 900;src:url(./fonts/geist-latin-wght-normal.woff2) format('woff2-variations');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Geist';font-style:normal;font-display:swap;font-weight:100 900;src:url(./fonts/geist-latin-ext-wght-normal.woff2) format('woff2-variations');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Geist Mono';font-style:normal;font-display:swap;font-weight:100 900;src:url(./fonts/geist-mono-latin-wght-normal.woff2) format('woff2-variations');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Geist Mono';font-style:normal;font-display:swap;font-weight:100 900;src:url(./fonts/geist-mono-latin-ext-wght-normal.woff2) format('woff2-variations');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{--bg:#030812;--panel:rgba(7,14,30,.86);--bd:rgba(110,150,220,.2);--tx:#eaf3ff;--mut:#a5bcd6;--lbl:#8fb2d8;--acc:#5aa7ff;--sel:#1e6bff;--ok:#4fd9a0;--warn:#ffc46b;--bad:#ff7b7b;--mute:#8fa3bd}
*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg)}
body{color:var(--tx);font:13.5px/1.5 var(--sans);letter-spacing:-.006em;font-feature-settings:"tnum";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
button,input,select{font:inherit;color:inherit}button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.app{display:flex;flex-direction:column;height:100vh;background:radial-gradient(ellipse at 50% -10%,#123a78,#071226 40%,#040810)}
.hd{display:flex;align-items:center;gap:22px;height:66px;padding:0 24px;border-bottom:1px solid rgba(110,150,220,.14);background:rgba(5,10,22,.6);flex:none}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.wm{font-size:19px;font-weight:300;letter-spacing:.42em}
.tb{display:flex;gap:2px}.tb button{background:none;border:0;padding:22px 14px;color:#b4c3dc;font-size:13px;min-height:44px}.tb .on{color:var(--acc);box-shadow:inset 0 -2px var(--acc)}
.sr{margin-left:auto;display:flex;align-items:center;height:36px;width:300px;border:1px solid rgba(110,150,220,.25);border-radius:10px;padding:0 12px;background:rgba(10,20,40,.7)}
.sr input{background:none;border:0;outline:0;width:100%}.sr:focus-within{outline:2px solid var(--acc)}
.adm{color:var(--mut);text-decoration:none;font-size:12px;padding:8px}
.chip{display:inline-block;padding:3px 10px;border-radius:6px;border:1px solid rgba(120,175,235,.3);font-size:11.5px;color:#cfe3f8;background:none}
.chip.amb{color:var(--warn);border-color:#7a5a1e}.chip.tog{min-height:32px;border-radius:16px}
main{flex:1;min-height:0;position:relative;overflow:auto}
.stage{position:absolute;inset:0;overflow:hidden}
.globe{position:absolute;inset:0;width:100%;height:100%;cursor:grab;touch-action:none}
.globe-wrap{position:absolute;inset:0;z-index:0}.globe-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.globe-tip{position:absolute;left:0;top:0;padding:4px 9px;border-radius:7px;background:rgba(6,12,26,.9);border:1px solid rgba(110,150,220,.3);font-size:12px;pointer-events:none;white-space:nowrap}
.gpin,.glabel{position:absolute;left:0;top:0;transition:opacity .25s}
.gpin i{position:absolute;left:-5px;top:-19px;width:10px;height:10px;transform:rotate(45deg);background:#c9a85c;box-shadow:0 0 10px rgba(255,200,110,.6)}
.gpin i::after{content:"";position:absolute;left:4px;top:9px;width:1.5px;height:9px;background:#c9a85c;transform:rotate(-45deg);transform-origin:top}
.gpin.on i{background:#ffd27a;box-shadow:0 0 0 6px rgba(255,200,110,.16),0 0 18px rgba(255,210,122,.9);animation:gp 1.8s ease-in-out infinite}
@keyframes gp{50%{box-shadow:0 0 0 12px rgba(255,200,110,.06),0 0 18px rgba(255,210,122,.9)}}
.gpin span,.glabel span{position:absolute;left:12px;top:-22px;white-space:nowrap;font:500 12px var(--sans);letter-spacing:-.005em;text-shadow:0 1px 6px #000,0 0 2px #000}
.gpin span{color:#ffe6b0}.glabel span{left:14px;top:-9px;color:#eaf3ff}
.glabel i{position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(75,157,255,.4),0 0 20px 5px rgba(75,157,255,.75)}
.glabel.cmp i{background:#aef5e6;box-shadow:0 0 0 4px rgba(80,220,190,.35),0 0 20px 5px rgba(80,220,190,.7)}
.hint{position:absolute;left:24px;top:20px;max-width:280px;pointer-events:none}
.legend{position:absolute;left:24px;bottom:18px;display:flex;gap:14px;align-items:center;font-size:12px;color:var(--mut);flex-wrap:wrap;max-width:60%}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.w1{background:#7cc2ff}.w2{background:#5aa7ff}.w3{background:#4a7fc8}.w5{background:#9fb3cf}
.lbl{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--lbl)}.mut{color:var(--mut)}.sm{font-size:12px}
.panel{position:absolute;right:20px;top:16px;bottom:16px;width:420px;max-width:calc(100% - 40px);display:flex;flex-direction:column;border:1px solid var(--bd);border-radius:14px;background:var(--panel);backdrop-filter:blur(8px)}
.ph{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 18px 6px}.ph h2{margin:2px 0 0;font-size:24px;font-weight:300}
.x{background:none;border:1px solid var(--bd);border-radius:9px;width:36px;height:36px;font-size:18px}
.seg{display:flex;gap:4px;margin:8px 18px;padding:4px;border:1px solid rgba(120,175,235,.25);border-radius:24px}
.seg button{flex:1;background:none;border:0;border-radius:20px;padding:7px;color:#b7cde6;min-height:36px}.seg .on{background:var(--sel);color:#fff;box-shadow:0 0 0 1px #4a8fff inset}
.scroll{flex:1;overflow:auto;padding:4px 18px 16px}.pf{padding:12px 18px;border-top:1px solid var(--bd)}
.sec{margin-top:14px}.sech{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid rgba(120,175,235,.15);padding-bottom:6px}
.ind{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid rgba(120,175,235,.12)}.ind .r{text-align:right}
.btn{height:38px;padding:0 16px;border-radius:9px;border:1px solid #4a8fff;background:var(--sel);color:#fff;font-weight:500;min-width:44px}
.btn:disabled{opacity:.5;cursor:not-allowed}.link{background:none;border:0;color:var(--mut);text-decoration:underline;margin-top:12px;padding:0}
.s{display:inline-flex;align-items:center;gap:7px;font-size:12px}.d{width:7px;height:7px;border-radius:50%;background:var(--warn)}.d.ok{background:var(--ok)}.d.bad{background:var(--bad)}.d.mute{background:var(--mute)}.d.amber,.d.warn{background:var(--warn)}
.page{padding:24px;max-width:1240px;margin:0 auto}.page.two{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start}
.col{display:flex;flex-direction:column;gap:16px}
.card{border:1px solid var(--bd);border-radius:14px;background:var(--panel);padding:18px}
.ph2{font-size:26px;font-weight:300;margin:4px 0 10px}.ph3{font-size:18px;font-weight:500;margin:4px 0}
.list .row{display:flex;justify-content:space-between;width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:9px;padding:10px;margin:2px 0;min-height:44px}
.list .row.on{background:rgba(30,107,255,.22);border-color:#4a8fff}.list .btn{margin-top:12px;width:100%}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
label{display:flex;flex-direction:column;gap:5px;color:var(--mut);font-size:12px}
input,select{height:38px;border:1px solid rgba(110,150,220,.3);border-radius:9px;background:rgba(10,20,40,.7);padding:0 10px;color:var(--tx)}
select option{background:#0a1428}
.rowb{display:flex;justify-content:space-between;align-items:center}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.kpis>div{padding:10px;border:1px solid rgba(120,175,235,.16);border-radius:10px;background:rgba(10,30,60,.5)}.kpis b{display:block;font-size:22px;font-weight:600}
.blocked{border:1px solid #7a5a1e;border-radius:10px;padding:12px;background:rgba(60,40,8,.25)}.demo .kpis>div{border-color:#7a5a1e}.banner{margin:8px 0}
.q{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-top:1px solid rgba(120,175,235,.15)}
.bad{color:var(--bad)}code{font:12px ui-monospace,monospace;color:#cfe3f8}
table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--lbl);font-weight:500;font-size:11px;padding:4px 8px 10px 0}td{padding:10px 8px 10px 0;border-top:1px solid rgba(120,175,235,.15);vertical-align:top}.n{text-align:right}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.ft{flex:none;display:flex;justify-content:space-between;padding:8px 24px;border-top:1px solid rgba(110,150,220,.12);background:rgba(5,10,22,.5)}
@media (max-width:900px){
  .hd{flex-wrap:wrap;height:auto;padding:8px 14px;gap:6px}.tb{order:5;width:100%;overflow-x:auto}.tb button{padding:12px 12px}.sr{width:auto;flex:1;margin-left:8px}
  .panel{left:10px;right:10px;top:auto;bottom:10px;width:auto;max-height:62%}
  .page.two,.grid2,.kpis{grid-template-columns:1fr}.legend{max-width:100%;bottom:auto;top:76px;left:14px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.warn{color:var(--warn)}
input[type=file]{height:auto;padding:8px;font-size:12px}

/* ===== Spatial system: glass over the globe ===== */
.glass{border:1px solid rgba(140,190,255,.22);background:linear-gradient(160deg,rgba(14,30,62,.62),rgba(6,12,28,.5));backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 20px 60px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.08);border-radius:20px}
.dock{position:absolute;right:20px;top:16px;bottom:16px;width:400px;max-width:calc(100% - 40px);display:flex;flex-direction:column;padding:4px 0 0;animation:rise .35s ease both}
.dock.wide{width:480px}.dock>.ph2,.dock>.lbl,.dock>p,.dock>.btn,.dock>.ladder{margin-left:20px;margin-right:20px}.dock>.lbl{margin-top:18px}
.drawer{position:absolute;left:20px;top:64px;bottom:16px;width:420px;max-width:calc(100% - 40px);display:flex;flex-direction:column;animation:rise .3s ease both}
.drawer .card{background:none;border:0;padding:0}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.dock .ph{padding:16px 20px 6px;gap:10px}.dock .scroll{padding:4px 20px 18px}.dock .pf{border:0}
.btn.wide{width:calc(100% - 40px);margin:12px 20px}.btn.ghost{background:rgba(30,107,255,.14);border-color:rgba(120,175,235,.4)}
.dot.pin{background:#ffd27a;border-radius:2px;transform:rotate(45deg)}
.stage.r-markets .hint,.stage.r-projects .hint{display:none}
/* tiles */
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.tile{position:relative;text-align:left;padding:12px;border:1px solid rgba(140,190,255,.2);border-radius:14px;background:rgba(20,50,100,.28);transition:transform .15s,border-color .15s,background .15s}
.tile:hover{transform:translateY(-2px);border-color:rgba(140,190,255,.5);background:rgba(30,70,140,.36)}
.tile .big,.big{font-size:22px;font-weight:500;line-height:1.15;margin:3px 0}
.tile.empty{background:repeating-linear-gradient(135deg,rgba(255,196,107,.07) 0 6px,transparent 6px 12px);border-style:dashed;border-color:rgba(255,196,107,.35)}
.tile.empty .big{font-size:15px;color:#e0c48c}
.tile.data{cursor:pointer;color:inherit;font:inherit}
.tilebtn{display:block;width:100%;background:none;border:0;padding:0;text-align:left;cursor:pointer}
.tile.open{grid-column:1 / -1}.tile .edit{display:flex;gap:8px;align-items:center;margin-top:8px}.tile .edit input{flex:1}.tile .edit .link{margin:0}
.etiles .tile .s{margin-top:4px}
.stepper{display:flex;align-items:center;gap:10px;margin-top:6px}.stepper button{width:34px;height:34px;border-radius:50%;border:1px solid rgba(140,190,255,.35);background:rgba(30,107,255,.15);font-size:18px}.stepper b{font-size:20px;font-weight:500}
/* ring */
.ring{display:flex;justify-content:center;padding:6px 0}.ring svg{width:100%;max-width:300px;height:auto;overflow:visible}
.seg13{cursor:pointer;outline:none;transition:transform .2s}.seg13 path{fill:rgba(90,167,255,.22);stroke:rgba(5,12,28,.9);stroke-width:2;transition:fill .2s}
.seg13.full path{fill:rgba(79,217,160,.4)}.seg13.part path{fill:rgba(90,167,255,.55)}.seg13.none path{fill:rgba(255,196,107,.14)}
.seg13:hover path,.seg13:focus path{fill:rgba(140,200,255,.85)}.seg13.on path{fill:#2f7bff;filter:drop-shadow(0 0 8px #3b86ff)}
.seg13:focus-visible path{stroke:#fff}
.ring text{fill:var(--tx);pointer-events:none}
.secv{margin-top:6px}
/* ladder */
.ladder{list-style:none;padding:0;margin:14px 20px;position:relative}
.ladder li{display:flex;gap:12px;padding:0 0 16px;position:relative}.ladder li i{flex:none;width:12px;height:12px;border-radius:50%;border:2px solid rgba(140,190,255,.5);margin-top:3px;background:#07101f;z-index:1}
.ladder li:not(:last-child)::before{content:"";position:absolute;left:5px;top:16px;bottom:-2px;width:2px;background:rgba(140,190,255,.25)}
.ladder li.live i{background:var(--acc);box-shadow:0 0 12px var(--acc)}
/* project workspace */
.chips-top{position:absolute;left:20px;top:14px;right:520px;display:flex;gap:8px;flex-wrap:wrap;z-index:2}
.pchip{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px;border-radius:18px;border:1px solid rgba(140,190,255,.3);background:rgba(10,24,52,.6);backdrop-filter:blur(12px);color:#dbe9fb;transition:all .15s}
.pchip:hover{border-color:rgba(140,190,255,.7)}.pchip.on{background:rgba(30,107,255,.45);border-color:#6aa6ff}.pchip.add{border-style:dashed;color:var(--mut)}
.pdot{width:9px;height:9px;border-radius:2px;transform:rotate(45deg);background:#ffd27a;display:inline-block}
.title{width:100%;height:auto;border:0;border-bottom:1px solid transparent;background:none;font-size:24px;font-weight:300;padding:2px 0}.title:hover,.title:focus{border-bottom-color:rgba(140,190,255,.4);outline:0}
.inl select{height:30px;margin-top:4px;background:rgba(10,20,40,.4);width:auto}
.size{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;margin:6px 0 4px}
.bignum{font-size:34px;font-weight:300;line-height:1}.bignum span{font-size:14px;color:var(--mut)}
.mini input{width:84px;height:32px}
input[type=range]{-webkit-appearance:none;appearance:none;height:28px;padding:0;background:none;border:0;width:100%}
input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(90deg,#2f7bff,#8fd0ff)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid #1e6bff;margin-top:-9px;box-shadow:0 0 14px rgba(60,140,255,.8)}
input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:linear-gradient(90deg,#2f7bff,#8fd0ff)}
input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid #1e6bff}
.fan{display:block;margin:8px 0;border-radius:14px;background:rgba(5,14,32,.4);cursor:ew-resize;touch-action:none;user-select:none}.fan.locked{cursor:default}
.kpis>div{border-radius:14px;background:rgba(20,50,100,.28)}
.warn.sm{margin:6px 0}
/* markets */
.vs{display:flex;gap:8px;align-items:center;margin-top:8px}
.pill{position:relative;flex:1;flex-direction:row;display:flex;align-items:center;gap:8px;height:42px;padding:0 12px;border-radius:21px;border:1px solid rgba(140,190,255,.3);background:rgba(10,24,52,.55)}
.pill select{flex:1;border:0;background:none;height:40px;padding:0;min-width:0}.pill .pdot{border-radius:50%;transform:none;background:#5aa7ff}.pill.b .pdot{background:#2ee6c5}.pill.b{border-color:rgba(46,230,197,.4)}
.swap{width:40px;height:40px;border-radius:50%;border:1px solid rgba(140,190,255,.35);background:rgba(30,107,255,.18);font-size:18px}
.cover{padding:0 20px}.meter{height:6px;border-radius:3px;background:rgba(140,190,255,.15);overflow:hidden}.meter i{display:block;height:100%;background:linear-gradient(90deg,#2f7bff,#2ee6c5);transition:width .4s}
.msec{margin:14px 0 4px}
.bf{display:block;width:100%;text-align:left;background:none;border:0;border-radius:10px;padding:8px 6px;margin:2px 0;transition:background .15s}
.bf:hover,.bf.open{background:rgba(30,107,255,.16)}
.bn{display:block;font-size:12.5px;margin-bottom:5px}
.bars{display:grid;grid-template-columns:1fr 1fr;gap:3px;align-items:center}
.side{display:flex;align-items:center;gap:6px;height:22px;font-size:12px}.side.l{justify-content:flex-end}.side.r{justify-content:flex-start}
.side em{font-style:normal;color:#d8bf86;font-size:11.5px;width:100%;height:22px;display:flex;align-items:center;padding:0 8px;border-radius:5px;background:repeating-linear-gradient(135deg,rgba(255,196,107,.1) 0 5px,transparent 5px 10px)}.side.l em{justify-content:flex-end}
.bar{display:block;height:12px;border-radius:3px;transition:width .5s}.bar.a{background:linear-gradient(270deg,#2f7bff,#6aa6ff)}.bar.b{background:linear-gradient(90deg,#1fc7aa,#2ee6c5)}
.side b{font-weight:500;font-size:12px;white-space:nowrap}.why{display:block;margin-top:6px}
/* admin */
.ptrack{display:block;width:100%;text-align:left;margin:12px 0;padding:12px;border-radius:14px;border:1px solid rgba(140,190,255,.2);background:rgba(20,50,100,.25);transition:border-color .15s}.ptrack:hover,.ptrack.open{border-color:rgba(140,190,255,.55)}
.ptop{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:8px}
.track{display:flex;position:relative}.stp{flex:1;position:relative;text-align:center}.stp i{display:block;width:12px;height:12px;border-radius:50%;margin:0 auto;border:2px solid rgba(140,190,255,.4);background:#07101f;position:relative;z-index:1}
.stp:not(:last-child)::before{content:"";position:absolute;left:50%;top:5px;width:100%;height:2px;background:rgba(140,190,255,.2)}
.stp.done i{background:var(--acc);border-color:var(--acc)}.stp.done:not(:last-child)::before{background:var(--acc)}.stp.here i{box-shadow:0 0 14px var(--acc);width:16px;height:16px;margin-top:-2px}
.stp em{display:block;font-style:normal;font-size:9.5px;color:var(--lbl);margin-top:6px}
.pd{display:block;margin-top:12px}
.gauge{position:relative;height:10px;border-radius:5px;background:rgba(140,190,255,.15);margin-top:10px}.gauge .band{position:absolute;left:70%;width:20%;top:0;bottom:0;background:rgba(79,217,160,.5);border-radius:5px}.gauge .mk{position:absolute;top:-4px;width:4px;height:18px;border-radius:2px;background:#fff;margin-left:-2px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (max-width:900px){
  .dock,.dock.wide{left:10px;right:10px;top:auto;bottom:10px;width:auto;height:58%;max-width:none}
  .drawer{left:10px;right:10px;top:10px;bottom:auto;width:auto;height:70%;z-index:3}
  .chips-top{right:10px;top:8px}
}
main.stage{position:relative;inset:auto;flex:1;min-height:0;overflow:hidden}
.pill{min-width:0}.vs{min-width:0}
@media (max-width:900px){.ring svg{max-width:230px}}
/* ===== Boards: decision, action, evidence states (v0.5). Full glass sheets over the globe. ===== */
.stage.r-case .legend,.stage.r-case .hint,.stage.r-path .legend,.stage.r-gate .legend,.stage.r-path .hint,.stage.r-gate .hint,.stage.r-decision .legend,.stage.r-action .legend,.stage.r-evidence .legend,.stage.r-decision .hint,.stage.r-action .hint,.stage.r-evidence .hint{display:none}
.sheet{position:absolute;inset:16px 20px;overflow:auto;padding:20px 26px 26px;animation:rise .35s ease both;background:linear-gradient(160deg,rgba(10,22,48,.86),rgba(5,10,24,.82))}
.sh1{font-size:28px;font-weight:300;margin:4px 0 14px}
.crumbs{display:flex;gap:7px;align-items:center;font-size:12px;color:var(--mut);margin-bottom:6px;flex-wrap:wrap}.crumbs a{color:var(--mut);text-decoration:none}.crumbs a:hover{color:var(--tx)}.crumbs b{color:var(--tx);font-weight:500}
.sheet-h{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.sheet-h .sh1{margin-right:auto}
.sm-seg{margin:0;width:220px}.sm-seg button{min-height:32px;padding:5px}
.lead{max-width:860px;margin:0 0 18px}
.bgrid{display:grid;gap:14px;align-items:start}.bgrid.three{grid-template-columns:1fr 1.15fr 1fr}.bgrid.action{grid-template-columns:2.4fr 1fr}
.bgrid>*{min-width:0}
.bcard{padding:16px 18px;border:1px solid rgba(140,190,255,.18);border-radius:16px;background:rgba(12,28,58,.5);margin-bottom:14px}
.bgrid .bcard{margin-bottom:0}.bgrid+.bcard{margin-top:14px}
.bh{font-size:22px;font-weight:400;margin:6px 0 4px}.t-ok{color:var(--ok)}.t-bad{color:var(--bad)}.t-warn{color:var(--warn)}
.rlist{list-style:none;margin:10px 0 14px;padding:0}.rlist li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-top:1px solid rgba(120,175,235,.12)}
.rlist em{font-style:normal;color:var(--lbl);font-size:11px}.rlist .s{white-space:nowrap;text-align:right}
.inl.cur{flex-direction:row;align-items:center;gap:7px}.inl.cur select{margin:0;height:28px}
.rowg{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.btn.sm{height:30px;padding:0 12px;font-size:12px}
.rec{display:grid;grid-template-columns:auto 1fr;gap:0 14px;margin:8px 0 0}.rec dt,.rec dd{margin:0;padding:7px 0;border-top:1px solid rgba(120,175,235,.12)}.rec dt{color:var(--mut)}.rec dd{text-align:right}
.kpis.three{grid-template-columns:repeat(3,1fr)}.kpis.three b{font-size:17px}
.bar-card{display:flex;justify-content:space-between;align-items:center;gap:18px}.bar-card p{margin:4px 0 0;max-width:900px}.cond{margin-top:8px;width:min(520px,100%)}
.pv-basis{display:flex;gap:8px;align-items:center;margin:8px 0;font-size:12px;color:var(--mut)}.pv-h{font-size:20px;font-weight:400;margin:4px 0}
.pv-t td,.pv-t th{padding:7px 8px 7px 0}.bcard.demo{border-color:rgba(255,196,107,.35)}
.tbl{overflow-x:auto;margin-top:8px}.atable{min-width:820px}.atable td{vertical-align:middle}.atable tr.done td{opacity:.6}
.cell{height:30px;width:100%;min-width:110px;font-size:12px;background:rgba(10,20,40,.45)}
.st{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;border:1px solid currentColor;white-space:nowrap}
.st.open{color:var(--warn)}.st.waiting{color:var(--mute)}.st.done{color:var(--ok)}.st.rej{color:var(--bad)}
.gatec label{margin-top:10px}.gatec .btn{width:100%;margin-top:12px}
.reg{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.reg-row{display:flex;gap:12px;align-items:center;width:100%;padding:10px 12px;border:1px solid rgba(140,190,255,.16);border-radius:12px;background:rgba(10,24,52,.45);text-align:left}
.reg li.open .reg-row{border-color:rgba(140,190,255,.5)}.reg-row b{display:block;font-weight:500}.reg-row small{color:var(--mut)}.grow{flex:1;min-width:0}
.reg-ic{width:30px;height:38px;border-radius:5px;background:linear-gradient(180deg,#e8eef8,#b9c6da);flex:none;box-shadow:inset 0 -10px 0 rgba(29,53,87,.15)}
.reg-d{padding:12px 14px 4px}.reg-d .inl{flex-direction:row;align-items:center;gap:8px;margin-top:10px}.reg-d .link{margin:0}
blockquote{margin:6px 0 8px;padding:10px 14px;border-left:3px solid var(--acc);background:rgba(37,99,235,.1);border-radius:0 10px 10px 0}
.tg{padding:5px 11px;border-radius:9px;border:1px solid rgba(140,190,255,.3);background:rgba(8,16,32,.5);color:var(--mut);font-size:12px}.tg.on{color:#fff;border-color:#6aa6ff;background:rgba(30,107,255,.35)}
.addf{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px;padding:14px;border:1px dashed rgba(140,190,255,.3);border-radius:12px}.addf .full{grid-column:1/-1}
.egrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.ecard{padding:14px 16px;border:1px solid rgba(140,190,255,.18);border-radius:14px;background:rgba(12,28,58,.5);min-height:120px}.ecard p{margin:8px 0 0;color:var(--mut);font-size:12.5px}
.ecard .s{font-size:13.5px;font-weight:500}.e-unknown{border-style:dashed}.e-demo{border-color:rgba(255,196,107,.35)}.e-disputed{border-color:rgba(255,123,123,.35)}
.chips.avail .chip{padding:6px 12px}.chips.avail b{font-weight:500;color:var(--tx)}
.boards{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.boards .btn{flex:none;white-space:nowrap}
.flink{color:var(--mut)}.flink:hover{color:var(--tx)}
@media (max-width:1100px){.bgrid.three{grid-template-columns:1fr 1fr}.bgrid.three>:last-child{grid-column:1/-1}.egrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){
  .sheet{inset:8px;padding:14px}.sh1{font-size:22px}.bgrid.three,.bgrid.action{grid-template-columns:1fr}.bgrid.three>:last-child{grid-column:auto}
  .bar-card{flex-direction:column;align-items:stretch}.addf{grid-template-columns:1fr 1fr}.sm-seg{width:100%}
}
@media (max-width:520px){.egrid,.addf{grid-template-columns:1fr}}
@media (max-width:640px){
  .atable{min-width:0}.atable thead{display:none}.atable,.atable tbody,.atable tr,.atable td{display:block;width:100%}
  .atable tr{padding:10px 0;border-top:1px solid rgba(120,175,235,.15)}.atable td{border:0;padding:3px 0;display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:center}
  .atable td::before{content:attr(data-l);color:var(--lbl);font-size:11px}
}

/* ===== v0.6: v0.2 shell merged over the spatial system ===== */
:root{--ok:#3ddc97;--warn:#f5b85a;--bad:#ff6b6b;--acc:#4b9dff;--acc2:#7cc8ff;--bd2:rgba(120,160,230,.26)}
.app{display:grid;grid-template-rows:62px 1fr auto;height:100vh;height:100dvh;
  background:radial-gradient(1200px 700px at 60% -10%,#0e2a5c 0%,rgba(7,18,40,.6) 40%,transparent 70%),radial-gradient(900px 600px at 0% 100%,#071a3a 0%,transparent 60%),#03070f}
.hd{height:62px;gap:16px;padding:0 18px;background:rgba(4,9,20,.78);backdrop-filter:blur(12px);position:relative;z-index:30;border-bottom:1px solid rgba(120,160,230,.1)}
.brand .wm{font-size:17px;letter-spacing:.42em}
.env{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--lbl);border-left:1px solid var(--bd);padding-left:14px;white-space:nowrap}
.tb{gap:2px;padding:4px;border:1px solid var(--bd);border-radius:12px;background:rgba(8,16,32,.6)}
.tb button{padding:7px 14px;border-radius:9px;color:#aebdd6;min-height:34px}
.tb button:hover{color:#fff;background:rgba(80,130,220,.1)}
.tb .on{color:#fff;background:linear-gradient(180deg,rgba(60,120,255,.32),rgba(37,99,235,.2));box-shadow:inset 0 0 0 1px rgba(110,160,255,.35)}
.sr{position:relative;margin-left:auto;gap:8px;height:38px;width:360px;border:1px solid var(--bd2);border-radius:11px;background:rgba(8,16,32,.75);color:var(--mut)}
.sr input{height:100%;padding:0;color:var(--tx)}.sr:focus-within{outline:0;border-color:var(--acc);box-shadow:0 0 0 3px rgba(75,157,255,.18)}
.sr-list{position:absolute;top:44px;left:0;right:0;margin:0;padding:6px;list-style:none;background:#0a1428;border:1px solid var(--bd2);border-radius:12px;box-shadow:0 24px 60px rgba(0,0,0,.5);z-index:40;max-height:60vh;overflow:auto}
.sr-list li{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:8px;cursor:pointer;color:var(--mut)}
.sr-list li.on{background:rgba(60,120,255,.18);color:var(--tx)}.sr-list b{display:block;color:var(--tx);font-weight:500}.sr-list small{font-size:11.5px}
.demo-tog{display:flex;align-items:center;gap:8px;height:34px;padding:0 13px;border-radius:17px;border:1px solid var(--bd2);background:none;color:var(--mut);font-size:12px;white-space:nowrap}
.demo-tog i{width:8px;height:8px;border-radius:50%;background:var(--mute)}.demo-tog.on{color:var(--warn);border-color:rgba(245,184,90,.5);background:rgba(245,184,90,.08)}.demo-tog.on i{background:var(--warn);box-shadow:0 0 8px var(--warn)}
.avatar{width:36px;height:36px;border-radius:50%;border:1px solid var(--bd2);background:linear-gradient(135deg,#1b3b78,#0c1a36);display:grid;place-items:center;color:#cfe0ff;flex:none}
.body{display:flex;min-height:0}
.rail{flex:none;width:78px;display:flex;flex-direction:column;gap:3px;padding:12px 8px;border-right:1px solid rgba(120,160,230,.08);background:rgba(4,9,20,.55);z-index:10;overflow-y:auto}
.rail button{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:0;border-radius:12px;padding:9px 2px;color:#8ea3c3;font-size:10.5px}
.rail button:hover{color:#fff;background:rgba(80,130,220,.08)}
.rail button.on{color:#fff;background:linear-gradient(180deg,rgba(60,120,255,.25),rgba(37,99,235,.12));box-shadow:inset 0 0 0 1px rgba(110,160,255,.3)}
.rail button.on svg{color:var(--acc2);filter:drop-shadow(0 0 6px rgba(75,157,255,.7))}
.rail-sep{display:block;height:1px;margin:6px 8px;background:rgba(120,160,230,.15)}.rail-sp{flex:1}
main.stage{position:relative;flex:1;min-width:0;min-height:0;overflow:hidden;inset:auto}
.ft{z-index:5}.ft .flink{color:var(--mut)}
.glass{border-color:rgba(140,190,255,.2);background:linear-gradient(170deg,rgba(14,26,52,.78),rgba(6,12,28,.72))}
.hint.glass{left:20px;top:20px;max-width:330px;padding:18px 20px;pointer-events:auto}
.hint-h{font-size:24px;font-weight:300;line-height:1.15;margin:8px 0 8px}.hint-h span{display:block;color:#b9cdee}
.dock.xwide{width:620px}
/* pins */
.gpin{background:none;border:0;padding:0;cursor:pointer;width:0;height:0}
.gp-dot{position:absolute;left:-14px;top:-14px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;
  background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--c) 80%,#fff),var(--c) 55%,color-mix(in srgb,var(--c) 55%,#000));
  box-shadow:0 0 0 3px rgba(4,10,24,.7),0 0 0 4px color-mix(in srgb,var(--c) 55%,transparent),0 0 16px var(--c);transition:transform .15s}
.gpin:hover .gp-dot,.gpin.on .gp-dot{transform:scale(1.15)}
.gpin.on .gp-dot::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1.5px solid var(--c);animation:pinring 1.8s ease-out infinite}
@keyframes pinring{0%{transform:scale(.9);opacity:.8}100%{transform:scale(2);opacity:0}}
.gp-l{position:absolute;left:18px;top:-9px;white-space:nowrap;font:500 12px var(--sans);letter-spacing:-.005em;color:#eaf3ff;text-shadow:0 1px 6px #000,0 0 2px #000;opacity:0;transition:opacity .15s;pointer-events:none}
.gpin:hover .gp-l,.gpin.on .gp-l,.gpin:focus-visible .gp-l{opacity:1}.gp-l em{font-style:normal;color:var(--warn);font-size:10.5px}
.gpin.demo .gp-dot{box-shadow:0 0 0 3px rgba(4,10,24,.7),0 0 0 4px rgba(245,184,90,.6),0 0 14px var(--c)}
/* lens */
.legend{display:none}
.lens{position:absolute;left:20px;bottom:16px;z-index:6;padding:10px 12px;border-radius:16px;max-width:min(560px,calc(100% - 40px))}
.lens-h{display:flex;align-items:center;gap:10px}
.lens-btn{display:flex;align-items:center;gap:9px;background:rgba(30,107,255,.14);border:1px solid rgba(140,190,255,.35);border-radius:11px;padding:6px 10px;color:var(--tx);text-align:left}
.lens-btn small{display:block;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--lbl)}.lens-btn b{font-weight:500;font-size:13px}
.lens-reset{margin:0}
.lens-list{list-style:none;margin:8px 0 6px;padding:0;max-height:46vh;overflow:auto;display:flex;flex-direction:column;gap:2px}
.lens-list li{display:flex;gap:4px;align-items:stretch}
.lens-list button[role=option]{flex:1;display:flex;gap:9px;align-items:center;background:none;border:1px solid transparent;border-radius:9px;padding:6px 8px;text-align:left;color:var(--tx)}
.lens-list button[role=option]:hover:not(:disabled){background:rgba(80,130,220,.12)}.lens-list button.on{background:rgba(30,107,255,.25);border-color:rgba(110,160,255,.5)}
.lens-list button.off{opacity:.55;cursor:not-allowed}.lens-list b{display:block;font-weight:500;font-size:12.5px}.lens-list small{color:var(--mut);font-size:11px}
.lens-list .lock{margin-left:auto;font-style:normal;font-size:10.5px;padding:1px 7px;border-radius:8px;border:1px dashed rgba(255,196,107,.5);color:#e0c48c}.lens-list .lock.paid{border-style:solid;color:var(--warn)}
.lens-list .info{width:26px;border-radius:8px;border:1px solid var(--bd);background:none;color:var(--mut);font-size:11px}
.lens-list .grain{padding:6px 8px}
.lens-legend{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--mut);margin-top:8px}
.lens-legend .inl select{height:28px;margin:0}
.ramp{display:inline-block;width:90px;height:8px;border-radius:4px;background:linear-gradient(90deg,rgb(30,70,140),rgb(140,220,255))}
.hatch{display:inline-block;width:14px;height:10px;margin-right:6px;vertical-align:-1px;border:1px solid rgba(255,196,107,.5);background:repeating-linear-gradient(135deg,rgba(255,196,107,.5) 0 2px,transparent 2px 5px)}
.dot.pin{background:#7cc8ff;border-radius:50%;transform:none}
/* workspace additions */
.inrow{display:flex;gap:8px;flex-wrap:wrap}.inrow .inl select{max-width:220px}
.pico{display:inline-grid;place-items:center}
.feeds{margin-top:6px;font-size:11px;color:#9cc8ff}
.attr{margin-top:6px;font-size:10.5px;color:#8aa3c2;line-height:1.35}.attr a{color:#9cc8ff;text-decoration:none}.attr a:hover{text-decoration:underline}
.stable{display:grid;gap:4px}.srow{display:grid;grid-template-columns:minmax(150px,1.4fr) 1fr 1.3fr .9fr .8fr;gap:10px;align-items:start;padding:8px 10px;border:1px solid rgba(120,175,235,.12);border-radius:8px;font-size:12px}.srow.h{border:0;color:#8aa3c2;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding-bottom:0}.srow.held{opacity:.78;border-style:dashed}.srow small{display:block;color:#8aa3c2}
@media (max-width:900px){.srow{grid-template-columns:1fr 1fr}.srow.h{display:none}}
.lpath{padding:8px 0 0;color:var(--mut);line-height:1.5}
.pathbtn{margin:0 0 6px}
.how{padding:12px;border:1px solid var(--bd2);border-radius:12px;background:rgba(6,14,30,.6);margin-bottom:10px}
.how ul{list-style:none;margin:4px 0 10px;padding:0}.how li{display:grid;grid-template-columns:160px 1fr;gap:10px;padding:5px 0;border-top:1px solid rgba(120,175,235,.1);font-size:12px}.how li span:last-child{color:var(--mut)}
.reasoning .rs{margin-bottom:12px}.reasoning ol{list-style:none;margin:6px 0 0;padding:0;counter-reset:r}
.reasoning li button{display:block;width:100%;text-align:left;background:rgba(20,50,100,.22);border:1px solid rgba(140,190,255,.16);border-radius:10px;padding:8px 10px;margin:4px 0;color:var(--tx)}
.reasoning li button:hover{border-color:rgba(140,190,255,.45)}.reasoning b{display:block;font-weight:500;font-size:12.5px}.reasoning small{color:var(--mut);font-size:11.5px}
.reasoning .narrow li button{border-left:3px solid var(--acc)}.reasoning .risk li button{border-left:3px solid var(--bad)}.reasoning .sup li button{border-left:3px solid var(--ok)}.reasoning .unc li button{border-left:3px solid var(--warn)}
.links .lk{padding:10px 12px;border:1px solid rgba(140,190,255,.16);border-radius:12px;margin:8px 0;background:rgba(10,24,52,.4)}
.lk-h{display:flex;justify-content:space-between;align-items:center}.lk-h .link{margin:0;color:var(--tx);text-decoration:none;font-weight:500}
.lk-p{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;margin:6px 0 4px}.lk-p i{font-style:normal;color:var(--lbl)}
.lk.s-no-data,.lk.s-not-onboarded{border-style:dashed;background:repeating-linear-gradient(135deg,rgba(255,196,107,.04) 0 6px,transparent 6px 12px)}
.st.ok{color:var(--ok)}.st.warn{color:var(--warn)}.st.mute{color:var(--mute)}
.order{margin:0 0 4px}
.seg13.top path{filter:drop-shadow(0 0 4px rgba(255,214,140,.35))}
.layer-link{display:block;margin:6px 0 0;font-size:11px;color:var(--mut)}
.pf.drop{display:flex;flex-direction:column;gap:8px}.pf.drop .inl select{width:100%;height:34px}.pf.drop .btn.wide{width:100%;margin:0}
.sm-seg2{margin:8px 0 0;width:240px}.sm-seg2 button{min-height:30px;padding:4px}
.trayrow{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:8px}
.tchip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 6px 0 12px;border-radius:15px;border:1px solid rgba(255,214,140,.45);background:rgba(255,214,140,.08);font-size:12px}
.tchip button{background:none;border:0;color:var(--mut);font-size:15px}.trayrow select{height:30px;margin:0}
.nway table,.ptab{font-size:12px}.nway tr.na td:first-child{opacity:.7}
.hatchcell{display:inline-block;padding:2px 6px;border-radius:5px;color:#d8bf86;background:repeating-linear-gradient(135deg,rgba(255,196,107,.1) 0 5px,transparent 5px 10px)}
.sbars{display:flex;flex-direction:column;gap:7px;margin-top:8px}.sbar{display:grid;grid-template-columns:150px 1fr 64px;gap:10px;align-items:center;font-size:12px;color:var(--mut)}.sbar small{text-align:right}
.bar0{height:6px;border-radius:3px;background:rgba(120,160,230,.12);overflow:hidden}.bar0 i{display:block;height:100%;min-width:2px;background:linear-gradient(90deg,#2563eb,#7cc8ff)}
.llist{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:4px}
.llist button,.llist a{display:flex;gap:10px;align-items:center;width:100%;padding:8px 10px;border:1px solid rgba(140,190,255,.14);border-radius:10px;background:rgba(10,24,52,.4);text-align:left;color:var(--tx);text-decoration:none}
.llist b{display:block;font-weight:500}.llist small{color:var(--mut)}.llist span{flex:1}
.ladder.small{margin:8px 0 0}.ladder.small li{padding-bottom:10px}
.btn.wide0{width:100%;margin-top:10px}
.ltable{display:flex;flex-direction:column;gap:8px}
.lrow{padding:12px;border:1px solid rgba(140,190,255,.16);border-radius:12px;background:rgba(10,24,52,.4)}.lrow.focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(75,157,255,.18)}
.lrow-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.lrow-h b{font-weight:500;margin-right:auto}
.lrow-g{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;margin-top:8px;color:var(--mut)}.lrow-g i{display:block;font-style:normal;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--lbl)}
.cov-grid{font-size:11.5px}.cg-h,.cg-r{display:grid;grid-template-columns:150px repeat(13,1fr);gap:3px;align-items:center;padding:2px 0}.cg-h span{color:var(--lbl);text-align:center}.cg-h span:first-child{text-align:left}
.cg{display:inline-block;height:12px;border-radius:3px;min-width:12px}.cg.full{background:var(--ok)}.cg.part{background:var(--acc)}.cg.zero{background:rgba(255,196,107,.25);border:1px dashed rgba(255,196,107,.5)}.cg.none{background:rgba(120,160,230,.08)}
.cov-grid p .cg{width:12px;margin:0 4px 0 10px;vertical-align:-2px}
.tfam{margin:12px 0}.trow{display:grid;grid-template-columns:150px 140px 1fr auto;gap:10px;align-items:center;padding:6px 0;border-top:1px solid rgba(120,175,235,.1)}.trow b{font-weight:500}
.reglist{list-style:none;margin:6px 0;padding:0}.reglist li{display:flex;justify-content:space-between;padding:5px 0;border-top:1px solid rgba(120,175,235,.1)}
@media (max-width:1200px){.env{display:none}.sr{width:260px}.dock.xwide{width:520px}}
@media (max-width:900px){
  .app{grid-template-rows:auto 1fr auto}
  .hd{flex-wrap:wrap;height:auto;padding:8px 12px;gap:8px}.tb{order:5;width:100%;overflow-x:auto;scrollbar-width:none}.tb button{flex:1;padding:7px 8px}
  .sr{width:auto;flex:1;min-width:0}.wm{letter-spacing:.3em;font-size:15px}
  .rail{display:none}.hint.glass{display:none}
  .lens{left:10px;right:10px;bottom:auto;top:10px;max-width:none}
  .dock.xwide{width:auto}.lrow-g{grid-template-columns:1fr}.cg-h,.cg-r{grid-template-columns:90px repeat(13,1fr)}.trow{grid-template-columns:1fr 1fr}.sbar{grid-template-columns:110px 1fr 54px}
}
.kpis b{font-size:19px;white-space:nowrap}
/* full sheets cover the globe: no lens over them */
.stage.r-case .lens,.stage.r-path .lens,.stage.r-gate .lens,.stage.r-decision .lens,.stage.r-action .lens,.stage.r-evidence .lens{display:none}
/* programme and risk register */
.prog{margin-top:14px;padding-top:12px;border-top:1px solid rgba(120,175,235,.12)}.prog .blocked{margin-top:6px}
.rtable{min-width:860px}.rtable td{vertical-align:middle}.na-tag{color:var(--warn);font-size:11px}
.lv{height:30px;font-size:12px}.lv.l-High{color:var(--bad);border-color:rgba(255,107,107,.5)}.lv.l-Medium{color:var(--warn)}.lv.l-Low{color:var(--ok)}
@media (max-width:640px){.rtable{min-width:0}.rtable thead{display:none}.rtable,.rtable tbody,.rtable tr,.rtable td{display:block;width:100%}
  .rtable tr{padding:10px 0;border-top:1px solid rgba(120,175,235,.15)}.rtable td{border:0;padding:3px 0;display:grid;grid-template-columns:100px 1fr;gap:8px;align-items:center}.rtable td::before{content:attr(data-l);color:var(--lbl);font-size:11px}}
@media (max-width:900px){
  .lens{right:auto;padding:8px}.lens .lens-legend{display:none}.lens.open .lens-legend,.lens.shaded .lens-legend{display:flex}
  .chips-top{top:74px;left:10px;right:10px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.pchip{flex:none}
}
.fan{max-width:540px;margin-left:auto;margin-right:auto}
@media (max-width:820px){
  .atable,.rtable{min-width:0}.atable thead,.rtable thead{display:none}.atable,.atable tbody,.atable tr,.atable td,.rtable,.rtable tbody,.rtable tr,.rtable td{display:block;width:100%}
  .atable tr,.rtable tr{padding:10px 0;border-top:1px solid rgba(120,175,235,.15)}
  .atable td,.rtable td{border:0;padding:3px 0;display:grid;grid-template-columns:120px 1fr;gap:8px;align-items:center}.atable td::before,.rtable td::before{content:attr(data-l);color:var(--lbl);font-size:11px}
}

/* Type system. Geist for reading and display, Geist Mono for small caps labels, codes and units: one sleek voice,
   tabular figures everywhere numbers line up, tighter tracking as size grows. */
:root{--sans:'Geist',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;--mono:'Geist Mono',ui-monospace,'SF Mono',Menlo,monospace}
h1,h2,h3,.ph h2,.ph2,.ph3,.sh1{letter-spacing:-.022em}
.ph h2,.ph2,.sh1{font-weight:350}
.ph3,.lens-btn b{font-weight:520;letter-spacing:-.012em}
.big,.tile .big,.kpis b,.bignum{font-variant-numeric:tabular-nums;letter-spacing:-.028em}
.big,.tile .big{font-weight:480}.kpis b{font-weight:560}.bignum{font-weight:280;letter-spacing:-.035em}
.lbl,.env,.lens-btn small,.srow.h,.lrow-g i{font-family:var(--mono);font-weight:500;letter-spacing:.12em;font-size:10px}
.brand .wm{font-family:var(--sans);font-weight:500;letter-spacing:.46em}
code,kbd,.mono{font-family:var(--mono);letter-spacing:0}
.chip{font-weight:500;letter-spacing:.005em}
.srow small,.attr{letter-spacing:0}
b,strong{font-weight:580}
button,input,select,textarea{letter-spacing:inherit}
svg text{font-family:var(--sans);font-variant-numeric:tabular-nums}

/* ===== v0.9 refinement layer =====
   An upgrade of the same system, not a new one: the night globe, glass and blue accent stay. What changes is restraint.
   Hairlines instead of outlines, elevation instead of saturated fills, one radius and shadow scale, quieter chrome so the
   data carries the colour, and calmer motion. Honest-state cues (dashed, hatched, amber, Held) keep their meaning. */
:root{
  --line:rgba(170,200,255,.09);--line-2:rgba(170,200,255,.15);--line-3:rgba(170,200,255,.26);
  --surf-1:rgba(255,255,255,.022);--surf-2:rgba(255,255,255,.045);--surf-3:rgba(255,255,255,.075);--surf-in:rgba(3,8,20,.55);
  --acc:#5b9bff;--acc-2:#8cc2ff;--acc-fill:linear-gradient(180deg,#4f8dff,#2f6cf0);--acc-soft:rgba(91,155,255,.14);
  --tx:#edf3fc;--mut:#9fb2cc;--lbl:#7f9ab9;--mute:#7f93ad;
  --r-lg:18px;--r-md:13px;--r-sm:10px;
  --sh-1:0 1px 0 rgba(255,255,255,.04) inset,0 1px 2px rgba(0,0,0,.25);
  --sh-2:0 1px 0 rgba(255,255,255,.06) inset,0 10px 30px -12px rgba(0,0,0,.6);
  --sh-3:0 1px 0 rgba(255,255,255,.07) inset,0 30px 80px -20px rgba(0,0,0,.7),0 0 0 1px rgba(0,0,0,.25);
  --ring:0 0 0 3px rgba(91,155,255,.28);
  --ease:cubic-bezier(.2,.7,.2,1);
}
::selection{background:rgba(91,155,255,.35);color:#fff}
*{scrollbar-width:thin;scrollbar-color:rgba(170,200,255,.18) transparent}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:rgba(170,200,255,.16);border-radius:8px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}
button,a,input,select,.tile,.pchip,.chip{transition:background-color .16s var(--ease),border-color .16s var(--ease),color .16s var(--ease),box-shadow .16s var(--ease),transform .16s var(--ease),opacity .16s var(--ease)}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,.seg13:focus-visible{outline:0;box-shadow:var(--ring)}
@keyframes rise{from{opacity:0;transform:translateY(8px) scale(.995)}to{opacity:1;transform:none}}
.dock,.drawer,.sheet{animation:rise .42s var(--ease) both}

/* chrome: header, nav, search, rail, footer */
.app{background:radial-gradient(1100px 620px at 62% -12%,#0c2552 0%,rgba(6,16,36,.55) 42%,transparent 72%),radial-gradient(800px 560px at -5% 105%,#06173a 0%,transparent 60%),#02060d}
.hd{background:linear-gradient(180deg,rgba(3,7,16,.86),rgba(3,7,16,.7));border-bottom:1px solid var(--line);backdrop-filter:blur(16px) saturate(1.2)}
.brand .wm{font-size:16px;font-weight:450;letter-spacing:.5em;color:#f2f6fd}
.env{border-left-color:var(--line-2);color:#6f8aab}
.tb{border:1px solid var(--line);background:rgba(255,255,255,.025);border-radius:12px;padding:3px}
.tb button{color:#97a9c3;border-radius:9px;font-weight:450}
.tb button:hover{color:#e6eefb;background:var(--surf-2)}
.tb .on,.tb .on:hover{color:#fff;background:var(--surf-3);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 1px 2px rgba(0,0,0,.35),inset 0 0 0 1px var(--line-2)}
.sr{border:1px solid var(--line-2);background:rgba(255,255,255,.03);border-radius:11px;box-shadow:inset 0 1px 2px rgba(0,0,0,.25)}
.sr:hover{border-color:var(--line-3)}.sr:focus-within{border-color:rgba(91,155,255,.6);box-shadow:var(--ring)}
.sr-list{background:rgba(8,14,30,.96);border:1px solid var(--line-2);box-shadow:var(--sh-3);backdrop-filter:blur(18px)}
.sr-list li.on{background:var(--surf-3)}
.demo-tog{border-color:var(--line-2);background:rgba(255,255,255,.025)}
.demo-tog.on{background:rgba(245,184,90,.07);border-color:rgba(245,184,90,.32)}
.avatar{border-color:var(--line-2);background:linear-gradient(140deg,#17305f,#0a1630);box-shadow:var(--sh-1)}
.rail{width:76px;background:linear-gradient(180deg,rgba(3,7,16,.7),rgba(3,7,16,.55));border-right:1px solid var(--line);gap:2px;padding:12px 8px}
.rail button{position:relative;color:#7f93b0;border-radius:11px;font-size:10.5px;font-weight:450;padding:10px 2px 8px}
.rail button:hover{color:#e6eefb;background:var(--surf-2)}
.rail button.on{color:#fff;background:var(--surf-2);box-shadow:inset 0 0 0 1px var(--line-2)}
.rail button.on::before{content:"";position:absolute;left:-8px;top:12px;bottom:12px;width:2px;border-radius:2px;background:var(--acc);box-shadow:0 0 10px rgba(91,155,255,.8)}
.rail button.on svg{color:var(--acc-2);filter:drop-shadow(0 0 5px rgba(91,155,255,.55))}
.rail-sep{background:var(--line);margin:8px 10px}
.ft{background:rgba(3,7,16,.75);border-top:1px solid var(--line);padding:7px 20px;align-items:center;font-size:12px}
.ft .chip.amb{border-radius:999px;padding:3px 12px 3px 10px;background:rgba(245,184,90,.06);border-color:rgba(245,184,90,.28);display:inline-flex;align-items:center;gap:8px}
.ft .chip.amb::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--warn);box-shadow:0 0 8px var(--warn)}

/* surfaces */
.glass{border:1px solid var(--line-2);border-radius:var(--r-lg);background:linear-gradient(180deg,rgba(13,22,44,.84),rgba(6,11,24,.8));backdrop-filter:blur(22px) saturate(1.35);-webkit-backdrop-filter:blur(22px) saturate(1.35);box-shadow:var(--sh-3)}
.sheet{background:linear-gradient(180deg,rgba(9,17,36,.9),rgba(4,9,20,.88))}
.dock .ph{padding:20px 22px 8px}.dock .scroll{padding:4px 22px 20px}
.dock>.ph2,.dock>.lbl,.dock>p,.dock>.btn,.dock>.ladder{margin-left:22px;margin-right:22px}
.x{border:1px solid var(--line-2);background:var(--surf-1);border-radius:10px;color:var(--mut)}.x:hover{color:#fff;background:var(--surf-3);border-color:var(--line-3)}
.bcard,.tile,.kpis>div,.lrow,.reg-row,.ecard,.links .lk,.ptrack,.llist button,.llist a,.how,.reasoning li button,.card{border:1px solid var(--line);background:var(--surf-1);box-shadow:var(--sh-1)}
.bcard{border-radius:16px;padding:18px 20px}
.tile,.kpis>div,.lrow,.ecard,.ptrack{border-radius:var(--r-md)}
.tile{padding:13px 14px}
.tile:hover,.lrow:hover,.ptrack:hover,.llist button:hover,.llist a:hover,.reg-row:hover,.reasoning li button:hover{transform:translateY(-1px);border-color:var(--line-3);background:var(--surf-2)}
.kpis>div{padding:12px 14px}
.kpis b{font-size:20px}
.srow{border:1px solid var(--line);background:var(--surf-1);border-radius:11px;padding:11px 12px}.srow.h{background:none;border:0;box-shadow:none}
.srow:not(.h):hover{border-color:var(--line-2);background:var(--surf-2)}
/* honest states stay legible, but quieter */
.tile.empty{border:1px dashed rgba(245,184,90,.26);background:repeating-linear-gradient(135deg,rgba(245,184,90,.045) 0 6px,transparent 6px 12px),var(--surf-1)}
.tile.empty .big{color:#dcc08a;font-weight:450}
.srow.held{border-style:dashed;border-color:rgba(245,184,90,.22);opacity:.86}
.bcard.demo,.e-demo,.demo .kpis>div{border-color:rgba(245,184,90,.26)}
.blocked{border:1px solid rgba(245,184,90,.26);background:linear-gradient(180deg,rgba(245,184,90,.06),rgba(245,184,90,.025));border-radius:var(--r-md)}
.lk.s-no-data,.lk.s-not-onboarded{border-color:rgba(245,184,90,.22)}

/* controls */
.seg{border:1px solid var(--line);background:rgba(255,255,255,.02);border-radius:999px;padding:3px;gap:2px}
.seg button{color:#97a9c3;border-radius:999px;font-weight:450}
.seg button:hover{color:#e6eefb;background:var(--surf-2)}
.seg .on,.seg .on:hover{color:#fff;background:linear-gradient(180deg,rgba(91,155,255,.24),rgba(91,155,255,.14));box-shadow:inset 0 1px 0 rgba(255,255,255,.1),inset 0 0 0 1px rgba(120,170,255,.38),0 4px 14px -6px rgba(47,108,240,.7)}
.btn{height:38px;border-radius:var(--r-sm);border:1px solid rgba(140,185,255,.35);background:var(--acc-fill);color:#fff;font-weight:520;letter-spacing:-.005em;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 6px 18px -8px rgba(47,108,240,.9)}
.btn:hover:not(:disabled){filter:brightness(1.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 8px 22px -8px rgba(47,108,240,1)}
.btn:active:not(:disabled){transform:translateY(1px)}
.btn:disabled{opacity:1;background:var(--surf-2);border-color:var(--line-2);color:#6f84a3;box-shadow:none}
.btn.ghost,.btn.sec{background:var(--surf-1);border-color:var(--line-3);color:#e6eefb;box-shadow:var(--sh-1)}
.btn.ghost:hover:not(:disabled){background:var(--surf-3);filter:none}
.link{color:var(--mut);text-decoration-color:rgba(159,178,204,.4);text-underline-offset:3px}.link:hover{color:#fff;text-decoration-color:currentColor}
.chip{border:1px solid var(--line-2);background:var(--surf-1);border-radius:999px;padding:3px 11px;color:#cfdcef;font-size:11.5px}
.chip.amb{color:#f0c27a;border-color:rgba(245,184,90,.3);background:rgba(245,184,90,.06)}
.st{border-color:color-mix(in srgb,currentColor 45%,transparent);background:color-mix(in srgb,currentColor 8%,transparent)}
.tg{border:1px solid var(--line-2);background:var(--surf-1);border-radius:999px}.tg.on{color:#fff;border-color:rgba(120,170,255,.45);background:var(--acc-soft)}
input,select,.cell{border:1px solid var(--line-2);background:var(--surf-in);border-radius:var(--r-sm);box-shadow:inset 0 1px 2px rgba(0,0,0,.3);color:var(--tx)}
input:hover,select:hover{border-color:var(--line-3)}
input:focus,select:focus{outline:0;border-color:rgba(91,155,255,.6);box-shadow:var(--ring)}
/* One chevron for every select. Older rules set the background shorthand, so the arrow is pinned here. */
select{-webkit-appearance:none;appearance:none;padding-right:30px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%239fb2cc' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 11px center!important}
.pill select{background-color:transparent;box-shadow:none;border:0}
input[type=range]{box-shadow:none;border:0;background:none}
input[type=range]::-webkit-slider-runnable-track{height:3px;background:linear-gradient(90deg,#3f7cf6,#8cc2ff)}
input[type=range]::-webkit-slider-thumb{width:18px;height:18px;margin-top:-7.5px;border:0;background:#fff;box-shadow:0 0 0 4px rgba(91,155,255,.35),0 2px 10px rgba(0,0,0,.5)}
input[type=range]::-moz-range-thumb{border:0;box-shadow:0 0 0 4px rgba(91,155,255,.35),0 2px 10px rgba(0,0,0,.5)}
.stepper button,.swap{border:1px solid var(--line-2);background:var(--surf-2)}.stepper button:hover,.swap:hover{background:var(--surf-3);border-color:var(--line-3)}

/* project chips, pills, lens */
.pchip{border:1px solid var(--line-2);background:rgba(6,12,26,.62);backdrop-filter:blur(14px);color:#d6e3f5;font-weight:450;box-shadow:var(--sh-1)}
.pchip:hover{border-color:var(--line-3);background:rgba(16,28,54,.7)}
.pchip.on{color:#fff;background:linear-gradient(180deg,rgba(91,155,255,.3),rgba(91,155,255,.16));border-color:rgba(130,180,255,.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 6px 20px -8px rgba(47,108,240,.8)}
.pchip.add{border-style:dashed;background:transparent}
.pill{border:1px solid var(--line-2);background:var(--surf-in)}.pill.b{border-color:rgba(46,230,197,.3)}
.lens{padding:10px 12px}
.lens-btn{background:var(--surf-2);border:1px solid var(--line-2);border-radius:11px}.lens-btn:hover{background:var(--surf-3);border-color:var(--line-3)}
.lens-list button[role=option]:hover:not(:disabled){background:var(--surf-2)}
.lens-list button.on{background:var(--acc-soft);border-color:rgba(120,170,255,.4)}
.lens-list .info{border-color:var(--line-2);background:var(--surf-1)}

/* lists, tables, records */
th{color:var(--lbl);font-family:var(--mono);font-weight:500;font-size:10px;letter-spacing:.1em;text-transform:uppercase}
td,.rlist li,.rec dt,.rec dd,.q,.ind,.trow,.reglist li,.how li{border-top-color:var(--line)}
tbody tr{transition:background-color .16s var(--ease)}tbody tr:hover{background:rgba(255,255,255,.018)}
.sech{border-bottom-color:var(--line)}.prog{border-top-color:var(--line)}
.bh{font-weight:420;letter-spacing:-.02em}
.crumbs{color:#7f93b0}.crumbs b{font-weight:520}
blockquote{border-left:2px solid var(--acc);background:var(--acc-soft)}
.reasoning .narrow li button,.reasoning .risk li button,.reasoning .sup li button,.reasoning .unc li button{border-left-width:2px}
.meter,.bar0,.gauge{background:rgba(170,200,255,.08)}
.fan{background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,.005));border:1px solid var(--line)}
.globe-tip{background:rgba(6,11,24,.92);border:1px solid var(--line-2);border-radius:9px;box-shadow:var(--sh-2);backdrop-filter:blur(10px)}
/* ring: calmer fills, crisper selection */
.seg13 path{fill:rgba(91,155,255,.17);stroke:rgba(4,9,20,.95);stroke-width:2.5}
.seg13.part path{fill:rgba(91,155,255,.42)}.seg13.full path{fill:rgba(61,220,151,.38)}.seg13.none path{fill:rgba(245,184,90,.1)}
.seg13:hover path,.seg13:focus path{fill:rgba(140,194,255,.7)}
.seg13.on path{fill:#4a8bff;filter:drop-shadow(0 0 10px rgba(74,139,255,.75))}
@media (max-width:900px){.rail button.on::before{display:none}}
/* markets pickers: the chevron must not widen the pill */
.pill{min-width:0;overflow:hidden}.pill select{flex:1 1 0;width:0;min-width:0;padding-right:22px!important;background-position:right 2px center!important}
/* phone: search gets its own row (it was too narrow to use), the footer stays to two short lines */
@media (max-width:640px){
  .hd{row-gap:8px}.brand .wm{font-size:14px;letter-spacing:.34em}
  .sr{order:4;flex:1 1 100%;width:100%;height:36px}
  .tb{order:5}
  .ft{gap:10px;padding:6px 12px}.ft .chip.amb{font-size:10.5px;line-height:1.3;padding:4px 10px;max-width:66%}.ft>span.mut{font-size:10.5px;text-align:right}
}
.sheet-h{margin-bottom:8px}
/* official identity: ribbon mark, hairline divider, wordmark (brand.tsx); tagline in brand blue */
.brand{gap:14px}.brand .wm{display:flex;align-items:center;letter-spacing:0;font-size:0}.brand svg{display:block}
.brand-div{width:1px;height:22px;background:linear-gradient(180deg,transparent,rgba(170,200,255,.35),transparent)}
.brand:hover .wm svg{opacity:.85}
.tagline{font-size:10px;font-weight:550;letter-spacing:.24em;text-transform:uppercase;color:#5b8cff}
.lockup{display:inline-flex;align-items:center;gap:16px}.lockup-txt{display:flex;flex-direction:column;gap:8px;padding-left:16px;border-left:1px solid rgba(170,200,255,.25)}
@media (max-width:640px){.brand{gap:10px}.brand-div{display:none}}
.hint .tagline span{display:block}
/* value of information */
.voi-h{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.voi-n{font-style:normal;font-family:var(--mono);font-size:11.5px;color:var(--acc-2);white-space:nowrap}
.voi-bar{display:block;height:3px;border-radius:2px;background:rgba(170,200,255,.08);margin:6px 0 4px;overflow:hidden}.voi-bar i{display:block;height:100%;background:linear-gradient(90deg,#3f7cf6,#8cc2ff)}
/* option screening */
.weights{display:grid;gap:6px;margin:12px 0 14px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surf-1)}
.wrow{display:grid;grid-template-columns:1fr 140px 18px;gap:12px;align-items:center;flex-direction:row;color:var(--tx);font-size:12.5px}.wrow b{text-align:right;font-family:var(--mono);font-weight:500;color:var(--acc-2)}
.otable{min-width:900px;font-size:12.5px}.otable td{vertical-align:middle}.otable tr.top td{background:rgba(91,155,255,.06)}.otable tr.top td:first-child{box-shadow:inset 2px 0 0 var(--acc)}.otable tr.na td{opacity:.6}
@media (max-width:820px){.otable{min-width:0}.otable thead{display:none}.otable,.otable tbody,.otable tr,.otable td{display:block;width:100%}.otable tr{padding:10px 0;border-top:1px solid var(--line)}
  .otable td{border:0;padding:3px 0;display:grid;grid-template-columns:130px 1fr;gap:8px;text-align:left}.otable td::before{content:attr(data-l);color:var(--lbl);font-size:11px}.wrow{grid-template-columns:1fr 110px 18px}}
/* decision pack */
.bcard.pack{margin-top:14px}.pack-h{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.pack-h p{margin:4px 0 0;max-width:760px}
.pack-r{margin-top:10px;padding-top:12px;border-top:1px solid var(--line)}.pack-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--mut)}.pack-meta b{color:var(--tx);font-weight:520}
@media (max-width:900px){.pack-h{flex-direction:column}}
.variants{margin:12px 0 4px}.variants .inl select{height:32px;margin:0}
.attr.note{color:#b9c9df;font-style:normal;border-left:2px solid rgba(91,155,255,.4);padding-left:7px}
/* project files */
.pfile{display:inline-flex;gap:6px;margin-left:auto}.pchip.ghost{background:rgba(6,12,26,.4);color:var(--mut);font-size:12.5px}.pchip.ghost:hover{color:#fff}
.filemsg{flex-basis:100%;display:flex;gap:12px;align-items:flex-start;justify-content:space-between;padding:10px 14px;border-radius:12px;font-size:12.5px;max-width:720px}
.filemsg.ok{border-color:rgba(61,220,151,.3)}.filemsg.warn{border-color:rgba(245,184,90,.35);color:#f3dcb4}.filemsg button{background:none;border:0;color:var(--mut);font-size:16px;line-height:1}
@media (max-width:900px){.pfile{margin-left:0}}
/* change feed */
.feed-l{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.feed-l li{display:grid;grid-template-columns:130px 1fr auto;gap:14px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surf-1);font-size:12.5px}
.feed-l small{display:block;color:var(--mut);font-size:11px}.feed-v{font-family:var(--mono);font-size:12px;white-space:nowrap}.feed-v i{color:var(--lbl);font-style:normal;margin:0 4px}
.fk-updated .st{color:var(--acc-2)}.fk-revised .st{color:var(--warn)}.fk-new .st{color:var(--ok)}.fk-removed .st{color:var(--bad)}
@media (max-width:700px){.feed-l li{grid-template-columns:1fr}}

/* ===== System pages (v0.12): settings, admin console, method, data, terms ===== */
.stage.r-admin .lens,.stage.r-settings .lens,.stage.r-method .lens,.stage.r-data .lens,.stage.r-terms .lens,
.stage.r-admin .hint,.stage.r-settings .hint,.stage.r-method .hint,.stage.r-data .hint,.stage.r-terms .hint{display:none}
.sheet.sys{display:flex;flex-direction:column}.sheet.sys .lead{margin:0 0 14px}
.sys-tabs{margin:0 0 16px;width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none}.sys-tabs button{flex:none;padding:7px 16px}
.sys-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:14px;align-items:start}
.sys-block{margin:0}.sys-block>.lbl{margin-bottom:8px}.sys-block p{margin:6px 0}
.health{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:14px}
.hcard{padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surf-1);box-shadow:var(--sh-1);position:relative;overflow:hidden}
.hcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--warn)}.hcard.ok::before{background:var(--ok)}
.hcard b{display:block;font-size:19px;font-weight:480;letter-spacing:-.02em;margin:6px 0 2px}.hcard small{color:var(--mut);font-size:11.5px}
.todo{margin:6px 0 0;padding-left:18px;display:grid;gap:8px;font-size:13px}.todo b{font-weight:560}
.form2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.danger{margin-top:12px;padding:12px 14px;border:1px solid rgba(255,107,107,.28);border-radius:var(--r-md);background:rgba(255,107,107,.05)}.danger input{flex:1;min-width:160px}
.btn.danger-btn{background:linear-gradient(180deg,#e2554f,#c2403b);border-color:rgba(255,140,130,.45);box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}
.kvt{font-size:12.5px}.kvt td:first-child{color:var(--mut)}
pre.cmd{margin:6px 0 0;padding:12px 14px;border-radius:var(--r-sm);background:var(--surf-in);border:1px solid var(--line);font:11.5px/1.7 var(--mono);color:#cfe0f7;white-space:pre-wrap;overflow-x:auto}
.relv{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}.relv li{display:grid;grid-template-columns:170px 1fr 110px;gap:10px;align-items:center;font-size:12px}.relv small{color:var(--mut);text-align:right}
.formula{font:500 17px/1.4 var(--sans);letter-spacing:-.01em;margin:4px 0 10px;padding:12px 14px;border-radius:var(--r-sm);background:var(--surf-in);border:1px solid var(--line);text-align:center;color:#eef4fd}
.rungs{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}.rungs li{display:flex;gap:12px;align-items:center;font-size:13px}
.rungs b{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:500 11px var(--mono);background:var(--acc-soft);border:1px solid rgba(120,170,255,.35);color:var(--acc-2)}
.never{margin:6px 0 0;padding-left:18px;display:grid;gap:6px;font-size:13px}
.gloss{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));gap:10px;margin:0}
.gloss>div{padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surf-1)}.gloss dt{font-weight:560;margin-bottom:4px}.gloss dd{margin:0;color:var(--mut);font-size:12.5px}
.faq{display:grid;gap:8px;max-width:900px}.faq-i{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surf-1)}.faq-i.open{border-color:var(--line-2);background:var(--surf-2)}
.faq-i button{width:100%;display:flex;justify-content:space-between;gap:12px;align-items:center;background:none;border:0;padding:13px 16px;text-align:left;font-weight:500;color:var(--tx)}
.faq-i button i{font-style:normal;color:var(--acc-2);font-size:18px;line-height:1}.faq-i p{margin:0;padding:0 16px 14px;color:var(--mut);font-size:13px}
.attr-q{margin:4px 0 8px;padding:10px 12px;border-left:2px solid var(--acc);background:var(--acc-soft);border-radius:0 9px 9px 0;font-size:12.5px;color:#e3ecf9}
.attr-g{margin-bottom:10px}
.draft{margin:0 0 14px;padding:11px 14px;border:1px solid rgba(245,184,90,.35);border-radius:var(--r-md);background:rgba(245,184,90,.07);color:#f3dcb4;font-size:13px}
.llist a small{display:block;color:var(--mut);font-size:11.5px}.llist a{flex-direction:column;align-items:flex-start;gap:2px}
/* account menu */
.acct{position:relative}
.acct-m{position:absolute;right:0;top:46px;width:280px;padding:6px;z-index:50;border-radius:14px;animation:rise .2s var(--ease) both}
.acct-h{padding:10px 12px 8px;border-bottom:1px solid var(--line);margin-bottom:4px}.acct-h b{display:block;font-weight:560;font-size:13px}.acct-h small{color:var(--mut);font-size:11.5px}
.acct-m button{display:flex;flex-direction:column;align-items:flex-start;width:100%;background:none;border:0;border-radius:9px;padding:8px 12px;text-align:left;color:var(--tx)}
.acct-m button:hover,.acct-m button.on{background:var(--surf-3)}.acct-m button small{color:var(--mut);font-size:11.5px}
.ft-links{text-align:right}
@media (max-width:640px){.ft-links .flink:nth-of-type(n+2):nth-of-type(-n+6){display:none}.ft-links .flink{display:inline-block;min-height:24px;line-height:24px}.relv li{grid-template-columns:120px 1fr 80px}}
.sheet.sys>*{flex-shrink:0}
.btn.danger-btn:disabled{background:var(--surf-2);border-color:var(--line-2);color:#6f84a3;box-shadow:none}
.feed-l .st{justify-self:start}

/* ===== v0.13: typology picker, project switcher, dynamic project stage ===== */
.glyph{display:block;overflow:visible}
/* type and typology picker */
.tpick{position:relative}.tp-btn{display:flex;align-items:center;gap:10px;height:40px;padding:0 12px 0 6px;border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--surf-in);color:var(--tx);text-align:left;max-width:100%}
.tp-btn:hover{border-color:var(--line-3)}.tp-g{display:grid;place-items:center;width:34px;height:30px;flex:none}.tp-g svg{max-width:100%;max-height:100%}
.tp-l{display:flex;flex-direction:column;min-width:0;line-height:1.2}.tp-l small{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--lbl)}.tp-l b{font-weight:520;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tp-l b span{color:var(--mut);font-weight:450}
.tp-pop{position:absolute;left:0;top:46px;z-index:60;width:min(760px,calc(100vw - 40px));padding:10px;border-radius:16px;animation:rise .22s var(--ease) both}
.tp-s{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border:1px solid var(--line-2);border-radius:10px;background:var(--surf-in);color:var(--mut);margin-bottom:10px}.tp-s input{flex:1;border:0;background:none;box-shadow:none;height:100%;padding:0}
.tp-cols{display:grid;grid-template-columns:170px 190px 1fr;gap:8px;max-height:min(440px,60vh)}
.tp-fam,.tp-types{list-style:none;margin:0;padding:0;overflow:auto;border-right:1px solid var(--line)}
.tp-fam button,.tp-types button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;background:none;border-radius:9px;color:var(--mut);text-align:left;font-size:12.5px}
.tp-fam button:hover,.tp-types button:hover{background:var(--surf-2);color:var(--tx)}.tp-fam button.on,.tp-types button.on{background:var(--surf-3);color:#fff}
.tp-fam i{width:8px;height:8px;border-radius:50%;flex:none}.tp-fam small,.tp-types small{margin-left:auto;font-family:var(--mono);font-size:10.5px;color:var(--lbl)}
.tp-typos{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;overflow:auto;align-content:start;padding-right:4px}
.tp-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 8px;border:1px solid var(--line);border-radius:12px;background:var(--surf-1);color:var(--tx);font-size:12px;text-align:center}
.tp-card:hover{border-color:var(--line-3);background:var(--surf-2);transform:translateY(-1px)}.tp-card.on{border-color:rgba(120,170,255,.55);background:var(--acc-soft)}.tp-card .tp-g{width:84px;height:64px}.tp-card.any span{color:var(--mut)}
.tp-note{grid-column:1/-1;margin:4px 2px 0}
.tp-hits{list-style:none;margin:0;padding:0;max-height:min(420px,60vh);overflow:auto;display:grid;gap:4px}
.tp-hits button{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:1px solid transparent;border-radius:10px;background:none;color:var(--tx);text-align:left}
.tp-hits button:hover,.tp-hits button[aria-selected=true]{background:var(--surf-2);border-color:var(--line)}.tp-hits b{display:block;font-weight:520}.tp-hits small{color:var(--mut);font-size:11.5px}.tp-hits .tp-g{width:48px;height:38px}
.pf.drop .tpick{width:100%}.pf.drop .tp-btn{width:100%}.pf.drop .tp-pop{top:auto;bottom:46px;width:min(640px,calc(100vw - 40px));right:0;left:auto}
@media (max-width:760px){.tp-cols{grid-template-columns:1fr;max-height:60vh;overflow:auto}.tp-fam,.tp-types{border:0;display:flex;flex-wrap:wrap;gap:4px}.tp-fam li,.tp-types li{flex:none}.tp-fam button,.tp-types button{width:auto}}
/* project switcher */
.switcher{position:absolute;left:20px;top:16px;z-index:8;max-width:min(420px,calc(100% - 40px))}
.sw-btn{display:flex;align-items:center;gap:10px;height:52px;padding:0 14px 0 8px;border-radius:14px;color:var(--tx);text-align:left;max-width:100%}
.sw-btn:hover{border-color:var(--line-3)}.sw-g{display:grid;place-items:center;width:42px;height:38px;flex:none}.sw-g svg{max-width:100%;max-height:100%}.sw-g.empty{border:1px dashed var(--line-3);border-radius:10px;color:var(--mut)}
.sw-l{display:flex;flex-direction:column;min-width:0;line-height:1.25}.sw-l b{font-weight:540;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sw-l small{color:var(--mut);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sw-n{margin-left:6px;min-width:22px;height:20px;padding:0 6px;border-radius:10px;background:var(--surf-3);font:500 11px/20px var(--mono);text-align:center;color:var(--acc-2)}
.sw-pop{margin-top:8px;width:min(420px,calc(100vw - 40px));padding:10px;border-radius:16px;animation:rise .22s var(--ease) both}
.sw-list{list-style:none;margin:0;padding:0;max-height:min(380px,50vh);overflow:auto;display:grid;gap:2px}
.sw-list button{display:flex;align-items:center;gap:10px;width:100%;padding:6px 8px;border:1px solid transparent;border-radius:10px;background:none;color:var(--tx);text-align:left}
.sw-list button:hover{background:var(--surf-2)}.sw-list button.on{background:var(--acc-soft);border-color:rgba(120,170,255,.35)}
.sw-list b{display:block;font-weight:520;font-size:13px}.sw-list small{color:var(--mut);font-size:11.5px}.sw-list em{margin-left:auto;font-style:normal;font-size:10.5px;color:var(--warn);border:1px solid rgba(245,184,90,.35);border-radius:999px;padding:1px 8px}
.sw-none{padding:10px}.sw-foot{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.sw-tip{margin:8px 2px 0}
.switcher .filemsg{margin-top:8px}
.dyn-btn{background:linear-gradient(180deg,rgba(91,155,255,.28),rgba(91,155,255,.14));border-color:rgba(130,180,255,.5)}
/* dynamic stage */
.stage.dyn .lens,.stage.dyn .hint{display:none}
.pstage{position:absolute;inset:0;z-index:5;pointer-events:none;--c:#5b9bff}
.pstage>*{pointer-events:auto}.pstage .ps-lines,.pstage .ps-ground,.pstage .ps-beam,.pstage .ps-glyph{pointer-events:none}
.ps-head{position:absolute;left:50%;top:22px;transform:translateX(-50%);text-align:center;max-width:min(720px,80%);animation:rise .5s var(--ease) both}
.ps-head h1{margin:6px 0 8px;font-size:34px;font-weight:340;letter-spacing:-.03em;text-shadow:0 2px 24px rgba(0,0,0,.8)}.ps-chips{display:flex;gap:6px;justify-content:center}
.ps-lines{position:absolute;left:50%;top:50%;width:1200px;height:800px;transform:translate(-50%,-50%);overflow:visible}
.ps-lines path{fill:none;stroke:var(--c);stroke-opacity:.55;stroke-width:1.2;stroke-dasharray:3 4;animation:dash 1.2s linear infinite}.ps-lines circle{fill:var(--c)}
@keyframes dash{to{stroke-dashoffset:-14}}
.ps-glyph{position:absolute;left:50%;top:50%;transform:translate(-50%,calc(-100% - 26px));filter:drop-shadow(0 18px 30px rgba(0,0,0,.55)) drop-shadow(0 0 22px color-mix(in srgb,var(--c) 35%,transparent));animation:glyphIn .7s var(--ease) both,float 6s ease-in-out .7s infinite}
.ps-glyph svg{width:min(320px,42vw);height:auto}
@keyframes glyphIn{from{opacity:0;transform:translate(-50%,calc(-100% + 30px)) scale(.6)}to{opacity:1;transform:translate(-50%,calc(-100% - 26px)) scale(1)}}
@keyframes float{50%{transform:translate(-50%,calc(-100% - 34px))}}
.ps-beam{position:absolute;left:50%;top:calc(50% - 30px);width:2px;height:30px;margin-left:-1px;background:linear-gradient(180deg,transparent,var(--c))}
.ps-ground{position:absolute;left:50%;top:50%;width:0;height:0}
.ps-ground i{position:absolute;left:-60px;top:-18px;width:120px;height:36px;border-radius:50%;border:1.5px solid var(--c);opacity:.7;animation:groundPulse 2.6s ease-out infinite}
.ps-ground i+i{animation-delay:1.3s}
@keyframes groundPulse{from{transform:scale(.4);opacity:.9}to{transform:scale(1.6);opacity:0}}
.ps-card{position:absolute;top:50%;width:250px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 14px;border-radius:14px;text-align:left;color:var(--tx);
  border:1px solid var(--line-2);background:linear-gradient(180deg,rgba(13,22,44,.86),rgba(6,11,24,.82));backdrop-filter:blur(18px);box-shadow:var(--sh-2);animation:rise .55s var(--ease) both}
.ps-card:hover{border-color:var(--line-3);transform:translateY(-2px)}
.ps-card.l{right:calc(50% + 300px)}.ps-card.r{left:calc(50% + 300px)}
.ps-card.r0{margin-top:-210px}.ps-card.r1{margin-top:-60px}.ps-card.r2{margin-top:90px}
.ps-card.l.r0,.ps-card.r.r0{animation-delay:.12s}.ps-card.r1{animation-delay:.2s}.ps-card.r2{animation-delay:.28s}
.ps-card b{font-size:21px;font-weight:460;letter-spacing:-.025em;line-height:1.15}.ps-card small{color:var(--mut);font-size:11.5px;line-height:1.35}
.ps-card::before{content:"";position:absolute;top:14px;bottom:14px;width:2px;border-radius:2px;background:var(--c);opacity:.8}.ps-card.l::before{right:-1px}.ps-card.r::before{left:-1px}
.ps-card.t-ok::before{background:var(--ok)}.ps-card.t-warn::before{background:var(--warn)}.ps-card.t-bad::before{background:var(--bad)}.ps-card.t-demo::before{background:var(--warn)}
.ps-card.t-bad b{color:#ff9a9a}
.ps-bar{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:8px;align-items:center;padding:8px 10px;border-radius:16px;animation:rise .5s var(--ease) .2s both;max-width:calc(100% - 40px);flex-wrap:wrap;justify-content:center}
.ps-bar .seg{margin:0;width:200px}.ps-esc{margin-left:4px}
@media (max-width:1180px){.ps-card{width:210px}.ps-card.l{right:calc(50% + 230px)}.ps-card.r{left:calc(50% + 230px)}.ps-card b{font-size:18px}}
@media (max-width:980px){
  .ps-lines,.ps-head{display:none}.ps-glyph svg{width:min(220px,56vw)}
  .ps-card{position:static;width:auto;margin:0!important;animation:none}.pstage{display:flex;flex-direction:column;justify-content:flex-end}
  .pstage>.ps-card{display:none}
  .ps-bar{position:static;transform:none;margin:8px 12px 12px;max-width:none;gap:6px;padding:6px}.ps-bar .seg{width:auto;flex:1}.ps-bar .btn{display:none}.ps-bar .btn:nth-of-type(n+3){display:inline-flex}.ps-esc{display:none}
}
.ps-cards-m{display:none}
@media (max-width:980px){.ps-cards-m{display:flex;gap:8px;overflow-x:auto;padding:0 12px;scrollbar-width:none}.ps-cards-m .ps-card{display:flex;flex:none;width:210px}}
@media (min-width:981px){.ps-cards-m{display:none!important}}
@media (max-width:980px){.ps-cards-m .ps-card{position:relative}}
.tp-pop{position:fixed;top:auto;left:16px}.pf.drop .tp-pop{top:auto;bottom:auto;right:auto}
label.tp-s{flex-direction:row;gap:8px;color:var(--mut);font-size:13px}.tp-s input{height:36px}

.ps-card b.long{font-size:15px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.stage.dyn .glabel{display:none}
.ps-glyph svg{max-height:min(320px,34vh);width:auto;max-width:min(320px,42vw)}.ps-head{z-index:2}
.ps-cards-m .ps-card{position:static!important;inset:auto!important;left:auto!important;right:auto!important}

/* ===== v0.14: country picture, project selection, details form, dynamic country ===== */
.flag{display:inline-block;vertical-align:-2px;margin-right:10px;border-radius:3px;box-shadow:0 0 0 1px rgba(255,255,255,.18),0 2px 8px rgba(0,0,0,.4);object-fit:cover}
.chead{position:relative;align-items:stretch;min-height:118px}.chead-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;z-index:1;padding-right:150px}.chead-t .dyn-btn{align-self:flex-start;margin-top:4px}
.chead-shape{position:absolute;right:58px;top:8px;opacity:.95;pointer-events:none}.cshape{display:block;overflow:visible}
.chead .x{align-self:flex-start;z-index:1}
@media (max-width:640px){.chead-shape{right:52px;transform:scale(.75);transform-origin:top right}.chead-t{padding-right:100px}}
/* ask bar: what a click on a country meant */
.askbar{position:absolute;left:50%;top:16px;transform:translateX(-50%);z-index:9;display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;border-radius:14px;animation:rise .25s var(--ease) both;max-width:calc(100% - 40px);flex-wrap:wrap}
.askbar span{display:flex;flex-direction:column;line-height:1.2;margin-right:4px}.askbar b{font-weight:540}.askbar small{color:var(--mut);font-size:11.5px}.askbar .x{width:30px;height:30px}
@media (max-width:900px){.askbar{top:auto;bottom:70px}}
/* project details form */
.modal-back{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:rgba(2,6,13,.55);backdrop-filter:blur(4px);animation:fadeIn .2s ease both}
@keyframes fadeIn{from{opacity:0}}
.modal{width:min(640px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:20px 22px;border-radius:18px;animation:rise .3s var(--ease) both}
.modal-h{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.modal-h h2{margin:4px 0 0;font-size:22px;font-weight:380;letter-spacing:-.02em}
.pd-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pd-grid .full{grid-column:1/-1}.pd-grid small{color:var(--lbl);font-size:10.5px}
.fld{display:flex;flex-direction:column;gap:5px}.fl{color:var(--mut);font-size:12px}.fld .tp-btn{width:100%}
textarea{border:1px solid var(--line-2);background:var(--surf-in);border-radius:var(--r-sm);box-shadow:inset 0 1px 2px rgba(0,0,0,.3);color:var(--tx);font:inherit;padding:8px 10px;resize:vertical}
textarea:focus{outline:0;border-color:rgba(91,155,255,.6);box-shadow:var(--ring)}
.sel-flag{display:flex;align-items:center;gap:0;position:relative}.sel-flag .flag{position:absolute;left:10px;margin:0;pointer-events:none}.sel-flag select{width:100%;padding-left:36px}
.ferr{color:#ff9a9a;font-size:11.5px}
.modal-f{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
@media (max-width:560px){.pd-grid{grid-template-columns:1fr}}
/* project overview and header actions */
.pf-list{list-style:none;margin:4px 0 12px;padding:0;display:grid;gap:4px}
.pf-list button{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surf-1);color:var(--tx);text-align:left}
.pf-list button:hover{border-color:var(--line-3);background:var(--surf-2);transform:translateY(-1px)}.pf-g{display:grid;place-items:center;width:54px;height:44px;flex:none}.pf-g svg{max-width:100%;max-height:100%}
.pf-list b{display:block;font-weight:520}.pf-list small{display:block;color:var(--mut);font-size:11.5px}.pf-list .pf-c{color:var(--acc-2)}.pf-list em{margin-left:auto;font-style:normal;font-size:10.5px;color:var(--warn);border:1px solid rgba(245,184,90,.35);border-radius:999px;padding:1px 8px}
.pf-tips p{margin:4px 0}.pf-tips b{color:var(--tx);font-weight:540}
.ph-acts{display:flex;flex-direction:column;gap:6px;align-items:flex-end}.del-ask{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.del-ask .link{margin:0;font-size:12px}
.pdesc{margin:2px 0 8px;max-width:520px}
/* dynamic country: four cards a side */
.cstage .ps-card{width:240px}.cstage .ps-card.l{right:calc(50% + 320px)}.cstage .ps-card.r{left:calc(50% + 320px)}
.cstage .ps-card.c0{margin-top:-290px}.cstage .ps-card.c1{margin-top:-140px}.cstage .ps-card.c2{margin-top:10px}.cstage .ps-card.c3{margin-top:160px}
.cstage .ps-card b{font-size:20px}.cs-2{color:var(--tx)!important;opacity:.8}.cs-src{font-size:10.5px!important;color:var(--lbl)!important}
.cstage .ps-head h1{display:flex;align-items:center;justify-content:center}
@media (max-width:1180px){.cstage .ps-card{width:200px}.cstage .ps-card.l{right:calc(50% + 230px)}.cstage .ps-card.r{left:calc(50% + 230px)}}
@media (max-height:820px) and (min-width:981px){.cstage .ps-card{padding:9px 12px}.cstage .ps-card.c0{margin-top:-250px}.cstage .ps-card.c1{margin-top:-122px}.cstage .ps-card.c2{margin-top:6px}.cstage .ps-card.c3{margin-top:134px}.cstage .ps-card b{font-size:17px}}
.tp-pop{z-index:200}
/* country stage cards: fixed height, one line per detail, so four fit between the header and the controls */
.cstage .ps-card{height:124px;overflow:hidden;gap:2px;padding:10px 13px}
.cstage .ps-card small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;display:block}
.cstage .ps-card b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cstage .ps-card.c0{margin-top:-254px}.cstage .ps-card.c1{margin-top:-112px}.cstage .ps-card.c2{margin-top:30px}.cstage .ps-card.c3{margin-top:172px}
@media (max-height:820px) and (min-width:981px){.cstage .ps-card{height:108px}.cstage .ps-card.c0{margin-top:-228px}.cstage .ps-card.c1{margin-top:-106px}.cstage .ps-card.c2{margin-top:16px}.cstage .ps-card.c3{margin-top:138px}.cstage .cs-src{display:none!important}}
@media (max-width:980px){.cstage .ps-card{height:auto}}
.cstage .ps-head{top:14px}.cstage .ps-head h1{margin:4px 0 6px;font-size:30px}

/* ===== v0.15: light mode =====
   The dark night globe stays the default. Light is the same system in daylight: layered whites and cool greys, baby
   blue seas and tints, deep blue for action, ink text. Only colour changes; layout, type and the honest-state cues
   (dashed, hatched, amber, Held) keep their meaning. Tokens first, then the few rules that used fixed dark colours. */
:root{--ink:#f2f6fd;--grid:rgba(120,175,235,.12);--hatch:rgba(255,196,107,.35);--fan-a:#5aa7ff;--fan-b:#1e6bff;--fan-mid:#bfe0ff;--knob:#fff;
  --ring-empty:rgba(20,40,70,.35);--ring-on:#d9ecff;--ring-top:rgba(255,214,140,.8);--ring-tx:#b9d3ee;--ring-top-tx:#ffe2a8;
  --cs-t0:#8cc2ff;--cs-t1:#2a4f9e;--cs-base:#0a1834;--cs-side:#14295a;--cs-edge:rgba(255,255,255,.55)}
.brand .wm{color:var(--ink)}
.theme-tog{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:50%;border:1px solid var(--line-2);background:rgba(255,255,255,.025);color:var(--mut)}
.theme-tog:hover{color:var(--tx);border-color:var(--line-3);background:var(--surf-2)}
.theme-seg{margin:4px 0 0;max-width:340px}

:root[data-theme=light]{
  --bg:#f3f6fa;--panel:rgba(255,255,255,.88);--bd:rgba(30,60,110,.14);--bd2:rgba(30,60,110,.16);
  --tx:#0f1b2d;--mut:#4d6180;--lbl:#5a7393;--mute:#7a8ba2;--ink:#0f1b2d;
  --acc:#2f6cf0;--acc2:#2563eb;--acc-2:#2563eb;--acc-fill:linear-gradient(180deg,#3d7cf5,#2a62e6);--acc-soft:rgba(47,108,240,.1);--sel:#2f6cf0;
  --ok:#11996a;--warn:#b0731a;--bad:#d14343;
  --line:rgba(30,60,110,.085);--line-2:rgba(30,60,110,.14);--line-3:rgba(30,60,110,.24);
  --surf-1:rgba(255,255,255,.66);--surf-2:rgba(255,255,255,.9);--surf-3:#ffffff;--surf-in:#ffffff;
  --sh-1:0 1px 0 rgba(255,255,255,.9) inset,0 1px 2px rgba(20,45,90,.06);
  --sh-2:0 1px 0 rgba(255,255,255,.95) inset,0 12px 30px -14px rgba(30,60,120,.25);
  --sh-3:0 1px 0 rgba(255,255,255,.95) inset,0 30px 70px -26px rgba(30,60,120,.3),0 0 0 1px rgba(30,60,110,.05);
  --ring:0 0 0 3px rgba(47,108,240,.2);
  --grid:rgba(30,60,110,.09);--hatch:rgba(176,115,26,.38);--fan-a:#7fb2ff;--fan-b:#2f6cf0;--fan-mid:#1f4fc4;--knob:#fff;
  --ring-empty:rgba(30,60,110,.05);--ring-on:#1e4fd0;--ring-top:rgba(196,132,30,.85);--ring-tx:#3e5677;--ring-top-tx:#8a5a10;
  --cs-t0:#ffffff;--cs-t1:#7ea6e4;--cs-base:#9fb6d6;--cs-side:#c3d3e9;--cs-edge:rgba(255,255,255,.95)
}
[data-theme=light] ::selection{background:rgba(47,108,240,.2);color:var(--tx)}
[data-theme=light] *{scrollbar-color:rgba(30,60,110,.2) transparent}
[data-theme=light] ::-webkit-scrollbar-thumb{background:rgba(30,60,110,.18);background-clip:padding-box}
/* page and chrome */
[data-theme=light] .app{background:radial-gradient(1100px 640px at 62% -12%,#d6e8fb 0%,rgba(222,236,251,.6) 42%,transparent 72%),radial-gradient(820px 560px at -5% 105%,#e1edf9 0%,transparent 60%),linear-gradient(180deg,#f5f8fc,#eaf0f7)}
[data-theme=light] .hd{background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(250,252,255,.78));border-bottom-color:var(--line-2)}
[data-theme=light] .env{color:var(--lbl)}
[data-theme=light] .tb{background:rgba(30,60,110,.035);border-color:var(--line)}
[data-theme=light] .tb button{color:#53667f}
[data-theme=light] .tb button:hover{color:var(--tx);background:rgba(255,255,255,.7)}
[data-theme=light] .tb .on,[data-theme=light] .tb .on:hover{color:var(--tx);background:#fff;box-shadow:0 1px 2px rgba(20,45,90,.1),0 0 0 1px var(--line-2)}
[data-theme=light] .sr{background:#fff;box-shadow:inset 0 1px 2px rgba(20,45,90,.05)}
[data-theme=light] .sr-list{background:rgba(255,255,255,.98)}
[data-theme=light] .demo-tog{background:#fff}
[data-theme=light] .demo-tog.on{background:rgba(176,115,26,.07);border-color:rgba(176,115,26,.35)}
[data-theme=light] .theme-tog{background:#fff;color:#53667f}
[data-theme=light] .avatar{background:linear-gradient(140deg,#e7f0fc,#cfe0f6);color:#29466e}
[data-theme=light] .rail{background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(248,251,255,.6))}
[data-theme=light] .rail button{color:#5f7290}
[data-theme=light] .rail button:hover,[data-theme=light] .rail button.on{color:var(--tx);background:#fff}
[data-theme=light] .rail button.on{box-shadow:0 1px 2px rgba(20,45,90,.08),inset 0 0 0 1px var(--line-2)}
[data-theme=light] .rail button.on::before{box-shadow:0 0 8px rgba(47,108,240,.45)}
[data-theme=light] .rail button.on svg{filter:none}
[data-theme=light] .ft{background:rgba(255,255,255,.82)}
[data-theme=light] .ft .chip.amb,[data-theme=light] .chip.amb{color:#8a5a10;background:rgba(176,115,26,.07);border-color:rgba(176,115,26,.3)}
[data-theme=light] .brand-div{background:linear-gradient(180deg,transparent,rgba(30,60,110,.3),transparent)}
[data-theme=light] .tagline{color:#2a62e6}
[data-theme=light] .lockup-txt{border-left-color:rgba(30,60,110,.2)}
/* surfaces */
[data-theme=light] .glass{background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(246,250,255,.82));border-color:rgba(255,255,255,.9);box-shadow:var(--sh-3),inset 0 0 0 1px rgba(30,60,110,.06)}
[data-theme=light] .sheet{background:linear-gradient(180deg,rgba(252,253,255,.95),rgba(243,247,252,.93))}
[data-theme=light] .bcard,[data-theme=light] .tile,[data-theme=light] .kpis>div,[data-theme=light] .lrow,[data-theme=light] .reg-row,[data-theme=light] .ecard,[data-theme=light] .links .lk,[data-theme=light] .ptrack,
[data-theme=light] .llist button,[data-theme=light] .llist a,[data-theme=light] .how,[data-theme=light] .reasoning li button,[data-theme=light] .card,[data-theme=light] .srow:not(.h),[data-theme=light] .hcard,
[data-theme=light] .gloss>div,[data-theme=light] .faq-i,[data-theme=light] .feed-l li,[data-theme=light] .pf-list button,[data-theme=light] .weights,[data-theme=light] .tp-card{background:linear-gradient(180deg,#fff,#f8fbfe);border-color:var(--line-2)}
[data-theme=light] .tile:hover,[data-theme=light] .lrow:hover,[data-theme=light] .ptrack:hover,[data-theme=light] .llist button:hover,[data-theme=light] .llist a:hover,[data-theme=light] .reg-row:hover,
[data-theme=light] .reasoning li button:hover,[data-theme=light] .pf-list button:hover,[data-theme=light] .tp-card:hover{background:#fff;border-color:rgba(47,108,240,.3);box-shadow:0 6px 18px -10px rgba(30,60,120,.3)}
[data-theme=light] .bcard{background:linear-gradient(180deg,#fff,#f9fbfe)}
[data-theme=light] .tile.empty{border-color:rgba(176,115,26,.32);background:repeating-linear-gradient(135deg,rgba(176,115,26,.06) 0 6px,transparent 6px 12px),#fbfcfe}
[data-theme=light] .tile.empty .big,[data-theme=light] .lens-list .lock,[data-theme=light] .side em,[data-theme=light] .hatchcell{color:#8a5a10}
[data-theme=light] .bcard.demo,[data-theme=light] .e-demo,[data-theme=light] .demo .kpis>div,[data-theme=light] .srow.held,[data-theme=light] .lk.s-no-data,[data-theme=light] .lk.s-not-onboarded{border-color:rgba(176,115,26,.3)}
[data-theme=light] .blocked{background:linear-gradient(180deg,rgba(176,115,26,.07),rgba(176,115,26,.03));border-color:rgba(176,115,26,.3)}
[data-theme=light] .draft,[data-theme=light] .filemsg.warn{color:#7a5010;background:rgba(176,115,26,.07);border-color:rgba(176,115,26,.32)}
[data-theme=light] .danger{background:rgba(209,67,67,.05);border-color:rgba(209,67,67,.28)}
[data-theme=light] .x{background:#fff}
[data-theme=light] .x:hover,[data-theme=light] .link:hover,[data-theme=light] .pchip.ghost:hover,[data-theme=light] .flink:hover{color:var(--tx)}
[data-theme=light] .link{text-decoration-color:rgba(77,97,128,.35)}
/* controls */
[data-theme=light] .seg{background:rgba(30,60,110,.035)}
[data-theme=light] .seg button{color:#53667f}
[data-theme=light] .seg button:hover{color:var(--tx);background:rgba(255,255,255,.75)}
[data-theme=light] .seg .on,[data-theme=light] .seg .on:hover{color:#1846b8;background:#fff;box-shadow:0 1px 3px rgba(20,45,90,.12),inset 0 0 0 1px rgba(47,108,240,.3)}
[data-theme=light] .btn{border-color:rgba(30,80,200,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 6px 16px -8px rgba(47,108,240,.6)}
[data-theme=light] .btn:disabled,[data-theme=light] .btn.danger-btn:disabled{background:#eef2f7;border-color:var(--line-2);color:#8b9bb1;box-shadow:none}
[data-theme=light] .btn.ghost,[data-theme=light] .btn.sec{background:#fff;color:var(--tx);border-color:var(--line-3)}
[data-theme=light] .btn.ghost:hover:not(:disabled){background:#f4f8fe;border-color:rgba(47,108,240,.35)}
[data-theme=light] .dyn-btn{background:linear-gradient(180deg,#eaf2ff,#dbe8ff)!important;border-color:rgba(47,108,240,.4)!important;color:#1846b8!important}
[data-theme=light] .chip{background:#fff;color:#33496a}
[data-theme=light] .tg{background:#fff}[data-theme=light] .tg.on{color:#1846b8;border-color:rgba(47,108,240,.4)}
[data-theme=light] input,[data-theme=light] select,[data-theme=light] .cell,[data-theme=light] textarea{background-color:#fff;box-shadow:inset 0 1px 2px rgba(20,45,90,.05)}
[data-theme=light] .pill select{background-color:transparent;box-shadow:none}
[data-theme=light] select option{background:#fff;color:var(--tx)}
[data-theme=light] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%235a7393' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important}
[data-theme=light] input[type=range]::-webkit-slider-thumb{box-shadow:0 0 0 4px rgba(47,108,240,.25),0 2px 6px rgba(20,45,90,.3)}
[data-theme=light] input[type=range]::-moz-range-thumb{box-shadow:0 0 0 4px rgba(47,108,240,.25),0 2px 6px rgba(20,45,90,.3)}
[data-theme=light] .stepper button,[data-theme=light] .swap{background:#fff}
[data-theme=light] .pchip{background:rgba(255,255,255,.82);color:#2b4163}
[data-theme=light] .pchip:hover{background:#fff}
[data-theme=light] .pchip.on{color:#1846b8;background:#fff;border-color:rgba(47,108,240,.45)}
[data-theme=light] .pchip.ghost{background:rgba(255,255,255,.6)}
[data-theme=light] .lens-btn{background:#fff}
[data-theme=light] .tp-fam button.on,[data-theme=light] .tp-types button.on{color:var(--tx);background:#eaf2ff}
[data-theme=light] .tp-fam button:hover,[data-theme=light] .tp-types button:hover{background:#f2f6fc}
[data-theme=light] .tp-card.on,[data-theme=light] .sw-list button.on,[data-theme=light] .lens-list button.on{background:#eaf2ff;border-color:rgba(47,108,240,.35)}
[data-theme=light] .acct-m button:hover,[data-theme=light] .acct-m button.on,[data-theme=light] .sr-list li.on{background:#eef4fd}
/* text that was tuned for a dark ground */
[data-theme=light] .crumbs,[data-theme=light] .feeds,[data-theme=light] .attr,[data-theme=light] .srow small,[data-theme=light] .srow.h{color:var(--lbl)}
[data-theme=light] .attr a{color:var(--acc-2)}
[data-theme=light] .hint-h span{color:#3d5a85}
[data-theme=light] .attr-q,[data-theme=light] .attr.note{color:#2b4163}
[data-theme=light] pre.cmd,[data-theme=light] code{color:#1f3a63}
[data-theme=light] .formula{color:var(--tx)}
[data-theme=light] .ferr,[data-theme=light] .ps-card.t-bad b{color:var(--bad)}
[data-theme=light] tbody tr:hover{background:rgba(47,108,240,.035)}
[data-theme=light] .otable tr.top td{background:rgba(47,108,240,.06)}
/* meters, rings, ladders */
[data-theme=light] .meter,[data-theme=light] .bar0,[data-theme=light] .gauge,[data-theme=light] .voi-bar{background:rgba(30,60,110,.08)}
[data-theme=light] .fan{background:linear-gradient(180deg,#fff,#f6f9fd);border-color:var(--line-2)}
[data-theme=light] .ramp{background:linear-gradient(90deg,rgb(198,222,247),rgb(37,99,235))}
[data-theme=light] .cg.none{background:rgba(30,60,110,.07)}
[data-theme=light] .seg13 path{fill:rgba(47,108,240,.1);stroke:#fff}
[data-theme=light] .seg13.part path{fill:rgba(47,108,240,.32)}[data-theme=light] .seg13.full path{fill:rgba(17,153,106,.32)}[data-theme=light] .seg13.none path{fill:rgba(176,115,26,.1)}
[data-theme=light] .seg13:hover path,[data-theme=light] .seg13:focus path{fill:rgba(47,108,240,.5)}
[data-theme=light] .seg13.on path{fill:#2f6cf0;filter:drop-shadow(0 4px 10px rgba(47,108,240,.4))}
[data-theme=light] .ladder li i,[data-theme=light] .stp i{background:#fff;border-color:rgba(47,108,240,.4)}
[data-theme=light] .ladder li:not(:last-child)::before,[data-theme=light] .stp:not(:last-child)::before{background:rgba(30,60,110,.14)}
[data-theme=light] .ladder li.live i,[data-theme=light] .stp.done i{background:var(--acc)}
[data-theme=light] .gauge .mk{background:var(--tx)}
/* globe overlays: ink labels on a white halo */
[data-theme=light] .globe-tip{background:rgba(255,255,255,.96);color:var(--tx)}
[data-theme=light] .gp-l,[data-theme=light] .glabel span{color:#13233b;text-shadow:0 0 3px #fff,0 0 8px #fff,0 0 2px #fff}
[data-theme=light] .gpin span{color:#7a5410;text-shadow:0 0 3px #fff,0 0 8px #fff}
[data-theme=light] .gp-dot{box-shadow:0 0 0 3px rgba(255,255,255,.95),0 0 0 4px color-mix(in srgb,var(--c) 45%,transparent),0 6px 14px -4px color-mix(in srgb,var(--c) 70%,transparent)}
[data-theme=light] .gpin.demo .gp-dot{box-shadow:0 0 0 3px rgba(255,255,255,.95),0 0 0 4px rgba(176,115,26,.6),0 6px 14px -4px var(--c)}
[data-theme=light] .glabel i{background:#2f6cf0;box-shadow:0 0 0 4px rgba(47,108,240,.2),0 0 14px 3px rgba(47,108,240,.35)}
[data-theme=light] .glabel.cmp i{background:#11a08a;box-shadow:0 0 0 4px rgba(17,160,138,.2),0 0 14px 3px rgba(17,160,138,.35)}
/* dynamic stages */
[data-theme=light] .ps-head h1{text-shadow:0 0 18px rgba(255,255,255,.95),0 0 4px #fff}
[data-theme=light] .ps-card{background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(246,250,255,.88));border-color:rgba(255,255,255,.9);box-shadow:var(--sh-2),inset 0 0 0 1px rgba(30,60,110,.07)}
[data-theme=light] .ps-glyph{filter:drop-shadow(0 18px 24px rgba(30,60,120,.28)) drop-shadow(0 0 18px color-mix(in srgb,var(--c) 25%,transparent))}
[data-theme=light] .modal-back{background:rgba(214,226,242,.55)}
[data-theme=light] .flag{box-shadow:0 0 0 1px rgba(30,60,110,.14),0 2px 6px rgba(30,60,110,.18)}
[data-theme=light] .sw-g.empty{color:var(--mut)}
[data-theme=light] .w5{background:#8494aa}
.cg-reg{padding:10px 0 3px;font-size:10px}

/* ===== v0.17: phone and tablet =====
   Below 900px the panel is a bottom sheet: the whole panel scrolls as one (header included), so the content is never
   squeezed into a strip, and a grab handle switches it between half height, full height and a collapsed strip. */
.sheet-grip{display:none}
.ft-links .flink+.flink::before,.ft-links .ft-meta::before{content:"·";display:inline-block;margin:0 6px;color:var(--mute)}
@media (max-width:900px){
  .stage .dock,.stage .dock.wide,.stage .dock.xwide{height:58%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-top:16px;transition:height .28s var(--ease)}
  .stage .dock>*{flex:none}
  .stage .dock .scroll{overflow:visible;flex:none;min-height:0}
  .stage.sheet-full .dock{height:calc(100% - 20px)}
  .stage.sheet-min .dock{height:150px}
  .stage:has(.dock) .sheet-grip{display:grid;place-items:center;position:absolute;left:50%;transform:translateX(-50%);z-index:8;width:96px;height:28px;padding:0;border:0;background:none;cursor:grab;touch-action:none;
    bottom:calc(10px + 58% - 26px);transition:bottom .28s var(--ease)}
  .stage.sheet-full:has(.dock) .sheet-grip{bottom:calc(100% - 36px)}
  .stage.sheet-min:has(.dock) .sheet-grip{bottom:134px}
  .sheet-grip i{display:block;width:42px;height:5px;border-radius:3px;background:rgba(170,200,255,.45)}
  .sheet-grip:focus-visible i{outline:2px solid var(--acc);outline-offset:3px}
  .stage.dyn .sheet-grip{display:none!important}
  .stage.sheet-full:has(.dock) .lens,.stage.sheet-full:has(.dock) .chips-top{display:none}
  /* project panel: actions wrap as whole buttons, tabs keep one line each */
  .boards{flex-wrap:wrap}.boards .btn{flex:none;white-space:nowrap}
  .dock .seg{overflow-x:auto;scrollbar-width:none}.dock .seg::-webkit-scrollbar{display:none}
  .dock .seg button{flex:1 0 auto;white-space:nowrap;padding:7px 10px;font-size:12.5px}
}
@media (max-width:640px){
  .dt-l{display:none}
  .hd .brand{margin-right:auto}
  .demo-tog{height:32px;padding:0 10px}
  .chead-t .lbl{max-width:calc(100% - 118px)}
}
[data-theme=light] .sheet-grip i{background:rgba(30,60,110,.28)}
/* dynamic country view on narrow screens: keep the country's name, compact, at the top (the project view has its switcher) */
@media (max-width:980px){
  .cstage .ps-head{display:block;top:10px;left:12px;right:12px;transform:none;max-width:none;text-align:left}
  .cstage .ps-head h1{font-size:22px;margin:2px 0 0;justify-content:flex-start}
  .cstage .ps-head .ps-chips{display:none}
}
/* tablet landscape and small laptops (901 to 1280px): the header must fit the viewport, so the search box shrinks
   first and the demo label shortens; nothing pushes the page wider than the screen */
@media (min-width:901px) and (max-width:1280px){
  .hd{gap:10px;padding:0 12px}
  .sr{width:auto;flex:1 1 140px;min-width:120px}
  .tb button{padding:7px 10px}
  .hd .dt-l{display:none}
  .brand-div{display:none}.brand{gap:10px}
}
.app,.body{max-width:100vw}

/* v0.18: workflow layer (Path, Go or no-go). Brass marks assumed, Demo and locked, as on the canvas tokens board. */
:root{--brass:#d2b274;--brass-soft:rgba(210,178,116,.08);--brass-line:rgba(210,178,116,.35)}
.d.brass{background:var(--brass)}.d.acc{background:var(--acc)}
.wf{display:grid;gap:14px}.wf .bcard{margin-bottom:0}
.wf-bar{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center}
.wf-lens,.wf-view{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.wf-lens .lbl,.wf-view .lbl{margin-right:4px}
.wf-intro .bh{margin:0 0 4px}
.wf-track{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.wf-track button{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surf-1);text-align:left;min-height:44px}
.wf-track li.on button{border-color:rgba(120,170,255,.5);background:var(--acc-soft,rgba(30,107,255,.18))}
.wf-ring{display:inline-flex;align-items:baseline;justify-content:center;min-width:46px;height:46px;padding:0 6px;border-radius:23px;border:1px solid var(--line-3);font-size:19px;font-weight:450;align-items:center}
.wf-ring small{font-size:11px;color:var(--mut)}
.wf-track li.st-passed .wf-ring{border-color:var(--ok)}.wf-track li.st-held .wf-ring,.wf-track li.st-stopped .wf-ring{border-color:var(--brass)}
.wf-sn{font-size:12.5px;line-height:1.3}.wf-ss{font-size:11px;color:var(--mut);min-height:14px}
.wf-counts{display:flex;flex-wrap:wrap;gap:6px 16px;margin:8px 0 4px;font-size:12px;color:var(--mut)}.wf-counts b{color:var(--tx);font-weight:560}
.wf-qs-l{list-style:none;margin:8px 0;padding:0}
.wf-q{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:start;padding:10px 0;border-top:1px solid var(--line)}
.wf-q>.d{margin-top:6px}.wf-qt{font-size:13.5px}.wf-qt em{font-style:normal;color:var(--mut);font-size:11.5px}
.wf-qs{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.wf-tag{font-size:11.5px;white-space:nowrap}.wf-tag.t-sourced{color:var(--ok)}.wf-tag.t-given{color:var(--acc2,#7cc8ff)}.wf-tag.t-assumed{color:var(--brass)}.wf-tag.t-unknown,.wf-tag.t-na{color:var(--mut)}
.wf-q.s-unknown .grow>.mut{background:repeating-linear-gradient(135deg,var(--brass-soft) 0 5px,transparent 5px 10px);border-radius:4px;padding:1px 4px;margin-left:-4px}
.wf-steps{flex-wrap:wrap}
.wf-advice{margin:0;font-size:12px;color:var(--mut)}
.wf-big{list-style:none;margin:6px 0 0;padding:0}.wf-big li{display:flex;align-items:baseline;gap:12px;padding:8px 0;border-top:1px solid var(--line)}
.wf-big b{font-size:28px;font-weight:300;min-width:58px}.wf-big small{font-size:14px;color:var(--mut)}
.wf-demo{color:var(--brass)}
.wf-against{margin-top:12px;padding:12px 14px;border:1px solid var(--brass-line);border-radius:12px;background:var(--brass-soft)}.wf-against .lbl{color:var(--brass)}.wf-against p{margin:6px 0 0}
.wf-verdicts{display:grid;gap:4px;margin:8px 0}
.wf-opt{display:flex;gap:12px;align-items:flex-start;text-align:left;padding:10px 12px;border:1px solid transparent;border-radius:12px;background:none;min-height:44px}
.wf-opt.on{border-color:var(--line-3);background:var(--surf-2)}.wf-opt:disabled{opacity:.55;cursor:not-allowed}
.wf-opt .rad{flex:none;width:16px;height:16px;margin-top:2px;border-radius:50%;border:1px solid var(--mut)}.wf-opt.on .rad{border-color:var(--acc);background:var(--acc)}
.wf-opt b{display:block;font-weight:520}.wf-opt b em{font-style:normal;color:var(--acc);font-weight:400;font-size:12px}.wf-opt small{display:block;font-size:11.5px}
.wf-conds{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:8px 0;display:grid;gap:6px}
.chk{display:flex;gap:8px;align-items:center;font-size:12.5px}
.wf-who{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.wf-who label{display:grid;gap:4px;font-size:12px;color:var(--mut)}.wf-who .full{grid-column:1/-1}
.wf-note{margin:10px 0;padding:12px 14px;border:1px solid var(--line-2);border-radius:12px;background:var(--surf-1)}.wf-note p{margin:6px 0 0;line-height:1.55}
.wf-hist{list-style:none;margin:8px 0 0;padding:0}.wf-hist li{padding:10px 0;border-top:1px solid var(--line)}
.ok{color:var(--ok)}.bad{color:var(--bad)}
@media (max-width:900px){.wf-track{grid-template-columns:repeat(5,minmax(120px,1fr));overflow-x:auto;padding-bottom:4px}.wf-who{grid-template-columns:1fr}}
[data-theme="light"]{--brass:#8a6a1f;--brass-soft:rgba(138,106,31,.07);--brass-line:rgba(138,106,31,.35)}
.sheet-h .seg button{white-space:nowrap}
.wf-steps{margin:0;width:fit-content;max-width:100%;flex-wrap:wrap;border-radius:18px}.wf-steps button{white-space:nowrap}
.sheet-h .sm-seg:has(> :nth-child(4)){width:auto}
label.chk{display:flex;flex-direction:row;align-items:center;gap:9px;color:var(--tx);font-size:12.5px;cursor:pointer;min-height:32px}
label.chk input{height:16px;width:16px;padding:0;margin:0;flex:none;box-shadow:none;accent-color:var(--acc)}
.wf-gate{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}.wf-col{display:grid;gap:14px;align-content:start}
@media (max-width:1100px){.wf-gate{grid-template-columns:1fr}}
.wf-steps button{flex:none}
/* v0.19: best next steps, conditions and hand-off packs */
.wf-fix{display:inline-block;margin-top:4px}
.st-list{list-style:none;margin:8px 0 0;padding:0}
.st-list li{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:start;padding:11px 0;border-top:1px solid var(--line)}
.st-list li>.d{margin-top:6px}.st-t{font-size:13.5px}.st-list li.st-done .st-t{color:var(--mut);text-decoration:line-through;text-decoration-color:var(--line-3)}
.st-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.chip.k-unblocks{color:var(--tx);border-color:var(--line-3)}.chip.k-narrows{color:var(--acc2,#7cc8ff)}.chip.k-housekeeping{color:var(--mut)}
.st-meta{display:grid;grid-template-columns:1fr 150px;gap:8px;margin-top:8px}.st-meta label{display:grid;gap:4px;font-size:11.5px;color:var(--mut)}
.st-ready{display:flex;align-items:baseline;gap:12px;padding:8px 0;border-top:1px solid var(--line)}.st-ready b{font-size:28px;font-weight:300;min-width:58px}.st-ready small{font-size:14px;color:var(--mut)}
.st-conds,.st-packs{list-style:none;margin:6px 0 0;padding:0}.st-conds li,.st-packs li{padding:10px 0;border-top:1px solid var(--line)}
.st-packs li{display:flex;gap:12px;align-items:center}.st-packs b{font-weight:520;font-size:13px}
button.st{border:0;cursor:pointer}
@media (max-width:640px){.st-meta{grid-template-columns:1fr}}
.hint-cta{pointer-events:auto;margin-top:12px}
/* v0.20: portfolio health v0 */
.pf-filters{margin:4px 0 10px}
.pf-list small.pf-step{display:block;color:var(--tx);opacity:.85}.pf-list small.pf-need{display:block;color:var(--brass)}
.pf-vitals{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:5px}
.vt{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--mut)}.vt i{width:7px;height:7px;border-radius:50%;background:var(--mute)}
.vt.v-strong i{background:var(--ok)}.vt.v-watch i{background:var(--brass)}.vt.v-weak i{background:var(--bad)}.vt.v-unknown i{background:transparent;border:1px solid var(--mute)}

/* ===== v0.21: the globe as the console ===== */
/* Project boards dock on the right beside a live globe held on the project; inner grids follow the board's own width. */
@media (min-width:901px){
  .stage.r-case .sheet,.stage.r-path .sheet,.stage.r-gate .sheet,.stage.r-action .sheet,.stage.r-decision .sheet{left:auto;width:min(980px,58%);container-type:inline-size}
}
@container (max-width:900px){
  .bgrid.three,.bgrid.action,.wf-gate{grid-template-columns:1fr}.bgrid.three>:last-child{grid-column:auto}
  .wf-track{grid-template-columns:repeat(5,minmax(104px,1fr));overflow-x:auto;padding-bottom:4px}
}
/* Workflow state on the pins: the step number, and a brass ring when the project needs you */
.gp-step{position:absolute;left:7px;top:-19px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:#0b1630;border:1px solid rgba(170,200,255,.5);color:#eaf3ff;font:600 9.5px/13px var(--sans);text-align:center;pointer-events:none}
.gpin.st-need .gp-step{background:var(--brass);border-color:var(--brass);color:#1b1405}
.gpin.st-need .gp-dot{box-shadow:0 0 0 3px rgba(4,10,24,.7),0 0 0 4.5px var(--brass),0 0 16px rgba(210,178,116,.7)}
.gpin.st-held .gp-dot,.gpin.st-stopped .gp-dot{filter:saturate(.35) brightness(.85)}
.gp-l small{display:block;font-weight:400;font-size:11px;color:#cfdcef;opacity:.9}
.gpin.st-need .gp-l small{color:var(--brass)}
/* The console bar over the globe */
.wf-hud{position:absolute;left:20px;bottom:16px;z-index:4;display:grid;grid-template-columns:auto 1fr;gap:6px 18px;align-items:center;padding:12px 16px;border-radius:18px;max-width:calc(42% - 40px);min-width:360px}
.hud-p b{display:block;font-weight:520;font-size:14px}.hud-p b em{font-style:normal;color:var(--brass);font-size:11px;font-weight:500}.hud-p small{color:var(--mut);font-size:11.5px}
.hud-steps{list-style:none;margin:0;padding:0;display:flex;gap:4px;justify-self:end}
.hs{display:flex;align-items:center;gap:6px;border:0;background:none;padding:4px 6px;border-radius:999px;color:var(--mut);font-size:11.5px;min-height:32px}
.hs i{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--line-3);font-style:normal;font-size:11px;color:var(--tx)}
.hs span{display:none}.hs.cur span{display:inline;color:var(--tx)}.hs.cur{background:var(--surf-2)}
.hs.cur i{border-color:var(--acc);background:var(--acc-soft,rgba(30,107,255,.25))}
.hs.st-passed i{border-color:var(--ok);color:var(--ok)}.hs.st-held i,.hs.st-reopened i{border-color:var(--brass);color:var(--brass)}.hs.st-stopped i{border-color:var(--bad);color:var(--bad)}
.hud-need{grid-column:1/-1;font-size:12.5px;color:var(--brass)}
.hud-vitals{display:flex;gap:6px;align-items:center}
.hud-tabs{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px;border-top:1px solid var(--line);padding-top:8px}
.hud-tabs button{border:0;background:none;color:var(--mut);font-size:12px;padding:6px 10px;border-radius:999px;min-height:32px}
.hud-tabs button.on{background:var(--surf-3);color:var(--tx)}.hud-tabs .lock{margin-left:auto;color:var(--acc)}
@media (max-width:900px){.wf-hud{display:none}}
/* Country panel: your projects here */
.here{margin:10px 0 4px;padding:12px 14px;border:1px solid var(--line-2);border-radius:14px;background:var(--surf-1)}
.here li{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.here li:first-child{border-top:0}
.here ul{list-style:none;margin:6px 0 0;padding:0}.here .grow small{display:block;color:var(--mut);font-size:11.5px}.here .need{color:var(--brass)}
.gpin.on .gp-l{top:14px}

/* ===== v0.22: re-check, trust ===== */
.recheck{margin:12px 0 4px;padding:10px 12px;border:1px solid var(--line-2);border-left:3px solid var(--line-3);border-radius:10px;background:var(--surf-1)}
.recheck p{margin:4px 0}.recheck.matches{border-left-color:var(--ok)}.recheck.differs{border-left-color:var(--warn)}.recheck.cannot{border-left-color:var(--bad)}
.vdrop{display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between;padding:22px 18px;border:1.5px dashed var(--line-3);border-radius:14px;background:var(--surf-1);margin:4px 0 8px}
.vdrop.over{border-color:var(--acc);background:var(--surf-2)}.vdrop p{margin:0}.vproof{margin:0 0 14px}
.vlist{margin:8px 0 0;padding-left:20px}.vlist li{margin:6px 0;line-height:1.5}.vlist li.bad{color:var(--bad)}.vlist .chip{margin-left:4px}
/* After the decision */
.outc .ph3{margin:4px 0}.outl{list-style:none;margin:6px 0 12px;padding:0}.outl li{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}
.outf{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 14px;margin:10px 0}.outf label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--mut)}
.outf label.chk{flex-direction:row;align-items:center;gap:8px}.outf .full{grid-column:1/-1}.outf p{margin:0}
/* Exit criteria */
.wf-exit{margin:14px 0 4px;padding-top:12px;border-top:1px solid var(--line)}.wf-exit ul{list-style:none;margin:6px 0 0;padding:0}
.wf-exit li{display:grid;grid-template-columns:96px 1fr;gap:10px;padding:7px 0;font-size:13px}.wf-exit li small{display:block;margin-top:2px;font-size:11.5px}
@container (max-width:520px){.wf-exit li{grid-template-columns:1fr;gap:2px}}

/* ===== v0.26: business case ===== */
.case{container-type:inline-size}.case-head .rowg{margin-top:8px}.case-tabs{display:none;margin:10px 0}
.case-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:12px;align-items:start}
.case-in,.case-out,.case-mid{display:flex;flex-direction:column;gap:10px;min-width:0}
.case-g{display:flex;flex-direction:column;gap:8px}.case-item{display:flex;flex-direction:column;gap:6px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.case-f{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border:1px solid var(--line-2);border-radius:10px;background:var(--surf-1)}
.case-f input,.case-na input,.case-g select{min-width:0;width:100%}
.case-fh{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px}.case-name{flex:1;background:none;border:0;border-bottom:1px dashed var(--line-3);color:var(--tx);font:inherit;padding:2px 0}
.case-tri{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.case-src{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:6px}
.unk{background-image:repeating-linear-gradient(135deg,rgba(210,178,116,.10) 0 2px,transparent 2px 7px);border-color:var(--brass-line)}
.case-na{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border:1px dashed var(--line-3);border-radius:10px}
.case-o.locked{border-style:dashed}.case-nk{display:block;font-size:18px;font-weight:400;color:var(--brass);margin:4px 0}
.case-chart svg{width:100%;height:auto;display:block;margin:6px 0}.case-chart .band{fill:rgba(90,167,255,.18)}.case-chart .mid{fill:none;stroke:var(--acc);stroke-width:2;vector-effect:non-scaling-stroke}
.case-chart .zero{stroke:var(--line-3);stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.case-chart .bar{fill:var(--brass)}
.case-chart.locked .ghost-fan{height:150px;border-radius:10px;background:repeating-linear-gradient(135deg,var(--surf-2) 0 6px,transparent 6px 14px);margin:8px 0}
.sens{list-style:none;margin:6px 0 0;padding:0}.sens li{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:8px;align-items:center;font-size:12.5px;padding:4px 0}
.sens li i{display:block;height:8px;border-radius:4px;background:var(--acc)}.sens li b{font-weight:500;font-variant-numeric:tabular-nums}
@container (max-width:900px){.case-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.case-mid{grid-column:1/-1;order:-1}}
@container (max-width:640px){
  .case-tabs{display:flex}.case-grid{grid-template-columns:minmax(0,1fr)}
  .case[data-tab="inputs"] .case-out,.case[data-tab="inputs"] .case-mid{display:none}
  .case[data-tab="results"] .case-in,.case[data-tab="results"] .case-sens{display:none}
  .case[data-tab="sens"] .case-in,.case[data-tab="sens"] .case-mid,.case[data-tab="sens"] .case-o,.case[data-tab="sens"] [data-probneg]{display:none}
  .case-src{grid-template-columns:minmax(0,1fr)}
}

/* ===== v0.27: public beta ===== */
.ctx-tile{margin:12px 0;padding:12px 14px;border:1px solid var(--line-2);border-radius:14px;background:var(--surf-1)}
.ctx-l{list-style:none;margin:8px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px 12px}
.ctx-l li{display:flex;flex-direction:column;font-size:12px}.ctx-l b{font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}
.store-warn{position:fixed;top:72px;left:50%;transform:translateX(-50%);z-index:60;max-width:min(720px,calc(100% - 32px));margin:0;padding:10px 14px;border-radius:12px;border:1px solid var(--brass-line);background:var(--panel);color:var(--tx);font-size:13px;backdrop-filter:blur(14px)}
@media (max-width:640px){.stage.r-projects .lens{display:none}}
/* Visible focus everywhere (WCAG 2.4.7, 2.4.13): one ring that no component style can remove. */
:focus-visible{outline:2px solid var(--acc)!important;outline-offset:2px!important}
/* Phones and narrow tablets: a compact welcome with the two first actions, so a new visitor always has a way in. */
@media (max-width:900px){
  .stage.r-world .hint{display:block;left:14px;right:14px;top:auto;bottom:16px;max-width:none;padding:14px 16px;border-radius:16px}
  .stage.r-world .hint .tagline,.stage.r-world .hint .mut{display:none}.stage.r-world .hint-h{font-size:18px;margin:0}
  .stage.r-world .hint-cta{margin-top:10px}.stage.r-world .hint-cta .btn{min-height:40px}
}
