:root{--navy:#0b2545;--cyan:#00a3e0;--band:#dceef9;--rule:#e3eaf1;--tick:#b9c6d4;--muted:#6b7c93;--paper:#fff;--surface:#f7f9fb;--step-1:.8125rem;--step0:.9375rem;--step1:1.125rem;--step2:1.5rem;--step3:2.125rem;--step4:3rem;--radius:10px;--maxw:34rem}*{box-sizing:border-box}html,body{background:var(--paper);color:var(--navy);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:var(--step0);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;margin:0;padding:0;line-height:1.5}a{color:inherit}.shell{max-width:var(--maxw);flex-direction:column;min-height:100dvh;margin:0 auto;padding:2.5rem 1.5rem 4rem;display:flex}.eyebrow{font-size:var(--step-1);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0}h1{font-size:var(--step3);letter-spacing:-.02em;margin:.6rem 0 0;font-weight:600;line-height:1.12}h2{font-size:var(--step2);letter-spacing:-.015em;margin:0;font-weight:600;line-height:1.2}p{margin:.75rem 0 0}.muted{color:var(--muted)}.small{font-size:var(--step-1)}input[type=text],input[type=password]{width:100%;font-size:var(--step1);color:var(--navy);background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);outline:none;padding:.95rem 1rem;font-family:inherit}input:focus-visible{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,163,224,.18)}.code-input{text-transform:uppercase;letter-spacing:.4em;text-align:center;font-size:var(--step2)}button{font-family:inherit;font-size:var(--step0);border-radius:var(--radius);background:var(--navy);color:#fff;cursor:pointer;border:1px solid transparent;min-height:44px;padding:.9rem 1.25rem;font-weight:550;transition:opacity .14s,background .14s,transform .14s}button:hover:not(:disabled){opacity:.9}button:disabled{opacity:.35;cursor:default}button.ghost{color:var(--navy);border-color:var(--rule);background:0 0}button.ghost:hover:not(:disabled){border-color:var(--navy)}button.wide{width:100%}.stack{flex-direction:column;gap:1rem;display:flex}.row{flex-wrap:wrap;gap:.75rem;display:flex}.spacer{flex:1}.footer-mark{font-size:var(--step-1);color:var(--muted);letter-spacing:.08em;text-transform:lowercase;margin-top:auto;padding-top:3rem}.notice{border:1px solid var(--rule);background:var(--surface);border-radius:var(--radius);padding:1rem 1.15rem}.error{color:#a3283a;font-size:var(--step-1);margin-top:.6rem}.scale{grid-template-columns:repeat(7,1fr);gap:.5rem;margin-top:1.75rem;display:grid}.scale button{aspect-ratio:1;background:var(--paper);border:1.5px solid var(--rule);min-height:44px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:var(--step0);border-radius:999px;place-items:center;padding:0;display:grid}.scale button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff;transform:scale(1.06)}.poles{justify-content:space-between;gap:1rem;margin-top:.9rem;display:flex}.poles span{font-size:var(--step-1);color:var(--muted);max-width:45%}.poles span:last-child{text-align:right}.console{max-width:62rem}.panel{border:1px solid var(--rule);background:var(--paper);border-radius:14px;padding:1.5rem}.kpis{flex-wrap:wrap;gap:2.25rem;display:flex}.kpi .n{font-size:var(--step2);font-variant-numeric:tabular-nums;font-weight:600}.kpi .k{font-size:var(--step-1);color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.dimlist{flex-wrap:wrap;gap:.4rem;display:flex}.dimlist button{font-size:var(--step-1);color:var(--muted);border-color:var(--rule);background:0 0;min-height:36px;padding:.45rem .7rem}.dimlist button[data-state=open]{border-color:var(--cyan);color:var(--navy);box-shadow:inset 0 -2px 0 var(--cyan)}.dimlist button[data-state=closed]{color:var(--navy)}.dimlist button[aria-current=true]{background:var(--navy);color:#fff;border-color:var(--navy)}.projector{background:var(--paper);flex-direction:column;height:100dvh;padding:3vh 3vw;display:flex;overflow:hidden}.projector h2{font-size:max(1.5rem,min(2.6vw,2.4rem))}.chart-wrap{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.chart-wrap svg{width:100%;height:100%;max-height:100%;display:block}.dot-in{animation:.2s ease-out both dropIn}@keyframes dropIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tween{transition:all .3s cubic-bezier(.22,1,.36,1)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media print{@page{size:A4 landscape;margin:10mm}body{background:#fff}.no-print{display:none!important}}
