:root{--bg-color: hsl(220, 20%, 5%);--card-bg: hsla(220, 20%, 10%, .8);--accent-primary: hsl(200, 100%, 60%);--accent-secondary: hsl(280, 80%, 60%);--text-primary: hsl(0, 0%, 95%);--text-secondary: hsl(220, 10%, 70%);--glass-border: hsla(0, 0%, 100%, .1);--glow: hsla(200, 100%, 60%, .15);--danger: hsl(0, 80%, 65%)}*{margin:0;padding:0;box-sizing:border-box}body{background-color:var(--bg-color);color:var(--text-primary);font-family:Inter,sans-serif;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}header{padding:1.25rem 2rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--glass-border);margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}h1{font-family:Outfit,sans-serif;font-size:1.8rem;font-weight:400;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.01em}.auth-controls{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.key-wrap{position:relative}.auth-controls input[type=password]{background:#ffffff0d;border:1px solid var(--glass-border);border-radius:8px;padding:.7rem 1rem;color:#fff;width:190px;outline:none;transition:border-color .2s,box-shadow .2s;font-family:Inter,sans-serif;font-size:.9rem}.auth-controls input[type=password]:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #33bbff26}.auth-controls input.shake{animation:shake .35s ease;border-color:var(--danger)}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.btn{border:none;padding:.7rem 1.25rem;border-radius:8px;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s;font-family:Inter,sans-serif;font-size:.9rem;white-space:nowrap}.btn:hover{opacity:.88}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn svg{vertical-align:-.15em;margin-right:.35em;flex-shrink:0}.btn-primary{background:var(--accent-primary);color:var(--bg-color)}.btn-secondary{background:#ffffff14;color:var(--text-primary);border:1px solid var(--glass-border)}.sci-exp{font-size:.95em;font-family:Inter,sans-serif;font-weight:400;color:var(--text-secondary);vertical-align:baseline;margin-left:.05em}.sci-exp sup{font-size:.85em;vertical-align:super}.split-btn-wrap{position:relative;display:flex;border-radius:8px;overflow:visible}.split-left{border-radius:8px 0 0 8px;border-right:1px solid hsla(0,0%,0%,.25)!important;flex:1;background:#ffffff14;color:var(--text-primary);border:1px solid var(--glass-border);min-width:128px;text-align:left}.split-arrow{border-radius:0 8px 8px 0;padding:.7rem .65rem;background:#ffffff14;color:var(--text-secondary);border:1px solid var(--glass-border);border-left:none;font-size:.75rem;line-height:1}.split-btn-wrap.active .split-left{background:#33bbff26;border-color:#33bbff59;color:var(--accent-primary)}.split-btn-wrap.active .split-arrow{background:#33bbff1a;border-color:#33bbff59;border-left:none;color:var(--accent-primary)}.split-dropdown{display:none;position:absolute;top:calc(100% + 6px);right:0;min-width:150px;background:#1a1f28;border:1px solid var(--glass-border);border-radius:10px;overflow:hidden;z-index:200;box-shadow:0 12px 32px #00000080}.split-dropdown.open{display:block}.dropdown-item{padding:.55rem 1rem;cursor:pointer;font-size:.85rem;font-family:Inter,sans-serif;color:var(--text-secondary);transition:background .12s,color .12s;-webkit-user-select:none;user-select:none}.dropdown-item:hover{background:#ffffff0f;color:var(--text-primary)}.dropdown-item.selected{color:var(--accent-primary);font-weight:600}.dropdown-item.selected:before{content:"✓ "}.btn-test{background:#ffc61a1a;color:#ffd24d;border:1px solid hsla(45,100%,55%,.25);font-size:.85rem;padding:.7rem 1rem;display:flex;align-items:center;gap:.4rem}.btn-test:hover{background:#ffc61a2e;opacity:1}.btn-test.active{background:#ffc61a38;color:#ffdb70;border-color:#ffc61a80;box-shadow:0 0 12px #ffc61a26}.test-mode-banner{background:#ffc61a14;border-bottom:1px solid hsla(45,100%,55%,.25);padding:.45rem 2rem;font-size:.78rem;font-family:Outfit,sans-serif;color:#ffd24d;letter-spacing:.05em;display:flex;align-items:center;gap:.5rem}.header-right{display:flex;align-items:center;gap:.75rem}.status-block{display:flex;flex-direction:column;gap:.15rem;padding-left:.75rem;border-left:1px solid var(--glass-border)}.fetch-status,.auto-status{font-size:.75rem;color:var(--text-secondary);font-family:Outfit,sans-serif;white-space:nowrap}.auto-status.running{color:#4fe830}main{flex:1;padding:0 2rem 2rem;max-width:1400px;width:100%;margin:0 auto}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;margin-top:1.5rem}.card{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:.75rem;padding:1rem;box-shadow:0 10px 30px #0000004d;transition:box-shadow .3s ease,border-color .3s ease;display:flex;flex-direction:column;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));opacity:0;transition:opacity .3s ease}.card:hover{box-shadow:0 25px 50px #0006,0 0 20px var(--glow);border-color:#3bf3}.card:hover:before{opacity:1}.card-header{margin-bottom:.75rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px dashed hsla(0,0%,100%,.1);padding-bottom:.5rem}.card-title{font-size:1rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em}.card-content{display:flex;flex-direction:column;gap:.75rem;flex:1}.data-val{font-size:2.2rem;font-weight:400;font-family:Outfit,sans-serif;color:var(--accent-primary);line-height:1.1}.data-label{font-size:.9rem;color:var(--text-secondary);margin-top:.25rem}.secondary-stats{display:flex;flex-direction:column;gap:.5rem;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--glass-border)}.stat-row{display:flex;justify-content:space-between;font-size:.9rem}.stat-row .label{color:var(--text-secondary)}.label-with-tooltip{position:relative;border-bottom:1px dashed hsla(0,0%,100%,.2);cursor:default}.label-tooltip{position:absolute;bottom:calc(100% + 12px);left:0;width:200px;background:#1d2330fa;border:1px solid var(--glass-border);padding:8px 12px;border-radius:8px;font-size:.72rem;color:var(--text-primary);pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s;z-index:500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 24px #00000080;line-height:1.4;text-align:left}.label-with-tooltip:hover .label-tooltip{opacity:1;visibility:visible}.stat-row .value{font-weight:500;color:var(--text-primary)}.warning-text{color:var(--danger)!important;font-weight:400!important;font-size:.82rem;margin-top:.75rem;padding:.75rem;background:#ed5e5e1a;border-radius:8px;border:1px solid hsla(0,80%,65%,.3)}.updated-ago{position:absolute;top:1.25rem;right:1.25rem;font-size:.75rem;color:var(--text-secondary)}.chart-section{margin-top:.5rem;border-top:1px solid var(--glass-border);padding-top:.5rem}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}.chart-label{font-size:.7rem;color:var(--text-secondary);font-family:Outfit,sans-serif;text-transform:uppercase;letter-spacing:.08em}.seg-control{display:flex;border-radius:6px;border:1px solid hsla(0,0%,100%,.1);overflow:hidden}.seg-btn{flex:1;padding:.18rem .55rem;font-size:.65rem;font-family:Outfit,sans-serif;background:transparent;color:var(--text-secondary);border:none;border-right:1px solid hsla(0,0%,100%,.08);cursor:pointer;transition:background .12s,color .12s;-webkit-user-select:none;user-select:none;white-space:nowrap}.seg-btn:last-child{border-right:none}.seg-btn:hover{background:#ffffff17;color:var(--text-primary)}.seg-btn.active{background:#33bbff2e;color:var(--accent-primary);font-weight:600}.chart-header-controls{display:flex;align-items:center;gap:.4rem}.export-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.17rem .45rem;font-size:.62rem;font-family:Outfit,sans-serif;font-weight:600;color:var(--text-secondary);background:transparent;border:1px solid hsla(0,0%,100%,.1);border-radius:5px;cursor:pointer;transition:color .12s,border-color .12s,background .12s;white-space:nowrap;letter-spacing:.04em}.export-btn:hover:not(:disabled){color:var(--accent-primary);border-color:#33bbff59;background:#33bbff12}.export-btn:disabled{opacity:.3;cursor:not-allowed}.chart-wrap{position:relative;min-height:250px}.chart-wrap .uplot,.chart-wrap canvas{width:100%!important}.chart-wrap .u-cursor-x{border-left:1px solid hsla(0,0%,100%,.28)!important}.chart-wrap .u-cursor-y,.chart-wrap .u-cursor-pt{display:none!important}.chart-tooltip{position:absolute;z-index:120;pointer-events:none;background:#171c26eb;border:1px solid hsla(0,0%,100%,.12);border-radius:7px;padding:5px 9px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 18px #00000073;white-space:nowrap}.chart-tooltip .tt-time{font-size:.63rem;color:var(--text-secondary);font-family:Outfit,sans-serif}.chart-tooltip .tt-val{font-size:.75rem;color:var(--text-primary);font-weight:600;margin-top:2px;font-family:Outfit,sans-serif}.chart-tooltip .tt-extra{font-size:.63rem;color:var(--text-secondary);margin-top:1px;font-family:Outfit,sans-serif}.chart-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--text-secondary);font-family:Outfit,sans-serif;pointer-events:none}.chart-nodata{display:flex;align-items:center;justify-content:center;height:240px;font-size:.7rem;color:var(--text-secondary);font-family:Outfit,sans-serif;border:1px dashed hsla(0,0%,100%,.08);border-radius:6px}.chart-none{display:flex;align-items:center;justify-content:center;height:36px;font-size:.72rem;color:#ffffff38;letter-spacing:.06em;font-family:Outfit,sans-serif;text-transform:uppercase}.uplot{background:transparent!important}footer{padding:2rem;text-align:center;color:var(--text-secondary);font-size:.85rem;border-top:1px solid var(--glass-border);margin-top:auto}
