@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--color-midnight: #0b1411;--color-dark-surface: rgba(11, 20, 17, .8);--color-neon-blue: #00f3ff;--color-neon-orange: #ffaa00;--color-neon-violet: #bc13fe;--color-neon-green: #00ff9d;--color-neon-pink: #ff00aa;--color-text-primary: #ffffff;--color-text-secondary: rgba(255, 255, 255, .7);--color-border: rgba(255, 255, 255, .1);--font-heading: "Inter", sans-serif;--font-body: "Inter", sans-serif;--font-mono: "Ui-Monospace", "SFMono-Regular", "Menlo", "Monaco", "Consolas", monospace;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: 1rem;--transition-base: .2s ease-in-out;--bg-color: var(--color-midnight);--bg-surface: var(--color-dark-surface);--bg-surface-hover: rgba(0, 255, 157, .05);--border-color: var(--color-border);--border-active: var(--color-neon-green);--text-main: var(--color-text-primary);--text-muted: var(--color-text-secondary);--accent-primary: var(--color-neon-green);--accent-glow: rgba(0, 255, 157, .4);--accent-gradient: linear-gradient(135deg, #fff 0%, rgba(255, 255, 255, .7) 100%);--err: var(--color-neon-pink);--err-bg: rgba(255, 0, 170, .1);--shadow-sm: 0 4px 6px -1px rgba(0, 0, 0, .15);--shadow-lg: 0 10px 25px -5px rgba(0, 0, 0, .3)}*{box-sizing:border-box}html,body,#root{min-height:100vh}body{margin:0;background-color:var(--color-midnight);color:var(--color-text-primary);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}.app{max-width:1400px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;padding:var(--spacing-xl)}@media (max-width: 768px){.app{padding:var(--spacing-md)}}header{padding:0;border-bottom:none;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;position:relative;display:block;text-align:center;margin-bottom:var(--spacing-2xl)}.header-actions{position:absolute;right:0;top:50%;transform:translateY(-50%);display:flex;gap:.5rem;align-items:center}@media (max-width: 640px){header{margin-bottom:var(--spacing-lg)}header h1{font-size:1.8rem}header .sub{font-size:.72rem;letter-spacing:.15em}.header-actions{position:static;transform:none;justify-content:center;flex-wrap:wrap;margin-top:var(--spacing-md)}.toolbar{gap:6px;padding:var(--spacing-sm) var(--spacing-md)}.toolbar .tb-spacer,.toolbar .tb-sep{display:none}}header h1{font-family:var(--font-heading);font-size:2.5rem;letter-spacing:-.02em;background:linear-gradient(135deg,#fff,#ffffffb3);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 30px rgba(255,255,255,.1);margin-bottom:var(--spacing-sm);font-weight:700;text-transform:uppercase}header .sub{color:var(--color-neon-green);font-family:var(--font-mono);font-size:.9rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;margin-top:-1rem;display:block}.error{margin:0 0 var(--spacing-xl) 0;padding:14px 20px;background:var(--err-bg);border:1px solid rgba(255,0,170,.3);border-radius:var(--radius-md);color:var(--err);font-size:14px;font-weight:500;text-align:center;box-shadow:0 0 10px #f0a3;animation:fade-in-up .5s ease-out forwards}@keyframes fade-in-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.top-row{display:grid;grid-template-columns:1fr;gap:var(--spacing-xl)}@media (min-width: 900px){.top-row{grid-template-columns:350px 1fr;align-items:stretch}}.left-panel,.right-panel{display:flex;flex-direction:column;gap:var(--spacing-xl)}.bottom-row{display:flex;flex-direction:column;gap:var(--spacing-xl);margin-top:var(--spacing-xl)}.bottom-panels{display:grid;grid-template-columns:1fr;gap:var(--spacing-xl)}@media (min-width: 900px){.bottom-panels{grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm) var(--spacing-md);padding:var(--spacing-sm) 2px var(--spacing-md);margin-bottom:var(--spacing-lg);border-bottom:1px solid rgba(255,255,255,.08)}.export-menu{position:relative;display:inline-flex}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.export-menu .menu{position:absolute;right:0;top:calc(100% + 4px);z-index:50;display:flex;flex-direction:column;min-width:168px;background:var(--color-midnight);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden;animation:fade-in-up .15s ease-out forwards}.export-menu .menu button{border:none;border-radius:0;justify-content:flex-start;text-transform:none;letter-spacing:0;width:100%;padding:.6rem .9rem}.export-menu .menu button:hover{background:#00ff9d1a;box-shadow:none;transform:none;color:var(--color-neon-green)}.toolbar .tb-sep{width:1px;align-self:stretch;min-height:20px;background:#ffffff1f;margin:0 2px}.toolbar .tb-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.toolbar .tb-spacer{flex:1 1 auto}.chart-col{min-width:0}.panels-row{display:grid;grid-template-columns:1fr;gap:var(--spacing-xl);margin-top:var(--spacing-xl)}@media (min-width: 1000px){.panels-row{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}}.dropzone,.chart-panel,.panel,.card{background:#ffffff08;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:var(--spacing-lg);position:relative;transition:all var(--transition-base);animation:fade-in-up .5s ease-out forwards}.dropzone:hover,.chart-panel:hover,.panel:hover,.card:hover{border-color:#00ff9d26}.dropzone{border:1px dashed rgba(255,255,255,.2);padding:40px 20px;text-align:center;color:var(--text-muted);cursor:pointer;transition:all var(--transition-base);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:150px}.dropzone:hover,.dropzone.hover{border-color:#00ff9d26;background:#ffffff0d;color:var(--text-main)}.dropzone b{color:var(--color-neon-green);font-weight:500;text-shadow:0 0 10px rgba(0,255,157,.5)}.dz-title{font-size:16px;margin-bottom:8px;font-family:var(--font-heading);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.dz-hint{font-size:13px;opacity:.8;font-family:var(--font-mono)}.chart-panel{margin-top:var(--spacing-xl);padding:var(--spacing-lg);flex:1;display:flex;flex-direction:column}.chart-host{width:100%;flex:1;min-height:300px}.controls{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-top:var(--spacing-md)}button{background:transparent;color:var(--text-muted);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.5rem 1rem;font-size:.8rem;font-family:var(--font-body);font-weight:500;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;justify-content:center}button:hover{border-color:var(--color-neon-green);color:var(--color-neon-green);box-shadow:0 0 10px #00ff9d33;transform:translateY(-1px)}button:active{transform:translateY(0)}button.active{background:#00ff9d1a;border-color:var(--color-neon-green);color:var(--color-neon-green);box-shadow:0 0 10px #00ff9d33}.hint{color:var(--text-muted);font-size:12px;margin-top:16px;text-align:center;opacity:.8;font-family:var(--font-mono)}.placeholder{margin-top:60px;text-align:center;color:var(--text-muted);font-size:15px;font-weight:300}.panel h2{font-size:.9rem;font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.08em;color:var(--text-main);margin:0 0 16px;font-weight:600;display:flex;align-items:center}.panel h2 .count{text-transform:none;letter-spacing:0;color:var(--color-neon-green);font-family:var(--font-mono);font-weight:400;font-size:12px;margin-left:8px;background:#00ff9d1a;padding:2px 8px;border-radius:4px}.meta-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:13px}.meta-row:last-child{border-bottom:none}.meta-row .k{color:var(--text-muted);font-weight:400;text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.meta-row .v{text-align:right;word-break:break-word;font-weight:500;font-family:var(--font-mono);color:var(--text-main)}.warnings{margin-top:16px}.warn{color:var(--color-neon-orange);background:#ffaa001a;border:1px solid rgba(255,170,0,.3);border-radius:var(--radius-md);padding:8px 12px;font-size:12px;margin-top:8px;display:flex;align-items:flex-start;gap:6px}.peaks-table{width:100%;border-collapse:collapse;font-size:13px}.peaks-table th{text-align:left;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;padding:8px;border-bottom:1px solid rgba(255,255,255,.1)}.peaks-table td{padding:8px;border-bottom:1px solid rgba(255,255,255,.05);transition:background .2s ease;font-family:var(--font-mono)}.peaks-table tr:hover td{background:#ffffff08}.peaks-table tr:last-child td{border-bottom:none}.peaks-table .num{text-align:right;font-variant-numeric:tabular-nums}.peaks-table tr.matched td{color:var(--color-neon-green)}.peaks-table tr.matched td:nth-child(2){font-weight:600;text-shadow:0 0 8px var(--accent-glow)}.uplot{position:relative}.uplot,.uplot *,.u-legend{color:var(--text-main);font-family:var(--font-mono)}.u-legend{position:absolute;top:12px;right:12px;background:#0a0f1ef2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);padding:8px 12px;font-size:.75rem;display:flex;flex-direction:column;gap:4px;pointer-events:none;box-shadow:0 8px 24px #0009}.u-legend .u-series{display:flex;align-items:center;justify-content:space-between;gap:16px}.u-legend th{text-align:left;padding:0}.u-legend .u-label{font-weight:600;color:var(--color-neon-green);text-transform:uppercase;font-family:var(--font-heading);font-size:.7rem;letter-spacing:.05em}.u-legend .u-value{font-family:var(--font-mono);color:var(--text-main);text-align:right}.u-legend .u-marker{display:none}.simulator-state-card{background:linear-gradient(135deg,#00142866,#00283c33)}.state-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.state-icon{width:20px;height:20px;color:var(--color-neon-green);filter:drop-shadow(0 0 4px rgba(0,255,157,.5))}.state-title{font-family:var(--font-heading);font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-primary)}.state-accent-line{height:2px;background:linear-gradient(90deg,var(--color-neon-green),transparent);margin-bottom:1rem;border-radius:1px;opacity:.6}.state-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem}.state-item{display:flex;flex-direction:column;gap:.1rem;padding:.35rem .5rem;background:#0003;border-radius:6px;border:1px solid rgba(255,255,255,.05)}.state-label{font-size:.6rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.state-value{font-family:var(--font-mono);font-size:.85rem;color:var(--color-text-primary);font-weight:500}.state-value.active{color:var(--color-neon-green);text-shadow:0 0 6px rgba(0,255,157,.4)}.mode-selector-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg);align-items:start}.control-section{position:relative}.section-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.section-icon{width:18px;height:18px;color:var(--color-neon-green);filter:drop-shadow(0 0 3px rgba(0,255,157,.5))}.section-title{font-family:var(--font-heading);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-primary)}.accent-line{height:2px;background:linear-gradient(90deg,var(--color-neon-green),transparent);margin-bottom:.75rem;border-radius:1px;opacity:.6}.radio-group{display:flex;gap:.5rem}.radio-group.wrap{flex-wrap:wrap}.radio-pill{position:relative;cursor:pointer;transition:all .2s ease}.radio-pill input{position:absolute;opacity:0;pointer-events:none}.pill-label{display:inline-block;padding:.4rem .8rem;background:#0000004d;border:1px solid var(--color-border);border-radius:20px;font-family:var(--font-mono);font-size:.8rem;color:var(--color-text-secondary);transition:all .2s ease}.radio-pill:hover .pill-label{border-color:#00ff9d66;color:var(--color-text-primary);background:#00ff9d0d}.radio-pill.active .pill-label{background:#00ff9d26;border-color:var(--color-neon-green);color:var(--color-neon-green);box-shadow:0 0 12px #00ff9d4d,inset 0 0 8px #00ff9d1a;text-shadow:0 0 8px rgba(0,255,157,.5)}.checkbox-group{display:flex;flex-direction:column;gap:.6rem}.checkbox-toggle{display:flex;align-items:center;gap:.6rem;cursor:pointer;transition:all .2s ease}.checkbox-toggle input{position:absolute;opacity:0;pointer-events:none}.toggle-track{position:relative;width:36px;height:20px;background:#0006;border:1px solid var(--color-border);border-radius:10px;transition:all .2s ease;flex-shrink:0}.toggle-thumb{position:absolute;top:1px;left:2px;width:16px;height:16px;background:var(--color-text-secondary);border-radius:50%;transition:all .2s ease}.checkbox-toggle:hover .toggle-track{border-color:#00ff9d66}.checkbox-toggle:focus-within .toggle-track{outline:2px solid var(--color-neon-green);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.checkbox-toggle.checked .toggle-track{background:#00ff9d33;border-color:var(--color-neon-green);box-shadow:0 0 10px #00ff9d4d}.checkbox-toggle.checked .toggle-thumb{left:16px;background:var(--color-neon-green);box-shadow:0 0 8px #00ff9d99}.toggle-label{font-size:.85rem;color:var(--color-text-secondary);transition:color .2s ease}.checkbox-toggle:hover .toggle-label{color:var(--color-text-primary)}.checkbox-toggle.checked .toggle-label{color:var(--color-neon-green);text-shadow:0 0 6px rgba(0,255,157,.3)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}.footer{margin-top:5rem;border-top:1px solid rgba(255,255,255,.05);padding:3rem 1.5rem}.footer-content{max-width:1400px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1rem}.footer-brand{display:flex;align-items:center;gap:.75rem}.footer-logo{font-size:1.25rem;font-weight:700;color:#fff;letter-spacing:-.05em}.footer-logo .highlight{color:var(--color-neon-green)}.footer-copyright{color:var(--color-text-secondary);font-size:.75rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.2em;text-align:center;line-height:1.6}.footer-link{color:inherit;text-decoration:none;transition:color .2s ease}.footer-link:hover{color:var(--color-neon-green)}.footer-icons{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.footer-icon-link{padding:.5rem;border-radius:9999px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--color-text-secondary);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.footer-icon-link:hover{color:var(--color-neon-green);border-color:#00ff9d4d}.footer-icon-link svg{transition:transform .2s ease}.footer-icon-link:hover svg{transform:scale(1.1)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);animation:fade-in-up .3s ease-out forwards}.modal-content{background:var(--color-midnight);border:1px solid var(--border-color);max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column;position:relative;padding:0}.modal-close{position:absolute;top:10px;right:10px;background:transparent;border:none;font-size:24px;color:var(--text-muted);cursor:pointer;padding:5px 10px;line-height:1}.modal-close:hover{color:var(--color-neon-pink);transform:none;box-shadow:none}.modal-content h2{padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-md);margin:0;border-bottom:1px solid var(--border-color);font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.05em;font-size:1.25rem}.modal-body{padding:var(--spacing-lg);overflow-y:auto}.text-content h3{color:var(--color-neon-green);font-family:var(--font-heading);text-transform:uppercase;font-size:1rem;margin-top:var(--spacing-lg);margin-bottom:var(--spacing-sm)}.text-content h3:first-child{margin-top:0}.text-content h4{color:var(--text-main);font-size:.9rem;margin-top:var(--spacing-md);margin-bottom:var(--spacing-sm)}.text-content p,.text-content ul{color:var(--text-muted);line-height:1.6;margin-bottom:var(--spacing-md)}.text-content ul{padding-left:20px}.text-content li{margin-bottom:8px}.text-content strong{color:var(--text-main)}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}
