@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap";html,body,#root{min-height:100%}body{background:#050816;min-height:100vh;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit}:root{--bg:#0b1020;--panel:#111827;--panel-2:#0f172a;--text:#e5e7eb;--muted:#94a3b8;--accent:#22d3ee;--accent-2:#34d399;--danger:#fb7185;--warn:#f97316}*{box-sizing:border-box}body{min-height:100vh;color:var(--text);background:radial-gradient(circle at 22% 10%, #22d3ee38, transparent 28%), radial-gradient(circle at 82% 0%, #6366f133, transparent 34%), var(--bg);margin:0;font:16px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}#root{max-width:1120px;margin:0 auto;padding:14px}.page{flex-direction:column;gap:12px;display:flex}.topbar{background:linear-gradient(#020617d9,#02061794);border:1px solid #94a3b833;border-radius:14px;padding:12px 14px}.topbar h1{margin:0;font-size:1.15rem;line-height:1.2}.topbar p{color:var(--muted);margin:2px 0 0;font-size:.92rem}.controls{grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:8px;display:grid}.controls button{color:#e2e8f0;letter-spacing:.01em;cursor:pointer;background:#0f172a;border:1px solid #94a3b83d;border-radius:10px;padding:10px 12px;font-size:.92rem;font-weight:700;transition:all .14s}.controls button:hover{border-color:#22d3eeb3}.controls button.active{color:#a5f3fc;background:#22d3ee26;border-color:#22d3eecc}.layout-grid{grid-template-columns:1.45fr 1fr;gap:10px;min-height:62vh;display:grid}.scene-card{background:#020617bf;border:1px solid #94a3b833;border-radius:14px;min-height:420px;position:relative;overflow:hidden}.scene-card canvas{touch-action:pan-y pinch-zoom;width:100%!important;height:100%!important}.sidebar-card,.overlay-card{background:var(--panel);border:1px solid #94a3b833;border-radius:14px;padding:10px}.map-card{flex-direction:column;display:flex}.card-title{color:#f8fafc;margin-bottom:8px;font-size:.95rem;font-weight:700}.map-svg{background:#0f172a;border-radius:10px;width:100%;height:220px}.mini-key{color:#dbeafe;border-top:1px dashed #94a3b840;gap:6px;margin-top:10px;padding-top:8px;font-size:.78rem;line-height:1.3;display:grid}.overlay-card{background:var(--panel);border:1px solid #94a3b833;padding:10px 12px}.overlay-card .card-title{margin-bottom:6px}.overlay-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.overlay-grid div{background:#02061794;border:1px solid #94a3b82e;border-radius:10px;padding:8px}.overlay-grid p,.overlay-grid small{color:var(--muted);margin:4px 0 0;font-size:.8rem}.overlay-grid strong{color:#e2e8f0}.chip-line{margin-bottom:4px;display:block}.io-row{margin:3px 0 0;line-height:1.2}.mini-key strong{color:#a5f3fc}.tank-label{pointer-events:none;color:#e2e8f0;background:#0f172ac7;border:1px solid #fff3;border-radius:8px;max-width:220px;padding:6px 8px;font-size:11px;line-height:1.25;box-shadow:0 2px 8px #00000059}.tank-title{margin-bottom:1px;font-size:12px;font-weight:700}.tank-sub{color:#a5f3fc;margin-top:3px;font-size:10px}.tank-meta{color:#dbeafe;margin-top:3px;font-size:9px}.rl-badge{color:#e2e8f0;text-align:center;white-space:nowrap;background:#0f172ad6;border:1px solid #94a3b866;border-radius:7px;flex-direction:column;align-items:center;padding:2px 6px;font-size:10px;display:flex}.rl-badge .muted{color:#94a3b8;font-size:8px}.float-chip,.actuator-chip{pointer-events:none;color:#f8fafc;text-align:center;background:#0f172ad9;border:1px solid #94a3b873;border-radius:6px;flex-direction:column;align-items:center;gap:1px;max-width:110px;padding:2px 5px;font-size:8px;display:inline-flex}.float-chip.on{color:#dcfce7;border-color:#22c55ecc}.float-chip.off{color:#cbd5e1;border-color:#94a3b873}.actuator-chip.on{border-color:#22c55ee6}.actuator-chip.idle{border-color:#94a3b899}.actuator-chip.force{border-color:#fb923ce6}.mobile-note{color:#94a3b8;text-align:center;margin:0;font-size:.8rem}.muted{color:#94a3b8}@media (width<=900px){#root{padding:10px}.layout-grid{grid-template-columns:1fr;gap:10px;min-height:0}.scene-card{height:52vh;min-height:52vh}.map-svg{height:190px}.overlay-grid{grid-template-columns:repeat(2,1fr);gap:6px}.topbar h1{font-size:1rem}}
