:root{--bg: #070a0f;--panel: #0d1219;--panel-raised: #111823;--border: #1e2836;--border-bright: #2c3a4d;--text: #e6edf7;--text-dim: #8b98ad;--text-faint: #5b6879;--accent: #38bdf8;--accent-dim: #0e7490;--amber: #f59e0b;--violet: #a78bfa;--pink: #f472b6;--green: #34d399;--red: #f87171;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{max-width:1440px;margin:0 auto;padding:0 20px 32px}.masthead{position:relative;display:flex;align-items:flex-end;gap:20px;padding:24px 0 18px;border-bottom:1px solid var(--border);margin-bottom:20px}.banner{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.18;filter:saturate(.8);z-index:0;pointer-events:none}.masthead-text,.engine-badge{position:relative;z-index:1}.masthead-text{flex:1}.masthead h1{margin:0;font-family:var(--mono);font-size:26px;font-weight:600;letter-spacing:.14em;color:var(--text)}.tagline{margin:6px 0 0;color:var(--text-dim);font-size:12.5px;letter-spacing:.02em}.engine-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--border-bright);border-radius:999px;background:#0d1219d9;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--text-dim);white-space:nowrap}.engine-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--amber)}.engine-badge[data-state=ready] .dot{background:var(--green)}.engine-badge[data-state=error] .dot{background:var(--red)}.engine-badge[data-state=running] .dot{background:var(--accent);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.layout{display:grid;grid-template-columns:320px minmax(0,1fr);grid-template-areas:"controls results" "controls viewports";gap:16px;align-items:start}.controls{grid-area:controls}.results{grid-area:results}.viewports{grid-area:viewports}@media(max-width:1000px){.layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"controls" "results" "viewports"}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px}.panel h2{margin:0 0 14px;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}.field{margin-bottom:14px}.field label{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:5px;font-size:12px;color:var(--text-dim)}.field .unit{font-family:var(--mono);font-size:11px;color:var(--text-faint)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}input[type=number],select{width:100%;padding:7px 9px;background:var(--panel-raised);border:1px solid var(--border-bright);border-radius:6px;color:var(--text);font-family:var(--mono);font-size:13px;outline:none}input[type=number]:focus,select:focus{border-color:var(--accent-dim);box-shadow:0 0 0 2px #38bdf81f}input[type=range]{width:100%;accent-color:var(--accent)}.hint{margin:6px 0 0;font-size:11.5px;color:var(--text-faint);line-height:1.4}.actions{display:flex;gap:8px;margin:18px 0 12px}button{font-family:var(--mono);font-size:12px;letter-spacing:.06em;border-radius:6px;padding:9px 14px;cursor:pointer;border:1px solid transparent;transition:background .12s ease,border-color .12s ease}button.primary{flex:1;background:var(--accent);color:#04121b;font-weight:600}button.primary:hover:not(:disabled){background:#7dd3fc}button.ghost{background:transparent;border-color:var(--border-bright);color:var(--text-dim)}button.ghost:hover:not(:disabled){border-color:var(--red);color:var(--red)}button:disabled{opacity:.4;cursor:not-allowed}.progress{display:flex;align-items:center;gap:10px;margin-bottom:12px}.progress-bar{flex:1;height:5px;background:var(--panel-raised);border-radius:999px;overflow:hidden}.progress-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--accent-dim),var(--accent));transition:width .12s linear}.progress-label{font-family:var(--mono);font-size:11px;color:var(--text-dim);min-width:38px;text-align:right}.meta{display:grid;grid-template-columns:1fr;gap:6px;margin:16px 0 0;padding-top:14px;border-top:1px solid var(--border)}.meta>div{display:flex;justify-content:space-between;gap:10px}.meta dt{font-size:11.5px;color:var(--text-faint)}.meta dd{margin:0;font-family:var(--mono);font-size:12px;color:var(--text)}.greeks-table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:12.5px}.greeks-table th{text-align:right;padding:8px 10px;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);border-bottom:1px solid var(--border-bright)}.greeks-table th:first-child,.greeks-table td:first-child{text-align:left}.greeks-table td{text-align:right;padding:9px 10px;border-bottom:1px solid var(--border);color:var(--text)}.greeks-table tbody tr:hover{background:var(--panel-raised)}.greeks-table td.greek-name{color:var(--text-dim);letter-spacing:.04em}.greeks-table td.empty{text-align:center;color:var(--text-faint);padding:24px 10px;font-family:var(--sans)}.diff-good{color:var(--green)}.diff-warn{color:var(--amber)}.diff-bad{color:var(--red)}.legend{margin:12px 0 0;font-size:11px;color:var(--text-faint);line-height:1.5}.tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid var(--border)}.tab{background:transparent;border:none;border-bottom:2px solid transparent;border-radius:0;color:var(--text-faint);padding:8px 12px}.tab:hover{color:var(--text-dim)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.canvas-stack{position:relative}.viewport{display:none;width:100%;height:360px;border-radius:8px;background:#0b0e13}.viewport.active{display:block}.footer{display:flex;justify-content:space-between;gap:12px;margin-top:20px;padding-top:14px;border-top:1px solid var(--border);font-family:var(--mono);font-size:11px;color:var(--text-faint);letter-spacing:.06em}
