:root{
  --paper:#F1F3EF; --card:#FBFCFA; --ink:#25302B; --ink-soft:#5C6A63;
  --ledger:#2C4A73; --ok:#2F7D5B; --mid:#C9921F; --bad:#B3402E; --line:#D4DAD3;
}
*{box-sizing:border-box;margin:0}
body{background:var(--paper);color:var(--ink);
     font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PT Sans",sans-serif;
     min-height:100vh;padding:16px 14px 56px}
.tv-shell{max-width:520px;margin:0 auto}
h1{font:800 26px/1.2 Georgia,"Bitter",serif;letter-spacing:-.01em}
.sub{color:var(--ink-soft);margin:6px 0 20px;font-size:14px}
.acc{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:18px}
.acc-row{display:flex;justify-content:space-between;align-items:baseline}
.acc-label{font-size:13px;color:var(--ink-soft)}
.acc-val{font:700 20px ui-monospace,"JetBrains Mono",monospace;color:var(--ledger)}
.acc-bar{height:6px;background:var(--line);border-radius:3px;margin-top:8px;overflow:hidden}
.acc-fill{height:100%;width:20%;background:var(--ledger);border-radius:3px;transition:width .5s cubic-bezier(.3,.8,.3,1)}
.step{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 16px;display:none}
.step.on{display:block;animation:in .25s ease}
@keyframes in{from{opacity:0;transform:translateY(6px)}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.step.on{animation:none}.acc-fill{transition:none}}
.eyebrow{font:700 11px ui-monospace,"JetBrains Mono",monospace;color:var(--ledger);text-transform:uppercase;letter-spacing:.12em}
.step h2{font:600 20px Georgia,"Bitter",serif;margin:4px 0 14px}
label{display:block;font-size:13px;color:var(--ink-soft);margin:12px 0 4px}
input,select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:8px;font:16px inherit;background:#fff;color:var(--ink)}
input:focus{outline:2px solid var(--ledger);outline-offset:1px;border-color:var(--ledger)}
.hint{font-size:12px;color:var(--ok);margin-top:4px;min-height:16px}
.row{display:flex;gap:10px}.row>div{flex:1}
.nav{display:flex;gap:10px;margin-top:20px}
button{flex:1;padding:13px;border:0;border-radius:9px;font:700 15px inherit;cursor:pointer}
.next{background:var(--ledger);color:#fff}
.skip{background:transparent;color:var(--ink-soft);border:1px solid var(--line)}
button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.build{background:var(--ok);color:#fff}
#result{display:none}
.back{margin:14px 0;background:none;border:0;color:var(--ledger);font-weight:700;cursor:pointer;padding:0;flex:none}

/* --- граф --- */
.tb-head{margin-bottom:10px}
.tb-title{font:600 18px Georgia,"Bitter",serif}
.tb-acc{font:500 13px ui-monospace,"JetBrains Mono",monospace;color:var(--ledger);margin-top:2px}
.tb-legend{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--ink-soft);margin-top:8px;flex-wrap:wrap}
.tb-legend i{width:14px;height:4px;border-radius:2px;display:inline-block;margin-right:4px}
.tb-cta-bar{margin:10px 0;background:#EAF0F6;border:1px solid #C6D6E6;border-radius:10px;padding:12px 14px;font-size:13px}
.tb-cta-bar a{display:inline-block;margin-top:8px;background:var(--ledger);color:#fff;text-decoration:none;padding:9px 14px;border-radius:8px;font-weight:700}
.tb-svg{touch-action:pan-y pinch-zoom;background:transparent}
.tb-node{cursor:pointer}
.tb-node:focus-visible rect{stroke:var(--ink);stroke-width:2}
.tb-name{font:700 12px inherit;fill:var(--ink)}
.tb-meta{font:11px ui-monospace,"JetBrains Mono",monospace;fill:var(--ink-soft)}
.tb-pct{font:700 12px ui-monospace,"JetBrains Mono",monospace}
.tb-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-top:12px;box-shadow:0 4px 18px rgba(37,48,43,.08)}
.tb-card-name{font:600 18px Georgia,"Bitter",serif}
.tb-card-years{font:13px ui-monospace,"JetBrains Mono",monospace;color:var(--ink-soft);margin:2px 0 8px}
.tb-card-rows{font-size:14px;display:grid;gap:2px;margin-bottom:10px}
.tb-conf{font:700 14px ui-monospace,"JetBrains Mono",monospace;margin:6px 0}
.tb-pct-big{letter-spacing:.05em}
.tb-why{font-size:13px;color:var(--ink);font-weight:700;margin-top:8px}
.tb-hint{font-weight:400;color:var(--ink-soft)}
.tb-evid{list-style:none;padding:0;margin:6px 0;font-size:13px;display:grid;gap:4px}
.tb-w{color:var(--ledger);font:700 12px ui-monospace,"JetBrains Mono",monospace;float:right}
.tb-ask{font-weight:700;margin-top:10px}
.tb-btns{display:flex;gap:8px;margin-top:8px}
.tb-btns button{flex:1;padding:11px;border:0;border-radius:8px;font:700 14px inherit;cursor:pointer}
.tb-yes{background:var(--ok);color:#fff}
.tb-no{background:#EFE9E4;color:var(--bad)}
.tb-locked{margin-top:10px;font-size:13px;color:var(--ink-soft);background:var(--paper);border-radius:8px;padding:10px}
.tb-locked a{color:var(--ledger);font-weight:700}
.tb-close{position:absolute;top:8px;right:10px;background:none;border:0;font-size:22px;color:var(--ink-soft);cursor:pointer;line-height:1;flex:none;width:auto}
