@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&family=Space+Grotesk:wght@400;500;700&display=swap";:root{--bg-1: #f2f7f5;--bg-2: #d8e8ef;--panel: rgba(255, 255, 255, .78);--panel-strong: rgba(255, 255, 255, .9);--text: #0f1720;--muted: #3e4b57;--accent: #0f766e;--accent-2: #2563eb;--danger: #c0262d;--success: #047857;--border: rgba(15, 23, 32, .15);--shadow: 0 16px 44px rgba(15, 23, 32, .12);--valid: #034b36;--invalid: #901d23}*{box-sizing:border-box}html,body{margin:0;min-height:100%;color:var(--text);font-family:Space Grotesk,sans-serif}body{position:relative;background:radial-gradient(circle at 8% 15%,#def2ff 0%,transparent 30%),radial-gradient(circle at 85% 2%,#ffe7d2 0%,transparent 25%),linear-gradient(160deg,var(--bg-1),var(--bg-2))}.page-bg{position:fixed;inset:0;background-image:linear-gradient(rgba(15,23,32,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,32,.02) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}.app-shell{position:relative;z-index:1;max-width:1400px;margin:0 auto;padding:2rem 1.2rem 2.2rem}.hero{padding:0rem .2rem 1.4rem;animation:rise .5s ease-out}.hero-top-row{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.github-link{width:2.15rem;height:2.15rem;display:inline-flex;align-items:center;justify-content:center;color:var(--text);background:#ffffffb8;border:1px solid var(--border);border-radius:999px;transition:transform .15s ease,box-shadow .15s ease}.github-link:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0f172024}.github-link svg{width:1.15rem;height:1.15rem;fill:currentColor}.eyebrow{margin:0;color:var(--accent-2);letter-spacing:.1em;text-transform:uppercase;font-size:.73rem;font-weight:700}.eyebrow-link{color:inherit;text-decoration:none}.eyebrow-link:visited{color:inherit}.hero h1{margin:.35rem 0;font-size:clamp(1.8rem,3.4vw,2.9rem);line-height:1.08}.hero p{margin:0;color:var(--muted)}.layout{display:grid;gap:1rem;grid-template-columns:minmax(300px,420px) 1fr;align-items:start}.panel{border:1px solid var(--border);background:var(--panel);border-radius:1rem;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.controls{padding:1.1rem;display:grid;gap:.95rem}.controls h2,.preview-wrap h2{margin:0;font-size:1.08rem}.group{display:grid;gap:.5rem}.group h3{margin:0;font-size:.95rem}.file-input-row{display:flex;align-items:center;gap:.5rem}.file-input-row input[type=file]{flex:1}.small-btn{width:auto;padding:.4rem .6rem;font-size:.78rem;white-space:nowrap}.split-2{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:.55rem;align-items:center}.toggle-row{display:flex;align-items:center;min-height:2.2rem}.toggle-row input[type=checkbox]{width:auto;margin:0;transform:scale(1.1)}label{font-size:.78rem;font-weight:700;letter-spacing:.02em}input,select,button{width:100%;border-radius:.62rem;border:1px solid var(--border);padding:.52rem .62rem;font-family:IBM Plex Mono,monospace;font-size:.86rem;background:var(--panel-strong)}input[type=color]{height:100%;padding:.3rem}input:focus,select:focus,button:focus{outline:2px solid color-mix(in oklab,var(--accent-2) 70%,white);outline-offset:1px}.help{margin:0;color:var(--muted);font-size:.74rem}.actions{display:flex;gap:.55rem}button{cursor:pointer;border:1px solid transparent;font-weight:600}button#plotButton{background:linear-gradient(115deg,var(--accent),var(--accent-2));color:#fff}button.ghost{background:transparent;color:var(--text);border-color:var(--border)}.status{margin:0;font-size:.82rem;padding:.55rem .65rem;border-radius:.58rem;background:#0f17200d}.status[data-state=success]{color:var(--success);background:#0478571f}.status[data-state=error]{color:var(--danger);background:#c0262d1f}.chart-area{padding:.85rem;min-width:0}.plot{min-height:420px;border-radius:.9rem;overflow:hidden;border:1px solid var(--border);background:#f6f8fa}.preview-wrap{padding:.8rem .2rem .1rem;min-width:0}.table-preview{margin-top:.5rem;max-height:260px;width:100%;max-width:100%;overflow-x:auto;overflow-y:auto;border-radius:.65rem;border:1px solid var(--border);background:var(--panel-strong)}table{border-collapse:collapse;width:max-content;min-width:100%}th,td{padding:.42rem .5rem;font-family:IBM Plex Mono,monospace;font-size:.78rem;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}td.valid{color:var(--valid)}td.invalid{color:var(--invalid)}th{position:sticky;top:0;background:#f5f9fcfa}.solver-style-row{display:grid;grid-template-columns:minmax(60px,auto) 1fr 50px 85px;gap:.45rem;align-items:center;margin-bottom:.35rem}.solver-style-row code{font-family:IBM Plex Mono,monospace;font-size:.73rem;color:var(--muted)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1080px){.layout{grid-template-columns:1fr}.controls{order:2}.chart-area{order:1}}@media(max-width:680px){.app-shell{padding:1.1rem .7rem 1.3rem}.chart-area{padding:.65rem}.preview-wrap{padding:.65rem 0 0}.split-2{grid-template-columns:1fr}.solver-style-row{grid-template-columns:minmax(60px,auto) minmax(85px,1fr)}.actions{flex-direction:column}.plot{min-height:320px}}
