:root{color-scheme:dark;--bg:#07111f;--panel:#0e1c30;--panel2:#112238;--edge:#20394f;--text:#e6f3ff;--muted:#8aa6bd;--cyan:#49d9e8;--orange:#ff9d4c;--green:#75e0a9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif}
*{box-sizing:border-box}html,body{height:100%;margin:0;background:var(--bg);color:var(--text);font-size:14px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}
#tensora-app{min-height:100%;background:radial-gradient(ellipse at 56% -45%,#163b54 0,transparent 64%),#07111f}
.sitebar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid #1e3548;background:#0a1727dd;gap:16px}
.brand{display:flex;align-items:center;gap:13px}.brandmark{display:grid;place-items:center;width:43px;height:43px;border:1px solid #3abfd0;border-radius:13px;box-shadow:inset 0 0 20px #25bdd026;color:var(--cyan);font-size:27px;font-weight:900}
.brand-name{font-size:20px;font-weight:800;letter-spacing:.18em}.brand-suffix{font-size:10px;letter-spacing:.22em;color:var(--muted);margin-top:3px}.bar-right{display:flex;gap:15px;align-items:center}.status-pill{color:var(--green);font-size:10px;letter-spacing:.14em;font-weight:800;border:1px solid #326f62;border-radius:40px;padding:8px 12px;background:#1c534528}.status-pill:before{content:'●';margin-right:7px}.bar-code{font:12px ui-monospace,SFMono-Regular,Consolas,monospace;color:#83a4b9}.top-link{color:#bdd0de;text-decoration:none;font-size:12px}
.hero{padding:24px 28px 18px;display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.eyebrow{font:700 10px ui-monospace,monospace;letter-spacing:.19em;color:var(--cyan)}h1{font-size:clamp(24px,2.5vw,38px);line-height:1.12;margin:8px 0 8px;font-weight:780;letter-spacing:-.04em}.lead{color:var(--muted);margin:0;font-size:13px;max-width:820px}.hero-right{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.ghost,.btn{border-radius:9px;border:1px solid #33516a;padding:10px 14px;color:#d4e7f5;background:#132840;font-weight:700;font-size:12px;transition:.15s}.ghost:hover,.btn:hover{border-color:#43bcd1;background:#17344e}.btn-primary{background:linear-gradient(135deg,#33bcd0,#2c8ba5);color:#071822;border:0}.btn-primary:hover{background:#67e1ed}.btn-warn{border-color:#985234;color:#ffd1ad;background:#46291b}.btn-active{border-color:var(--cyan)!important;background:#0f5361!important;color:#ddfcff!important}
.workspace{display:grid;grid-template-columns:minmax(255px,286px) minmax(450px,1fr) minmax(232px,274px);gap:16px;padding:0 28px 22px;align-items:stretch}.panel{background:linear-gradient(165deg,#102137 0%,#0b192b 100%);border:1px solid #203950;border-radius:16px;box-shadow:0 18px 36px #010a1580;min-width:0}.controls,.analytics{padding:17px 17px 14px;overflow:hidden}.paneltitle{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#49d9e8;box-shadow:0 0 12px #49d9e888}.section{border-top:1px solid #263e54;margin-top:15px;padding-top:15px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.sec-name{color:#b4cadb;font-size:10px;letter-spacing:.14em;font-weight:900;text-transform:uppercase}.sec-label{color:var(--cyan);font:11px ui-monospace,monospace}
.preset-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.preset-row button{font-size:11px;border:1px solid #2a465e;background:#10243a;border-radius:7px;padding:9px 3px;color:#b4cadb}.preset-row button.active{background:#17485a;color:#9ff8ff;border-color:#36a0b5}
.ctrl{margin:12px 0}.ctrl-header{display:flex;align-items:center;justify-content:space-between;color:#bdd1e2;font-size:12px}.mono{font:12px ui-monospace,SFMono-Regular,Consolas,monospace;color:#ebf7ff}input[type=range]{appearance:none;width:100%;height:5px;margin:13px 0 4px;border-radius:9px;background:#2c5068;accent-color:var(--cyan);cursor:pointer}input[type=range]::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border-radius:50%;background:#85f1f7;border:3px solid #17516c;box-shadow:0 0 0 2px #4b9cac}
.tog{display:flex;align-items:center;justify-content:space-between;margin:8px 0;color:#a9c2d4;font-size:12px}.toggle{appearance:none;width:33px;height:18px;border-radius:16px;background:#31465e;position:relative;cursor:pointer}.toggle:before{content:'';position:absolute;width:12px;height:12px;border-radius:50%;left:3px;top:3px;background:#bbd0db;transition:.16s}.toggle:checked{background:#208d9f}.toggle:checked:before{left:18px;background:#eaffff}.hint{font-size:11px;color:#7f9eb4;line-height:1.55}.footnote{font-size:10px;color:#6689a2}
.stage{position:relative;height:min(615px,69vh);min-height:485px;overflow:hidden;border:1px solid #28455a;border-radius:16px;background:radial-gradient(ellipse at 50% 38%,#16314a 0%,#0b2035 45%,#071428 100%)}canvas#view{position:absolute;width:100%;height:100%;display:block;touch-action:none;cursor:grab}canvas#view:active{cursor:grabbing}.stage:before{content:'';position:absolute;z-index:1;pointer-events:none;inset:0;border-radius:16px;box-shadow:inset 0 0 95px #020c20c9}.stage-head{position:absolute;top:18px;left:18px;right:18px;z-index:2;display:flex;gap:8px;justify-content:space-between;align-items:flex-start;pointer-events:none}.stage-badge{background:#092033db;color:#9dddea;font-size:10px;font-weight:750;border:1px solid #22516b;border-radius:7px;padding:9px 11px;letter-spacing:.06em;backdrop-filter:blur(5px)}.stage-badge small{display:block;color:#7cabbf;margin-top:4px;font-size:9px}.stage-bottom{z-index:2;position:absolute;bottom:14px;left:15px;right:15px;display:flex;align-items:end;justify-content:space-between;pointer-events:none;gap:12px}.measure{font:10px ui-monospace,monospace;line-height:1.85;color:#86abbf}.help{background:#0b2437c9;color:#b4d3df;border:1px solid #214c63;border-radius:8px;font:10px ui-monospace,monospace;padding:8px 10px;max-width:210px}
.frame-overlays{position:absolute;inset:0;z-index:2;pointer-events:none}.worldlabel{position:absolute;font:600 9px ui-monospace,monospace;white-space:nowrap;border:1px solid #2b6172;border-radius:4px;color:#bbf4f4;padding:4px 6px;background:#0b2239cb;transform:translate(-50%,-100%)}
.analytics .big{font:29px ui-monospace,monospace;color:#e7fbff;letter-spacing:-.04em;font-weight:800}.analytics .big small{font:12px ui-monospace,monospace;color:#8da9b9}.kpi-title{font-size:10px;color:#819eb7;text-transform:uppercase;letter-spacing:.16em;margin:12px 0 6px}.kpi-lines{display:grid;grid-template-columns:1fr auto;gap:8px 10px;padding:8px 0;border-bottom:1px solid #20364b;font-size:12px}.kpi-lines span{color:#9fb9ce}.kpi-lines strong{font:12px ui-monospace,monospace;color:#dcedf5}.tension{margin-top:10px}.t-row{display:flex;align-items:center;justify-content:space-between;margin:10px 0 7px;font:11px ui-monospace,monospace}.t-row span{color:#a7c5d6}.t-row b{color:#e5f6ff}.meter{height:5px;border-radius:4px;background:#254258;overflow:hidden}.meter>i{display:block;height:100%;width:0%;border-radius:4px;background:linear-gradient(90deg,#24b5d0,#5fedc0);transition:width .12s}.map{position:relative;width:100%;aspect-ratio:1.55;background:linear-gradient(0deg,#102d3f,#0d2537);border:1px solid #35556d;border-radius:8px;cursor:crosshair;touch-action:none;overflow:hidden}.map .grid-layer{pointer-events:none;position:absolute;inset:0;background-image:linear-gradient(#38607433 1px,transparent 1px),linear-gradient(90deg,#38607433 1px,transparent 1px);background-size:12.5% 16.666%}.map-point{position:absolute;width:12px;height:12px;border:2px solid #72f3ec;background:#126e77;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 0 0 5px #4dddd922}.map-target{position:absolute;width:13px;height:13px;border:2px solid #ffb25e;transform:translate(-50%,-50%) rotate(45deg);pointer-events:none}.map .no-go{position:absolute;width:20%;height:34%;border-radius:50%;background:#df62341a;border:1px dashed #dc74486d;left:40%;top:33%;pointer-events:none}.map-caption{display:flex;justify-content:space-between;color:#779aab;font:10px ui-monospace,monospace;margin-top:6px}
.lower{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.35fr);gap:16px;padding:0 28px 23px}.history,.guide{padding:17px;min-width:0}.chart-top{display:flex;align-items:center;justify-content:space-between}.legend{color:#82a4b7;font:10px ui-monospace,monospace}#chart{height:132px;width:100%;margin-top:10px}.guide p{color:#8aa9bc;font-size:12px;line-height:1.6;margin:11px 0 5px}.guide strong{color:#c8e9f4}.footer{padding:0 28px 22px;display:flex;justify-content:space-between;gap:8px;color:#51768c;font:10px ui-monospace,monospace}.fallback{position:absolute;inset:0;display:grid;place-items:center;text-align:center;background:#0b2234cc;padding:30px;color:#b9e7f4;z-index:5}
@media(max-width:1250px){.workspace{grid-template-columns:260px minmax(370px,1fr)}.analytics{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}.analytics>.paneltitle{grid-column:1/-1}.stage{height:575px}.lower{grid-template-columns:1fr 300px}}
@media(max-width:820px){.sitebar{height:auto;min-height:70px;padding:12px 16px}.bar-code,.top-link{display:none}.hero{padding:20px 16px;display:block}.hero-right{justify-content:flex-start;margin-top:15px}.workspace{padding:0 16px 14px;grid-template-columns:1fr}.controls{order:2}.stage{order:1;height:485px;min-height:390px}.analytics{order:3}.lower{padding:0 16px 18px;grid-template-columns:1fr}.footer{padding:0 16px 20px}.help{font-size:9px}}
@media(max-width:480px){.analytics{display:block}.sitebar .brand-name{font-size:17px}.stage{height:395px;min-height:395px}.stage-head{left:9px;top:9px;right:9px}.help{max-width:140px}.sitebar{gap:8px}.status-pill{font-size:9px}}
