:root{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Code", "SFMono-Regular", Menlo, monospace;font-family:var(--font-sans);color:#e5eaf2;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg-0:#060812;--bg-1:#040610;--panel:#0a0e1a8c;--stroke:#ffffff14;--stroke-2:#ffffff1f;--text:#ebf4ffeb;--muted:#aabedcc7;--accent-blue:#3c83f6;--accent-blue-hover:#1f71f4;--accent:#3c83f6;--accent-violet:#a78bfa;--success:#22c55e;--warn:#f59e0b;background:#0b0f16;font-weight:400}*{box-sizing:border-box}body{min-height:100vh;font-family:var(--font-sans);background:radial-gradient(820px 460px at 50% -140px, #4f7cff24, transparent 62%), radial-gradient(720px 420px at 86% 18%, #a78bfa1a, transparent 62%), radial-gradient(640px 420px at 16% 78%, #38bdf80f, transparent 64%), linear-gradient(180deg, var(--bg-0) 0%, var(--bg-1) 55%, #03040a 100%);margin:0;font-weight:400}#app,.app-shell{position:relative}.app-shell:after{content:"";pointer-events:none;z-index:1;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.85'/%3E%3C/svg%3E");background-size:220px 220px;position:fixed;inset:0}.dashboard-layout:before,.dashboard-layout:after{content:"";pointer-events:none;z-index:0;opacity:.55;position:fixed;inset:0}.dashboard-layout:before{background:radial-gradient(560px 320px at 62% 18%,#38bdf80f,#0000 62%),radial-gradient(520px 300px at 22% 76%,#a78bfa0d,#0000 64%);animation:18s ease-in-out infinite accentsFloat}.dashboard-layout:after{background:radial-gradient(520px 320px at 86% 82%,#fbbf2409,#0000 62%);animation:22s ease-in-out infinite reverse accentsFloat}@keyframes accentsFloat{0%,to{transform:translate(0,0)}50%{transform:translateY(-12px)}}.sidebar,.card{background:linear-gradient(165deg,#0a101c9e,#060a12bd);transition:transform .22s,border-color .22s,box-shadow .22s,background .22s;box-shadow:0 16px 40px #00000073,inset 0 1px #ffffff14}.sidebar:hover{border-color:#b0cdf142}button,input,select,textarea{font:inherit;font-family:inherit}#app,.app-shell{min-height:100vh}h1,h2,h3,h4,h5,p{margin:0}h1,h2,h3,h4,h5{font-family:var(--font-sans);font-weight:500}.muted{color:var(--muted)}.primary-btn,.ghost-btn,.tab-btn,input{color:#d9e9ff;border:1px solid #adceef24;border-radius:12px;font-size:13px}.ghost-btn{background:#ffffff08;box-shadow:0 10px 20px #00000047,inset 0 1px #ffffff14}.primary-btn{background:var(--accent-blue);color:#fff;font-family:var(--font-sans);letter-spacing:.02em;border:1px solid #ffffff38;font-weight:500;box-shadow:0 10px 22px #0f50c847}button.primary-btn,button.ghost-btn,button.tab-btn,button.menu-item,button.auth-submit,button.range-btn,button.captcha-refresh{cursor:pointer;transition:transform .24s cubic-bezier(.22,1,.36,1),box-shadow .24s,border-color .24s,filter .24s,background .24s,color .2s}button.primary-btn:hover:not(:disabled){background:var(--accent-blue-hover);transform:translateY(-1px);box-shadow:0 14px 28px #0f50c85c}button.primary-btn:active:not(:disabled){filter:brightness(.96);transform:translateY(0)scale(.99)}button.ghost-btn:hover:not(:disabled){background:#ffffff12;border-color:#adceef61;transform:translateY(-1px);box-shadow:0 16px 32px #00000061,inset 0 1px #ffffff1f,0 0 24px #4f7cff1f}button.ghost-btn:active:not(:disabled){transform:translateY(0)scale(.99)}button.tab-btn:hover:not(.active):not(:disabled){background:#ffffff0f;border-color:#adceef47;transform:translateY(-1px);box-shadow:0 12px 22px #00000047}button.auth-submit.ghost-btn:hover:not(:disabled){box-shadow:0 16px 34px #4f7cff2e,inset 0 1px #ffffff1a}button:disabled{opacity:.52;cursor:not-allowed;filter:none!important;box-shadow:none!important;transform:none!important}.compact{padding:8px 12px;font-size:12px}.auth-layout{place-items:center;min-height:100vh;padding:24px;display:grid;position:relative;overflow:hidden}.lava-bg{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.lava{filter:blur(100px);opacity:.34;border-radius:50%;position:absolute;transform:translate(0,0)}.lava-1{background:radial-gradient(circle,#708bbb75 0%,#364a6d0d 72%);width:560px;height:560px;animation:19s ease-in-out infinite lavaFlowA;top:-200px;left:-120px}.lava-2{background:radial-gradient(circle,#607fb05c 0%,#2c3d5e0d 74%);width:520px;height:520px;animation:23s ease-in-out infinite lavaFlowB;top:22%;right:-160px}.lava-3{background:radial-gradient(circle,#546c9652 0%,#26324c0a 70%);width:620px;height:620px;animation:25s ease-in-out infinite lavaFlowC;bottom:-300px;left:22%}@keyframes lavaFlowA{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(130px,80px)scale(1.1)}}@keyframes lavaFlowB{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(-120px,-60px)scale(1.08)}}@keyframes lavaFlowC{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(-90px,-120px)scale(1.06)}}.auth-center{z-index:2;place-items:center;width:min(760px,100%);height:min(620px,100vh - 48px);display:grid;position:relative}.auth-card{width:min(460px,100%);box-shadow:none;color:#ffffffeb;background:0 0;border:none;padding:24px}.auth-brand{place-items:center;margin-bottom:16px;display:grid}.storm-logo{color:#d8e7ff;opacity:.94;width:44px;height:44px;margin-bottom:6px;display:inline-flex}.storm-logo svg{width:100%;height:100%}.storm-title{font-family:var(--font-sans);letter-spacing:.12em;color:#eff5ff;font-size:clamp(14px,3.2vw,22px);font-weight:500;line-height:.95}.auth-kicker{color:#7a90ac;letter-spacing:.48em;text-transform:uppercase;text-align:center;margin-top:10px;font-size:12px;font-weight:500}.auth-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:18px;display:grid}.tab-btn{cursor:pointer;font-family:var(--font-sans);letter-spacing:.12em;background:#ffffff08;padding:10px 12px;font-weight:500;box-shadow:0 10px 18px #00000040}.tab-btn.active{background:var(--accent-blue);color:#fff;border-color:#ffffff47;font-weight:500;box-shadow:0 10px 22px #0f50c840}.auth-form{gap:10px;margin-top:14px;display:grid}.captcha-block{gap:10px;display:grid}.captcha-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.captcha-image-wrap{background:#00000059;border:1px solid #adceef1f;border-radius:12px;min-width:300px;min-height:72px;overflow:hidden}.captcha-img{vertical-align:top;display:block}.captcha-placeholder{letter-spacing:.12em;color:#ffffff8c;justify-content:center;align-items:center;min-height:72px;padding:0 10px;font-size:11px;display:flex}.captcha-refresh{letter-spacing:.14em;padding:8px 12px;font-size:11px}.captcha-code-label{letter-spacing:.18em}label{color:#ffffffe6;letter-spacing:.22em;gap:6px;font-size:12px;font-weight:400;display:grid}input{color:#ffffffeb;letter-spacing:.18em;background:#ffffff07;border-color:#adceef17;width:100%;padding:10px 12px;font-weight:400;box-shadow:0 10px 20px #00000047,inset 0 1px #ffffff12}.captcha-code-label input{font-family:var(--font-mono);letter-spacing:.14em;font-weight:500}input:focus{border-color:#adceef57;outline:none}input:hover:not(:disabled){border-color:#adceef38;box-shadow:0 12px 24px #0000004d,inset 0 1px #ffffff17}input::placeholder{color:#ffffff73;letter-spacing:.18em}.shine-border-container{--shine-thickness:1px;--shine-inset:0px;--shine-speed:12s;--shine-gradient:linear-gradient(90deg, #7dd3fc00, #7dd3fc6b, #c4b5fd8c, #7dd3fc00);--shine-glow-gradient:radial-gradient(circle, #c4b5fd80, #7dd3fc00);border-radius:14px;display:block;position:relative}.shine-border-container input{z-index:2;position:relative}.shine-border-frame{inset:calc((var(--shine-inset,0rem) + var(--shine-thickness,1px)) * -1);border-radius:inherit;pointer-events:none;padding:var(--shine-thickness,1px);-webkit-mask-composite:xor;position:absolute;overflow:hidden;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude}.shine-border-light{aspect-ratio:2;background:var(--shine-gradient);offset-path:border-box;offset-anchor:100% 50%;width:220px;animation:shine-trail var(--shine-speed,12s) infinite linear;filter:blur(12px);pointer-events:none;mix-blend-mode:plus-lighter;opacity:.85;position:absolute}.shine-border-light:nth-child(2){animation-name:shine-trail-offset}.shine-border-glow-orb{inset:calc((var(--shine-inset,0rem) + var(--shine-thickness,1px)) * -1);width:calc(100% + ((var(--shine-inset,0rem) + var(--shine-thickness,1px)) * 2));height:calc(100% + ((var(--shine-inset,0rem) + var(--shine-thickness,1px)) * 2));border-radius:inherit;pointer-events:none;mix-blend-mode:plus-lighter;opacity:.65;position:absolute}.shine-border-glow-orb:before{content:"";aspect-ratio:2;background:var(--shine-glow-gradient);offset-path:border-box;offset-anchor:60% 50%;width:56px;animation:shine-trail var(--shine-speed,12s) infinite linear;filter:blur(26px);opacity:.75;position:absolute}@keyframes shine-trail{0%{offset-distance:0%}to{offset-distance:100%}}@keyframes shine-trail-offset{0%{offset-distance:50%}to{offset-distance:150%}}@media (prefers-reduced-motion:reduce){.shine-border-light,.shine-border-glow-orb:before{animation:none!important}}.tab-btn,.ghost-btn{font-family:var(--font-sans);color:#ffffffeb;font-weight:500}.auth-submit{width:100%;padding:10px 14px}.dashboard-layout{max-width:1520px;font-family:var(--font-sans);grid-template-columns:252px minmax(0,1fr);align-items:stretch;gap:8px;margin:0 auto;padding:16px;display:grid;position:relative}.dashboard-layout .muted,.dashboard-layout .metrics-sub,.dashboard-layout .legend-item,.dashboard-layout .legend-unit,.dashboard-layout .chart-axis-y,.dashboard-layout .chart-axis-x,.dashboard-layout .range-btn:not(.active),.dashboard-layout .device-row.head,.dashboard-layout .power-list li>span:first-child,.dashboard-layout .event-item small{font-weight:400}.dashboard-layout .metric-value span{font-family:var(--font-mono);font-weight:500}.sidebar,.card{border:1px solid var(--stroke);background:linear-gradient(165deg, var(--panel), #060a12b8);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:2;border-radius:16px;position:relative;box-shadow:0 16px 44px #0000007a,inset 0 1px #ffffff14}.card{overflow:hidden}.card.metric-card{overflow:visible}.card:after{content:"";pointer-events:none;opacity:.85;background:radial-gradient(260px 180px at 92% 18%,#4f7cff1a,#0000 65%),radial-gradient(220px 160px at 12% 88%,#a78bfa0f,#0000 66%);position:absolute;inset:0}.card>*{z-index:1;position:relative}.sidebar{isolation:isolate;grid-template-rows:auto 1fr;align-content:start;gap:12px;padding:14px 14px 16px;display:grid;overflow:visible;box-shadow:0 16px 44px #00000073,inset 0 1px #ffffff14,0 0 0 1px #78a0dc0d,0 0 64px #2563eb0f,0 0 120px #6366f10a}.sidebar:before{content:"";border-radius:inherit;pointer-events:none;z-index:0;opacity:.55;background:radial-gradient(120% 85% at -8% 0,#38bdf812,#0000 58%),radial-gradient(95% 65% at 105% 12%,#818cf80f,#0000 52%),radial-gradient(85% 50% at 50% 100%,#2563eb0a,#0000 60%),linear-gradient(165deg,#ffffff06 0%,#0000 42%);position:absolute;inset:0}.sidebar:after{content:"";border-radius:inherit;pointer-events:none;z-index:0;opacity:.35;background:radial-gradient(100% 70% at 50% 0,#ffffff0a,#0000 55%);position:absolute;inset:0}.sidebar>*{z-index:1;position:relative}.sidebar-brand{align-items:center;gap:12px;padding:4px 2px 6px;display:flex}.sidebar-mark{color:#b8d4ff;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.sidebar-mark svg{width:100%;height:100%}.sidebar-storm-title{font-family:var(--font-sans);letter-spacing:.12em;color:#eff5ff;margin:0;font-size:clamp(16px,2.4vw,20px);font-weight:500;line-height:.95}.sidebar-menu{scrollbar-width:thin;scrollbar-color:#78a0dc38 transparent;flex-direction:column;flex:1;align-items:stretch;min-height:0;padding:8px 14px 10px;display:flex;overflow-y:auto}.sidebar-nav-group{flex-direction:column;gap:9px;margin-bottom:20px;display:flex}.sidebar-nav-group--account{border-top:1px solid #94b8e414;margin-top:auto;margin-bottom:0;padding-top:14px}.sidebar-nav-label{font-family:var(--font-sans);letter-spacing:.18em;text-transform:uppercase;color:#7a9cc685;margin:0;padding:2px 10px;font-size:10px;font-weight:500}.menu-item{text-align:left;color:#c6daf4e6;cursor:pointer;letter-spacing:.03em;width:auto;min-width:0;min-height:44px;font-size:14px;font-weight:500;line-height:1.35;font-family:var(--font-sans);background:0 0;border:1px solid #0000;border-left-width:2px;border-radius:10px;align-self:stretch;align-items:center;gap:11px;padding:0 12px;transition:transform .26s cubic-bezier(.22,1,.36,1),background .24s,border-color .24s,color .22s,box-shadow .28s;display:flex;position:relative}.menu-item.active{color:#f6f9ff;background:#3b82f612;border-color:#ffffff0f #ffffff0f #ffffff0f #7dd3fcd9;box-shadow:inset 0 1px #ffffff0d,inset 0 0 20px #38bdf80a}.menu-item:hover:not(.active){color:#f8fbfffa;background:#ffffff0b;border-color:#ffffff12;transform:translate(2px);box-shadow:inset 0 1px #ffffff0d,0 0 20px #4f7cff0e}.menu-item:focus-visible{border-color:#38bdf859;outline:none;box-shadow:0 0 0 2px #38bdf82e}.menu-item-label{flex:1;min-width:0}.menu-icon{opacity:.88;color:#bad6f8e0;fill:currentColor;flex:0 0 20px;width:20px;height:20px;transition:opacity .22s,color .22s,filter .26s,transform .26s cubic-bezier(.22,1,.36,1)}.menu-item:hover:not(.active) .menu-icon{opacity:.98;color:#e2eefff5}.menu-item.active .menu-icon{opacity:1;color:#7dd3fc;filter:drop-shadow(0 0 8px #7dd3fc47);transform:translate(0)}.menu-icon--stroke,.menu-icon--stroke path,.menu-icon--stroke line{fill:none}.main{grid-auto-rows:auto;align-content:start;gap:8px;display:grid}.topbar{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;z-index:1;background:0 0;border:none;border-bottom:1px solid #adceef29;border-radius:0;margin:0 0 4px;padding:6px 2px 12px;position:relative}.topbar--bar{justify-content:flex-end;align-items:center;width:100%;display:flex}.topbar-greeting{font-family:var(--font-sans);letter-spacing:.04em;background:linear-gradient(92deg,#bad2f5b8,#f4f9fffa);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;padding:0;font-size:15px;font-weight:500;line-height:1.35}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.metrics-row{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:8px;display:grid}.metric-card{transform-origin:50%;flex-direction:column;min-height:0;padding:12px;display:flex}.metric-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.metrics-ico{color:#ebf4ffdb;z-index:1;background:#ffffff06;border:1px solid #ffffff17;border-radius:10px;justify-content:center;align-items:center;width:34px;height:24px;display:inline-flex;position:relative;overflow:visible;box-shadow:inset 0 1px #ffffff14}.metrics-ico svg{fill:currentColor;width:15px;height:15px}.metric-card--balance .metrics-ico{color:#9bd8ff;background:#38bdf814;border-color:#7dd3fc59;box-shadow:inset 0 1px #ffffff14,0 0 16px #7dd3fc38}.metric-card--hourly .metrics-ico{color:#a8c8ff;background:#4f7cff1a;border-color:#4f7cff61;box-shadow:inset 0 1px #ffffff14,0 0 16px #4f7cff33}.metric-card--total .metrics-ico{color:#9cf0c2;background:#22c55e1a;border-color:#34d39961;box-shadow:inset 0 1px #ffffff14,0 0 16px #22c55e2e}.metric-card--devices .metrics-ico{color:#d9c9ff;background:#a78bfa1a;border-color:#c4b5fd61;box-shadow:inset 0 1px #ffffff14,0 0 16px #a78bfa33}.metric-value{font-family:var(--font-mono);letter-spacing:-.02em;background:linear-gradient(135deg,#eef6fffa,#c8dcf8d1);color:#0000;-webkit-background-clip:text;background-clip:text;margin-top:6px;font-size:20px;font-weight:600}.metric-value span{font-family:var(--font-mono);color:#99b1d3;font-size:11px;font-weight:500}.metrics-sub{color:#96afd2e6;flex-shrink:0;margin:0 0 2px;font-size:11px}.spark{opacity:.98;flex:0 0 28px;width:100%;height:28px;margin-top:8px;display:block;overflow:visible}.spark-line{fill:none;stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 12px #4f7cff61)drop-shadow(0 0 26px #4f7cff38)}.spark-line--blue{filter:drop-shadow(0 0 14px #7dd3fc8c)drop-shadow(0 0 28px #4f7cff59)}.spark-line--cyan{filter:drop-shadow(0 0 14px #38bdf880)drop-shadow(0 0 28px #4f7cff52)}.spark-line--green{filter:drop-shadow(0 0 14px #34d39980)drop-shadow(0 0 28px #22c55e52)}.spark-line--violet{filter:drop-shadow(0 0 14px #c4b5fd85)drop-shadow(0 0 28px #a78bfa52)}@media (width<=980px){.metrics-row{grid-template-columns:1fr}}.chart-legend{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.legend-item{color:#aabedce6;align-items:center;gap:6px;font-size:11px;display:inline-flex}.legend-unit{color:#96afd2bf;font-size:10px;font-weight:400}.legend-dot{border-radius:999px;width:8px;height:8px;display:inline-block}.legend-dot--income{background:linear-gradient(135deg,#4f7cfff2,#7dd3fce6);box-shadow:0 0 14px #4f7cff38}.legend-dot--devices{background:linear-gradient(135deg,#a78bfaeb,#c4b5fdd9);box-shadow:0 0 14px #a78bfa2e}.content-grid{grid-template-columns:minmax(0,1.78fr) minmax(0,1fr);align-items:stretch;gap:8px;margin-top:0;display:grid}.card{padding:12px}.card-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.card h4{color:#edf4ff;font-size:14px}.range-switch{gap:4px;display:inline-flex}.range-btn{color:#96adc9;font-family:var(--font-mono);cursor:pointer;background:#ffffff08;border:1px solid #adceef38;border-radius:8px;padding:4px 8px;font-size:11px;font-weight:500}.range-btn.active{background:var(--accent-blue);color:#fff;font-family:var(--font-mono);border-color:#ffffff47;font-weight:600;box-shadow:0 8px 18px #0f50c847}.range-btn:hover:not(.active):not(:disabled){color:#c8daf4;background:#ffffff0f;border-color:#adceef59;transform:translateY(-1px);box-shadow:0 8px 16px #00000038}@media (prefers-reduced-motion:reduce){button.primary-btn,button.ghost-btn,button.tab-btn,button.menu-item,button.auth-submit,button.range-btn,button.captcha-refresh{transition:none}button.primary-btn:hover:not(:disabled),button.ghost-btn:hover:not(:disabled),button.tab-btn:hover:not(:disabled),button.menu-item:hover:not(.active),button.range-btn:hover:not(:disabled){transform:none}}.toast-anchor{z-index:10050;pointer-events:none;max-width:min(420px,100vw - 32px);position:fixed;top:22px;left:50%;transform:translate(-50%)}.toast-anchor .toast{pointer-events:auto}.toast{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(165deg,#0e121ef5,#080b14f0);border:1px solid #ffffff24;border-radius:16px;align-items:flex-start;gap:12px;padding:14px 16px 14px 18px;display:flex;box-shadow:0 22px 50px #0000008c,inset 0 1px #ffffff14}.toast--success{border-color:#22c55e73;box-shadow:0 22px 50px #0000008c,0 0 40px #22c55e1f,inset 0 1px #ffffff14}.toast--error{border-color:#f8717173;box-shadow:0 22px 50px #0000008c,0 0 40px #f871711a,inset 0 1px #ffffff14}.toast-msg{letter-spacing:.04em;color:#f0f6fff2;flex:1;margin:0;font-size:13px;font-weight:400;line-height:1.45}.toast-close{color:#e6eefad9;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:10px;flex:none;place-items:center;width:30px;height:30px;padding:0;font-size:20px;line-height:1;transition:background .2s,transform .2s;display:grid}.toast-close:hover{background:#ffffff1a;transform:scale(1.06)}.toast-pop-enter-active,.toast-pop-leave-active{transition:opacity .28s,transform .32s cubic-bezier(.22,1,.36,1)}.toast-pop-enter-from,.toast-pop-leave-to{opacity:0;transform:translateY(-14px)scale(.96)}.toast-pop-enter-to,.toast-pop-leave-from{opacity:1;transform:translateY(0)scale(1)}.chart-card.card{overflow:visible}.chart-wrap{z-index:1;margin-top:8px;position:relative;overflow:visible}.chart-svg{width:100%;height:260px;display:block}.chart-grid line{stroke:#b0cdf11f;stroke-width:1px}.chart-axis text{fill:#a8bdd8d1;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:11px;font-weight:500}.chart-axis-y{font-size:11px;font-weight:500}.chart-axis-x{letter-spacing:.02em;font-size:10px;font-weight:500}.chart-line{fill:none;stroke-width:2.4px}.line-income{stroke:url(#incomeLine);stroke-width:2.8px;filter:drop-shadow(0 0 12px #38bdf873)drop-shadow(0 0 24px #7dd3fc47)}.line-devices{stroke:url(#devicesLine);stroke-width:2.8px;filter:drop-shadow(0 0 12px #a78bfa6b)drop-shadow(0 0 24px #c4b5fd42)}.chart-area{stroke:none}.area-income{fill:url(#incomeFill)}.area-devices{fill:url(#devicesFill)}.point.hit{fill:#0000;cursor:pointer}.chart-point .point.income,.chart-point .point.devices{transition:r .2s,opacity .2s,filter .2s}.chart-point.active .point.income{r:5.4px;filter:drop-shadow(0 0 10px #4f7cff59)}.chart-point.active .point.devices{r:4.8px;filter:drop-shadow(0 0 10px #a78bfa47)}.point.income{fill:#56c1ff;stroke:#0f1b2a;stroke-width:2px}.point.devices{fill:#b59cff;stroke:#0f1b2a;stroke-width:2px}.chart-tooltip{color:#d2e0f6f2;pointer-events:none;z-index:30;background:#080c14f0;border:1px solid #ffffff1a;border-radius:10px;min-width:156px;max-width:min(220px,100vw - 32px);padding:10px 11px;font-size:11px;position:absolute;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 12px 28px #0000008c}.tooltip-date{color:#f8fbff;font-family:var(--font-sans);letter-spacing:.02em;margin:0 0 8px;font-size:12px;font-weight:500}.tooltip-row{align-items:center;gap:8px;margin:0;line-height:1.35;display:flex}.tooltip-row+.tooltip-row{margin-top:6px}.tooltip-row .legend-dot{flex-shrink:0}.tooltip-row strong{font-family:var(--font-mono);color:#f0f6ff;margin-left:auto;font-weight:600}.side-card{align-content:start;gap:10px;display:grid}.side-card h4{font-size:15px;font-weight:500}.power-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.power-list li{letter-spacing:.02em;color:#a9bfdc;border-bottom:1px solid #adceef1f;justify-content:space-between;padding-bottom:6px;font-size:13px;font-weight:400;display:flex}.power-list strong{font-family:var(--font-mono);color:#edf4ff;font-weight:600}.event-list h5{letter-spacing:.04em;color:#dce9ff;font-size:13px;font-weight:500}.event-list{gap:8px;display:grid}.event-item{letter-spacing:.02em;color:#a8bdd8;gap:8px;font-size:13px;font-weight:400;line-height:1.35;display:flex}.event-item p{font-weight:400}.event-item small{color:#7e96b6;margin-top:2px;font-size:11px;font-weight:400;display:block}.event-dot{background:linear-gradient(135deg,#89bdff,#b4a0ff);border-radius:50%;width:7px;height:7px;margin-top:4px}.devices-card{background:linear-gradient(165deg,#0a101c80,#060a12bd);border-color:#b0cdf124;margin-top:0}.devices-card--page{margin-top:0}.device-table{gap:4px;margin-top:8px;display:grid}.device-row{color:#c7d9f2;font-family:var(--font-sans);background:#ffffff05;border:1px solid #b0cdf114;border-radius:8px;grid-template-columns:minmax(0,1.5fr) minmax(6.5rem,8.5rem) 3.5rem 3.5rem minmax(0,1fr);align-items:center;gap:4px 16px;padding:8px 12px;font-size:12px;font-weight:400;display:grid}.device-row span:nth-child(3),.device-row span:nth-child(4),.device-row span:nth-child(5){font-family:var(--font-mono);text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.device-row.head{color:#86a2c4;background:0 0;font-size:11px}.device-row.head span:nth-child(2){text-align:left}.device-row.head span:nth-child(3),.device-row.head span:nth-child(4),.device-row.head span:nth-child(5){font-family:var(--font-mono);text-align:right;font-weight:500}.device-row .status-pill{justify-self:start}.status-pill{width:fit-content;max-width:100%;font-family:var(--font-sans);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:3px 7px;font-size:9px;font-weight:500;line-height:1.15;display:inline-flex}.status-pill.ok{color:#d9fce8f2;background:#22c55e24;border-color:#22c55e6b;box-shadow:0 0 12px #22c55e24}.status-pill.wait{color:#f7e5be;background:#f59e0b24;border-color:#f59e0b75;box-shadow:0 0 12px #f59e0b1f}.placeholder-card{padding:14px}.download-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.support-fab{z-index:80;background:var(--accent-blue);color:#fff;cursor:pointer;border:1px solid #ffffff38;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;padding:0;transition:transform .22s,box-shadow .22s,border-color .22s;display:inline-flex;position:fixed;bottom:16px;right:16px;box-shadow:0 14px 32px #0f50c859}.support-fab:hover{background:var(--accent-blue-hover);transform:translateY(-2px);box-shadow:0 18px 40px #0f50c86b}.support-fab__svg{width:26px;height:26px}.support-backdrop{z-index:90;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#02060e8c;position:fixed;inset:0}.support-panel{z-index:100;background:linear-gradient(165deg,#0c101cfa,#060a12f5);border:1px solid #adceef2e;border-radius:18px;flex-direction:column;width:min(380px,100vw - 32px);max-height:min(520px,70vh);display:flex;position:fixed;bottom:84px;right:16px;overflow:hidden;box-shadow:0 28px 60px #0000008c,inset 0 1px #ffffff0f}.support-panel__head{border-bottom:1px solid #adceef1f;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.support-panel__head h3{color:#edf4ff;margin:0;font-size:14px;font-weight:650}.support-panel__close{color:#e6eefae6;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:10px;width:34px;height:34px;font-size:20px;line-height:1}.support-panel__body{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px 14px 14px;display:flex;overflow:auto}.support-panel__hint{margin:0;font-size:12px;line-height:1.45}.support-panel__thread{flex-direction:column;gap:8px;display:flex}.support-msg{color:#e6eefaeb;background:#4f7cff1a;border:1px solid #4f7cff33;border-radius:12px;padding:10px 12px;font-size:12px;line-height:1.45}.support-msg p{margin:0}.support-panel__textarea{resize:none;color:#e6eefabf;background:#ffffff08;border:1px solid #adceef24;border-radius:12px;width:100%;padding:10px 12px;font-family:inherit;font-size:12px}.support-panel__field{margin:0}@media (width<=1200px){.content-grid{grid-template-columns:1fr}}@media (width<=980px){.dashboard-layout{grid-template-columns:1fr}.sidebar{grid-template-rows:auto 1fr}}@media (width<=700px){.download-grid{grid-template-columns:1fr}.device-row{grid-template-columns:minmax(0,1fr) minmax(5.5rem,auto) 2.75rem 2.75rem;column-gap:12px}.device-row span:last-child{display:none}}
