:root{--bg-a: #0f1a2a;--bg-b: #172d45;--surface: rgba(14, 25, 40, .78);--surface-strong: rgba(17, 31, 50, .94);--text-main: #e8eef7;--text-dim: #9ab3cf;--accent-a: #34d5ff;--accent-b: #ffb24d;--accent-c: #8fd94f;--border: rgba(93, 128, 166, .44);--shadow: 0 18px 54px rgba(4, 9, 16, .44)}*{box-sizing:border-box}body{margin:0;color:var(--text-main);font-family:Space Grotesk,sans-serif;background:radial-gradient(circle at 15% 18%,rgba(52,213,255,.16),transparent 42%),radial-gradient(circle at 82% 20%,rgba(255,178,77,.14),transparent 45%),linear-gradient(155deg,var(--bg-a),var(--bg-b));min-height:100vh}.loader-screen{min-height:100vh;display:flex;align-items:center;justify-content:center}.loader-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:40px 36px;width:min(480px,92vw);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center}.loader-logo{font-family:IBM Plex Mono,monospace;font-size:.8rem;font-weight:600;letter-spacing:4px;color:var(--accent-a);margin-bottom:8px}.loader-card h2{margin:0 0 10px;font-size:1.5rem;color:var(--text-main)}.loader-card p{color:var(--text-dim);font-size:.92rem;margin:0 0 24px;line-height:1.5}.loader-card p code{color:var(--accent-a);font-family:IBM Plex Mono,monospace;background:#34d5ff1a;padding:1px 5px;border-radius:4px}.dropzone{border:2px dashed var(--border);border-radius:14px;padding:36px 20px;cursor:pointer;transition:border-color .2s,background .2s;position:relative}.dropzone:hover,.dropzone.dragover{border-color:var(--accent-a);background:#34d5ff0f}.dropzone-icon{font-size:2.4rem;line-height:1;margin-bottom:10px;color:var(--accent-a)}.dropzone-text{color:var(--text-dim);font-size:.92rem}.dropzone-text code{color:var(--accent-a);font-family:IBM Plex Mono,monospace;background:#34d5ff1a;padding:1px 5px;border-radius:4px}.dropzone input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.loader-status{margin-top:16px;color:var(--accent-a);font-family:IBM Plex Mono,monospace;font-size:.86rem}#authForm{display:flex;flex-direction:column;gap:12px;margin-top:8px}.code-input{width:100%;padding:11px 14px;border-radius:10px;border:1px solid var(--border);background:#0f1b2c;color:var(--text-main);font-family:IBM Plex Mono,monospace;font-size:1rem;letter-spacing:2px;text-align:center;outline:none;transition:border-color .2s}.code-input:focus{border-color:var(--accent-a)}.btn-primary{width:100%;padding:11px;border-radius:10px;border:none;background:var(--accent-a);color:#0a1622;font-family:Space Grotesk,sans-serif;font-size:.95rem;font-weight:700;cursor:pointer;transition:opacity .15s}.btn-primary:hover{opacity:.88}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.auth-error{margin-top:10px;padding:9px 12px;border-radius:9px;background:#c530302e;border:1px solid rgba(197,48,48,.5);color:#fc8181;font-size:.88rem;text-align:center}.spinner{width:36px;height:36px;border:3px solid rgba(52,213,255,.2);border-top-color:var(--accent-a);border-radius:50%;animation:spin .8s linear infinite;margin:12px auto}@keyframes spin{to{transform:rotate(360deg)}}.hero-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.user-badge{font-family:IBM Plex Mono,monospace;font-size:.84rem;color:var(--accent-c);background:#8fd94f1f;border:1px solid rgba(143,217,79,.3);border-radius:8px;padding:4px 10px}.btn-secondary{background:var(--surface-strong);border:1px solid var(--border);border-radius:9px;color:var(--text-dim);padding:6px 14px;font-size:.84rem;font-family:Space Grotesk,sans-serif;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.btn-secondary:hover{color:var(--accent-a);border-color:var(--accent-a)}.wrap{max-width:1320px;margin:0 auto;padding:22px 16px 28px}.hero{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}h1{margin:0;font-size:clamp(1.18rem,2.4vw,1.9rem);letter-spacing:.2px}.btn-load{background:var(--surface-strong);border:1px solid var(--border);border-radius:9px;color:var(--text-dim);padding:6px 14px;font-size:.84rem;font-family:Space Grotesk,sans-serif;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.btn-load:hover{color:var(--accent-a);border-color:var(--accent-a)}.subtitle{margin-top:6px;color:var(--text-dim);font-size:.93rem}.meta{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.chip{background:var(--surface-strong);border:1px solid var(--border);border-radius:11px;padding:9px 11px;font-size:.86rem;color:var(--text-dim)}.chip b{color:var(--text-main);font-family:IBM Plex Mono,monospace;margin-left:7px}.toolbar{margin-top:12px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.toolbar label{background:var(--surface-strong);border:1px solid var(--border);border-radius:9px;padding:6px 10px;font-size:.84rem;color:var(--text-dim);display:inline-flex;align-items:center;gap:6px;cursor:pointer}.toolbar select,.toolbar input[type=number]{border-radius:7px;border:1px solid var(--border);background:#0f1b2c;color:var(--text-main);padding:3px 6px;font-family:IBM Plex Mono,monospace;font-size:.82rem}.toolbar input[type=number]{width:70px}.toolbar .wide{width:86px}.toolbar input[type=checkbox]{cursor:pointer}.status{margin-top:10px;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:#0f1b2ceb;color:var(--text-dim);font-size:.85rem;min-height:34px}.status b{color:var(--accent-a);font-family:IBM Plex Mono,monospace}.grid{margin-top:12px;display:grid;gap:12px;grid-template-columns:1fr}.panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:8px;min-height:360px;box-shadow:var(--shadow)}.curve-panel{min-height:400px}@media (min-width: 1020px){.grid{grid-template-columns:1fr 1fr}.curve-panel{grid-column:1 / span 2}}
