@font-face{font-family:Martian Mono;src:url(/fonts/MartianMono-VariableFont_wdth_wght.ttf) format("truetype");font-weight:100 900;font-display:swap}@font-face{font-family:Stack Sans;src:url(/fonts/StackSansText-VariableFont_wght.ttf) format("truetype");font-weight:100 900;font-display:swap}:root{--font-body: "Stack Sans", system-ui, sans-serif;--font-mono: "Martian Mono", "SF Mono", monospace;--font-display: "Stack Sans", system-ui, sans-serif;--bg-0: #08090a;--bg-1: #101112;--bg-2: #171819;--bg-3: #202124;--bg-4: #292a2e;--border: #292b2d;--border-light: #3a3c3f;--fg: #d9d9dc;--fg-2: #929397;--fg-3: #5a5c61;--accent: #A8B4C2;--accent-dim: #7A8999;--ok: #87D8D3;--warn: #E49A2A;--crit: #E8404A;--border-hair: rgba(255, 255, 255, .06);--border-rule: rgba(255, 255, 255, .08);--accent-glow: rgba(168, 180, 194, .12);--crit-glow: rgba(232, 64, 74, .1);--ok-glow: rgba(135, 216, 211, .1);--radius: 3px;--radius-sm: 2px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}html,body,#root{height:100%}body{font-family:var(--font-body);background:var(--bg-0);color:var(--fg);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;transition:transform .1s ease,opacity .15s ease}button:active:not(:disabled){transform:scale(.97)}button:hover:not(:disabled){opacity:.85}button:disabled{cursor:not-allowed;opacity:.4}::-webkit-scrollbar{width:2px;height:2px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:0}::-webkit-scrollbar-thumb:hover{background:#ffffff47}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInFast{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes stressPulse{0%,to{opacity:.2}50%{opacity:.8}}@keyframes modalIn{0%{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes countdownUrgent{0%,to{background-color:var(--crit)}50%{background-color:#ff6060}}@keyframes borderGlow{0%,to{border-color:var(--crit)20}50%{border-color:var(--crit)50}}.fade-in{animation:fadeIn .35s ease both}.app-shell{width:100%;max-width:1240px;margin:0 auto;padding:16px 16px env(safe-area-inset-bottom,32px);min-height:100vh;position:relative}.app-shell--canvas{max-width:none;padding-left:0;padding-right:0;padding-bottom:0}.canvas-screen{min-height:calc(100vh - 76px)}.canvas-stage{position:relative;display:grid;grid-template-rows:auto minmax(200px,1fr) auto;gap:12px;min-height:calc(100vh - 76px);padding:12px;border-top:1px solid var(--border-hair);background:radial-gradient(circle,rgba(255,255,255,.03) .5px,transparent .5px),radial-gradient(circle at top,rgba(168,180,194,.045),transparent 38%),linear-gradient(180deg,#0a0b0d,#060708);background-size:20px 20px,100% 100%,100% 100%;overflow-x:hidden;overflow-y:auto}.canvas-visual{position:relative;min-height:0;height:100%;border-top:1px solid var(--border-hair);border-bottom:1px solid var(--border-hair)}.canvas-visual--sim{min-height:200px}.canvas-topbar,.overlay-panel{background:#08090ad6;border:1px solid rgba(255,255,255,.05);border-radius:var(--radius);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:none}.canvas-topbar{position:relative;z-index:1;display:grid;gap:10px;width:min(980px,100%);padding:12px}.canvas-overlay{position:relative;z-index:1;display:grid;gap:12px;max-height:none;overflow:visible;pointer-events:auto}.overlay-row{display:grid;gap:12px}.overlay-panel{padding:12px;overflow:auto}.overlay-panel:hover{border-color:#ffffff14}.overlay-scroll{display:flex;gap:0;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.overlay-scroll::-webkit-scrollbar{display:none}.overlay-scroll>*{flex:0 0 auto}.menu-grid,.contract-layout,.design-layout,.sim-layout,.result-layout{display:grid;gap:14px}.design-sidebar,.sim-side{display:grid;gap:10px;align-content:start}.design-palette{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}@media(min-width:760px){.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.design-palette{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:900px){.contract-layout{grid-template-columns:minmax(0,.95fr) minmax(320px,1.05fr);align-items:start}.design-layout{grid-template-columns:minmax(320px,.85fr) minmax(0,1.4fr);align-items:start}.sim-layout{grid-template-columns:minmax(0,1.35fr) minmax(320px,.95fr);align-items:start}.result-layout{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:start}.overlay-row{grid-template-columns:minmax(250px,340px) minmax(0,1fr);align-items:start}}@media(min-width:1100px){.menu-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.design-palette{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:899px){.canvas-stage{grid-template-rows:auto minmax(180px,1fr) auto;min-height:calc(100vh - 72px);padding:10px;gap:10px}}@media(max-width:767px){.canvas-stage{grid-template-rows:auto minmax(0,1fr) auto;min-height:calc(100vh - 72px);padding:8px;gap:8px}.canvas-visual,.canvas-visual--sim{min-height:120px;max-height:32vh;height:auto}.canvas-visual--collapsed{min-height:72px;height:72px}.overlay-row{grid-template-columns:1fr;align-items:stretch}.overlay-panel{overflow:visible}.overlay-scroll{padding-bottom:4px}}
