:root{--bg: #0a0e17;--surface: #111827;--surface-2: #1a2234;--border: #1e293b;--text: #e2e8f0;--text-dim: #94a3b8;--accent: #38bdf8;--danger: #ef4444;--success: #22c55e;--warning: #f59e0b;--grade-a: #22c55e;--grade-b: #38bdf8;--grade-c: #f59e0b;--grade-d: #f97316;--grade-f: #ef4444}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px}body{background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;min-height:100vh}.app{max-width:1200px;margin:0 auto;padding:1.5rem}.header{text-align:center;margin-bottom:2rem}.header h1{font-size:1.8rem;font-weight:700;letter-spacing:-.02em}.header h1 span{color:var(--danger)}.header .signal{color:var(--text-dim);font-size:.85rem;margin-top:.4rem;max-width:700px;margin-inline:auto}.layout{display:grid;grid-template-columns:340px 1fr;gap:1.5rem;align-items:start}@media(max-width:800px){.layout{grid-template-columns:1fr}}.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.2rem}.panel h2{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--accent)}.presets{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1.2rem}.preset-btn{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:.5rem;cursor:pointer;color:var(--text);font-size:.78rem;text-align:left;transition:border-color .15s}.preset-btn:hover{border-color:var(--accent)}.preset-btn.active{border-color:var(--accent);background:#38bdf814}.preset-btn strong{display:block;font-size:.82rem}.preset-btn span{color:var(--text-dim)}.control-group{margin-bottom:1rem}.control-group label{display:block;font-size:.8rem;font-weight:600;color:var(--text-dim);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.05em}.control-group select{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:.5rem;color:var(--text);font-size:.85rem;cursor:pointer}.control-group select:focus{outline:none;border-color:var(--accent)}.run-btn{width:100%;padding:.75rem;background:var(--danger);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;margin-top:.5rem;letter-spacing:.02em;transition:filter .15s}.run-btn:hover{filter:brightness(1.15)}.results-panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.2rem}.grade-display{text-align:center;margin-bottom:1.5rem;padding:1.2rem;background:var(--surface-2);border-radius:10px}.grade-letter{font-size:4rem;font-weight:800;line-height:1}.grade-label{font-size:.85rem;color:var(--text-dim);margin-top:.25rem}.grade-summary{font-size:.9rem;margin-top:.75rem;line-height:1.5}.level-row{border:1px solid var(--border);border-radius:8px;margin-bottom:.6rem;overflow:hidden}.level-header{display:flex;align-items:center;gap:.75rem;padding:.7rem 1rem;cursor:pointer;-webkit-user-select:none;user-select:none}.level-header:hover{background:var(--surface-2)}.level-num{font-size:.75rem;font-weight:700;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.level-num.held{background:#22c55e26;color:var(--success)}.level-num.breached{background:#ef444426;color:var(--danger)}.level-name{font-weight:600;font-size:.9rem;flex:1}.level-badge{font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}.level-badge.held{background:#22c55e26;color:var(--success)}.level-badge.breached{background:#ef444426;color:var(--danger)}.chevron{color:var(--text-dim);font-size:.8rem;transition:transform .2s}.chevron.open{transform:rotate(90deg)}.level-details{padding:0 1rem .8rem;border-top:1px solid var(--border)}.level-desc{font-size:.8rem;color:var(--text-dim);margin:.6rem 0}.probe-item{padding:.5rem 0;border-bottom:1px solid var(--border)}.probe-item:last-child{border-bottom:none}.probe-name{font-weight:600;font-size:.85rem;display:flex;align-items:center;gap:.5rem}.probe-icon{font-size:.9rem}.probe-desc{font-size:.8rem;color:var(--text-dim);margin:.2rem 0}.probe-consequence{font-size:.78rem;margin-top:.3rem}.probe-consequence.breached{color:var(--danger)}.probe-consequence.held{color:var(--success)}.probe-controls{font-size:.75rem;color:var(--text-dim);margin-top:.2rem}.probe-controls strong{color:var(--text)}.placeholder{text-align:center;padding:3rem 1rem;color:var(--text-dim)}.placeholder p{font-size:.95rem;margin-bottom:.5rem}.footer{text-align:center;margin-top:2rem;font-size:.75rem;color:var(--text-dim)}.footer a{color:var(--accent);text-decoration:none}
