
:root{--theme-line:rgba(24,232,222,.38);--theme-bright:#20f5e7;--theme-glow:rgba(0,238,221,.34);--theme-nav:rgba(2,15,20,.88);--theme-panel:linear-gradient(145deg,rgba(5,25,31,.94),rgba(2,12,18,.92));--theme-input:rgba(0,14,20,.88);--theme-button:linear-gradient(135deg,#08a9ac,#0b615f);--theme-shadow:0 24px 70px rgba(0,0,0,.45),inset 0 0 40px rgba(0,238,221,.035)}
body.scheme2{background:#020a0d!important;background-image:linear-gradient(rgba(0,238,221,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(0,238,221,.035) 1px,transparent 1px),radial-gradient(circle at 18% 20%,rgba(0,231,210,.12),transparent 28%),radial-gradient(circle at 90% 80%,rgba(255,113,42,.08),transparent 25%)!important;background-size:34px 34px,34px 34px,auto,auto!important;}
body.scheme2:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 0 48%,rgba(35,255,231,.025) 49% 51%,transparent 52%),repeating-linear-gradient(0deg,transparent 0 4px,rgba(0,0,0,.09) 5px);z-index:0;}
body.scheme2 .page-header:after{content:"SYS.NODE // ONLINE";position:absolute;right:32px;top:30px;color:#20f5e7;font:700 11px monospace;letter-spacing:.18em;}
.auth-page.scheme2:before{inset:0 50% 0 0;background:radial-gradient(circle at 42% 44%,rgba(0,255,225,.25),transparent 22%),conic-gradient(from 0deg at 42% 44%,transparent,rgba(0,255,225,.12),transparent 28%);mask:radial-gradient(circle at 42% 44%,#000 0 36%,transparent 62%);animation:mechSpin 18s linear infinite;}
.auth-page.scheme2:after{left:7%;top:20%;width:38%;height:58%;border:1px solid rgba(0,238,221,.25);clip-path:polygon(12% 0,100% 0,100% 82%,82% 100%,0 100%,0 12%);box-shadow:inset 0 0 80px rgba(0,238,221,.06),0 0 50px rgba(0,238,221,.08);}
@keyframes mechSpin{to{transform:rotate(360deg)}}

/* Full secondary-page redesign. Existing IDs and JS behavior are untouched. */
body.themed-page, body.auth-page { min-height:100vh; }
body .announcement-bar{backdrop-filter:blur(16px);}
body .navbar{border-bottom:1px solid var(--theme-line)!important;background:var(--theme-nav)!important;backdrop-filter:blur(20px)!important;}
body .page-main{position:relative;z-index:2;max-width:1480px;padding-top:118px!important;}
body .page-header{padding:28px 32px!important;border:1px solid var(--theme-line)!important;background:var(--theme-panel)!important;box-shadow:var(--theme-shadow)!important;clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,22px 100%,0 calc(100% - 22px));}
body .page-header h1{font-size:30px!important;letter-spacing:.08em;text-shadow:0 0 22px var(--theme-glow);}
body .card, body .panel, body .recharge-card, body .table-card, body .record-card, body .energy-card{border:1px solid var(--theme-line)!important;background:var(--theme-panel)!important;box-shadow:var(--theme-shadow)!important;backdrop-filter:blur(16px);}
body .btn-primary{border:1px solid var(--theme-bright)!important;background:var(--theme-button)!important;box-shadow:0 0 24px var(--theme-glow)!important;text-transform:uppercase;letter-spacing:.08em;}
body input, body textarea, body select{border-color:var(--theme-line)!important;background:var(--theme-input)!important;}
.auth-page:before,.auth-page:after{content:"";position:fixed;pointer-events:none;z-index:0;}
.auth-page .auth-container{position:relative;z-index:2;max-width:1080px!important;align-items:stretch!important;}
.auth-page .auth-card{width:min(520px,100%)!important;margin-left:auto;padding:42px 44px!important;border:1px solid var(--theme-line)!important;background:var(--theme-panel)!important;box-shadow:var(--theme-shadow)!important;backdrop-filter:blur(22px);clip-path:polygon(0 0,calc(100% - 26px) 0,100% 26px,100% 100%,26px 100%,0 calc(100% - 26px));}
.auth-page .auth-card:before{content:"SECURE ACCESS // ENCRYPTED CHANNEL";display:block;margin:-18px 0 24px;font:700 10px/1 monospace;letter-spacing:.22em;color:var(--theme-bright);opacity:.8;}
.auth-page .auth-header{text-align:left!important;margin-bottom:30px!important;}
.auth-page .auth-logo{width:100%;justify-content:flex-start!important;}
.auth-page .auth-logo svg{width:44px!important;height:44px!important;filter:drop-shadow(0 0 12px var(--theme-glow));}
.auth-page .auth-logo span{font-size:26px!important;letter-spacing:.05em;}
.auth-page .auth-subtitle{padding-left:54px;letter-spacing:.04em;}
.auth-page .form-input{height:48px;border-radius:4px!important;}
.auth-page .form-label{letter-spacing:.08em;text-transform:uppercase;}
.auth-page .promo-tip{border-radius:4px!important;}
@media(max-width:700px){.auth-page{padding:86px 16px 24px!important}.auth-page .auth-card{padding:32px 22px!important}.auth-page .auth-container{max-width:520px!important}.auth-page .auth-subtitle{padding-left:0}.page-main{padding-left:12px!important;padding-right:12px!important}}


/* ===== 2026 动态视觉升级：只增加视觉动效，不改变业务逻辑 ===== */
.fx-aurora{position:fixed;inset:-20%;z-index:-3;pointer-events:none;background:conic-gradient(from 90deg at 50% 50%,transparent,rgba(22,224,208,.11),transparent 28%,rgba(255,139,50,.06),transparent 62%);filter:blur(55px);animation:fxAurora 22s linear infinite}
.fx-scan{position:fixed;left:0;right:0;top:-12vh;height:12vh;z-index:9998;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(22,224,208,.035),rgba(22,224,208,.12),transparent);mix-blend-mode:screen;animation:fxScan 8s linear infinite}
.fx-particles{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.fx-particles i{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;background:#66fff1;box-shadow:0 0 10px #16e0d0;opacity:.35;animation:fxFloat var(--d) ease-in-out var(--delay) infinite alternate}
.fx-reveal{opacity:0;transform:translateY(18px) scale(.985);filter:blur(7px);transition:opacity .75s ease var(--fx-delay),transform .75s cubic-bezier(.2,.8,.2,1) var(--fx-delay),filter .75s ease var(--fx-delay)}.fx-show .fx-reveal{opacity:1;transform:none;filter:none}
.intro{transform:translate3d(var(--px,0),var(--py,0),0);transition:transform .25s ease,border-color .35s ease,box-shadow .35s ease}.intro:hover{border-color:rgba(80,255,241,.5);box-shadow:0 0 0 1px rgba(22,224,208,.08),0 28px 70px rgba(0,0,0,.34),inset 0 0 50px rgba(22,224,208,.05)}
.intro h1{background:linear-gradient(90deg,#fff,#72fff4,#fff);background-size:220% auto;color:transparent;background-clip:text;-webkit-background-clip:text;animation:fxTitle 5s linear infinite}
.panel{transition:transform .32s cubic-bezier(.2,.8,.2,1),border-color .32s ease,box-shadow .32s ease}.panel:hover{transform:translateY(-4px);border-color:rgba(22,224,208,.48);box-shadow:inset 0 0 45px rgba(0,255,230,.045),0 24px 70px rgba(0,0,0,.42),0 0 28px rgba(22,224,208,.08)}
.panel-header:after{content:"";position:absolute;left:0;bottom:-1px;width:28%;height:1px;background:linear-gradient(90deg,transparent,#16e0d0,transparent);animation:fxLine 4s ease-in-out infinite}
.btn-start,button,.nav-link{transform:translate(var(--mx,0),var(--my,0));will-change:transform;overflow:hidden}.btn-start:after{content:"";position:absolute;inset:-40% auto -40% -30%;width:20%;transform:skewX(-20deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);animation:fxShine 3.6s ease-in-out infinite}
.task-circle{animation:fxCore 3.2s ease-in-out infinite}.task-circle svg,.task-circle .progress-ring{filter:drop-shadow(0 0 7px rgba(22,224,208,.65))}
.fx-clock{margin-left:auto;padding:6px 10px;border:1px solid rgba(22,224,208,.2);background:rgba(0,0,0,.22);font:11px/1 Consolas,monospace;letter-spacing:1px;color:#6ffff4;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.fx-ripple{position:absolute;border-radius:50%;pointer-events:none;background:rgba(255,255,255,.35);transform:scale(0);animation:fxRipple .65s ease-out}
.input-box textarea:focus,input:focus,select:focus{box-shadow:0 0 0 1px rgba(22,224,208,.35),0 0 25px rgba(22,224,208,.12)!important}
@keyframes fxAurora{to{transform:rotate(360deg)}}@keyframes fxScan{to{transform:translateY(124vh)}}@keyframes fxFloat{to{transform:translate3d(28px,-45px,0);opacity:.75}}@keyframes fxTitle{to{background-position:220% center}}@keyframes fxLine{0%,100%{transform:translateX(-20%);opacity:.35}50%{transform:translateX(290%);opacity:1}}@keyframes fxShine{0%,55%{left:-35%;opacity:0}70%{opacity:1}100%{left:125%;opacity:0}}@keyframes fxCore{50%{filter:drop-shadow(0 0 22px rgba(22,224,208,.38));transform:scale(1.018)}}@keyframes fxRipple{to{transform:scale(2.5);opacity:0}}
@media(prefers-reduced-motion:reduce){.fx-aurora,.fx-scan,.fx-particles,.intro h1,.task-circle,.btn-start:after,.panel-header:after{animation:none!important}.fx-reveal{opacity:1!important;transform:none!important;filter:none!important}}

