:root{--bg: #090B10;--bg-gradient: radial-gradient(120% 90% at 50% -10%, #171E2E 0%, #0D1017 45%, #080A0E 100%);--card: #131722;--card-hover: #171C2B;--card-inner: #191E2C;--card-inset: #11141E;--border: rgba(255, 255, 255, .08);--border-light: rgba(255, 255, 255, .12);--border-glow: rgba(212, 246, 61, .35);--separator: rgba(255, 255, 255, .06);--text: #FFFFFF;--text-sec: #8A92A6;--text-muted: #525A6C;--accent: #D4F63D;--accent-hover: #E2FC5B;--accent-dark: #090B10;--accent-glow: rgba(212, 246, 61, .3);--accent-soft: rgba(212, 246, 61, .12);--water-cyan: #3DF6D9;--water-blue: #007AFF;--green: #D4F63D;--green-soft: rgba(212, 246, 61, .14);--orange: #FFA928;--orange-soft: rgba(255, 169, 40, .14);--red: #FF4757;--red-soft: rgba(255, 71, 87, .14);--purple: #AF52DE;--r-xl: 28px;--r-lg: 20px;--r-md: 14px;--r-sm: 10px;--r-pill: 9999px;--shadow-card: 0 16px 36px -10px rgba(0, 0, 0, .6), 0 1px 2px rgba(0, 0, 0, .4);--shadow-glow: 0 0 24px rgba(212, 246, 61, .28)}*{box-sizing:border-box;margin:0;padding:0;font-family:Outfit,Inter,-apple-system,BlinkMacSystemFont,SF Pro Display,sans-serif;-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{display:flex;justify-content:center;min-height:100vh;position:relative}#app:before{content:"";position:fixed;top:-150px;left:50%;transform:translate(-50%);width:600px;height:400px;background:radial-gradient(ellipse at center,rgba(212,246,61,.08) 0%,rgba(61,246,217,.03) 45%,transparent 75%);pointer-events:none;z-index:0}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100%;padding:24px 16px;position:relative;z-index:1}.login-card{background:var(--card);border:1px solid var(--border);border-radius:32px;padding:38px 28px 32px;max-width:390px;width:100%;box-shadow:var(--shadow-card),inset 0 1px #ffffff14;text-align:center;position:relative;overflow:hidden;animation:cardEntrance .45s cubic-bezier(.16,1,.3,1)}.login-card:before{content:"";position:absolute;top:0;left:0;right:0;height:110px;background:radial-gradient(140% 100% at 50% -20%,#d4f63d29,#13172200);pointer-events:none}@keyframes cardEntrance{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.login-app-icon{width:68px;height:68px;margin:0 auto 16px;border-radius:22px;background:linear-gradient(145deg,#1a2130,#10141d);border:1px solid rgba(212,246,61,.35);box-shadow:0 8px 24px -4px #0009,0 0 20px #d4f63d38;display:flex;align-items:center;justify-content:center;color:var(--accent);position:relative}.login-title{font-size:26px;font-weight:800;color:#fff;letter-spacing:-.6px;display:flex;align-items:center;justify-content:center;gap:6px}.login-title-dot{width:8px;height:8px;background:var(--accent);border-radius:50%;box-shadow:0 0 10px var(--accent)}.login-sub{font-size:13px;font-weight:500;color:var(--text-sec);margin-top:4px;margin-bottom:28px}.login-form{display:flex;flex-direction:column;gap:16px}.input-group{text-align:left}.input-group label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-sec);margin-bottom:7px;margin-left:12px}.input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:18px;color:var(--text-muted);pointer-events:none;display:flex;align-items:center;justify-content:center;transition:color .2s;z-index:2}.input-group input{width:100%;height:52px;padding:0 46px 0 48px;font-size:15px;font-weight:500;border:1.5px solid var(--border);border-radius:var(--r-pill);background:var(--card-inner);color:#fff;outline:none;transition:all .22s cubic-bezier(.4,0,.2,1);-webkit-appearance:none}.input-group input:focus{border-color:var(--accent);background:#1c2333;box-shadow:0 0 0 4px #d4f63d29,0 4px 16px #0006}.input-wrapper:focus-within .input-icon{color:var(--accent)}.input-group input::placeholder{color:var(--text-muted);font-weight:400}.pwd-toggle{position:absolute;right:14px;background:transparent;border:none;padding:8px;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;border-radius:var(--r-pill);transition:color .15s;z-index:2}.pwd-toggle:hover{color:var(--accent)}.login-error{display:none;align-items:center;gap:10px;background:var(--red-soft);border:1px solid rgba(255,71,87,.35);color:#ff8f9b;padding:12px 16px;border-radius:var(--r-md);font-size:13px;font-weight:600;text-align:left;animation:shake .35s cubic-bezier(.36,.07,.19,.97) both}.login-error.active{display:flex}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-3px,0,0)}40%,60%{transform:translate3d(3px,0,0)}}.login-btn{width:100%;height:52px;font-size:16px;font-weight:700;letter-spacing:-.2px;color:var(--accent-dark);background:var(--accent);border:none;border-radius:var(--r-pill);cursor:pointer;box-shadow:0 4px 24px #d4f63d59;transition:all .2s cubic-bezier(.4,0,.2,1);margin-top:6px;display:flex;align-items:center;justify-content:center;gap:8px}.login-btn:hover{background:var(--accent-hover);box-shadow:0 6px 28px #d4f63d73;transform:translateY(-1px)}.login-btn:active{transform:scale(.985);filter:brightness(.94)}.login-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.login-footer{display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:500;color:var(--text-muted);margin-top:26px;padding:8px 14px;background:var(--card-inner);border-radius:var(--r-pill);border:1px solid var(--border);width:fit-content;margin-left:auto;margin-right:auto}.login-footer svg{color:var(--accent)}.ct{max-width:460px;width:100%;display:flex;flex-direction:column;gap:14px;padding:18px 14px 42px;position:relative;z-index:1}.hd{display:flex;justify-content:space-between;align-items:center;padding:6px 4px 4px}.hd-brand{display:flex;align-items:center;gap:10px}.hd-icon{width:36px;height:36px;border-radius:12px;background:var(--card);border:1px solid rgba(212,246,61,.3);display:flex;align-items:center;justify-content:center;color:var(--accent);box-shadow:0 4px 12px #0006}.hd-t{font-size:26px;font-weight:800;letter-spacing:-.6px;color:#fff}.hd-right{display:flex;align-items:center;gap:8px}.hd-b{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;padding:5px 12px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent);border:1px solid rgba(212,246,61,.25);box-shadow:0 0 12px #d4f63d26}.dp{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:dp 1.6s infinite}@keyframes dp{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.7)}}.logout-btn{font-size:11px;font-weight:700;padding:5px 12px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--card);color:var(--red);cursor:pointer;transition:all .18s;display:flex;align-items:center;gap:4px}.logout-btn:hover{background:var(--red-soft);border-color:#ff475759;transform:translateY(-1px)}.logout-btn:active{transform:scale(.95)}.cd{background:var(--card);border-radius:var(--r-lg);padding:18px;border:1px solid var(--border);box-shadow:var(--shadow-card),inset 0 1px #ffffff0d;position:relative;overflow:hidden;transition:border-color .2s}.cd:hover{border-color:#ffffff21}.hero{display:flex;align-items:center;gap:20px;padding:22px 20px;background:linear-gradient(145deg,#151926,#11141f);position:relative}.hero:after{content:"";position:absolute;top:0;right:0;width:140px;height:100%;background:radial-gradient(circle at 100% 0%,rgba(212,246,61,.08) 0%,transparent 70%);pointer-events:none}.tk{width:68px;height:126px;background:#10131c;border-radius:18px;border:1.5px solid rgba(255,255,255,.09);position:relative;overflow:hidden;display:flex;flex-direction:column-reverse;box-shadow:inset 0 3px 10px #000000b3,0 4px 14px #0006;flex-shrink:0}.tk:before{content:"";position:absolute;top:8px;bottom:8px;right:4px;width:5px;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.25) 0,rgba(255,255,255,.25) 1px,transparent 1px,transparent 12px);z-index:2;pointer-events:none}.tf{width:100%;height:0%;background:linear-gradient(180deg,var(--water-cyan) 0%,var(--water-blue) 100%);transition:height .6s cubic-bezier(.34,1.4,.64,1);position:relative;box-shadow:0 0 16px #3df6d966}.tf:after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:#fff;box-shadow:0 0 8px #fff}.hd2{display:flex;flex-direction:column;flex:1}.hl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-sec)}.hv{font-size:48px;font-weight:800;letter-spacing:-1.5px;line-height:1;margin:6px 0;font-variant-numeric:tabular-nums;color:#fff}.hv .u{font-size:22px;font-weight:700;color:var(--accent);margin-left:3px}.hs{font-size:13px;color:var(--text-sec);font-weight:500}.hs b{color:#fff;font-weight:700}.tg{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:4px 10px;border-radius:var(--r-pill);width:fit-content;margin-top:8px}.tg-g{background:var(--green-soft);color:var(--green);border:1px solid rgba(212,246,61,.25)}.tg-x{background:var(--card-inner);color:var(--text-muted);border:1px solid var(--border)}.ch-wrap{position:relative}.ch-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.ch-t{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-sec)}.ch-v{font-size:13px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;background:var(--accent-soft);padding:2px 8px;border-radius:var(--r-pill);border:1px solid rgba(212,246,61,.2)}canvas{width:100%!important;border-radius:12px;display:block}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mb{background:var(--card);border-radius:var(--r-lg);padding:14px 14px 12px;border:1px solid var(--border);box-shadow:var(--shadow-card),inset 0 1px #ffffff0d;display:flex;flex-direction:column;gap:5px;transition:all .2s}.mb:hover{border-color:#ffffff24;transform:translateY(-1px)}.mt{display:flex;justify-content:space-between;align-items:center}.mi{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;border:1px solid var(--border)}.ib{background:#007aff1f;color:#5ac8fa;border-color:#007aff40}.io{background:#d4f63d1f;color:var(--accent);border-color:#d4f63d40}.ig{background:#34c7591f;color:#34c759;border-color:#34c75940}.ip{background:#af52de1f;color:#af52de;border-color:#af52de40}.ml{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-sec)}.mv{font-size:20px;font-weight:800;letter-spacing:-.4px;font-variant-numeric:tabular-nums;color:#fff}.mv .u{font-size:12px;font-weight:600;color:var(--text-sec);margin-left:1px}.ms{font-size:11px;color:var(--text-sec);font-weight:500}.ms b{color:#fff}.rp{display:inline-block;font-size:11px;font-weight:800;padding:4px 12px;border-radius:var(--r-pill);letter-spacing:.4px}.rp.on{background:var(--accent);color:var(--accent-dark);box-shadow:0 0 16px #d4f63d66}.rp.off{background:var(--card-inner);color:var(--text-muted);border:1px solid var(--border)}.gauge-wrap{display:flex;align-items:center;gap:18px}.gauge-box{position:relative;width:104px;height:104px;flex-shrink:0}.gauge-box canvas{width:104px!important;height:104px!important}.gauge-val{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.gauge-num{font-size:22px;font-weight:800;letter-spacing:-.6px;font-variant-numeric:tabular-nums;color:#fff}.gauge-unit{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--text-sec)}.gauge-info{display:flex;flex-direction:column;gap:8px;flex:1}.gi-row{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;padding:4px 0;border-bottom:1px solid var(--separator)}.gi-row:last-child{border-bottom:none}.gi-label{color:var(--text-sec);font-weight:500}.gi-val{font-weight:700;font-variant-numeric:tabular-nums;color:#fff}.st{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-sec);margin-bottom:10px}.seg{display:flex;background:var(--card-inner);border-radius:var(--r-pill);padding:4px;border:1px solid var(--border)}.sb{flex:1;border:none;background:transparent;padding:9px 12px;font-size:13px;font-weight:700;color:var(--text-sec);border-radius:var(--r-pill);cursor:pointer;transition:all .22s cubic-bezier(.4,0,.2,1)}.sb.a{background:var(--accent);color:var(--accent-dark);box-shadow:0 2px 14px #d4f63d59}.ag{display:flex;gap:10px;margin-top:14px}.ab{flex:1;height:48px;font-size:14.5px;font-weight:800;letter-spacing:-.2px;border:none;border-radius:var(--r-pill);cursor:pointer;transition:all .18s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:6px}.ab:hover:not(:disabled){transform:translateY(-1px)}.ab:active{transform:scale(.97)}.ab:disabled{opacity:.25;cursor:not-allowed;transform:none;box-shadow:none}.bs{background:var(--accent);color:var(--accent-dark);box-shadow:0 4px 20px #d4f63d59}.bs:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 6px 26px #d4f63d73}.bp{background:var(--red);color:#fff;box-shadow:0 4px 20px #ff475759}.bp:hover:not(:disabled){background:#ff5a69;box-shadow:0 6px 26px #ff475773}.fr{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--separator);font-size:11.5px;color:var(--text-sec)}.fr b{color:#fff}.tl{display:flex;flex-direction:column;gap:0}.tl-item{display:flex;align-items:flex-start;gap:12px;padding:8px 0;position:relative}.tl-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0;box-shadow:0 0 8px currentColor}.tl-line{position:absolute;left:3.5px;top:20px;bottom:-6px;width:1px;background:var(--separator)}.tl-item:last-child .tl-line{display:none}.tl-body{flex:1}.tl-msg{font-size:12.5px;font-weight:600;color:#fff}.tl-time{font-size:10.5px;color:var(--text-muted);margin-top:2px;font-variant-numeric:tabular-nums}.fl{background:var(--card);border-radius:var(--r-lg);border:1px solid var(--border);box-shadow:var(--shadow-card);overflow:hidden}.fl-r{display:flex;justify-content:space-between;align-items:center;padding:11px 16px;font-size:12px;color:var(--text-sec);border-bottom:1px solid var(--separator)}.fl-r:last-child{border-bottom:none}.fl-r b{color:#fff;font-weight:600;font-family:JetBrains Mono,monospace;font-size:11.5px}
