@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap";:root{font-family:Space Grotesk,system-ui,sans-serif;line-height:1.5;font-weight:400;--bg-deep: #000000;--bg-base: #191c3b;--bg-panel: #0d0f22;--border: #383b8e;--accent-g: #96c562;--accent-c: #96d3df;--accent-b: #383b8e;--white: #ffffff;color-scheme:dark;color:var(--white);background-color:var(--bg-deep);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{min-width:320px;min-height:100vh;background:var(--bg-deep);display:flex;align-items:flex-start;justify-content:center}#root{width:100%;display:flex;justify-content:center}.re-phone{width:100%;max-width:800px;margin:0 auto;background:var(--bg-base);font-family:Space Grotesk,sans-serif;color:var(--white);overflow:hidden;min-height:100vh;position:relative;box-shadow:0 0 20px #00000080}.re-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg-panel);border-bottom:1px solid var(--border);gap:8px}.re-title{font-size:20px;font-weight:700;letter-spacing:.08em;color:var(--accent-g);line-height:1.2;flex:1;min-width:0}.re-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.re-elapsed{font-size:20px;font-weight:700;color:var(--accent-c);letter-spacing:.06em}.re-lang-btn{font-family:Space Grotesk,sans-serif;font-size:16px;font-weight:700;letter-spacing:.16em;color:var(--accent-c);background:transparent;border:1.5px solid var(--border);padding:4px 8px;cursor:pointer;opacity:.6;transition:opacity .15s,background .15s;border-radius:3px}.re-lang-btn:hover{opacity:1;background:#383b8e22}.re-section{padding:13px 15px;border-top:1px solid var(--border)}.re-badge{display:inline-block;font-size:16px;font-weight:700;letter-spacing:.18em;padding:3px 10px;margin-bottom:10px}.re-status-text{font-size:16px;line-height:1.78;color:var(--accent-c);letter-spacing:.02em}.re-btn{display:block;width:calc(100% - 30px);margin:13px 15px;padding:13px;border:1.5px solid var(--border);background:var(--bg-panel);color:var(--accent-c);font-family:Space Grotesk,sans-serif;font-size:18px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;text-align:center;transition:background .18s,border-color .18s;border-radius:2px}.re-btn:hover{background:#383b8e22}.re-scenario-btn{flex:1;font-family:Space Grotesk,sans-serif;font-size:16px;font-weight:700;padding:12px 6px;background:transparent;border:1.5px solid var(--border);color:var(--accent-c);cursor:pointer;border-radius:2px;line-height:1.2}.re-scenario-btn:hover{opacity:1;background:#32359222}.re-data-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border)}.re-data-cell{padding:11px 14px;background:var(--bg-panel)}.re-data-cell:nth-child(odd){border-right:1px solid var(--border)}.re-data-cell:nth-child(1),.re-data-cell:nth-child(2){border-bottom:1px solid var(--border)}.re-data-label{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--accent-c);opacity:.5;margin-bottom:4px;font-weight:700}.re-data-value{font-size:22px;font-weight:700;color:var(--white);font-variant-numeric:tabular-nums}.re-data-unit{font-size:17px;color:var(--accent-c);opacity:.4;margin-top:2px}.re-equation{padding:11px 14px;background:var(--bg-panel);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;border-top:1px solid var(--border)}.re-eq-item{font-size:28px;text-align:center;line-height:1.4}.re-eq-item small{display:block;font-size:20px;opacity:.6;letter-spacing:.1em;text-transform:uppercase}.re-eq-chem{font-weight:700;font-size:30px}.re-eq-op{font-size:32px;font-weight:700;opacity:1;color:var(--white);padding:0 4px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-b)}.re-controls{display:flex;flex-direction:column;gap:12px}.re-ctrl-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.re-ctrl-label{font-size:16px;font-weight:700;letter-spacing:.16em;color:var(--accent-c);opacity:.45;text-transform:uppercase}.re-mode-toggle{display:flex;gap:4px}.re-mode-btn{font-family:Space Grotesk,sans-serif;font-size:16px;font-weight:700;letter-spacing:.14em;padding:5px 10px;background:transparent;border:1px solid var(--border);color:var(--accent-c);cursor:pointer;opacity:.5;transition:opacity .15s,background .15s,border-color .15s;border-radius:2px}.re-mode-btn.active,.re-mode-btn:hover:not(:disabled){opacity:1;background:#383b8e44;border-color:var(--accent-c)}.re-mode-btn:disabled{opacity:.25;cursor:not-allowed}.re-warn{font-size:17px;color:#f08332;letter-spacing:.08em;padding:5px 0}.re-slider-block{display:flex;flex-direction:column;gap:4px}.re-slider-label{font-size:17px;color:var(--accent-c);letter-spacing:.08em;text-transform:uppercase;opacity:.6}.re-slider-label strong{color:var(--white);opacity:1}.re-slider{width:100%;height:3px;border-radius:2px;background:linear-gradient(to right,var(--border),var(--accent-c));outline:none;-webkit-appearance:none;cursor:pointer}.re-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent-c);cursor:pointer;box-shadow:0 0 6px var(--accent-c);transition:transform .15s}.re-slider::-webkit-slider-thumb:hover{transform:scale(1.25)}.re-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent-c);border:none;cursor:pointer}.re-slider-ends{display:flex;justify-content:space-between;font-size:16px;color:var(--accent-c);opacity:.35}.re-config-view{min-height:100vh}.re-back-btn{font-family:Space Grotesk,sans-serif;font-size:17px;font-weight:700;letter-spacing:.16em;color:var(--accent-c);background:transparent;border:none;cursor:pointer;opacity:.6;transition:opacity .15s;padding:0}.re-back-btn:hover{opacity:1}.re-header-tag{font-size:17px;font-weight:700;letter-spacing:.18em;color:var(--border)}.re-canvas-heading{padding:10px 15px 6px;background:var(--bg-panel);border-top:1px solid var(--border)}.re-canvas-heading h2{font-size:20px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;margin:0}.re-scenario-selector{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--bg-panel);border-bottom:1px solid var(--border)}.re-scenario-nav-btn{background:transparent;border:none;color:var(--accent-c);font-size:28px;font-family:Space Grotesk,sans-serif;cursor:pointer;padding:10px 20px;opacity:.6;transition:opacity .2s,transform .2s}.re-scenario-nav-btn:hover{opacity:1;transform:scale(1.2)}.re-scenario-current{flex:1;text-align:center}.re-scenario-label{font-size:20px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.re-section.re-section-no-border{border-top:none}.re-status-values{font-size:24px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.data-management{max-width:800px;margin:0 auto;padding:2rem}.data-management h2{font-size:2rem;margin-bottom:2rem;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.settings-section{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:2rem;margin-bottom:2rem}.settings-section h3{font-size:1.3rem;margin-bottom:1rem;color:#e0e0e0}.section-description{color:#999;margin-bottom:1.5rem;font-size:.95rem}.serial-status{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.status-indicator{padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:500}.status-indicator.connected{background:#2ed57333;border:1px solid rgba(46,213,115,.5);color:#2ed573}.status-indicator.disconnected{background:#ff475733;border:1px solid rgba(255,71,87,.5);color:#ff4757}.mock-warning{padding:.5rem 1rem;border-radius:20px;background:#ff9f4333;border:1px solid rgba(255,159,67,.5);color:#ff9f43;font-size:.9rem;font-weight:500}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#ccc;font-weight:500}.input-field{width:100%;padding:.75rem 1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:1rem;transition:all .3s ease}.input-field:focus{outline:none;border-color:#667eea;background:#ffffff14}.input-field:hover{border-color:#fff3}.btn-primary{padding:.75rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.upload-zone{margin-bottom:1.5rem}.file-input{display:none}.upload-label{display:inline-block;padding:.75rem 2rem;background:linear-gradient(135deg,#48dbfb,#0abde3);color:#fff;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.upload-label:hover{transform:translateY(-2px);box-shadow:0 8px 20px #48dbfb66}.upload-result{padding:1rem;background:#2ed5731a;border:1px solid rgba(46,213,115,.3);border-radius:8px;margin-top:1rem}.upload-result p{margin:.5rem 0;color:#2ed573}.file-list{margin-top:1.5rem}.file-list h4{color:#ccc;margin-bottom:1rem;font-size:1rem}.file-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:8px;margin-bottom:.5rem}.file-name{color:#e0e0e0;font-size:.95rem}.file-size{color:#999;font-size:.85rem}.notification{position:fixed;top:2rem;right:2rem;padding:1rem 1.5rem;border-radius:8px;font-weight:500;z-index:1000;animation:slideIn .3s ease;max-width:400px}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.notification.success{background:#2ed57333;border:1px solid rgba(46,213,115,.5);color:#2ed573}.notification.error{background:#ff475733;border:1px solid rgba(255,71,87,.5);color:#ff4757}@media(max-width:768px){.data-management{padding:1rem}.settings-section{padding:1.5rem}.notification{top:1rem;right:1rem;left:1rem;max-width:none}}
