*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0e1117;--bg2:#161b27;--bg3:#1e2535;--border:#2a3347;--border2:#3a4a66;--text:#e2e8f4;--text2:#89b;--text3:#568;--accent:#3b82f6;--accent2:#6366f1;--green:#22c55e;--amber:#f59e0b;--red:#ef4444;--teal:#14b8a6;--mono:"JetBrains Mono", "Fira Code", monospace;--sans:"Inter", system-ui, sans-serif}body{background:var(--bg);color:var(--text);font-family:var(--sans);min-height:100vh;font-size:14px;line-height:1.6}.app{min-height:100vh;display:flex}.sidebar{background:var(--bg2);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:360px;max-height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.main{flex:1;padding:28px;overflow-y:auto}.sb-hdr{border-bottom:1px solid var(--border);padding:20px}.back-link{color:var(--text2);margin-bottom:8px;font-size:11px;text-decoration:none;display:block}.back-link:hover{color:var(--text);text-decoration:underline}.logo{font-family:var(--mono);color:var(--accent);letter-spacing:-.02em;font-size:16px;font-weight:700}.logo span{color:var(--text2);font-weight:400}.version{color:var(--text3);font-size:11px;font-family:var(--mono);letter-spacing:.08em;margin-top:2px}.sb-body{flex:1;padding:16px;overflow-y:auto}.sb-section{margin-bottom:20px}.sb-label{letter-spacing:.15em;text-transform:uppercase;color:var(--text3);margin-bottom:10px;font-size:10px;font-weight:600;display:block}.field{margin-bottom:12px}.field label{color:var(--text2);font-size:12px;font-family:var(--mono);margin-bottom:5px;display:block}.field input,.field select{background:var(--bg3);border:1px solid var(--border2);width:100%;color:var(--text);font-family:var(--mono);border-radius:6px;padding:8px 10px;font-size:12px;transition:border-color .15s}.field input:focus,.field select:focus{border-color:var(--accent);outline:none}.field select option{background:var(--bg2)}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grid3{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.span-card{background:var(--bg3);border:1px solid var(--border);border-radius:8px;margin-bottom:10px;padding:14px}.span-card-title{font-family:var(--mono);color:var(--accent);margin-bottom:12px;font-size:11px;font-weight:600}.sup-row{flex-wrap:wrap;gap:6px;display:flex}.sup-btn{border:1px solid var(--border2);color:var(--text2);font-size:11px;font-family:var(--mono);cursor:pointer;background:0 0;border-radius:4px;padding:5px 10px;transition:all .15s}.sup-btn:hover{border-color:var(--accent2);color:var(--accent2)}.sup-btn.active{background:var(--accent2);border-color:var(--accent2);color:#fff}.num-row{gap:8px;display:flex}.num-btn{border:1.5px solid var(--border2);width:40px;height:40px;color:var(--text2);font-family:var(--mono);cursor:pointer;background:0 0;border-radius:6px;font-size:15px;transition:all .2s}.num-btn:hover{border-color:var(--accent);color:var(--accent)}.num-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.solve-btn{background:linear-gradient(135deg, var(--accent), var(--accent2));color:#fff;width:100%;font-family:var(--mono);letter-spacing:.05em;cursor:pointer;border:none;border-radius:8px;margin-top:4px;padding:13px;font-size:13px;font-weight:700;transition:opacity .2s}.solve-btn:hover{opacity:.88}.main-hdr{margin-bottom:24px}.main-title{margin-bottom:4px;font-size:20px;font-weight:700}.main-sub{color:var(--text2);font-size:13px}.diagram-box{background:var(--bg2);border:1px solid var(--border);border-radius:10px;margin-bottom:24px;padding:16px}.box-label{font-family:var(--mono);letter-spacing:.12em;color:var(--text3);text-transform:uppercase;margin-bottom:10px;font-size:10px}.step-card{border:1px solid var(--border);opacity:0;border-radius:10px;margin-bottom:12px;transition:all .35s;overflow:hidden;transform:translateY(8px)}.step-card.shown{opacity:1;transform:none}.step-card.active{border-color:var(--accent)}.step-card.done{border-color:var(--green)}.step-hdr{cursor:pointer;background:var(--bg2);-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:13px 16px;display:flex}.step-hdr:hover{background:var(--bg3)}.step-num{width:28px;height:28px;font-family:var(--mono);background:var(--bg3);color:var(--text2);border:1px solid var(--border2);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.step-card.active .step-num{background:var(--accent);color:#fff;border-color:var(--accent)}.step-card.done .step-num{background:var(--green);color:#fff;border-color:var(--green)}.step-title{flex:1;font-size:13px;font-weight:600}.step-tag{font-family:var(--mono);background:var(--bg3);border:1px solid var(--border2);color:var(--text3);border-radius:4px;padding:3px 9px;font-size:10px}.chev{color:var(--text3);font-size:14px;transition:transform .2s}.step-card.open .chev{transform:rotate(90deg)}.step-body{background:var(--bg);border-top:1px solid var(--border);padding:16px 18px;display:none}.step-card.open .step-body{display:block}.concept{background:var(--bg3);border-left:3px solid var(--accent2);color:var(--text2);border-radius:0 6px 6px 0;margin-bottom:14px;padding:10px 14px;font-size:13px;line-height:1.8}.concept strong{color:var(--text);margin-bottom:3px;font-size:13px;display:block}.formula-block{border:1px solid var(--border);font-family:var(--mono);white-space:pre;background:#080c14;border-radius:6px;margin:12px 0;padding:14px 16px;font-size:12.5px;line-height:2.1;overflow-x:auto}.fc{color:#4a5f80;font-style:italic}.fk{color:#93c5fd}.fv{color:#fcd34d}.fr{color:#4ade80;font-weight:700}.fm{color:#f0abfc}.fe{color:#fb923c}.result-table{border-collapse:collapse;width:100%;font-family:var(--mono);margin:12px 0;font-size:12px}.result-table th{background:var(--bg3);text-align:left;border:1px solid var(--border);color:var(--text3);letter-spacing:.06em;padding:7px 12px;font-size:11px}.result-table td{border:1px solid var(--border);color:var(--text);padding:7px 12px}.result-table tr:hover td{background:var(--bg3)}.pos{color:var(--green)}.neg{color:var(--red)}.hl{color:var(--amber);font-weight:700}.note{color:var(--text3);border-top:1px dashed var(--border);margin-top:12px;padding-top:12px;font-size:12px;line-height:1.8}.note strong{color:var(--amber)}.ans-panel{border:1px solid var(--green);background:#22c55e0a;border-radius:10px;margin-top:20px;padding:20px;display:none}.ans-panel.show{display:block}.ans-title{font-family:var(--mono);letter-spacing:.15em;color:var(--green);margin-bottom:14px;font-size:10px}.ans-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:16px;display:grid}.ans-card{background:var(--bg3);border:1px solid var(--border);text-align:center;border-radius:8px;padding:12px}.ans-val{font-family:var(--mono);color:var(--green);font-size:20px;font-weight:700;display:block}.ans-val.amber{color:var(--amber)}.ans-desc{color:var(--text3);margin-top:4px;font-size:11px}.placeholder{color:var(--text3);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:80px 0;display:flex}.ph-icon{opacity:.25;font-size:48px}.ph-text{font-family:var(--mono);text-align:center;font-size:13px;line-height:1.8}.method-tabs{background:var(--bg3);border-radius:8px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:16px;padding:3px;display:grid}.method-tab{text-align:center;color:var(--text2);cursor:pointer;font-size:12px;font-weight:500;font-family:var(--sans);background:0 0;border:none;border-radius:6px;padding:8px;transition:all .2s}.method-tab.active{background:var(--accent);color:#fff}.load-badge{font-size:10px;font-family:var(--mono);background:var(--bg3);border:1px solid var(--border2);color:var(--text2);border-radius:4px;margin-left:6px;padding:2px 8px;display:inline-block}@media (width<=860px){.app{flex-direction:column;min-height:auto}.sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;max-height:none;position:static}.main{padding:16px}.grid3{grid-template-columns:1fr 1fr}}@media (width<=520px){.grid2,.grid3,.method-tabs{grid-template-columns:1fr}.ans-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.main{padding:12px}}
