:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}#root{width:100%;height:100vh;display:flex;flex-direction:column}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}button{background-color:#f9f9f9}}.app-container{display:flex;flex-direction:column;height:100vh;width:100%}.app-header{background-color:#1a1a1a;padding:1rem 2rem;border-bottom:1px solid #333;display:flex;align-items:center}.logo{display:flex;align-items:center;gap:.75rem;color:#646cff}.logo h1{font-size:1.25rem;font-weight:600;margin:0;color:#fff}.app-main-with-sidebar{flex:1;display:flex;overflow:hidden}.app-main-full{flex:1;display:flex;overflow:hidden;height:100vh}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.tabs{display:flex;background-color:#252526;border-bottom:1px solid #333;padding:0 .5rem}.tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:none;border:none;border-bottom:2px solid transparent;color:#888;cursor:pointer;font-size:.9rem;transition:all .2s}.tab:hover{color:#fff;background-color:#2a2a2a}.tab.active{color:#646cff;border-bottom-color:#646cff}.tab-content{flex:1;display:flex;flex-direction:column;padding:1rem;gap:1rem;overflow:hidden}.tab-content-full{flex:1;overflow:hidden}.app-main{flex:1;display:flex;flex-direction:column;padding:1rem;gap:1rem;overflow:hidden}.editor-section{flex:1;display:flex;flex-direction:column;background:#1e1e1e;border-radius:8px;border:1px solid #333;overflow:hidden}.toolbar{padding:.5rem;background:#252526;border-bottom:1px solid #333;display:flex;justify-content:flex-end}.run-btn{display:flex;align-items:center;gap:.5rem;background-color:#2ea043;color:#fff;border:none;padding:.4rem 1rem;font-size:.9rem}.run-btn:hover{background-color:#3fb950}.run-btn:disabled{background-color:#238636;opacity:.7;cursor:not-allowed}.results-section{flex:1;background:#1e1e1e;border-radius:8px;border:1px solid #333;overflow:hidden;display:flex;flex-direction:column}.breadcrumbs{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:#1e1e1e;border-bottom:1px solid #333;font-size:.85rem;color:#888}.breadcrumb-item{display:flex;align-items:center;gap:.4rem}.breadcrumb-item.active{color:#fff;font-weight:500}.breadcrumb-separator{color:#444}.breadcrumb-link{cursor:pointer;transition:color .2s}.breadcrumb-link:hover{color:#646cff}.sub-tabs{display:flex;background-color:#1e1e1e;border-bottom:1px solid #333;padding:0 1rem}.sub-tab{padding:.6rem 1rem;background:none;border:none;color:#888;cursor:pointer;font-size:.8rem;border-bottom:2px solid transparent;transition:all .2s}.sub-tab:hover{color:#fff}.sub-tab.active{color:#646cff;border-bottom-color:#646cff}.data-table{width:100%;border-collapse:collapse;font-size:.85rem}.data-table th{background-color:#252526;padding:.6rem .5rem;text-align:left;border-bottom:1px solid #333;color:#888;font-weight:500}.data-table td{padding:.6rem .5rem;border-bottom:1px solid #2a2a2a}.data-table tr:hover{background-color:#2a2a2a}.sidebar-action-link{transition:all .2s;border-radius:4px}.sidebar-action-link:hover,.sidebar-sub-item:hover{background-color:#2a2a2a;color:#fff!important}.speed-test-container{height:100%;background:linear-gradient(135deg,#0f0f0f,#1a1a2e,#16213e);padding:1rem;overflow-y:auto}.speed-test-header{text-align:center;margin-bottom:2rem}.speed-test-header .header-icon{color:#646cff;margin-bottom:.5rem}.speed-test-header h2{font-size:1.75rem;font-weight:700;background:linear-gradient(90deg,#646cff,#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0}.speed-test-header .subtitle{color:#888;font-size:.9rem;margin-top:.25rem}.speed-test-content{display:grid;grid-template-columns:1fr 1fr;gap:2rem;max-width:1200px;margin:0 auto}.speed-test-layout{display:flex;flex:1;gap:0;height:calc(100vh - 300px)}.speed-test-layout.logs-open .main-panel,.speed-test-layout.logs-closed .main-panel{flex:1}.main-panel{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:2rem}.logs-panel{background:#0006;border-left:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;transition:width .3s ease;position:relative}.logs-panel.open{width:350px;padding:1rem}.logs-panel.closed{width:48px}.logs-toggle{position:absolute;top:1rem;left:.75rem;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#666;padding:.5rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:10;outline:none;display:flex;align-items:center;justify-content:center}.logs-toggle:hover{background:#ffffff14;color:#fff;border-color:#fff3;transform:scale(1.05)}.logs-toggle:active{transform:scale(.95)}.logs-panel.closed .logs-toggle{left:50%;transform:translate(-50%)}.logs-panel.closed .logs-toggle:hover{transform:translate(-50%) scale(1.05)}.logs-panel.closed .logs-toggle:active{transform:translate(-50%) scale(.95)}.logs-panel h3{margin:0 0 1rem 2.5rem;font-size:.9rem;color:#888;text-transform:uppercase;letter-spacing:.05em}.logs-panel .logs-container{flex:1;background:#0a0a0a;border-radius:8px;padding:.75rem;overflow-y:auto;font-family:Fira Code,Consolas,monospace;font-size:.75rem}.results-display{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem;animation:fadeIn .5s ease-out}.results-badge{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;padding:.5rem 1.5rem;border-radius:20px;font-size:.9rem;font-weight:600;margin-bottom:2rem}.results-main-stat{margin-bottom:2.5rem}.results-value{display:block;font-size:5rem;font-weight:800;background:linear-gradient(135deg,#646cff,#a855f7,#22c55e);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}.results-unit{display:block;font-size:1.5rem;color:#888;margin-top:.5rem}.results-duration{display:block;font-size:1rem;color:#666;margin-top:.25rem}.results-secondary{display:flex;gap:3rem;margin-bottom:.5rem}.secondary-stat{display:flex;flex-direction:column;align-items:center;gap:.5rem}.secondary-label{font-size:.85rem;color:#888}.secondary-value{font-size:1.5rem;font-weight:700;color:#fff}.restart-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 2rem;background:linear-gradient(135deg,#646cff,#a855f7);border:none;border-radius:12px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.restart-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #646cff66}.control-row{display:flex;align-items:flex-end;gap:1.5rem}.control-row .control-group{margin-bottom:0}.control-row .flex-1{flex:1}.control-row .start-btn{width:auto;padding:.75rem 2rem;white-space:nowrap}.speed-test-header{position:relative;text-align:center;margin-bottom:2rem;padding-top:1rem}.header-title-container{display:flex;align-items:center;justify-content:center;gap:.75rem}.back-btn{position:absolute;left:1rem;display:flex;align-items:center;gap:.5rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#aaa;padding:.5rem 1rem;font-size:.85rem;cursor:pointer;transition:all .2s}.back-btn:hover{background:#ffffff1a;color:#fff;border-color:#fff3}.rotate-180{transform:rotate(180deg)}.speedometer-panel{display:flex;flex-direction:column;align-items:center;gap:1.5rem;margin-top:40px}.speedometer{position:relative;width:320px;height:200px}.speedometer-track{position:relative;width:100%;height:80%}.gauge-svg{width:100%;height:100%}.gauge-progress{transition:stroke-dasharray .15s ease-out}.speedometer-needle{position:absolute;bottom:20px;left:50%;width:4px;height:70px;background:linear-gradient(to top,#f44,#f66);border-radius:2px;transform-origin:bottom center;transition:transform .15s ease-out;box-shadow:0 0 10px #ff444480}.speedometer-center{position:absolute;bottom:10px;left:50%;transform:translate(-50%);width:20px;height:20px;background:linear-gradient(135deg,#444,#222);border-radius:50%;border:2px solid #666}.speedometer-value{text-align:center;margin-top:20px}.speedometer-value .value{font-size:3rem;font-weight:700;background:linear-gradient(90deg,#22c55e,#eab308,#ef4444);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.speedometer-value .unit{display:block;font-size:.9rem;color:#888;margin-top:-.5rem}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;width:100%;max-width:500px;margin-top:6rem}.stat-card{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1rem;display:flex;align-items:center;gap:.75rem}.stat-icon{padding:.5rem;border-radius:8px}.stat-icon.peak{background:#eab30833;color:#eab308}.stat-icon.total{background:#22c55e33;color:#22c55e}.stat-icon.time{background:#646cff33;color:#646cff}.stat-content{display:flex;flex-direction:column;white-space:nowrap}.stat-label{font-size:.75rem;color:#888}.stat-value{font-size:1rem;font-weight:600;color:#fff}.controls-panel{display:flex;flex-direction:column;gap:1.5rem}.control-card{background:#ffffff08;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:1.5rem;width:100%;max-width:800px}.mode-select{padding:.6rem 1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:.9rem;cursor:pointer;transition:all .2s;min-width:180px;outline:none}.mode-select:hover:not(:disabled){background:#646cff33;border-color:#646cff4d}.mode-select:focus{border-color:#646cff;box-shadow:0 0 0 2px #646cff33}.mode-select:disabled{opacity:.5;cursor:not-allowed}.mode-select option{background:#1a1a2e;color:#fff}.control-card h3{font-size:1rem;font-weight:600;color:#fff;margin:0 0 1rem;display:flex;align-items:center;gap:.5rem}.control-group{margin-bottom:0}.control-group label{display:block;font-size:.85rem;color:#aaa;margin-bottom:.5rem}.duration-buttons{display:flex;gap:.5rem}.duration-btn{padding:.6rem 1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#aaa;font-size:.9rem;cursor:pointer;transition:all .2s}.duration-btn:hover:not(:disabled){background:#646cff33;border-color:#646cff4d;color:#fff}.duration-btn.active{background:linear-gradient(135deg,#646cff,#a855f7);border-color:transparent;color:#fff;box-shadow:0 4px 15px #646cff4d}.duration-btn:disabled{opacity:.5;cursor:not-allowed}.slider{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(90deg,#22c55e,#eab308,#ef4444);border-radius:3px;outline:none}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;background:#fff;border-radius:50%;cursor:pointer;box-shadow:0 2px 8px #0000004d}.slider:disabled{opacity:.5}.start-btn{padding:1rem 2rem;background:linear-gradient(135deg,#22c55e,#16a34a);border:none;border-radius:12px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s;box-shadow:0 4px 15px #22c55e4d}.start-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #22c55e66}.start-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.start-btn.running{background:linear-gradient(135deg,#eab308,#ca8a04);box-shadow:0 4px 15px #eab3084d}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.logs-empty{color:#555;font-style:italic}.log-entry{color:#22c55e;padding:.2rem 0;border-bottom:1px solid rgba(255,255,255,.03)}.log-entry:last-child{border-bottom:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.header-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:linear-gradient(135deg,#646cff,#a855f7);border:none;border-radius:8px;color:#fff;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;margin-left:auto}.header-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #646cff66}.header-btn.active{box-shadow:0 0 20px #646cff99}
