@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.853070df.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.dbea232f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
:root{--bg:#fef6ef;--ink:#1d2433;--muted:#5c6b87;--card:#ffffffdb;--line:#50638233;--accent:#ff6b35;--accent-2:#3b82f6;--accent-3:#10b981;--accent-4:#f59e0b}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;padding:0}body{font-family:var(--font-geist-sans),sans-serif;color:var(--ink);background:radial-gradient(circle at 10% 8%,#ffd8c2 0%,transparent 35%),radial-gradient(circle at 92% 10%,#d7e8ff 0%,transparent 36%),radial-gradient(circle at 80% 88%,#cbf8e8 0%,transparent 34%),var(--bg)}.shell{grid-template-rows:auto 1fr;gap:14px;min-height:100vh;padding:20px;display:grid}.shell-overlay{grid-template-rows:1fr}.panel{background:var(--card);border:1px solid var(--line);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);border-radius:16px;padding:16px;box-shadow:0 16px 30px #17233a1f}.panel h1{background:linear-gradient(90deg,#ff6b35 0%,#3b82f6 45%,#10b981 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:26px}.panel p{color:var(--muted);margin:8px 0 0}.controls{grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:10px;margin-top:12px;display:grid}.controls label{color:var(--muted);gap:6px;font-size:13px;display:grid}.controls label small{color:#6f7d96;font-size:11px}.controls input,.controls button{border:1px solid var(--line);background:#fff;border-radius:10px;height:38px;padding:0 10px;font-size:14px}.controls button{background:linear-gradient(120deg,var(--accent)0%,#ff9a3c 42%,#ff5f7e 100%);color:#fff;cursor:pointer;border:none;font-weight:600;box-shadow:0 10px 16px #ff6b353d}.controls button:disabled{opacity:.55;cursor:not-allowed}.error{color:#b91c1c;margin:10px 0 0;font-size:14px}.stats{color:var(--muted);flex-wrap:wrap;gap:16px;margin-top:10px;font-size:13px;display:flex}.stats span{border:1px solid var(--line);background:#ffffffe6;border-radius:999px;padding:6px 10px}.stats span:first-child{border-color:#3b82f659}.stats span:nth-child(2){border-color:#10b98159}.stats span:nth-child(3){border-color:#2563eb59}.stats span:nth-child(4){border-color:#f59e0b59}.guide{color:#324160;background:linear-gradient(120deg,#3b82f61a 0%,#10b98114 100%);border:1px solid #3b82f638;border-radius:12px;gap:7px;margin-top:12px;padding:10px 12px;font-size:13px;display:grid}.guide strong{color:#1f2f4d;font-size:14px}.legend{color:var(--muted);border:1px solid var(--line);background:#ffffffbf;border-radius:12px;flex-wrap:wrap;align-items:center;gap:14px;margin-top:10px;padding:8px 10px;font-size:13px;display:flex}.legend label,.legend span{align-items:center;gap:6px;display:inline-flex}.swatch{border-radius:999px;width:10px;height:10px;display:inline-block}.swatch-out{background:var(--accent-2)}.swatch-in{background:var(--accent-4)}.swatch-other{background:#7c8aa5}.graph{background:radial-gradient(circle at 10% 10%,#ff6b3517,transparent 30%),radial-gradient(circle at 90% 90%,#3b82f614,transparent 30%),var(--card);border:1px solid var(--line);border-radius:16px;min-height:640px;position:relative;overflow:hidden;box-shadow:0 16px 30px #17233a1f}.graph-full{min-height:calc(100vh - 40px)}.floating-panel{z-index:5;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe0;border-radius:16px;width:min(560px,100% - 32px);max-width:560px;padding:14px;position:absolute;top:16px;left:16px;right:auto;box-shadow:0 16px 32px #17233a29}.floating-panel h1{background:linear-gradient(90deg,#ff6b35 0%,#3b82f6 45%,#10b981 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:26px}.floating-panel p{color:var(--muted);margin:8px 0 0}.controls-floating{grid-template-columns:minmax(260px,1fr) minmax(170px,.45fr)}.placeholder{color:var(--muted);place-items:center;font-size:15px;display:grid;position:absolute;inset:0}.graph-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}@media (max-width:1200px){.controls,.controls-floating{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:760px){.shell{padding:12px}.controls,.controls-floating{grid-template-columns:repeat(2,minmax(0,1fr))}.graph{min-height:500px}.graph-full{min-height:calc(100vh - 24px)}.floating-panel{width:auto;max-width:none;padding:12px;top:10px;left:10px;right:10px}}
