@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--bg:#f7f8fa;--surface:#fff;--surface-2:#f0f2f6;--surface-3:#e8ecf3;--text:#64748b;--text-h:#0f172a;--text-muted:#94a3b8;--border:#e2e8f0;--border-focus:#a5b4fc;--accent:#f59e0b;--accent-dark:#d97706;--accent-light:#fef3c7;--accent-bg:#f59e0b14;--accent-border:#f59e0b59;--sky:#0ea5e9;--sky-light:#e0f2fe;--green:#10b981;--green-light:#d1fae5;--red:#ef4444;--red-light:#fee2e2;--blue:#3b82f6;--blue-light:#dbeafe;--teal:#14b8a6;--teal-light:#ccfbf1;--orange:#f97316;--orange-light:#ffedd5;--purple:#8b5cf6;--purple-light:#ede9fe;--shadow-xs:0 1px 2px #0f172a0f;--shadow-sm:0 2px 8px #0f172a14, 0 1px 3px #0f172a0f;--shadow:0 4px 16px #0f172a1a, 0 2px 6px #0f172a0f;--shadow-lg:0 12px 32px #0f172a24, 0 4px 12px #0f172a14;--shadow-accent:0 4px 20px #f59e0b40;--sans:"Inter", system-ui, -apple-system, sans-serif;--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-full:9999px;--t-fast:.15s ease;--t-normal:.22s ease;--t-slow:.35s ease;--header-bg:#fffffff2;--dashboard-bg-mid:#f1f5f9;--dashboard-grid:#0ea5e90e;--dashboard-trace:#f59e0b0b;--dashboard-scan:#f59e0b14;--bg-solar-aura-1:#f59e0b1f;--bg-solar-aura-2:#0ea5e91a;--bg-solar-aura-3:#10b98114;--bg-grid-line:#0ea5e90f;--bg-grid-glow:#f59e0b14;--bg-scan-beam:#f59e0b24;--bg-particle-1:#d9770673;--bg-particle-2:#0ea5e973;--bg-particle-line:#f59e0b1f}.dark-theme{--bg:#070b13;--surface:#0d1527;--surface-2:#14213d;--surface-3:#1e2f52;--text:#94a3b8;--text-h:#f1f5f9;--text-muted:#64748b;--border:#1b294a;--border-focus:#4f46e5;--accent:#fbbf24;--accent-dark:#f59e0b;--accent-light:#2c1a04;--accent-bg:#fbbf240d;--accent-border:#fbbf2440;--green:#10b981;--green-light:#10b9811f;--red:#ef4444;--red-light:#ef44441f;--blue:#3b82f6;--blue-light:#3b82f61f;--teal:#14b8a6;--teal-light:#14b8a61f;--orange:#f97316;--orange-light:#f973161f;--purple:#a855f7;--purple-light:#a855f71f;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 2px 8px #00000080;--shadow:0 4px 16px #0009;--shadow-lg:0 12px 32px #000000b3;--header-bg:#0d1527f2;--dashboard-bg-mid:#0c1422;--dashboard-grid:#38bdf812;--dashboard-trace:#fbbf240f;--dashboard-scan:#fbbf2414;--bg-solar-aura-1:#fbbf2424;--bg-solar-aura-2:#38bdf81f;--bg-solar-aura-3:#10b98114;--bg-grid-line:#38bdf812;--bg-grid-glow:#fbbf241f;--bg-scan-beam:#fbbf242e;--bg-particle-1:#fbbf24bf;--bg-particle-2:#38bdf8b3;--bg-particle-line:#38bdf829}@keyframes fadeInUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse-ring{0%{box-shadow:0 0 #10b98180}70%{box-shadow:0 0 0 8px #10b98100}to{box-shadow:0 0 #10b98100}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.35}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}*,:before,:after{box-sizing:border-box}body{font-family:var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.6;overflow-x:clip}#root{text-align:left;flex-direction:column;width:100%;max-width:100%;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--sans);color:var(--text-h);margin:0;font-weight:700;line-height:1.25}h1{letter-spacing:-.5px;font-size:2rem}h2{letter-spacing:-.3px;font-size:1.25rem}h3{font-size:1.05rem}h4{font-size:.9rem;font-weight:600}p{margin:0}a{color:var(--accent-dark);text-decoration:none}code{font-family:var(--mono);background:var(--surface-2);border-radius:var(--r-sm);color:var(--purple);padding:2px 6px;font-size:.85em}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.notification-bell-container{justify-content:center;align-items:center;display:inline-flex;position:relative}.notification-bell-btn{cursor:pointer;color:var(--text-muted);border-radius:var(--r-full);transition:all var(--t-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:flex;position:relative}.notification-bell-btn:hover{background:var(--surface-2);color:var(--text-h)}.notification-badge{background-color:var(--red);color:#fff;border:2px solid var(--header-bg);border-radius:10px;padding:2px 5px;font-size:10px;font-weight:700;line-height:1;position:absolute;top:0;right:0}.notification-dropdown{background:var(--surface);border-radius:var(--r-lg);width:380px;max-width:92vw;box-shadow:var(--shadow-lg);border:1px solid var(--border);z-index:100;animation:.15s fadeIn;position:absolute;top:calc(100% + 10px);right:-10px;overflow:hidden}.notification-dropdown-header{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.notification-header-title-wrap{align-items:center;gap:8px;display:flex}.notification-dropdown-header h3{color:var(--text-h);margin:0;font-size:.95rem;font-weight:700}.notification-header-count{background:var(--red-light);color:var(--red);border-radius:var(--r-full);padding:2px 7px;font-size:.72rem;font-weight:700}.notification-dropdown-body{flex-direction:column;max-height:400px;display:flex;overflow-y:auto}.notification-empty{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;display:flex}.notification-empty svg{opacity:.35;stroke:var(--text-muted);margin-bottom:12px}.notification-empty p{color:var(--text-h);margin-bottom:4px;font-weight:600}.notification-empty span{font-size:.82rem}.notification-item{border-bottom:1px solid var(--border);transition:all var(--t-fast);color:inherit;border-left:3px solid #0000;align-items:flex-start;gap:12px;padding:12px 14px;text-decoration:none;display:flex}.notification-item-link{cursor:pointer}.notification-item:hover{background:var(--surface-2)}.notification-item.severity-critical{border-left-color:var(--red)}.notification-item.severity-warning,.notification-item.severity-high{border-left-color:var(--orange)}.notification-item:last-child{border-bottom:none}.notification-item-icon{border-radius:var(--r-full);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-top:2px;display:flex}.severity-critical .notification-item-icon{background:var(--red-light);color:var(--red)}.severity-warning .notification-item-icon,.severity-high .notification-item-icon{background:var(--orange-light);color:var(--orange)}.notification-item-content{flex:1;min-width:0}.notification-plant-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:5px;display:flex}.notification-plant-badge{color:var(--primary);border-radius:var(--r-sm);white-space:nowrap;text-overflow:ellipsis;background:#1e90ff14;max-width:190px;padding:2px 6px;font-size:.78rem;font-weight:600;overflow:hidden}.notification-severity-badge{letter-spacing:.5px;text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:.65rem;font-weight:700}.notification-severity-badge.severity-critical{background:var(--red-light);color:var(--red)}.notification-severity-badge.severity-warning,.notification-severity-badge.severity-high{background:var(--orange-light);color:var(--orange)}.notification-message{color:var(--text-h);word-break:break-word;margin:0 0 6px;font-size:.84rem;font-weight:500;line-height:1.35}.notification-meta-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.notification-device-tag{color:var(--text-muted);background:var(--surface-2);border-radius:4px;padding:1px 6px;font-family:monospace;font-size:.7rem;font-weight:600}.notification-time{color:var(--text-muted);font-size:.72rem}.notification-arrow{color:var(--text-muted);transition:transform var(--t-fast), color var(--t-fast);flex-shrink:0;align-items:center;padding-top:6px;display:flex}.notification-item-link:hover .notification-arrow{color:var(--primary);transform:translate(3px)}.solar-bg-root{pointer-events:none;z-index:0;contain:strict;isolation:isolate;background:var(--bg);width:100vw;height:100vh;transition:background .5s cubic-bezier(.4,0,.2,1);position:fixed;inset:0;overflow:hidden}.solar-bg-root:before{content:"";background:radial-gradient(ellipse 65% 50% at 85% 15%, var(--bg-solar-aura-1) 0%, transparent 70%), radial-gradient(ellipse 60% 45% at 15% 85%, var(--bg-solar-aura-2) 0%, transparent 65%), radial-gradient(ellipse 50% 40% at 50% 50%, var(--bg-solar-aura-3) 0%, transparent 60%);opacity:.85;filter:blur(40px);will-change:transform, opacity;z-index:1;animation:16s ease-in-out infinite alternate solarFieldBreathe;position:absolute;inset:-20%}@keyframes solarFieldBreathe{0%{opacity:.75;transform:scale(1)rotate(0)}50%{opacity:.95;transform:scale(1.06)rotate(1deg)}to{opacity:.8;transform:scale(.98)rotate(-1deg)}}.solar-bg-sunrays{pointer-events:none;z-index:2;filter:blur(14px);will-change:transform;background:repeating-conic-gradient(from 195deg at 90% 10%,#f59e0b0b 0deg 7deg,#0000 7deg 18deg,#0ea5e909 18deg 25deg,#0000 25deg 38deg);width:130vw;height:130vh;animation:36s ease-in-out infinite alternate sunraysPan;position:absolute;top:-15%;right:-10%;-webkit-mask-image:radial-gradient(circle at 85% 12%,#000 15%,#00000080 60%,#0000 85%);mask-image:radial-gradient(circle at 85% 12%,#000 15%,#00000080 60%,#0000 85%)}@keyframes sunraysPan{0%{opacity:.65;transform:rotate(0)scale(1)}50%{opacity:.9;transform:rotate(5deg)scale(1.08)}to{opacity:.7;transform:rotate(-4deg)scale(1.02)}}.solar-bg-canvas{pointer-events:none;z-index:3;width:100%;height:100%;position:absolute;inset:0}.dark-theme .solar-bg-root{background:#060912}.dark-theme .solar-bg-sunrays{opacity:.85;background:repeating-conic-gradient(from 195deg at 90% 10%,#fbbf240f 0deg 7deg,#0000 7deg 18deg,#38bdf80d 18deg 25deg,#0000 25deg 38deg)}.animations-disabled .solar-bg-root:before,.animations-disabled .solar-bg-sunrays{animation:none!important}.animations-disabled .solar-bg-canvas{display:none!important}@media (prefers-reduced-motion:reduce){.solar-bg-root:before,.solar-bg-sunrays{animation:none!important}.solar-bg-canvas{display:none!important}}.auth-page{background:0 0;justify-content:center;align-items:center;min-height:100vh;padding:24px;transition:background .4s;display:flex;position:relative;overflow:clip visible}.auth-orb{pointer-events:none;will-change:transform;border-radius:50%;position:absolute}.auth-orb--1{background:radial-gradient(circle at 40% 40%,#f59e0b40 0%,#f59e0b0d 50%,#0000 70%);width:520px;height:520px;animation:12s ease-in-out infinite orbFloat1;top:-180px;right:-120px}.auth-orb--2{background:radial-gradient(circle at 60% 60%,#0ea5e933 0%,#0ea5e90a 50%,#0000 70%);width:380px;height:380px;animation:16s ease-in-out infinite orbFloat2;bottom:-140px;left:-100px}.auth-orb--3{background:radial-gradient(circle,#10b9811f 0%,#0000 70%);width:260px;height:260px;animation:20s ease-in-out infinite orbFloat3;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes orbFloat1{0%,to{transform:translate(0)rotate(0)}33%{transform:translate(-30px,20px)rotate(5deg)}66%{transform:translate(20px,-25px)rotate(-4deg)}}@keyframes orbFloat2{0%,to{transform:translate(0)}40%{transform:translate(25px,-20px)}70%{transform:translate(-15px,15px)}}@keyframes orbFloat3{0%,to{transform:translate(-50%,-50%)scale(1)}50%{transform:translate(-50%,-50%)scale(1.3)}}.auth-card{z-index:1;-webkit-backdrop-filter:blur(20px);border-radius:var(--r-xl);width:100%;max-width:420px;box-shadow:var(--shadow-lg), 0 0 0 1px #fffc inset;background:#ffffffeb;border:1px solid #f59e0b33;flex-direction:column;gap:0;padding:44px 40px;transition:background .3s,box-shadow .3s,border-color .3s;animation:.6s cubic-bezier(.22,1,.36,1) both fadeInUp;display:flex;position:relative}.auth-logo{align-items:center;gap:12px;margin-bottom:10px;display:flex}.auth-logo-icon{background:linear-gradient(135deg, var(--accent), var(--accent-dark));border-radius:var(--r-md);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;animation:3s ease-in-out infinite logoPulse;display:flex;box-shadow:0 4px 20px #f59e0b73,0 0 0 1px #f59e0b4d}@keyframes logoPulse{0%,to{box-shadow:0 4px 20px #f59e0b66,0 0 0 1px #f59e0b4d}50%{box-shadow:0 4px 32px #f59e0ba6,0 0 0 1px #f59e0b80}}.auth-logo-name{color:var(--text-h);letter-spacing:-.3px;font-size:19px;font-weight:800}.auth-logo-name span{color:var(--accent-dark)}.auth-headline{margin:20px 0 22px}.auth-headline h1{color:var(--text-h);letter-spacing:-.5px;margin:0 0 5px;font-size:1.55rem;font-weight:700}.auth-headline p{color:var(--text-muted);margin:0;font-size:13px}.auth-card h1{color:var(--text-h);letter-spacing:-.4px;margin:20px 0 4px;font-size:1.5rem;font-weight:700}.auth-card p{color:var(--text-muted);margin-bottom:24px;font-size:13px}.auth-field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.auth-card label{color:var(--text-h);letter-spacing:.2px;font-size:12.5px;font-weight:600}.auth-input-wrap{position:relative}.auth-input-icon{color:var(--text-muted);pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.auth-card input{border-radius:var(--r-md);border:1.5px solid var(--border);background:var(--surface);width:100%;color:var(--text-h);font-family:var(--sans);box-sizing:border-box;outline:none;padding:12px 14px 12px 40px;font-size:14px;transition:border-color .2s,box-shadow .2s,background .2s}.auth-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #f59e0b1f}.auth-card input::placeholder{color:var(--text-muted)}.auth-error{color:var(--red);border-radius:var(--r-md);background:#ef44441f;border:1px solid #ef44444d;align-items:center;gap:8px;margin-bottom:8px;padding:10px 14px;font-size:13px;font-weight:500;animation:.4s both shakeX;display:flex}.auth-error-icon{font-size:14px}@keyframes shakeX{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.auth-submit{border-radius:var(--r-md);background:linear-gradient(135deg, var(--accent), #d97706);color:#fff;width:100%;font-family:var(--sans);letter-spacing:.3px;cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;margin-top:10px;padding:14px 20px;font-size:14px;font-weight:700;transition:transform .2s,box-shadow .2s,opacity .15s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 20px #f59e0b66}.auth-submit:before{content:"";background:linear-gradient(90deg,#0000,#ffffff26,#0000);width:100%;height:100%;transition:left .4s;position:absolute;top:0;left:-100%}.auth-submit:hover:not(:disabled):before{left:100%}.auth-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 32px #f59e0b80}.auth-submit:active:not(:disabled){transform:translateY(0)}.auth-submit:disabled{opacity:.55;cursor:not-allowed}.auth-submit--loading{opacity:.8}.auth-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}.auth-card button{border-radius:var(--r-md);background:linear-gradient(135deg, var(--accent), var(--accent-dark));color:#fff;cursor:pointer;font-family:var(--sans);transition:transform var(--t-fast), box-shadow var(--t-normal);box-shadow:var(--shadow-accent);border:none;padding:14px 20px;font-size:14px;font-weight:700}.auth-card button:hover{transform:translateY(-2px);box-shadow:0 6px 24px #f59e0b59}.select-page{background:0 0;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.select-card{z-index:1;-webkit-backdrop-filter:blur(20px);border-radius:var(--r-xl);width:100%;max-width:480px;box-shadow:var(--shadow-lg);background:#ffffffeb;border:1px solid #f59e0b33;flex-direction:column;gap:0;padding:40px 36px;animation:.5s cubic-bezier(.22,1,.36,1) both fadeInUp;display:flex;position:relative}.select-card-header{align-items:center;gap:14px;margin-bottom:20px;display:flex}.select-logo-icon{background:linear-gradient(135deg, var(--accent), var(--accent-dark));border-radius:var(--r-md);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;animation:3s ease-in-out infinite logoPulse;display:flex;box-shadow:0 4px 20px #f59e0b73}.select-card h1{color:var(--text-h);letter-spacing:-.4px;margin:0;font-size:1.5rem;font-weight:800}.select-subtitle{color:var(--text-muted);margin:0;font-size:13px}.select-card>p{color:var(--text-muted);margin:0 0 20px;font-size:13px}.select-user-pill{border-radius:var(--r-full);background:var(--green-light);color:var(--text-muted);border:1px solid #10b98140;align-items:center;gap:7px;margin-bottom:22px;padding:6px 14px;font-size:12.5px;display:inline-flex}.select-user-pill strong{color:var(--text-h)}.select-user-dot{background:var(--green);border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:2s ease-in-out infinite livePulse}.select-options{flex-direction:column;gap:12px;margin-bottom:18px;display:flex}.select-option-btn{border:1.5px solid var(--border);border-radius:var(--r-lg);background:var(--surface);cursor:pointer;text-align:left;font-family:var(--sans);color:var(--text-h);justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;transition:border-color .2s,background .2s,transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;animation:.5s both fadeInUp;display:flex}.select-option-btn:first-child{animation-delay:.15s}.select-option-btn:nth-child(2){animation-delay:.25s}.select-option-btn:hover{border-color:var(--accent);background:var(--accent-bg);box-shadow:var(--shadow), 0 0 0 3px #f59e0b14;transform:translate(6px)}.select-option-btn:hover svg{color:var(--accent-dark)}.select-option-body{align-items:center;gap:14px;display:flex}.select-option-icon{flex-shrink:0;font-size:28px}.select-option-label{color:var(--text-h);margin-bottom:3px;font-size:14px;font-weight:700;display:block}.select-option-desc{color:var(--text-muted);font-size:12px;font-weight:400;line-height:1.4;display:block}.select-options button{border:1.5px solid var(--border);border-radius:var(--r-lg);background:var(--surface);cursor:pointer;font-family:var(--sans);color:var(--text-h);align-items:center;gap:12px;padding:18px 20px;font-size:14px;font-weight:700;transition:all .22s;display:flex}.select-options button:hover{border-color:var(--accent);background:var(--accent-bg);transform:translate(6px)}.select-logout{border:1.5px solid var(--border);border-radius:var(--r-md);width:100%;color:var(--text);cursor:pointer;font-family:var(--sans);transition:all var(--t-fast);background:0 0;margin-top:4px;padding:11px 14px;font-size:13px;font-weight:500;animation:.5s .35s both fadeInUp}.select-logout:hover{border-color:var(--red);color:var(--red);background:var(--red-light)}.dashboard-layout{isolation:isolate;background:0 0;flex-direction:column;display:flex;position:relative;overflow:hidden}.route-transition{animation:.52s cubic-bezier(.22,1,.36,1) both routeEnter}@keyframes routeEnter{0%{opacity:0}to{opacity:1}}.animations-enabled .dashboard-content>*{animation:.55s cubic-bezier(.22,1,.36,1) both contentRise}.animations-enabled .dashboard-content>:nth-child(2){animation-delay:60ms}.animations-enabled .dashboard-content>:nth-child(3){animation-delay:.12s}.animations-enabled .dashboard-content>:nth-child(4){animation-delay:.18s}.animations-enabled .dashboard-content>:nth-child(5){animation-delay:.24s}@keyframes contentRise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.animations-enabled button,.animations-enabled a,.animations-enabled input,.animations-enabled select{transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s,border-color .2s,background-color .2s,color .2s}.animations-enabled button:not(:disabled):active,.animations-enabled a:active{transform:scale(.97)}.animations-enabled .plant-card,.animations-enabled .plant-square-card,.animations-enabled .inverter-card,.animations-enabled .stat-card,.animations-enabled .chart-section,.animations-enabled .trends-chart-container{will-change:transform;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s,border-color .28s}.animations-enabled .plant-card:hover,.animations-enabled .plant-square-card:hover,.animations-enabled .inverter-card:hover,.animations-enabled .stat-card:hover,.animations-enabled .trends-chart-container:hover{transform:translateY(-3px);box-shadow:0 12px 28px #0f172a1f}.page-status{animation:1.8s ease-in-out infinite statusBreath}@keyframes statusBreath{0%,to{opacity:.62}50%{opacity:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.dashboard-layout:before,.dashboard-layout:after{display:none}.dashboard-header{z-index:100;background:var(--header-bg);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);height:62px;box-shadow:var(--shadow-xs);align-items:center;gap:16px;padding:0 28px;animation:.4s cubic-bezier(.22,1,.36,1) both headerSlideDown;display:flex;position:sticky;top:0}.dashboard-header:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#f59e0b0a,#0000);width:60%;height:100%;animation:4s ease-in-out .5s forwards headerScan;position:absolute;top:0;left:-100%}@keyframes headerSlideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes headerScan{0%{left:-60%}to{left:160%}}.dashboard-brand{flex-shrink:0;align-items:center;gap:10px;text-decoration:none;display:flex}.brand-icon{background:linear-gradient(135deg, var(--accent), var(--accent-dark));border-radius:var(--r-md);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:box-shadow .25s,transform .3s;display:flex;box-shadow:0 2px 10px #f59e0b59}.dashboard-brand:hover .brand-icon{transform:rotate(15deg)scale(1.08);box-shadow:0 4px 20px #f59e0b8c}.dashboard-brand:hover .brand-icon svg{animation:.4s ease-out spinOnce}@keyframes spinOnce{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.brand-name{color:var(--text-h);letter-spacing:-.3px;font-size:15px;font-weight:800}.brand-name span{color:var(--accent-dark)}.header-divider{background:var(--border);flex-shrink:0;width:1px;height:22px}.header-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.header-live{color:var(--green);text-transform:uppercase;letter-spacing:.6px;flex-shrink:0;align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.live-dot{background:var(--green);border-radius:50%;width:8px;height:8px;animation:1.8s ease-in-out infinite livePulse;box-shadow:0 0 #10b98180}@keyframes livePulse{0%{box-shadow:0 0 #10b98199}60%{box-shadow:0 0 0 7px #10b98100}to{box-shadow:0 0 #10b98100}}.dashboard-header-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.tv-status{color:var(--text-muted);letter-spacing:.08em;white-space:nowrap;align-items:center;gap:7px;margin-left:auto;font-size:11px;font-weight:800;display:inline-flex}.tv-status.active{color:var(--teal)}.tv-status.stale{color:#f59e0b}.tv-status.waiting{color:var(--text-muted)}.tv-status-dot{width:7px;height:7px;box-shadow:0 0 0 4px color-mix(in srgb, currentColor 14%, transparent);background:currentColor;border-radius:50%}.tv-status.live{color:#10b981;animation:2.4s ease-in-out infinite liveStatusGlow}.tv-status.live .tv-status-dot{animation:1.6s ease-out infinite liveStatusPulse}@keyframes liveStatusPulse{0%{box-shadow:0 0 #10b9818c}70%{box-shadow:0 0 0 7px #10b98100}to{box-shadow:0 0 #10b98100}}@keyframes liveStatusGlow{0%,to{opacity:.82}50%{opacity:1}}.tv-mode-btn,.tv-rotate-btn{border:1px solid var(--border);background:var(--surface);min-height:34px;color:var(--text);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:0 11px;font-size:11px;font-weight:800;display:inline-flex}.tv-mode-btn.active,.tv-rotate-btn:hover,.tv-mode-btn:hover{border-color:var(--teal);color:var(--teal);background:color-mix(in srgb, var(--teal) 9%, var(--surface))}.tv-alarm-takeover{z-index:40;background:color-mix(in srgb, #450a0a 92%, var(--surface));color:#fff;border:1px solid #fb7185;border-left:6px solid #ef4444;border-radius:14px;gap:5px;width:min(420px,100vw - 56px);padding:20px 22px;animation:.35s cubic-bezier(.22,1,.36,1) tvAlarmEnter,2.5s ease-in-out infinite tvAlarmPulse;display:grid;position:fixed;bottom:28px;right:28px;box-shadow:0 18px 50px #7f1d1d59}.tv-alarm-kicker{color:#fda4af;letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:900}.tv-alarm-takeover strong{letter-spacing:.04em;font-size:24px}.tv-alarm-takeover span{font-size:15px;line-height:1.35}.tv-alarm-takeover small{color:#fecdd3;font-weight:700}@keyframes tvAlarmEnter{0%{opacity:0;transform:translateY(18px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes tvAlarmPulse{0%,to{box-shadow:0 18px 50px #7f1d1d59}50%{box-shadow:0 18px 50px #ef444499}}body.tv-mode-active .dashboard-header-actions>:not(.tv-mode-btn):not(.tv-rotate-btn),body.tv-mode-active .dashboard-settings-bar{opacity:.35;transition:opacity .2s}body.tv-mode-active .dashboard-header-actions>:not(.tv-mode-btn):not(.tv-rotate-btn):hover,body.tv-mode-active .dashboard-settings-bar:hover{opacity:1}body.tv-mode-active .dashboard-content{min-height:0}@media (width<=900px){.tv-status,.tv-mode-btn span:last-child,.tv-rotate-btn{display:none}}.dashboard-user{color:var(--text-h);background:var(--surface-2);border-radius:var(--r-full);border:1px solid var(--border);padding:5px 12px;font-size:13px;font-weight:600}.header-logout-btn{border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-family:var(--sans);cursor:pointer;transition:all var(--t-fast);padding:7px 14px;font-size:13px;font-weight:500}.header-logout-btn:hover{border-color:var(--red);color:var(--red);background:var(--red-light)}.dashboard-header-actions button{border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-family:var(--sans);cursor:pointer;transition:all var(--t-fast);padding:7px 14px;font-size:13px;font-weight:500}.dashboard-header-actions button:hover{border-color:var(--red);color:var(--red);background:var(--red-light)}.dashboard-content{box-sizing:border-box;flex-direction:column;gap:28px;width:100%;max-width:1560px;margin:0 auto;padding:28px 28px 40px;animation:.4s both fadeIn;display:flex}.page-status{color:var(--text);align-items:center;gap:10px;padding:20px 24px;font-size:14px;display:flex}.page-status--error{color:var(--red);background:var(--red-light);border-radius:var(--r-md);border-left:3px solid var(--red)}.page-status--error button{border:1px solid var(--red);border-radius:var(--r-sm);color:var(--red);cursor:pointer;font-size:13px;font-family:var(--sans);background:0 0;padding:5px 12px}.fleet-summary{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;display:grid}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:2px;padding:22px 22px 18px;transition:transform .28s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;animation:.5s both fadeInUp;display:flex;position:relative;overflow:hidden}.kpi-card:first-child{animation-delay:0s}.kpi-card:nth-child(2){animation-delay:70ms}.kpi-card:nth-child(3){animation-delay:.14s}.kpi-card:nth-child(4){animation-delay:.21s}.kpi-card:nth-child(5){animation-delay:.28s}.kpi-card:before{content:"";border-radius:var(--r-lg) var(--r-lg) 0 0;height:4px;transition:height .2s;position:absolute;top:0;left:0;right:0}.kpi-card:after{content:"";opacity:.06;pointer-events:none;border-radius:50%;width:100px;height:100px;transition:opacity .25s,transform .25s;position:absolute;top:-30px;right:-30px}.kpi-card:hover{box-shadow:var(--shadow), 0 0 0 1px var(--border);transform:translateY(-6px)scale(1.015)}.kpi-card:hover:before{height:6px}.kpi-card:hover:after{opacity:.13;transform:scale(1.25)}.kpi-card--blue:before{background:linear-gradient(90deg, var(--blue), var(--sky))}.kpi-card--blue:after{background:var(--blue)}.kpi-card--blue:hover{box-shadow:var(--shadow), 0 6px 24px #3b82f62e}.kpi-card--teal:before{background:linear-gradient(90deg, var(--teal), var(--sky))}.kpi-card--teal:after{background:var(--teal)}.kpi-card--teal:hover{box-shadow:var(--shadow), 0 6px 24px #14b8a62e}.kpi-card--purple:before{background:linear-gradient(90deg, var(--purple), #a78bfa)}.kpi-card--purple:after{background:var(--purple)}.kpi-card--purple:hover{box-shadow:var(--shadow), 0 6px 24px #8b5cf62e}.kpi-card--green:before{background:linear-gradient(90deg, var(--green), #34d399)}.kpi-card--green:after{background:var(--green)}.kpi-card--green:hover{box-shadow:var(--shadow), 0 6px 24px #10b9812e}.kpi-card--orange:before{background:linear-gradient(90deg, var(--orange), var(--accent))}.kpi-card--orange:after{background:var(--orange)}.kpi-card--orange:hover{box-shadow:var(--shadow), 0 6px 24px #f973162e}.kpi-icon{align-items:center;margin-bottom:10px;font-size:22px;display:flex}.kpi-card--blue .kpi-icon{color:var(--blue)}.kpi-card--teal .kpi-icon{color:var(--teal)}.kpi-card--purple .kpi-icon{color:var(--purple)}.kpi-card--green .kpi-icon{color:var(--green)}.kpi-card--orange .kpi-icon{color:var(--orange)}.kpi-label{text-transform:uppercase;letter-spacing:.7px;color:var(--text-muted);font-size:11px;font-weight:700}.kpi-value{color:var(--text-h);letter-spacing:-.5px;font-size:2rem;font-weight:800;line-height:1.1;transition:transform .2s}.kpi-card:hover .kpi-value{transform:scale(1.04)}.kpi-card--blue .kpi-value{color:var(--blue)}.kpi-card--teal .kpi-value{color:var(--teal)}.kpi-card--purple .kpi-value{color:var(--purple)}.kpi-card--green .kpi-value{color:var(--green)}.kpi-card--orange .kpi-value{color:var(--orange)}.kpi-sub{color:var(--text-muted);margin-top:2px;font-size:12px}.kpi-bar{border-radius:var(--r-full);background:var(--surface-3);height:5px;margin-top:12px;overflow:hidden}.kpi-bar-fill{border-radius:var(--r-full);background:linear-gradient(90deg, var(--teal), var(--sky), var(--blue));background-size:200% 100%;height:100%;transition:width 1.2s cubic-bezier(.16,.84,.44,1);animation:2.5s ease-in-out infinite barShimmer}@keyframes barShimmer{0%,to{background-position:0%}50%{background-position:100%}}.chart-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);max-width:100%;padding:22px 24px;animation:.4s both fadeInUp}.chart-section-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.chart-section-header h2{color:var(--text-h);font-size:15px;font-weight:700}.last-updated{color:var(--text-muted);background:var(--surface-2);border-radius:var(--r-full);border:1px solid var(--border);padding:4px 10px;font-size:12px}.plant-sections{flex-direction:column;gap:20px;display:flex}.plant-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);border-top:4px solid var(--green);transition:box-shadow .25s,border-top-color .3s;animation:.5s both fadeInUp;position:relative;overflow:hidden}.plant-section:before{content:"";background:linear-gradient(90deg, var(--green), #34d399, var(--teal));border-radius:var(--r-lg) var(--r-lg) 0 0;pointer-events:none;z-index:1;background-size:200% 100%;height:4px;animation:4s ease-in-out infinite barShimmer;position:absolute;top:0;left:0;right:0}.plant-section:hover{box-shadow:var(--shadow), 0 0 0 1px #10b98126}.plant-section--offline:before{background:linear-gradient(90deg, var(--red), var(--orange), var(--red))}.plant-section-header{background:linear-gradient(135deg, var(--surface) 60%, var(--surface-2));border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;display:flex}.plant-section-header h2{color:var(--text-h);margin-bottom:3px;font-size:16px;font-weight:700}.plant-meta{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.plant-meta-dot{background:var(--border);border-radius:50%;width:3px;height:3px}.plant-section-kpis{align-items:center;gap:24px;display:flex}.plant-kpi-item{flex-direction:column;align-items:flex-end;display:flex}.plant-kpi-item>span:first-child{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-size:10px;font-weight:700}.plant-kpi-item>strong{color:var(--text-h);font-size:16px;font-weight:700}.plant-section-kpis>div{flex-direction:column;align-items:flex-end;display:flex}.plant-section-kpis span{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:10px;font-weight:700}.plant-section-kpis strong{color:var(--text-h);font-size:15px;font-weight:700}.status-badge{border-radius:var(--r-full);text-transform:capitalize;letter-spacing:.3px;padding:4px 12px;font-size:11px;font-weight:700}.status-badge--online{background:var(--green-light);color:#065f46;border:1px solid #10b9814d;position:relative;overflow:hidden}.status-badge--online:before{content:"";background:var(--green);vertical-align:middle;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-right:5px;animation:2s ease-in-out infinite livePulse;display:inline-block;box-shadow:0 0 #10b98180}.status-badge--offline{background:var(--red-light);color:#991b1b;border:1px solid #ef44444d}.plant-tabs{border-bottom:1px solid var(--border);gap:2px;padding:14px 24px 0;display:flex;overflow-x:auto}.plant-tab{color:var(--text-muted);cursor:pointer;font-family:var(--sans);border-radius:var(--r-md) var(--r-md) 0 0;white-space:nowrap;transition:color var(--t-fast), background var(--t-fast);background:0 0;border:none;padding:9px 16px;font-size:13px;font-weight:500;position:relative}.plant-tab:after{content:"";background:var(--accent);height:2px;transition:transform var(--t-normal);border-radius:2px 2px 0 0;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.plant-tab:hover{color:var(--text-h);background:var(--surface-2)}.plant-tab--active{color:var(--accent-dark);background:var(--accent-bg);font-weight:700}.plant-tab--active:after{transform:scaleX(1)}.plant-tab-content{padding:22px 24px 26px;animation:.22s both fadeIn}.overview-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;display:grid}.inverter-grid,.meter-grid,.controller-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;display:grid}.inverter-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);transition:transform var(--t-normal), box-shadow var(--t-normal), border-color var(--t-normal);padding:16px;position:relative;overflow:hidden}.inverter-card:before{content:"";background:var(--green);border-radius:0;width:3px;height:100%;position:absolute;top:0;left:0}.inverter-card--fault:before,.inverter-card:not(.inverter-card--ok):before{background:var(--red)}.inverter-card:hover{box-shadow:var(--shadow);border-color:var(--accent-border);transform:translateY(-2px)}.inverter-card-header{color:var(--text-h);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;font-weight:700;display:flex}.dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.dot--green{background:var(--green);animation:2s ease-in-out infinite pulse-dot;box-shadow:0 0 0 3px #10b98133}.dot--red{background:var(--red)}.inverter-metric{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:5px 0;font-size:12.5px;display:flex}.inverter-metric:first-of-type{border-top:none}.inverter-metric span{color:var(--text-muted)}.inverter-metric strong{color:var(--text-h);font-weight:600}.inverter-status-text{color:var(--purple);text-transform:uppercase;letter-spacing:.4px;margin-top:10px;font-size:11px;font-weight:600}.meter-card,.controller-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);transition:transform var(--t-normal), box-shadow var(--t-normal);padding:16px}.meter-card:hover,.controller-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.meter-card h4{color:var(--blue);align-items:center;gap:6px;margin:0 0 12px;font-size:13px;font-weight:700;display:flex}.meter-metrics,.controller-metrics{flex-direction:column;gap:7px;display:flex}.meter-metrics div,.controller-metrics div{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:4px 0;font-size:13px;display:flex}.meter-metrics div:last-child,.controller-metrics div:last-child{border-bottom:none}.meter-metrics span,.controller-metrics span{color:var(--text-muted);font-size:12px}.meter-metrics strong,.controller-metrics strong{color:var(--text-h);font-weight:600}.weather-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;display:grid}.weather-card{display:contents}.weather-metric{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);text-align:center;transition:transform var(--t-normal), box-shadow var(--t-normal), border-color var(--t-normal);flex-direction:column;align-items:center;gap:6px;padding:18px 16px;display:flex}.weather-metric:hover{box-shadow:var(--shadow);border-color:var(--teal);transform:translateY(-2px)}.weather-icon{font-size:26px}.weather-metric span{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-size:10px;font-weight:700}.weather-metric strong{color:var(--teal);font-size:18px;font-weight:700}.controller-card-header{color:var(--text-h);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;font-weight:700;display:flex}.pill{border-radius:var(--r-full);letter-spacing:.2px;padding:3px 9px;font-size:11px;font-weight:700}.pill--closed{background:var(--green-light);color:#065f46}.pill--open{background:var(--red-light);color:#991b1b}.pill--unknown{background:var(--surface-muted);color:var(--text-muted)}.empty-note{color:var(--text-muted);text-align:center;padding:24px 0;font-size:14px}.alarms-table-wrapper{border-radius:var(--r-md);border:1px solid var(--border);box-shadow:var(--shadow-xs);overflow-x:auto}.alarms-table{border-collapse:collapse;width:100%;font-size:13px}.alarms-table thead{background:linear-gradient(180deg, var(--surface-2) 0%, var(--surface-3) 100%);z-index:2;position:sticky;top:0}.alarms-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;border-bottom:2px solid var(--border);white-space:nowrap;padding:12px 14px;font-size:10px;font-weight:800}.alarms-table tbody tr{transition:background .15s,transform .15s;animation:.25s both rowFadeIn}.alarms-table tbody tr:first-child{animation-delay:30ms}.alarms-table tbody tr:nth-child(2){animation-delay:60ms}.alarms-table tbody tr:nth-child(3){animation-delay:90ms}.alarms-table tbody tr:nth-child(4){animation-delay:.12s}.alarms-table tbody tr:nth-child(5){animation-delay:.15s}.alarms-table tbody tr:nth-child(6){animation-delay:.18s}.alarms-table tbody tr:nth-child(7){animation-delay:.21s}.alarms-table tbody tr:nth-child(8){animation-delay:.24s}.alarms-table tbody tr:nth-child(2n){background:var(--bg)}.alarms-table tbody tr:hover{background:var(--accent-bg);transform:translate(3px)}.alarms-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 14px}.alarms-table tbody tr:last-child td{border-bottom:none}.alarm-code{font-family:var(--mono);color:var(--purple);background:var(--purple-light);border-radius:var(--r-sm);letter-spacing:.3px;border:1px solid #8b5cf633;padding:3px 8px;font-size:10.5px;font-weight:700}.alarm-text{max-width:340px;color:var(--text);font-size:12.5px;line-height:1.45}.severity-badge{border-radius:var(--r-sm);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;padding:3px 9px;font-size:10px;font-weight:800}.severity-badge--critical{background:var(--red-light);color:#991b1b;border:1px solid #ef44444d}.severity-badge--high{background:var(--orange-light);color:#9a3412;border:1px solid #f973164d}.severity-badge--warning{color:#854d0e;background:#fef9c3;border:1px solid #eab3084d}.severity-badge--low{background:var(--blue-light);color:#1e40af;border:1px solid #3b82f64d}.text-critical{font-weight:700;color:var(--red)!important}@media (width<=768px){.dashboard-content{gap:20px;padding:16px 16px 32px}.dashboard-header{height:56px;padding:0 16px}.brand-name,.header-live{display:none}.plant-section-header{gap:12px;padding:16px 18px}.plant-section-kpis{gap:14px}.select-options{grid-template-columns:1fr}.kpi-value{font-size:1.6rem}.auth-card,.select-card{padding:28px 22px}}.parallax-banner{border-radius:var(--r-lg);height:220px;box-shadow:var(--shadow-sm);transition:transform var(--t-normal), box-shadow var(--t-normal);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:scroll;justify-content:center;align-items:center;margin:12px 0;display:flex;position:relative;overflow:hidden}.parallax-banner:hover{box-shadow:var(--shadow)}.parallax-banner-overlay{z-index:1;background:linear-gradient(#0f172a26 0%,#0f172aa6 100%);position:absolute;inset:0}.parallax-banner-content{z-index:2;text-align:center;color:#fff;padding:24px;position:relative}.parallax-banner-content h2{color:#fff;text-shadow:0 2px 4px #0006;margin:0;font-size:1.6rem;font-weight:800}.parallax-banner-content p{color:#ffffffe6;text-shadow:0 1px 2px #0006;text-transform:uppercase;letter-spacing:1.5px;margin-top:6px;font-size:11px;font-weight:700}.animations-disabled *,.animations-disabled :before,.animations-disabled :after{transition:none!important;animation:none!important}.dashboard-settings-bar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:10px 28px;font-size:12px;display:flex}.settings-bar-left{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.settings-group{background:var(--surface-2);border-radius:var(--r-md);border:1px solid var(--border);align-items:center;gap:4px;padding:3px;display:flex}.settings-group-label{color:var(--text-h);text-transform:uppercase;letter-spacing:.5px;margin-left:6px;margin-right:6px;font-size:9px;font-weight:700}.settings-toggle-btn{color:var(--text-muted);font-family:var(--sans);border-radius:var(--r-sm);cursor:pointer;transition:all var(--t-fast);background:0 0;border:none;padding:4px 10px;font-size:11px;font-weight:600}.settings-toggle-btn:hover{color:var(--text-h)}.settings-toggle-btn.active{background:var(--surface);color:var(--accent-dark);box-shadow:var(--shadow-sm);font-weight:700}.settings-bar-right{align-items:center;display:flex}.advanced-controls-switch{cursor:pointer;color:var(--text-h);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.advanced-controls-switch input{cursor:pointer;accent-color:var(--accent);width:14px;height:14px}.advanced-controls-switch:has(input:disabled){opacity:.5;cursor:not-allowed}.advanced-controls-switch input:disabled{cursor:not-allowed}.scada-controls-card{background:var(--surface);border:1.5px solid var(--accent-border);border-radius:var(--r-lg);background:linear-gradient(180deg, var(--surface) 0%, #f59e0b05 100%);box-shadow:var(--shadow-sm);flex-direction:column;grid-column:1/-1;gap:0;padding:22px 24px;animation:.4s both fadeInUp;display:flex}.scada-controls-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.scada-controls-header h4{color:var(--accent-dark);text-transform:uppercase;letter-spacing:.5px;font-size:14px;font-weight:700}.scada-controls-icon{font-size:16px}.scada-controls-desc{color:var(--text-muted);margin-bottom:20px;font-size:12px}.scada-controls-body{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;display:grid}.scada-control-group{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);flex-direction:column;gap:8px;padding:16px;display:flex}.scada-control-group label{color:var(--text-h);text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:700}.scada-control-input-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.scada-control-input-row select,.scada-control-input-row input{font-family:var(--sans);border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--surface);color:var(--text-h);transition:border-color var(--t-fast);outline:none;flex:1;padding:7px 10px;font-size:13px}.scada-control-input-row select:focus,.scada-control-input-row input:focus{border-color:var(--accent)}.scada-write-btn{background:var(--surface);border:1.5px solid var(--accent);color:var(--accent-dark);font-family:var(--sans);border-radius:var(--r-sm);cursor:pointer;transition:all var(--t-fast);white-space:nowrap;padding:7px 14px;font-size:12px;font-weight:700}.scada-write-btn:hover:not(:disabled){background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.scada-write-btn:disabled{opacity:.5;cursor:not-allowed}.scada-write-btn.danger{border-color:var(--red);color:var(--red)}.scada-write-btn.danger:hover:not(:disabled){background:var(--red);color:#fff}.scada-write-btn.success{border-color:var(--green);color:var(--green)}.scada-write-btn.success:hover:not(:disabled){background:var(--green);color:#fff}.breaker-state-indicator{border-radius:var(--r-sm);text-align:center;flex:1;padding:6px 10px;font-size:12px;font-weight:700}.breaker-state-indicator.closed{background:var(--green-light);color:#065f46;border:1px solid #10b98133}.breaker-state-indicator.open{background:var(--red-light);color:#991b1b;border:1px solid #ef444433}.scada-command-status{border-radius:var(--r-md);align-items:center;gap:8px;margin-bottom:20px;padding:10px 14px;font-size:12px;font-weight:600;animation:.2s both fadeIn;display:flex}.scada-command-status.pending{background:var(--blue-light);color:#1e40af;border-left:3px solid var(--blue)}.scada-command-status.success{background:var(--green-light);color:#065f46;border-left:3px solid var(--green)}.spinner{border:2px solid #1e40af40;border-top-color:#1e40af;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.6s linear infinite spin;display:inline-block}.theme-toggle-btn{border:1.5px solid var(--border);border-radius:var(--r-md);cursor:pointer;width:34px;height:34px;transition:all var(--t-fast);background:0 0;outline:none;justify-content:center;align-items:center;padding:0;font-size:15px;display:flex}.theme-toggle-btn:hover{background:var(--surface-2);border-color:var(--accent)}.sld-container{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);grid-column:1/-1;padding:24px;overflow:hidden}.sld-canvas-wrapper{grid-template-columns:3fr 1.6fr;align-items:center;gap:24px;display:grid}.sld-svg{background:var(--surface-2);border-radius:var(--r-md);border:1px solid var(--border);width:100%;height:auto;padding:10px}.sld-node{cursor:pointer}.sld-node rect,.sld-node polygon,.sld-node circle{transition:fill var(--t-fast), stroke var(--t-fast), filter var(--t-fast)}.sld-node:hover rect,.sld-node:hover polygon,.sld-node--hovered rect,.sld-node--hovered polygon{stroke:var(--accent)!important;fill:var(--accent-bg)!important}.sld-node text{transition:fill var(--t-fast);-webkit-user-select:none;user-select:none}.sld-info-panel{background:var(--surface-2);border-radius:var(--r-md);border:1.5px dashed var(--border);flex-direction:column;justify-content:center;min-height:200px;padding:20px;display:flex}.sld-info-tip{color:var(--text-muted);text-align:center;font-size:13px;line-height:1.6}.sld-info-card{animation:.25s both fadeIn}.sld-info-card h5{color:var(--accent-dark);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:6px;font-size:13px;font-weight:700}.sld-info-row{border-bottom:1px solid #e2e8f066;justify-content:space-between;align-items:center;padding:6px 0;font-size:12.5px;display:flex}.sld-info-row:last-child{border-bottom:none}.sld-info-row span{color:var(--text-muted)}.sld-info-row strong{color:var(--text-h);font-weight:600}@media (width<=992px){.sld-canvas-wrapper{grid-template-columns:1fr}.sld-info-panel{min-height:auto}}.plant-section--collapsed{cursor:pointer;background:var(--surface);border:1.5px solid var(--border);transition:transform var(--t-fast), box-shadow var(--t-fast), background var(--t-fast), border-color var(--t-fast);padding:16px 24px}.plant-section--collapsed:hover{box-shadow:var(--shadow);border-color:var(--accent-border);background:linear-gradient(180deg, var(--surface) 60%, #f59e0b03 100%);transform:translateY(-2px)}.plant-collapsed-info{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.plant-collapsed-left h3{color:var(--text-h);margin-bottom:2px;font-size:15px;font-weight:700}.plant-collapsed-kpis{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.plant-expand-arrow{color:var(--accent-dark);background:var(--accent-bg);border-radius:var(--r-md);border:1.5px solid var(--accent-border);text-transform:uppercase;letter-spacing:.5px;transition:all var(--t-fast);padding:5px 12px;font-size:10px;font-weight:700}.plant-section--collapsed:hover .plant-expand-arrow{background:var(--accent);color:#fff;border-color:var(--accent)}.plant-collapse-btn{border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-family:var(--sans);cursor:pointer;transition:all var(--t-fast);text-transform:uppercase;letter-spacing:.5px;outline:none;margin-left:12px;padding:5px 12px;font-size:10px;font-weight:700}.plant-collapse-btn:hover{border-color:var(--accent);color:var(--accent-dark);background:var(--accent-bg)}@media (width<=768px){.plant-collapsed-info{flex-direction:column;align-items:flex-start;gap:12px}.plant-collapsed-kpis{justify-content:space-between;width:100%}.plant-expand-arrow{text-align:center;width:100%}}.sld-container--custom{background:var(--surface);border:1.5px solid var(--border);padding:24px}.sld-svg-container{width:100%;overflow:auto}.sld-svg--custom{min-width:760px;height:auto}.sld-info-panel--detailed{border-style:solid;position:relative}.sld-info-close-btn{border:1px solid var(--border);color:var(--text-muted);font-family:var(--sans);border-radius:var(--r-sm);cursor:pointer;transition:all var(--t-fast);text-transform:uppercase;letter-spacing:.5px;background:0 0;padding:4px 10px;font-size:10px;font-weight:700;position:absolute;top:10px;right:12px}.sld-info-close-btn:hover{border-color:var(--red);color:var(--red);background:var(--red-light)}.sld-node--selected rect,.sld-node--selected polygon{filter:drop-shadow(0 2px 8px #f59e0b33);stroke:var(--accent)!important;fill:var(--accent-bg)!important}.sld-node--selected circle{stroke:var(--accent)!important}.sld-active-flow-line{stroke-dasharray:8 6;animation:1.2s linear infinite sldFlow}@keyframes sldFlow{to{stroke-dashoffset:-28px}}.sld-node:hover rect,.sld-node:hover polygon,.sld-node:hover circle{filter:drop-shadow(0 0 6px #f59e0b73);stroke:var(--accent)!important}@keyframes settingsBarSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.plant-section--collapsed{cursor:pointer}.plant-section--collapsed:hover{box-shadow:var(--shadow), 0 0 0 1px #f59e0b1f;transform:translateY(-2px)}.plant-expand-arrow{color:var(--text-muted);transition:color var(--t-fast), transform var(--t-fast);white-space:nowrap;font-size:11px;font-weight:600}.plant-section--collapsed:hover .plant-expand-arrow{color:var(--accent-dark)}.plant-section--expanded{transition:box-shadow .25s}.dashboard-settings-bar{animation:.4s cubic-bezier(.22,1,.36,1) .25s both settingsBarSlide}.theme-toggle-btn{border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--surface);cursor:pointer;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:16px;transition:all .2s;display:flex}.theme-toggle-btn:hover{border-color:var(--accent);background:var(--accent-bg);transform:rotate(20deg)scale(1.1)}.dashboard-user{color:var(--text-h);background:var(--surface-2);border-radius:var(--r-full);border:1px solid var(--border);padding:5px 12px;font-size:12.5px;font-weight:600;position:relative;overflow:hidden}.empty-note{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:32px 0;font-size:14px;display:flex}.reveal{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(16px)}.reveal.is-visible{opacity:1;transform:none}.dark-theme .auth-card,.dark-theme .select-card{border-color:#f59e0b33;box-shadow:0 32px 80px #000c,inset 0 0 0 1px #ffffff0a}.dark-theme .kpi-card{background:linear-gradient(145deg, var(--surface) 0%, var(--surface-2) 100%)}.dark-theme .auth-page,.dark-theme .select-page{background:0 0}.dark-theme .auth-card,.dark-theme .select-card{background:#121828e0;border-color:#f59e0b33;box-shadow:0 32px 80px #0009,inset 0 0 0 1px #ffffff0a}.dark-theme .auth-card input{color:#fff;background:#ffffff0f;border-color:#ffffff1a}.dark-theme .auth-card input:focus{border-color:var(--accent);background:#ffffff17}.dark-theme .auth-card input::placeholder{color:#ffffff40}.dark-theme .auth-input-icon{color:#ffffff4d}.dark-theme .select-option-btn{color:#fff;background:#ffffff0a;border-color:#ffffff14}.dark-theme .select-option-btn:hover{border-color:var(--accent);background:#f59e0b12}.dark-theme .select-logout{color:#ffffff73;border-color:#ffffff1a}.dark-theme .select-logout:hover{background:#ef44441a}.auth-theme-toggle{border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--surface);cursor:pointer;z-index:10;width:38px;height:38px;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;font-size:17px;transition:all .2s;animation:.5s .6s both fadeIn;display:flex;position:absolute;top:20px;right:20px}.auth-theme-toggle:hover{border-color:var(--accent);background:var(--accent-bg);transform:rotate(20deg)scale(1.1)}.dark-theme .auth-theme-toggle{background:#ffffff0f;border-color:#ffffff1f}.trend-nav-button{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;width:32px;height:32px;transition:all var(--t-fast);-webkit-user-select:none;user-select:none;outline:none;justify-content:center;align-items:center;font-size:18px;font-weight:600;display:inline-flex}.trend-nav-button:hover{background:var(--surface-3);color:var(--text-h);border-color:var(--accent)}.trend-period-label{color:var(--text-h);text-align:center;-webkit-user-select:none;user-select:none;min-width:120px;font-size:13px;font-weight:700}.trend-date-input-wrapper{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);transition:all var(--t-fast);cursor:pointer;align-items:center;gap:8px;padding:4px 12px;display:inline-flex;position:relative}.trend-date-input-wrapper:hover{border-color:var(--accent);background:var(--surface-3)}.trend-date-input-wrapper svg{flex-shrink:0}.trend-date-input{color:var(--text-h);font-family:var(--sans);cursor:pointer;background:0 0;border:none;outline:none;width:100px;padding:0;font-size:13px;font-weight:600}.trend-date-input::-webkit-calendar-picker-indicator{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.trend-date-input[type=number]{width:60px}.trend-now-button{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast);outline:none;padding:6px 14px;font-size:13px;font-weight:600}.trend-now-button:hover{background:var(--surface-3);color:var(--text-h);border-color:var(--accent)}.trend-now-button:active{background:var(--accent);color:#fff;border-color:var(--accent);transform:scale(.96)}.dashboard-user-badge{background:var(--surface-2);border-radius:var(--r-full);border:1px solid var(--border);align-items:center;gap:8px;padding:4px 10px;display:flex}.dashboard-user-name{color:var(--text-h);font-size:12px;font-weight:700}.dashboard-user-role{border-radius:var(--r-sm);letter-spacing:.5px;text-transform:uppercase;padding:2px 6px;font-size:9px;font-weight:800}.header-role-admin{color:#8b5cf6;background:#8b5cf62e;border:1px solid #8b5cf659}.header-role-engineer{color:#3b82f6;background:#3b82f62e;border:1px solid #3b82f659}.header-role-technician{color:#f59e0b;background:#f59e0b2e;border:1px solid #f59e0b59}.header-role-viewer{color:#94a3b8;background:#64748b2e;border:1px solid #64748b59}.header-admin-link{color:#a78bfa;border-radius:var(--r-md);transition:all var(--t-fast);background:#8b5cf61f;border:1px solid #8b5cf64d;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.header-admin-link:hover{color:#c4b5fd;background:#8b5cf638;border-color:#8b5cf6;transform:translateY(-1px)}.role-badge{border-radius:var(--r-sm);letter-spacing:.3px;align-items:center;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.role-badge-admin{color:#6d28d9;background:#ede9fe;border:1px solid #ddd6fe}.role-badge-engineer{color:#1d4ed8;background:#dbeafe;border:1px solid #bfdbfe}.role-badge-technician{color:#b45309;background:#fef3c7;border:1px solid #fde68a}.role-badge-viewer{color:#475569;background:#f1f5f9;border:1px solid #cbd5e1}.dark-theme .role-badge-admin{color:#c4b5fd;background:#8b5cf638;border:1px solid #8b5cf666}.dark-theme .role-badge-engineer{color:#93c5fd;background:#3b82f638;border:1px solid #3b82f666}.dark-theme .role-badge-technician{color:#fde047;background:#f59e0b38;border:1px solid #f59e0b66}.dark-theme .role-badge-viewer{color:#e2e8f0;background:#94a3b838;border:1px solid #94a3b866}.select-role-chip{border-radius:var(--r-sm);letter-spacing:.4px;padding:2px 7px;font-size:10px;font-weight:800}.select-option-admin{border-left:3px solid #8b5cf6!important}.select-option-admin .admin-icon{color:#a78bfa}.quick-roles-section{border-top:1px solid var(--border);width:100%;margin-top:18px;padding-top:14px}.quick-roles-title{text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px;text-align:center;margin-bottom:8px;font-size:11px;font-weight:700;display:block}.quick-roles-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.quick-role-btn{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--text-h);cursor:pointer;transition:all var(--t-fast);text-align:center;font-size:11px;font-weight:700;font-family:var(--sans);padding:6px 4px}.quick-role-btn:hover{transform:translateY(-1px)}.quick-role-btn.admin:hover{color:#c4b5fd;background:#8b5cf626;border-color:#8b5cf6}.quick-role-btn.engineer:hover{color:#93c5fd;background:#3b82f626;border-color:#3b82f6}.quick-role-btn.technician:hover{color:#fcd34d;background:#f59e0b26;border-color:#f59e0b}.quick-role-btn.viewer:hover{color:#e2e8f0;background:#64748b26;border-color:#64748b}.scada-permission-banner{color:#fbbf24;border-radius:var(--r-md);background:#f59e0b1f;border:1px solid #f59e0b59;align-items:center;gap:10px;margin-bottom:18px;padding:10px 14px;font-size:12px;display:flex}.scada-permission-banner .banner-icon{flex-shrink:0;font-size:18px}.control-label-row{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.req-perm-tag{color:#f87171;border-radius:var(--r-sm);background:#ef44441a;border:1px solid #ef444440;padding:2px 6px;font-size:10px;font-weight:700}.control-disabled{opacity:.55;filter:grayscale(.2)}.control-role-badge{border-radius:var(--r-sm);letter-spacing:.5px;padding:3px 8px;font-size:10px;font-weight:800}.control-role-badge.role-admin{color:#a78bfa;background:#8b5cf62e}.control-role-badge.role-engineer{color:#60a5fa;background:#3b82f62e}.control-role-badge.role-technician{color:#fbbf24;background:#f59e0b2e}.control-role-badge.role-viewer{color:#cbd5e1;background:#64748b2e}.admin-page-container{z-index:1;flex-direction:column;gap:24px;max-width:1300px;min-height:100vh;margin:0 auto;padding:32px 24px 60px;animation:.3s fadeIn;display:flex;position:relative}.admin-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding-bottom:20px;display:flex}.admin-header-left{flex-direction:column;gap:8px;display:flex}.admin-back-btn{color:var(--text-muted);transition:color var(--t-fast);align-items:center;gap:6px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.admin-back-btn:hover{color:var(--accent-dark)}.admin-title-wrap h1{color:var(--text-h);letter-spacing:-.5px;margin:0;font-size:24px;font-weight:800}.admin-subtitle{color:var(--text-muted);margin:4px 0 0;font-size:13px}.admin-header-actions{align-items:center;gap:12px;display:flex}.btn-create-user{color:#fff;border-radius:var(--r-md);font-family:var(--sans);cursor:pointer;transition:all var(--t-fast);background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);border:none;align-items:center;gap:8px;padding:9px 18px;font-size:13px;font-weight:700;display:inline-flex;box-shadow:0 4px 14px #8b5cf659}.btn-create-user:hover{transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf673}.admin-metrics-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;display:grid}.admin-stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:8px;padding:20px;display:flex}.stat-card-header{justify-content:space-between;align-items:center;display:flex}.stat-card-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:12px;font-weight:700}.stat-card-icon{font-size:20px}.stat-card-value{color:var(--text-h);letter-spacing:-.5px;font-size:28px;font-weight:800}.stat-card-sub{color:var(--text-muted);font-size:12px}.role-distribution-chips{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.role-chip{border-radius:var(--r-sm);align-items:center;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.role-chip.admin{color:#6d28d9;background:#ede9fe;border:1px solid #ddd6fe}.role-chip.engineer{color:#1d4ed8;background:#dbeafe;border:1px solid #bfdbfe}.role-chip.technician{color:#b45309;background:#fef3c7;border:1px solid #fde68a}.role-chip.viewer{color:#475569;background:#f1f5f9;border:1px solid #cbd5e1}.dark-theme .role-chip.admin{color:#c4b5fd;background:#8b5cf638;border:1px solid #8b5cf666}.dark-theme .role-chip.engineer{color:#93c5fd;background:#3b82f638;border:1px solid #3b82f666}.dark-theme .role-chip.technician{color:#fde047;background:#f59e0b38;border:1px solid #f59e0b66}.dark-theme .role-chip.viewer{color:#e2e8f0;background:#94a3b838;border:1px solid #94a3b866}.admin-tabs-nav{border-bottom:1px solid var(--border);gap:8px;padding-bottom:2px;display:flex}.admin-tab-btn{color:var(--text-muted);font-family:var(--sans);cursor:pointer;transition:all var(--t-fast);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:700;display:inline-flex}.admin-tab-btn:hover{color:var(--text-h)}.admin-tab-btn.active{color:#8b5cf6;border-bottom-color:#8b5cf6}.admin-content-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.admin-filter-bar{border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;display:flex}.search-input-wrap{flex:1;min-width:260px;position:relative}.search-icon{opacity:.6;font-size:13px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.admin-search-input{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-md);width:100%;color:var(--text-h);font-family:var(--sans);transition:border-color var(--t-fast);outline:none;padding:8px 32px 8px 34px;font-size:13px}.admin-search-input:focus{border-color:#8b5cf6}.clear-search-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:11px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.filter-group{align-items:center;gap:8px;display:flex}.filter-group label{color:var(--text-muted);font-size:12px;font-weight:700}.admin-filter-select{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-md);color:var(--text-h);font-family:var(--sans);outline:none;padding:7px 12px;font-size:12px;font-weight:600}.admin-filter-select:focus{border-color:#8b5cf6}.admin-table-wrap{overflow-x:auto}.admin-users-table{border-collapse:collapse;text-align:left;width:100%}.admin-users-table th{background:var(--surface-2);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border);padding:12px 20px;font-size:11px;font-weight:800}.admin-users-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:14px 20px;font-size:13px}.admin-users-table tr:hover{background:#8b5cf605}.admin-users-table tr.row-inactive{opacity:.6}.user-profile-cell{align-items:center;gap:12px;display:flex}.user-avatar-circle{border-radius:var(--r-full);color:#fff;background:linear-gradient(135deg,#8b5cf6,#3b82f6);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:800;display:flex}.user-name-row{align-items:center;gap:6px;display:flex}.user-username{color:var(--text-h);font-weight:700}.current-user-tag{border-radius:var(--r-sm);color:#10b981;text-transform:uppercase;background:#10b98133;padding:1px 5px;font-size:9px;font-weight:800}.user-fullname{color:var(--text);font-size:12px;display:block}.user-email{color:var(--text-muted);font-size:11px;display:block}.permission-badges-list{flex-wrap:wrap;gap:4px;display:flex}.perm-tag{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);color:var(--text-h);padding:3px 8px;font-size:10px;font-weight:700}.dark-theme .perm-tag{color:#e2e8f0;background:#ffffff0f;border-color:#ffffff1f}.status-toggle-btn{border-radius:var(--r-full);cursor:pointer;transition:all var(--t-fast);font-size:11px;font-weight:700;font-family:var(--sans);background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.status-toggle-btn .status-dot{border-radius:50%;width:7px;height:7px}.status-toggle-btn.active{color:#10b981;background:#10b98126;border-color:#10b9814d}.status-toggle-btn.active .status-dot{background:#10b981;box-shadow:0 0 6px #10b98199}.status-toggle-btn.inactive{color:#f87171;background:#ef444426;border-color:#ef44444d}.status-toggle-btn.inactive .status-dot{background:#f87171}.last-login-text{color:var(--text-muted);font-size:12px}.table-actions-cell{justify-content:flex-end;align-items:center;gap:6px;display:flex}.btn-action-icon{border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);cursor:pointer;width:32px;height:32px;transition:all var(--t-fast);justify-content:center;align-items:center;font-size:14px;display:flex}.btn-action-icon:hover{background:var(--surface-2);border-color:#8b5cf6;transform:translateY(-1px)}.btn-action-delete:hover{background:#ef444426!important;border-color:#ef4444!important}.table-empty-state{text-align:center;padding:40px!important}.audit-log-header{border-bottom:1px solid var(--border);padding:20px 24px 12px}.audit-log-header h3{color:var(--text-h);margin:0;font-size:16px;font-weight:700}.audit-log-header p{color:var(--text-muted);margin:4px 0 0;font-size:12px}.audit-log-list{flex-direction:column;gap:10px;padding:12px 24px;display:flex}.audit-log-item{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);align-items:flex-start;gap:14px;padding:12px 16px;display:flex}.audit-log-icon{padding-top:2px;font-size:20px}.audit-log-content{flex:1}.audit-log-top{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;display:flex}.audit-action-tag{border-radius:var(--r-sm);color:#a78bfa;background:#8b5cf626;padding:2px 6px;font-size:10px;font-weight:800}.audit-actor{color:var(--text);font-size:12px}.audit-target code{background:var(--surface);border-radius:var(--r-sm);color:#f59e0b;padding:2px 6px;font-size:11px}.audit-timestamp{color:var(--text-muted);margin-left:auto;font-size:11px}.audit-details{color:var(--text-muted);margin:0;font-size:12px}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#000000a6;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-xl);width:100%;max-height:90vh;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;overflow-y:auto;box-shadow:0 20px 60px #0006}.user-modal-dialog{max-width:620px}.reset-pwd-dialog{max-width:480px}.modal-header{border-bottom:1px solid var(--border);align-items:flex-start;gap:14px;padding:22px 24px;display:flex;position:relative}.modal-header-icon{border-radius:var(--r-lg);color:#a78bfa;background:#8b5cf626;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.modal-header-icon.warning-icon{color:#fbbf24;background:#f59e0b26}.modal-header h3{color:var(--text-h);margin:0;font-size:17px;font-weight:800}.modal-subtitle{color:var(--text-muted);margin:3px 0 0;font-size:12px}.modal-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:4px;font-size:16px}.modal-close-btn:hover{color:var(--text-h)}.modal-alert-error{color:#f87171;border-radius:var(--r-md);background:#ef44441f;border:1px solid #ef44444d;align-items:center;gap:8px;margin:16px 24px 0;padding:10px 14px;font-size:12px;display:flex}.modal-form{flex-direction:column;gap:16px;padding:22px 24px;display:flex}.form-grid-2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text-h);font-size:12px;font-weight:700}.required-star{color:#ef4444}.form-control{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r-md);color:var(--text-h);font-family:var(--sans);transition:border-color var(--t-fast);outline:none;padding:9px 12px;font-size:13px}.form-control:focus{border-color:#8b5cf6}.password-input-wrapper{align-items:center;width:100%;display:flex;position:relative}.password-input-wrapper input{width:100%}.password-toggle-btn{cursor:pointer;color:var(--text-muted);border-radius:var(--r-sm);transition:color var(--t-fast), background-color var(--t-fast);z-index:2;background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:6px;line-height:1;display:inline-flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.password-toggle-btn:hover{color:var(--text-h);background:#7d7d7d1f}.password-toggle-btn:focus-visible{outline:2px solid var(--accent)}.permissions-section{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px}.permissions-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-label{text-transform:uppercase;letter-spacing:.4px;color:var(--text-h);font-size:12px;font-weight:700}.permission-note{color:var(--text-muted);font-size:11px}.permissions-grid{flex-direction:column;gap:8px;display:flex}.permission-toggle-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast);align-items:flex-start;gap:10px;padding:8px 12px;display:flex}.permission-toggle-card:hover{border-color:#8b5cf6}.permission-toggle-card input[type=checkbox]{cursor:pointer;accent-color:#8b5cf6;margin-top:3px}.permission-card-info{flex-direction:column;gap:2px;display:flex}.permission-title{color:var(--text-h);font-size:12px;font-weight:700}.permission-desc{color:var(--text-muted);font-size:11px}.status-row{margin-top:4px}.status-radio-group{gap:12px;display:flex}.radio-pill{border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-2);cursor:pointer;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;display:flex}.radio-pill.active{color:#10b981;background:#10b9811a;border-color:#10b981}.radio-pill.inactive{color:#f87171;background:#ef44441a;border-color:#ef4444}.modal-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;margin-top:10px;padding-top:14px;display:flex}.btn-secondary{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-family:var(--sans);cursor:pointer;padding:8px 16px;font-size:13px;font-weight:600}.btn-secondary:hover{background:var(--surface-3);color:var(--text-h)}.btn-primary{border-radius:var(--r-md);color:#fff;font-family:var(--sans);cursor:pointer;background:linear-gradient(135deg,#8b5cf6,#6366f1);border:none;padding:8px 20px;font-size:13px;font-weight:700;box-shadow:0 4px 12px #8b5cf64d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px #8b5cf666}.btn-primary.btn-warning{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 4px 12px #f59e0b4d}.label-with-action{justify-content:space-between;align-items:center;display:flex}.btn-link-action{color:#8b5cf6;cursor:pointer;background:0 0;border:none;font-size:11px;font-weight:700}.btn-link-action:hover{text-decoration:underline}.input-action-group{align-items:stretch;gap:8px;display:flex}.input-action-group input,.input-action-group .password-input-wrapper{flex:1}.btn-copy{border:1px solid var(--border);background:var(--surface-2);color:var(--text-h);border-radius:var(--r-md);cursor:pointer;white-space:nowrap;transition:all var(--t-fast);justify-content:center;align-items:center;padding:8px 14px;font-size:12px;font-weight:600;display:inline-flex}.btn-copy:hover{color:#8b5cf6;background:#8b5cf626;border-color:#8b5cf6}.modal-info-box{background:var(--surface-2);border-radius:var(--r-md);border:1px solid var(--border);color:var(--text-muted);gap:10px;padding:10px 14px;font-size:12px;line-height:1.5;display:flex}.toast-banner{border-radius:var(--r-lg);z-index:2000;align-items:center;gap:10px;padding:12px 20px;font-size:13px;font-weight:700;animation:.3s slideUp;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 8px 24px #0000004d}.toast-success{color:#fff;background:#065f46;border:1px solid #10b981}.toast-error{color:#fff;background:#991b1b;border:1px solid #ef4444}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.scada-config-form{flex-direction:column;gap:20px;padding:24px;display:flex}.scada-info-alert{border-radius:var(--r-md);color:var(--text);background:#3b82f61a;border:1px solid #3b82f64d;align-items:flex-start;gap:12px;padding:14px 18px;font-size:13px;line-height:1.5;display:flex}.scada-info-alert span{font-size:18px}.scada-config-status-row{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:14px;display:flex}.scada-status-indicator{color:var(--text-h);align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.status-pill{border-radius:var(--r-full);align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.status-pill.active{color:#10b981;background:#10b98126;border:1px solid #10b9814d}.status-pill.active .status-dot{background:#10b981;box-shadow:0 0 6px #10b98199}.status-pill.inactive{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b4d}.status-pill.inactive .status-dot{background:#fbbf24}.scada-last-sync{color:var(--text-muted);font-size:11px;font-weight:400}.spotlight-card{--mouse-x:50%;--mouse-y:50%;position:relative;overflow:hidden}.spotlight-overlay{pointer-events:none;background:radial-gradient(400px circle at var(--mouse-x) var(--mouse-y), #3b82f617, transparent 70%);opacity:0;z-index:1;transition:opacity .3s;position:absolute;inset:0}.spotlight-card:hover .spotlight-overlay{opacity:1}.dark-theme .spotlight-overlay{background:radial-gradient(450px circle at var(--mouse-x) var(--mouse-y), #60a5fa24, transparent 65%)}.header-export-btn{color:#10b981;border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast);background:#10b9811f;border:1px solid #10b9814d;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:700;display:inline-flex}.header-export-btn:hover{color:#34d399;background:#10b98138;border-color:#10b981;transform:translateY(-1px)}.audio-toggle-btn{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast);padding:5px 8px;font-size:14px}.audio-toggle-btn:hover{border-color:var(--accent);transform:scale(1.05)}.solar-weather-widget{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:20px;padding:24px;animation:.3s fadeIn;display:flex}.solar-weather-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.widget-tag{text-transform:uppercase;letter-spacing:.8px;color:var(--accent);font-size:10px;font-weight:800}.widget-title{color:var(--text-h);margin-top:2px;font-size:16px;font-weight:800}.solar-status-pill{border-radius:var(--r-full);background:var(--surface-2);border:1px solid var(--border);align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.solar-arc-viewport{border-radius:var(--r-md);border:1px solid var(--border);background:radial-gradient(at 50% 100%,#f59e0b14 0%,#0000 70%);width:100%;height:140px;position:relative;overflow:hidden}.solar-arc-svg{width:100%;height:100%}.animated-sun-orb{z-index:5;justify-content:center;align-items:center;width:28px;height:28px;transition:all .8s cubic-bezier(.34,1.56,.64,1);display:flex;position:absolute;transform:translate(-50%,-50%)}.sun-core{background:#f59e0b;border-radius:50%;width:16px;height:16px;box-shadow:0 0 16px #fbbf24,0 0 30px #f59e0bcc}.sun-ray-pulse{border:1.5px solid #fbbf2499;border-radius:50%;width:28px;height:28px;animation:2s ease-out infinite sunPulse;position:absolute}@keyframes sunPulse{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.6)}}.horizon-label{color:var(--text-muted);font-size:10px;font-weight:700;position:absolute;bottom:8px}.horizon-label.east{left:16px}.horizon-label.zenith{left:50%;transform:translate(-50%)}.horizon-label.west{right:16px}.solar-weather-metrics{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.weather-metric-box{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);flex-direction:column;gap:4px;padding:14px;display:flex}.weather-metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.weather-metric-val{color:var(--text-h);font-size:20px;font-weight:800;font-family:var(--mono)}.weather-metric-sub{color:var(--text-muted);font-size:11px}.sld-flow-status-pill{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);color:var(--text-h);box-shadow:var(--shadow-xs);z-index:2;white-space:nowrap;align-items:center;gap:8px;padding:6px 14px;font-size:12px;font-weight:700;display:inline-flex;position:relative}.dot-pulsing{animation:1.5s infinite radarPulse}@keyframes radarPulse{0%{box-shadow:0 0 #10b981b3}70%{box-shadow:0 0 0 8px #10b98100}to{box-shadow:0 0 #10b98100}}.sld-active-flow-line{stroke-dasharray:8 5;filter:drop-shadow(0 0 3px #10b98173);animation:.9s linear infinite sldFlowMarch}.sld-idle-flow-line{stroke-dasharray:6 6;opacity:.75;animation:3s linear infinite sldFlowMarch}.sld-offline-static-line{opacity:.95;filter:drop-shadow(0 0 2px #ef444466);stroke:#ef4444!important;stroke-dasharray:none!important;animation:none!important}.sld-instrumentation-line{stroke-dasharray:4 4;opacity:.6;animation:none!important}@keyframes sldFlowMarch{to{stroke-dashoffset:-26px}}.export-modal{max-width:540px}.format-selector-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:6px;display:grid}.format-card-btn{background:var(--surface-2);border:2px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast);text-align:left;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;display:flex}.format-card-btn:hover{border-color:var(--accent)}.format-card-btn.active{border-color:var(--accent);background:#3b82f614}.format-badge{color:#fff;border-radius:var(--r-sm);background:#10b981;padding:2px 6px;font-size:10px;font-weight:800}.format-badge.json{background:#8b5cf6}.format-title{color:var(--text-h);font-size:13px;font-weight:700}.format-desc{color:var(--text-muted);font-size:11px}.export-options-list{flex-direction:column;gap:8px;margin-top:6px;display:flex}.export-progress-wrap{flex-direction:column;gap:6px;margin-top:16px;display:flex}.export-progress-bar{background:var(--surface-2);border-radius:var(--r-full);border:1px solid var(--border);width:100%;height:8px;overflow:hidden}.export-progress-fill{background:linear-gradient(90deg,#3b82f6,#10b981);height:100%;transition:width .3s}.export-progress-text{color:var(--text-muted);text-align:center;font-size:12px;font-weight:600}.plant-section--modern{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);border-top:4px solid var(--green);transition:transform var(--t-fast), box-shadow var(--t-fast), border-color var(--t-fast);animation:.35s both fadeInUp;position:relative;overflow:hidden}.plant-section--modern:hover{box-shadow:var(--shadow);border-color:#10b98166;transform:translateY(-2px)}.plant-section--offline{border-top-color:var(--red)}.plant-section-main-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.plant-info-group{align-items:center;min-width:220px;display:flex}.plant-title-wrapper{align-items:center;gap:12px;display:flex}.plant-icon-glyph{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;display:flex}.plant-title-text h3{color:var(--text-h);letter-spacing:-.2px;cursor:pointer;transition:color var(--t-fast);margin:0 0 4px;font-size:16px;font-weight:800}.plant-clickable-title:hover{color:var(--green)}.plant-meta-tags{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.plant-spec-badge{color:var(--text);font-weight:600}.plant-mode-badge{background:var(--surface-2);border-radius:var(--r-sm);text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);border:1px solid var(--border);padding:1px 6px;font-size:11px;font-weight:600}.plant-metrics-strip{flex-wrap:wrap;flex:1;justify-content:flex-end;align-items:center;gap:24px;padding:0 12px;display:flex}.plant-kpi-block{flex-direction:column;align-items:flex-end;min-width:80px;display:flex}.plant-kpi-label{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);margin-bottom:2px;font-size:10px;font-weight:700}.plant-kpi-val{color:var(--text-h);font-size:15px;font-weight:700;font-family:var(--sans);white-space:nowrap}.plant-kpi-val small{color:var(--text-muted);margin-left:2px;font-size:11px;font-weight:600}.text-power{color:var(--text-h)}.text-weather{color:var(--accent-dark)}.text-accent{color:var(--text-h)}.text-critical{color:var(--red)!important}.text-ok{color:var(--green)!important}.font-bold{font-weight:800!important}.plant-action-group{align-items:center;gap:10px;display:flex}.btn-inspect-engineering{background:var(--surface-2);color:var(--text-h);border:1.5px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast);white-space:nowrap;font-size:12px;font-weight:700;font-family:var(--sans);align-items:center;gap:6px;padding:7px 14px;display:inline-flex}.btn-inspect-engineering:hover{background:var(--green);color:#fff;border-color:var(--green);box-shadow:0 2px 10px #10b9814d}.btn-quick-preview-toggle{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast);white-space:nowrap;font-size:11px;font-weight:600;font-family:var(--sans);background:0 0;padding:7px 10px}.btn-quick-preview-toggle:hover{background:var(--surface-2);color:var(--text-h)}.plant-inline-expanded-container{border-top:1px solid var(--border);background:var(--surface);animation:.2s both fadeIn}.plant-inline-tabs{border-bottom:1px solid var(--border);background:var(--surface-2);align-items:center;gap:6px;padding:10px 24px 0;display:flex;overflow-x:auto}.plant-inline-tab{color:var(--text-muted);cursor:pointer;border-radius:var(--r-sm) var(--r-sm) 0 0;transition:all var(--t-fast);white-space:nowrap;background:0 0;border:none;padding:8px 14px;font-size:12px;font-weight:600}.plant-inline-tab:hover{color:var(--text-h)}.plant-inline-tab--active{background:var(--surface);color:var(--green);border-top:2px solid var(--green);font-weight:700}.plant-meta-heartbeat{color:var(--text-muted);margin-left:auto;padding-bottom:6px;font-size:11px}.plant-inline-content{padding:20px 24px}.plant-detail-header-card{background:var(--surface);border:1.5px solid var(--border);border-top:4px solid var(--green);border-radius:var(--r-xl);transition:box-shadow var(--t-normal);flex-direction:column;gap:16px;padding:24px 28px;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 32px #0000000d}.plant-detail-header-card:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(90deg,#fffffff7 0%,#ffffffe6 45%,#ffffffa6 100%),url(/solar_scada_blueprint_bg.jpg);background-position:right 25%;background-size:cover;position:absolute;inset:0}.dark-theme .plant-detail-header-card:before{background-image:linear-gradient(90deg,#0d1527fa 0%,#0d1527eb 50%,#0d1527b3 100%),url(/solar_scada_blueprint_bg.jpg)}.plant-header-top-line,.plant-detail-title-row,.scada-telemetry-hud-strip,.scada-telemetry-pill-strip{z-index:1;position:relative}.plant-detail-breadcrumb{align-items:center;gap:8px;font-size:13px;display:flex}.eng-back-link{color:var(--green);transition:opacity var(--t-fast);align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.eng-back-link:hover{opacity:.8;text-decoration:underline}.breadcrumb-separator{color:var(--text-muted)}.breadcrumb-current{color:var(--text-muted);font-weight:500}.plant-detail-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.facility-type-badge{text-transform:uppercase;letter-spacing:.8px;color:#065f46;background:var(--green-light);border-radius:var(--r-sm);margin-bottom:4px;padding:2px 8px;font-size:10px;font-weight:800;display:inline-block}.plant-identity h2{color:var(--text-h);letter-spacing:-.4px;margin:0 0 6px;font-size:22px;font-weight:800}.plant-identity-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.plant-identity-meta strong{color:var(--text-h)}.meta-dot{background:var(--border);border-radius:50%;width:4px;height:4px}.plant-detail-header-actions{align-items:center;gap:12px;display:flex}.plant-switcher-group{align-items:center;gap:6px;display:flex}.plant-select-label{color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:700}.plant-switcher-select{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-h);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--sans);outline:none;padding:6px 12px}.plant-switcher-select:focus{border-color:var(--green)}.eng-refresh-btn{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-h);cursor:pointer;transition:all var(--t-fast);padding:6px 12px;font-size:12px;font-weight:700}.eng-refresh-btn:hover{background:var(--surface-3);border-color:var(--text-muted)}.eng-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.eng-kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:transform var(--t-fast), box-shadow var(--t-fast);flex-direction:column;gap:6px;padding:16px 18px;display:flex;position:relative}.eng-kpi-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.eng-kpi-card--primary{border-left:3px solid var(--green)}.eng-kpi-label{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-size:11px;font-weight:700}.eng-kpi-value{color:var(--text-h);letter-spacing:-.4px;align-items:baseline;gap:4px;font-size:24px;font-weight:800;display:flex}.eng-kpi-unit{color:var(--text-muted);font-size:13px;font-weight:600}.eng-kpi-progress{background:var(--surface-2);border-radius:var(--r-full);width:100%;height:5px;margin:2px 0;overflow:hidden}.eng-kpi-progress-fill{background:linear-gradient(90deg, var(--green), #34d399);border-radius:var(--r-full);height:100%;transition:width .4s}.eng-kpi-sub-row{color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.eng-badge-pf{background:var(--surface-2);border-radius:var(--r-sm);color:var(--text-h);padding:1px 6px;font-size:11px;font-weight:700}.eng-pf-type{font-size:11px;font-weight:600}.eng-revenue-pill{background:var(--accent-bg);color:var(--accent-dark);border-radius:var(--r-sm);padding:1px 6px;font-size:11px;font-weight:700}.eng-specific-yield{color:var(--text-muted);font-size:11px;font-weight:600}.eng-kpi-footer{color:var(--text-muted);border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:4px;padding-top:6px;font-size:11px;display:flex}.eng-tabs-bar,.scada-tabs-bar{-webkit-backdrop-filter:blur(16px);border:1.5px solid var(--border);border-radius:var(--r-xl);background:#fffffff2;align-items:center;gap:8px;margin-top:20px;margin-bottom:20px;padding:8px 12px;display:flex;overflow-x:auto;box-shadow:0 4px 20px #0000000a,0 0 0 1px #10b98114;z-index:10!important;position:relative!important}.dark-theme .eng-tabs-bar,.dark-theme .scada-tabs-bar{background:#0d1527f0;border-color:#1b294ad9;box-shadow:0 8px 24px #00000073,0 0 0 1px #38bdf81f}.eng-tab-btn{border-radius:var(--r-md);color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:all var(--t-fast);font-size:13px;font-weight:700;font-family:var(--sans);background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:9px 16px;display:inline-flex}.eng-tab-btn:hover{background:var(--surface-2);color:var(--text-h);border-color:var(--border)}.eng-tab-btn--active,.scada-tab-active{box-shadow:0 4px 14px #10b98159;color:#fff!important;background:linear-gradient(135deg,#10b981 0%,#059669 100%)!important;border-color:#10b981!important;font-weight:800!important}.eng-tab-btn--active .eng-tab-icon,.scada-tab-active .eng-tab-icon{transform:scale(1.15)}.eng-tab-badge-alarm{color:#fff;border-radius:var(--r-full);background:#ef4444;padding:2px 7px;font-size:10.5px;font-weight:800;box-shadow:0 2px 6px #ef444466}.eng-tab-body{animation:.25s both fadeIn;z-index:5!important;position:relative!important}.eng-panel-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:20px;padding:24px;display:flex}.eng-section-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;display:flex}.eng-section-header h3{color:var(--text-h);margin:0 0 2px;font-size:16px;font-weight:800}.eng-section-header p{color:var(--text-muted);margin:0;font-size:12px}.eng-count-badge{background:var(--surface-2);border-radius:var(--r-full);color:var(--text-h);border:1px solid var(--border);padding:4px 10px;font-size:12px;font-weight:700}.eng-inverters-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.eng-inverter-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);transition:transform var(--t-fast), box-shadow var(--t-fast);border-top:3px solid var(--green);flex-direction:column;gap:10px;padding:16px;display:flex;position:relative}.eng-inverter-card--fault{border-top-color:var(--red)}.eng-inverter-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.eng-comm-badge{border-radius:var(--r-sm);text-transform:uppercase;padding:2px 6px;font-size:10px;font-weight:700}.badge-ok{background:var(--green-light);color:#065f46}.badge-warn{background:var(--red-light);color:#991b1b}.eng-status-dot{border-radius:50%;width:8px;height:8px}.dot-fault{background:var(--red)}.eng-inverter-main-power{background:var(--surface-2);border-radius:var(--r-md);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.eng-main-kpi{flex-direction:column;display:flex}.eng-kpi-sub{color:var(--text-muted);text-transform:uppercase;font-size:10px;font-weight:700}.eng-kpi-val{color:var(--text-h);font-size:18px;font-weight:800}.eng-efficiency-pill{background:var(--green-light);color:#065f46;border-radius:var(--r-sm);padding:4px 8px;font-size:12px;font-weight:800}.eng-inverter-grid-specs{grid-template-columns:1fr 1fr;gap:8px;display:grid}.eng-spec-item{flex-direction:column;font-size:11px;display:flex}.eng-spec-item span{color:var(--text-muted)}.eng-spec-item strong{color:var(--text-h);font-size:12px;font-weight:700}.eng-inverter-footer{color:var(--text-muted);border-top:1px solid var(--border);justify-content:space-between;padding-top:6px;font-size:11px;display:flex}.eng-chart-card{flex-direction:column;gap:16px;display:flex}.eng-chart-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.eng-chart-header h4{color:var(--text-h);margin:0 0 2px;font-size:15px;font-weight:800}.eng-chart-sub{color:var(--text-muted);font-size:12px}.eng-chart-legend{color:var(--text);align-items:center;gap:14px;font-size:12px;font-weight:600;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.legend-dot{border-radius:50%;width:10px;height:10px}.eng-chart-body{background:var(--surface-2);border-radius:var(--r-lg);border:1px solid var(--border);width:100%;height:260px;padding:12px}.eng-curve-svg{width:100%;height:100%}.eng-chart-footer{background:var(--surface-2);border-radius:var(--r-md);border:1px solid var(--border);flex-wrap:wrap;justify-content:space-around;align-items:center;gap:12px;padding:12px;display:flex}.chart-stat{color:var(--text-muted);flex-direction:column;align-items:center;font-size:11px;display:flex}.chart-stat strong{margin-top:2px;font-size:16px;font-weight:800}.raw-inspector-container{flex-direction:column;gap:16px;display:flex}.raw-inspector-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.raw-inspector-search{flex:1;max-width:480px;position:relative}.raw-search-input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);width:100%;color:var(--text-h);font-size:13px;font-family:var(--sans);outline:none;padding:8px 12px 8px 34px}.raw-search-input:focus{border-color:var(--green)}.search-icon{color:var(--text-muted);font-size:14px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.clear-search-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-weight:700;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.raw-inspector-actions{align-items:center;gap:10px;display:flex}.raw-meta-pill{color:var(--text-muted);background:var(--surface-2);border-radius:var(--r-sm);border:1px solid var(--border);padding:4px 8px;font-size:11px}.raw-meta-pill code{color:var(--text-h);font-weight:700}.raw-copy-btn{background:var(--green);color:#fff;border-radius:var(--r-md);cursor:pointer;transition:opacity var(--t-fast);border:none;padding:6px 14px;font-size:12px;font-weight:700}.raw-copy-btn:hover{opacity:.9}.raw-devices-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;display:grid}.raw-device-box{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.raw-device-header{background:var(--surface-3);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.raw-device-title{color:var(--text-h);font-size:13px;font-weight:800}.raw-device-tags{gap:6px;display:flex}.raw-tag{border-radius:var(--r-sm);padding:2px 6px;font-size:10px;font-weight:700}.tag-muted{background:var(--surface-2);color:var(--text-muted)}.raw-table-wrapper{max-height:280px;overflow-y:auto}.raw-registers-table{border-collapse:collapse;width:100%;font-size:12px}.raw-registers-table th{text-align:left;text-transform:uppercase;color:var(--text-muted);background:var(--surface-2);border-bottom:1px solid var(--border);padding:6px 12px;font-size:10px;font-weight:700}.raw-registers-table td{border-bottom:1px solid var(--border);color:var(--text);padding:6px 12px}.register-name code{color:#3b82f6;font-size:11px;font-weight:600}.register-value strong{color:var(--text-h)}.register-type{color:var(--text-muted);font-size:11px}@media (width<=900px){.plant-section-main-row{flex-direction:column;align-items:flex-start}.plant-metrics-strip{justify-content:space-between;width:100%;padding:0}.plant-action-group{justify-content:flex-end;width:100%}}.scada-engineering-view{border-radius:var(--r-xl);flex-direction:column;gap:18px;display:flex;position:relative}.scada-engineering-view:before{content:"";border-radius:var(--r-xl);pointer-events:none;z-index:0;background-image:radial-gradient(at 85% 15%,#10b9811f 0%,#0000 50%),radial-gradient(at 15% 85%,#0ea5e91a 0%,#0000 50%),linear-gradient(#ffffffe0 0%,#f8fafcf0 100%),url(/solar_scada_blueprint_bg.jpg);background-position:50%,50%,50%,top;background-repeat:no-repeat;background-size:cover,cover,cover,cover;position:absolute;inset:-12px -20px -20px;box-shadow:inset 0 0 80px #0000000a}.dark-theme .scada-engineering-view:before{background-image:radial-gradient(at 85% 15%,#10b98138 0%,#0000 55%),radial-gradient(at 15% 85%,#0ea5e92e 0%,#0000 55%),linear-gradient(#070b13db 0%,#0d1527eb 100%),url(/solar_scada_blueprint_bg.jpg);box-shadow:inset 0 0 100px #000c}.scada-engineering-view:after{content:"";border-radius:var(--r-xl);pointer-events:none;z-index:0;background-image:linear-gradient(90deg,#10b9810a 1px,#0000 1px),linear-gradient(#10b9810a 1px,#0000 1px);background-size:36px 36px;position:absolute;inset:-12px -20px -20px}.scada-panel-glow{z-index:1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);transition:all var(--t-normal);background:#fffffff0;position:relative;box-shadow:0 4px 20px #0000000a,0 0 0 1px #10b98114}.dark-theme .scada-panel-glow{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0d1527e0}.plant-header-top-line{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.scada-hud-loading{color:var(--green);background:var(--surface-2);border-radius:var(--r-lg);justify-content:center;align-items:center;gap:12px;padding:36px;font-size:14px;font-weight:700;display:flex}.badge-radar-dot{background:var(--green);border-radius:50%;width:6px;height:6px;margin-right:4px;animation:1.5s infinite livePulse;display:inline-block;box-shadow:0 0 8px #10b981e6}.scada-pulse-status{font-weight:800;box-shadow:0 0 10px #10b98140}.scada-glow-button{background:linear-gradient(135deg, var(--surface-2), var(--surface-3));border:1.5px solid var(--border);box-shadow:0 2px 6px #0000000a}.scada-glow-button:hover{background:var(--green);color:#fff;border-color:var(--green);box-shadow:0 0 14px #10b98166}.scada-telemetry-pill-strip{border:1px solid var(--border);border-radius:var(--r-full);-webkit-backdrop-filter:blur(8px);background:#ffffffb8;flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;padding:8px 18px;animation:.35s both scadaFadeIn;display:flex;box-shadow:0 2px 8px #00000005}.dark-theme .scada-telemetry-pill-strip{background:#0f172aa6;border-color:#ffffff14;box-shadow:0 2px 12px #0000004d}.telemetry-pill-item{white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.pill-key{color:var(--text-muted);font-size:11.5px;font-weight:600}.telemetry-pill-item strong{font-size:12px;font-weight:700;font-family:var(--sans)}.pill-dot-sep{color:var(--border);-webkit-user-select:none;user-select:none;font-size:10px}.pill-beacon{border-radius:50%;width:7px;height:7px;margin-right:2px;display:inline-block}.beacon-green{background:#10b981;animation:1.8s infinite livePulse;box-shadow:0 0 8px #10b981e6}.beacon-red{background:#ef4444;animation:1.2s infinite livePulse;box-shadow:0 0 8px #ef4444e6}.text-neon-green{color:#059669;font-weight:700}.text-neon-cyan{color:#0284c7;font-weight:700}.text-neon-amber{color:#d97706;font-weight:700}.text-neon-purple{color:#7c3aed;font-weight:700}.text-neon-gold{color:#b45309;font-weight:700}.text-neon-red{color:#dc2626;font-weight:700}.dark-theme .text-neon-green{color:#10b981;text-shadow:0 0 10px #10b98166}.dark-theme .text-neon-cyan{color:#38bdf8;text-shadow:0 0 10px #38bdf866}.dark-theme .text-neon-amber{color:#fbbf24;text-shadow:0 0 10px #fbbf2466}.dark-theme .text-neon-purple{color:#a855f7;text-shadow:0 0 10px #a855f766}.dark-theme .text-neon-gold{color:#f59e0b;text-shadow:0 0 10px #f59e0b66}.dark-theme .text-neon-red{color:#f87171;text-shadow:0 0 10px #f8717166}.scada-panel-contrast{z-index:1;-webkit-backdrop-filter:blur(12px);border:1.5px solid var(--border);border-radius:var(--r-lg);transition:all var(--t-normal);background:#ffffffeb;position:relative;box-shadow:0 4px 24px #0000000d,0 0 0 1px #10b98114}.dark-theme .scada-panel-contrast{-webkit-backdrop-filter:blur(16px);background:#0d1527e6;border-color:#1b294ad9;box-shadow:0 8px 32px #00000080,0 0 0 1px #38bdf81f}.scada-card-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.scada-chip-glow{letter-spacing:.6px;text-transform:uppercase;border-radius:var(--r-sm);padding:2px 6px;font-size:9px;font-weight:800}.chip-green{color:#059669;background:#10b98126;border:1px solid #10b98159}.dark-theme .chip-green{color:#34d399;background:#10b98140}.chip-cyan{color:#0284c7;background:#0ea5e926;border:1px solid #0ea5e959}.dark-theme .chip-cyan{color:#38bdf8;background:#0ea5e940}.chip-amber{color:#d97706;background:#f59e0b26;border:1px solid #f59e0b59}.dark-theme .chip-amber{color:#fbbf24;background:#f59e0b40}.chip-orange{color:#ea580c;background:#f9731626;border:1px solid #f9731659}.dark-theme .chip-orange{color:#fb923c;background:#f9731640}.chip-red{color:#dc2626;background:#ef444426;border:1px solid #ef444459}.dark-theme .chip-red{color:#f87171;background:#ef444440}.scada-kpi-grid{z-index:1;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid;position:relative}@keyframes scadaCardSlideUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.scada-kpi-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-xl);flex-direction:column;justify-content:space-between;gap:8px;padding:18px 20px;transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s cubic-bezier(.16,1,.3,1);animation:.38s cubic-bezier(.16,1,.3,1) both scadaCardSlideUp;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 20px #00000009}.scada-kpi-card:first-child{animation-delay:40ms}.scada-kpi-card:nth-child(2){animation-delay:80ms}.scada-kpi-card:nth-child(3){animation-delay:.12s}.scada-kpi-card:nth-child(4){animation-delay:.16s}.scada-kpi-card:nth-child(5){animation-delay:.2s}.scada-kpi-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #00000014}.dark-theme .scada-kpi-card{box-shadow:0 4px 24px #00000059}.dark-theme .scada-kpi-card:hover{box-shadow:0 12px 36px #00000080}.dark-theme .scada-card-weather{background:linear-gradient(#f59e0b14 0%,#0d1527 50%);border-color:#f59e0b40}.dark-theme .scada-card-health{background:linear-gradient(#10b98114 0%,#0d1527 50%);border-color:#10b98140}.scada-card-power{border-top:4px solid var(--green)}.scada-card-reactive{border-top:4px solid #0ea5e9}.scada-card-yield{border-top:4px solid #f59e0b}.scada-card-weather{border-top:4px solid #ea580c}.scada-card-health{border-top:4px solid var(--green)}.scada-card-alarm{border-top:4px solid #ef4444}.dark-theme .scada-card-alarm{background:linear-gradient(#ef444414 0%,#0d1527 50%);border-color:#ef444459}.progress-fill-power{background:linear-gradient(90deg,#10b981,#059669);box-shadow:0 0 10px #10b98199}.inverter-fleet-summary-bar{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:8px;padding:14px 18px;display:grid}.fleet-sum-item{flex-direction:column;gap:2px;display:flex}.fleet-sum-label{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-size:9.5px;font-weight:800}.fleet-sum-val{font-size:18px;font-weight:800;font-family:var(--sans);letter-spacing:-.2px}.fleet-sum-sub{color:var(--text-muted);font-size:11px;font-weight:500}.scada-fleet-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.eng-inverter-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);transition:transform var(--t-fast), box-shadow var(--t-fast), border-color var(--t-fast);flex-direction:column;gap:10px;padding:14px 16px;display:flex;position:relative;box-shadow:0 2px 10px #00000008}.eng-inverter-card--ok{border-top:3.5px solid var(--green)}.eng-inverter-card--fault{border-top:3.5px solid var(--red);border-color:#ef444466}.eng-inverter-card:hover{border-color:var(--green);transform:translateY(-2px);box-shadow:0 8px 24px #0000000f}.eng-inverter-header{justify-content:space-between;align-items:center;display:flex}.eng-inverter-title{align-items:center;gap:8px;display:flex}.inv-status-beacon{border-radius:50%;flex-shrink:0;width:8px;height:8px}.beacon-online{background:var(--green);box-shadow:0 0 8px #10b981cc}.beacon-fault{background:var(--red);animation:1s infinite livePulse;box-shadow:0 0 8px #ef4444cc}.eng-inverter-title h4{color:var(--text-h);margin:0;font-size:14px;font-weight:800}.eng-inverter-badges{align-items:center;gap:6px;display:flex}.inv-rated-pill{color:var(--text-muted);background:var(--surface-2);border-radius:var(--r-sm);border:1px solid var(--border);padding:2px 6px;font-size:10px;font-weight:700}.eng-inverter-power-box{background:var(--surface-2);border-radius:var(--r-md);border:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.inv-power-left{flex-direction:column;display:flex}.inv-power-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:9px;font-weight:800}.inv-power-number strong{color:var(--text-h);font-size:20px;font-weight:800}.inv-power-number small{color:var(--text-muted);font-size:12px;font-weight:600}.inv-efficiency-bubble{flex-direction:column;align-items:flex-end;display:flex}.eff-label{color:var(--text-muted);text-transform:uppercase;font-size:9px;font-weight:700}.eff-val{color:#059669;font-size:13px;font-weight:800}.dark-theme .eff-val{color:#34d399}.inv-load-track{background:var(--surface-3);border-radius:var(--r-full);width:100%;height:6px;margin-top:-4px;overflow:hidden}.inv-load-fill{background:linear-gradient(90deg, var(--green), #059669);border-radius:var(--r-full);height:100%;transition:width .3s}.inv-load-labels{color:var(--text-muted);justify-content:space-between;margin-top:-6px;font-size:10px;font-weight:600;display:flex}.eng-inverter-grid-specs{grid-template-columns:1fr 1fr;gap:6px;padding:4px 0;display:grid}.eng-spec-item{background:var(--surface-2);border-radius:var(--r-sm);border:1px solid var(--border);flex-direction:column;padding:6px 8px;display:flex}.eng-spec-item span{color:var(--text-muted);text-transform:uppercase;font-size:9px;font-weight:700}.eng-spec-item strong{margin-top:1px;font-size:12px;font-weight:800}.eng-inverter-footer{color:var(--text-muted);border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:2px;padding-top:6px;font-size:10px;display:flex}.inv-mode-text{color:#3b82f6;text-transform:uppercase;letter-spacing:.5px;font-size:9.5px;font-weight:800}.dark-theme .scada-card-power{background:linear-gradient(#10b9811f 0%,#0d1527 50%);border-color:#10b9814d;box-shadow:0 0 20px #10b98114}.dark-theme .scada-card-reactive{background:linear-gradient(#0ea5e91f 0%,#0d1527 50%);border-color:#0ea5e94d;box-shadow:0 0 20px #0ea5e914}.dark-theme .scada-card-yield{background:linear-gradient(#f59e0b1f 0%,#0d1527 50%);border-color:#f59e0b4d;box-shadow:0 0 20px #f59e0b14}.dark-theme .scada-card-weather{background:linear-gradient(#f973161f 0%,#0d1527 50%);border-color:#f973164d;box-shadow:0 0 20px #f9731614}.dark-theme .scada-card-health{background:linear-gradient(#8b5cf61f 0%,#0d1527 50%);border-color:#8b5cf64d;box-shadow:0 0 20px #8b5cf614}.dark-theme .inverter-fleet-summary-bar{background:#111c33;border-color:#38bdf833;box-shadow:0 0 16px #0006}.dark-theme .eng-inverter-card{background:#0c1424;border-color:#1a2744}.dark-theme .eng-inverter-card--ok{border-top-color:#10b981;box-shadow:0 0 16px #10b9810f}.dark-theme .eng-inverter-card:hover{border-color:#38bdf8;box-shadow:0 0 24px #38bdf826}.sld-expanded-wrapper{padding:16px 20px}.sld-toolbar{background:var(--surface-2)!important;border:1px solid var(--border)!important;border-radius:var(--r-md)!important;flex-wrap:nowrap!important;justify-content:space-between!important;align-items:center!important;gap:16px!important;margin-bottom:12px!important;padding:10px 18px!important;display:flex!important}.sld-toolbar-left{flex-wrap:nowrap!important;align-items:center!important;gap:16px!important;display:flex!important}.sld-zoom-controls{align-items:center!important;gap:8px!important;margin-left:auto!important;display:flex!important}.sld-scale-select{background:var(--surface)!important;color:var(--text-h)!important;border:1px solid var(--border)!important;border-radius:var(--r-sm)!important;font-size:11.5px!important;font-weight:700!important;font-family:var(--sans)!important;cursor:pointer!important;appearance:auto!important;height:28px!important;transition:border-color var(--t-fast)!important;outline:none!important;padding:5px 24px 5px 10px!important}.sld-scale-select:hover{border-color:var(--green)!important}.sld-scale-select:focus{border-color:var(--green)!important;box-shadow:0 0 0 2px #10b98126!important}.sld-slider-wrapper{align-items:center!important;display:flex!important}.sld-scale-range-slider{appearance:none!important;background:var(--surface-3)!important;cursor:pointer!important;border-radius:2px!important;outline:none!important;width:80px!important;height:4px!important}.sld-scale-range-slider::-webkit-slider-thumb{appearance:none!important;background:var(--green)!important;cursor:pointer!important;border-radius:50%!important;width:12px!important;height:12px!important;box-shadow:0 0 6px #10b98199!important}.sld-scale-range-slider::-moz-range-thumb{background:var(--green)!important;cursor:pointer!important;border:none!important;border-radius:50%!important;width:12px!important;height:12px!important}.sld-zoom-btn{background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:var(--r-sm)!important;width:28px!important;height:28px!important;color:var(--text-h)!important;cursor:pointer!important;transition:all var(--t-fast)!important;justify-content:center!important;align-items:center!important;padding:0!important;display:inline-flex!important}.sld-zoom-btn:hover{background:var(--surface-2)!important;border-color:var(--green)!important;color:var(--green)!important;transform:translateY(-1px)!important;box-shadow:0 2px 6px #00000014!important}.sld-zoom-btn:active{transform:translateY(0)!important}.sld-reset-scale-btn{background:var(--surface)!important;color:var(--text-muted)!important;border:1px solid var(--border)!important;border-radius:var(--r-sm)!important;cursor:pointer!important;transition:all var(--t-fast)!important;padding:5px 10px!important;font-size:11px!important;font-weight:700!important}.sld-reset-scale-btn:hover{background:var(--surface-2)!important;color:var(--green)!important;border-color:var(--green)!important}.sld-canvas-wrapper--full{scrollbar-width:thin!important;width:100%!important;padding:0!important;display:block!important;position:relative!important;overflow:auto!important}.sld-canvas--scrollable{cursor:grab!important}.sld-scroll-notice-chip{color:#059669!important;border-radius:var(--r-full)!important;z-index:15!important;-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;background:#10b9811f!important;border:1px solid #10b9814d!important;align-items:center!important;gap:6px!important;margin-bottom:8px!important;padding:4px 10px!important;font-size:11px!important;font-weight:700!important;display:inline-flex!important;position:sticky!important;top:8px!important;left:12px!important}.dark-theme .sld-scroll-notice-chip{color:#34d399!important;background:#10b98133!important}.sld-svg--full{width:100%!important;max-width:100%!important;height:auto!important;min-height:520px!important;margin:0 auto!important;display:block!important}.sld-floating-inspector{background:var(--surface)!important;border:1.5px solid var(--border)!important;border-radius:var(--r-md)!important;z-index:30!important;width:320px!important;max-width:90%!important;padding:14px 16px!important;animation:.18s both fadeIn!important;position:absolute!important;top:16px!important;right:16px!important;box-shadow:0 10px 30px #0000001f,0 0 0 1px #10b9811a!important}.dark-theme .sld-floating-inspector{background:#0d1527f2!important;border-color:#38bdf859!important;box-shadow:0 0 24px #0009,0 0 12px #38bdf833!important}.sld-floating-header{border-bottom:1px solid var(--border)!important;align-items:center!important;gap:8px!important;margin-bottom:10px!important;padding-bottom:8px!important;display:flex!important}.sld-floating-header h4{color:var(--text-h)!important;letter-spacing:.3px!important;flex:1!important;margin:0!important;font-size:12.5px!important;font-weight:800!important}.sld-inspector-beacon{background:var(--green)!important;border-radius:50%!important;flex-shrink:0!important;width:8px!important;height:8px!important;box-shadow:0 0 8px #10b981cc!important}.sld-inspector-close-btn{background:var(--surface-2)!important;border:1px solid var(--border)!important;border-radius:var(--r-sm)!important;color:var(--text-muted)!important;cursor:pointer!important;padding:2px 7px!important;font-size:11px!important;font-weight:700!important}.sld-inspector-close-btn:hover{background:var(--surface-3)!important;color:var(--text-h)!important}.fleet-telemetry-hub{grid-template-columns:460px 1fr;align-items:start;gap:22px;width:100%;margin-top:18px;display:grid;position:relative}.fleet-command-grid{grid-template-columns:minmax(0,1.32fr) minmax(0,1fr);align-items:stretch;gap:20px;width:100%;margin-bottom:24px;display:grid}.fleet-command-chart-col{flex-direction:column;gap:20px;min-width:0;display:flex}.fleet-command-chart-col .trends-chart-container{flex:none;height:auto}.fleet-command-map-col{flex-direction:column;align-items:stretch;min-width:0;display:flex}@media (width<=1100px){.fleet-command-grid{grid-template-columns:1fr}}.fleet-filter-toolbar{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-xl);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;padding:14px 20px;display:flex;box-shadow:0 4px 18px #00000009}.fleet-search-box{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-lg);min-width:280px;max-width:440px;transition:border-color var(--t-fast), box-shadow var(--t-fast);flex:1;align-items:center;gap:8px;padding:8px 14px;display:flex}.fleet-search-box:focus-within{border-color:var(--green);box-shadow:0 0 0 3px #10b98126}.fleet-search-input{width:100%;color:var(--text-h);font-size:13px;font-family:var(--sans);background:0 0;border:none;outline:none}.fleet-search-input::placeholder{color:var(--text-muted)}.search-clear-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--r-full);background:0 0;border:none;padding:2px 4px;font-size:11px}.search-clear-btn:hover{color:var(--text-h)}.fleet-filter-pills{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-pill{border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);cursor:pointer;transition:all var(--t-fast);padding:6px 14px;font-size:12px;font-weight:700}.filter-pill:hover{background:var(--surface-3);color:var(--text-h)}.filter-pill--active{box-shadow:0 2px 10px #10b98159;background:var(--green)!important;color:#fff!important;border-color:var(--green)!important}.pill-alarm-btn.filter-pill--active{box-shadow:0 2px 10px #ef444459;background:#ef4444!important;border-color:#ef4444!important}.fleet-filter-counter{color:var(--text-muted);white-space:nowrap;font-size:12px}.fleet-filter-counter strong{color:var(--text-h);font-weight:800}.empty-filter-state{text-align:center;border-radius:var(--r-xl);flex-direction:column;align-items:center;gap:12px;padding:36px 20px;display:flex}.empty-filter-state p{color:var(--text-muted);margin:0;font-size:14px}.btn-reset-filters{background:var(--green);color:#fff;border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast);border:none;padding:8px 18px;font-size:12px;font-weight:700}.btn-reset-filters:hover{transform:translateY(-1px);box-shadow:0 4px 14px #10b98166}.sri-lanka-map-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);height:100%;box-shadow:var(--shadow-sm);box-sizing:border-box;flex-direction:column;gap:12px;padding:16px 20px;display:flex;overflow:hidden}.sri-lanka-map-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:12px;display:flex}.map-title-block{flex-direction:column;gap:2px;display:flex}.map-badge-pill{text-transform:uppercase;letter-spacing:.6px;color:var(--green);background:var(--green-light,#10b9811a);border-radius:var(--r-full);align-items:center;gap:6px;width:fit-content;margin-bottom:2px;padding:2px 8px;font-size:9.5px;font-weight:800;display:inline-flex}.map-title-block h3{color:var(--text-h);letter-spacing:-.2px;margin:0;font-size:16px;font-weight:800}.map-subtitle{color:var(--text-muted);font-size:11px}.map-fleet-stat-badge{background:var(--surface-2);border-radius:var(--r-md);border:1px solid var(--border);flex-direction:column;align-items:flex-end;gap:1px;padding:6px 10px;display:flex}.map-stat-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:9px;font-weight:800}.map-fleet-stat-badge strong{font-size:14px;font-family:var(--sans);font-weight:800}.map-stat-sub{color:var(--text-muted);font-size:10px}.sri-lanka-map-canvas-wrapper{border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border);flex:1;justify-content:center;align-items:center;width:100%;min-height:380px;padding:0;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 20px #00000014}.dark-theme .sri-lanka-map-canvas-wrapper{background:var(--surface)}.relief-svg{width:100%;height:100%;max-height:none;display:block}.sri-lanka-relief-base-image{width:100%;height:100%;display:block}.relief-atmosphere-tint{fill:#0000;transition:fill var(--t-normal)}.dark-theme .relief-atmosphere-tint{fill:#070f1e61}.map-pulse-ring{transform-origin:50%;animation:2s ease-out infinite mapPulse}.map-pulse-ring-outer{transform-origin:50%;animation:2.4s ease-out infinite mapPulseOuter}@keyframes mapPulse{0%{r:5px;opacity:.8}70%{r:16px;opacity:.15}to{r:20px;opacity:0}}@keyframes mapPulseOuter{0%{r:8px;opacity:.6}80%{r:26px;opacity:.08}to{r:30px;opacity:0}}.map-plant-pin-group:hover circle:nth-child(2){r:8px!important;stroke-width:3px!important}.map-plant-pin-group.pin-active circle:nth-child(2){r:8.5px!important;stroke-width:3px!important;stroke:#fff!important}.map-pin-tag{filter:drop-shadow(0 2px 6px #0000001f);transition:transform var(--t-fast)}.map-plant-pin-group:hover .map-pin-tag,.map-plant-pin-group.pin-active .map-pin-tag{transform:translateY(-2px)}.map-floating-hud-tooltip{background:var(--surface);border:1.5px solid var(--green);border-radius:var(--r-md);z-index:30;padding:10px 14px;animation:.15s both fadeIn;position:absolute;bottom:12px;left:12px;right:12px;box-shadow:0 8px 24px #00000026}.dark-theme .map-floating-hud-tooltip{background:#0d1527f2;border-color:#38bdf8;box-shadow:0 0 24px #0009,0 0 10px #38bdf840}.tooltip-header{color:var(--text-h);align-items:center;gap:8px;margin-bottom:6px;font-size:13px;font-weight:800;display:flex}.tooltip-body{grid-template-columns:1fr 1fr;gap:4px 12px;font-size:11.5px;display:grid}.tooltip-row{justify-content:space-between;gap:6px;display:flex}.tooltip-row span{color:var(--text-muted)}.tooltip-row strong{font-weight:700}.tooltip-footer{border-top:1px solid var(--border);margin-top:6px;padding-top:4px}.tooltip-action-hint{color:var(--green);font-size:10px;font-weight:700}.sri-lanka-map-legend{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-top:6px;font-size:10.5px;display:flex}.legend-item{align-items:center;gap:6px;font-weight:600;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dot-online{background:#10b981;box-shadow:0 0 6px #10b981cc}.dot-alert{background:#f59e0b;box-shadow:0 0 6px #f59e0bcc}.dot-offline{background:#ef4444;box-shadow:0 0 6px #ef4444cc}.fleet-cards-grid-column{width:100%}.fleet-squares-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}@media (width<=680px){.fleet-squares-grid{grid-template-columns:1fr}}.fleet-rows-list{flex-direction:column;gap:14px;width:100%;display:flex}.plant-row-card{cursor:pointer;background:#fff;border:1px solid #e2e8f0e6;border-radius:12px;transition:transform .15s,box-shadow .15s,border-color .15s;position:relative;overflow:hidden;box-shadow:0 2px 10px #00000009,0 1px 3px #00000005}.dark-theme .plant-row-card{background:#0f172a;border-color:#ffffff14;box-shadow:0 4px 20px #0006}.plant-row-card:hover{transform:translateY(-2px);box-shadow:0 6px 22px #00000012}.plant-row-card--active{transform:translateY(-1px);box-shadow:0 0 0 2px #10b981,0 8px 24px #10b9812e!important}.plant-row-card--offline.plant-row-card--active{box-shadow:0 0 0 2px #ef4444,0 8px 24px #ef444433!important}.plant-row-top-stripe{width:100%;height:3.5px}.stripe-online{background:#10b981}.stripe-offline{background:#ef4444}.plant-row-content{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.plant-row-identity{cursor:pointer;flex-direction:column;gap:3px;min-width:160px;display:flex}.plant-row-title{color:#0f172a;letter-spacing:-.2px;margin:0;font-size:15.5px;font-weight:800;transition:color .15s}.dark-theme .plant-row-title{color:#f8fafc}.plant-row-identity:hover .plant-row-title{color:#10b981}.plant-row-subtitle{color:#94a3b8;font-size:12px;font-weight:500}.dark-theme .plant-row-subtitle{color:#64748b}.plant-row-metrics-strip{flex-wrap:wrap;align-items:center;gap:28px;display:flex}.plant-row-kpi-col{flex-direction:column;gap:3px;display:flex}.row-kpi-label{text-transform:uppercase;letter-spacing:.6px;color:#94a3b8;font-size:10px;font-weight:800}.dark-theme .row-kpi-label{color:#64748b}.row-kpi-val{font-size:14px;font-weight:800;font-family:var(--sans);letter-spacing:-.2px;white-space:nowrap}.text-kpi-dark{color:#0f172a}.dark-theme .text-kpi-dark{color:#f1f5f9}.row-kpi-alarm-red{color:#ef4444!important}.plant-row-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.plant-row-status-pill{white-space:nowrap;border-radius:9999px;align-items:center;gap:6px;padding:4px 12px;font-size:11.5px;font-weight:700;display:inline-flex}.pill-online{color:#15803d;background:#dcfce7;border:1px solid #bbf7d0}.dark-theme .pill-online{color:#34d399;background:#10b98126;border-color:#10b9814d}.pill-offline{color:#b91c1c;background:#fee2e2;border:1px solid #fecaca}.dark-theme .pill-offline{color:#f87171;background:#ef444426;border-color:#ef44444d}.row-pill-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.btn-row-expand-detail{color:#ea580c;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;white-space:nowrap;background:#fff7ed;border:1.5px solid #fed7aa;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:11px;font-weight:800;transition:all .15s;display:inline-flex}.btn-row-expand-detail:hover{color:#c2410c;background:#ffedd5;border-color:#f97316;transform:translateY(-1px);box-shadow:0 2px 8px #ea580c33}.dark-theme .btn-row-expand-detail{color:#fb923c;background:#f9731614;border-color:#f9731659}.dark-theme .btn-row-expand-detail:hover{color:#fdba74;background:#f973162e;border-color:#f97316}.btn-row-arrow{font-size:13px;font-weight:800;line-height:1;transition:transform .15s;display:inline-block}.btn-row-expand-detail:hover .btn-row-arrow{transform:translate(3px)}
