.device-modal-box{width:900px;max-width:92vw;max-height:88vh}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.1)}.modal-title-wrap,.modal-actions,.room-head,.jizu-head,.picker-actions{display:flex;align-items:center}.modal-title-wrap{gap:8px;min-width:0}.modal-title-wrap h3{margin:0;font-size:15px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-actions{gap:8px}.modal-actions .modal-close{position:static;padding:2px 6px}.device-modal-body{padding:16px 20px 22px}.modal-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}.summary-cell{padding:9px 6px;text-align:center;background:#ffffff0d;border-radius:8px}.summary-cell div{color:#ffffff80;font-size:10px;margin-bottom:3px}.summary-cell strong{color:#fbbf24;font-size:14px}.summary-cell strong small{color:#fff6;font-size:9px;font-weight:400}.value-danger{color:#ef4444!important}.modal-alerts{margin-bottom:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff08}.modal-alerts.has-alert{border-color:#ef444440;background:#ef44441a}.section-title{display:flex;align-items:center;gap:7px;margin-bottom:7px;color:#ffffffa6;font-size:11px;font-weight:700}.section-hint{margin-left:auto;color:#ffffff59;font-size:10px;font-weight:400}.muted,.empty{color:#fff6;font-size:12px}.alert-line{display:flex;justify-content:space-between;gap:12px;padding:3px 0;color:#fffc;font-size:12px}.alert-line span:last-child{color:#ffffff8c;white-space:nowrap}.detail-section{margin-top:14px}.room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-item{padding:11px 13px}.room-head{justify-content:space-between;gap:8px;align-items:flex-start}.room-nm{min-width:0;color:#ffffffe6;font-size:12px;font-weight:600;line-height:1.5}.room-status{margin-right:5px;padding:1px 6px;border:1px solid currentColor;border-radius:4px;font-size:10px;font-weight:700;cursor:pointer}.room-status:disabled{cursor:wait;opacity:.65}.room-status.is-on{color:#10b981;background:#10b98114}.room-status.is-off{color:#9ca3af;background:#6b728014}.offline-label{margin-right:5px;color:#ef4444;font-size:10px}.room-thresholds{display:flex;gap:5px;flex-shrink:0}.room-thresholds button{padding:1px 3px;border:0;background:none;color:#ffffff8c;font-size:9px;cursor:pointer}.room-thresholds b{display:inline-flex;align-items:center;justify-content:center;width:34px;height:18px;margin:0 1px;border:1px solid rgba(255,255,255,.25);border-radius:3px;color:#fff;font-size:10px;font-weight:500}.room-t{margin-top:4px;color:#ffffffbf;font-size:22px;font-weight:700;line-height:1.1}.humidity{margin-left:5px;color:#60a5fa;font-size:13px;font-weight:500}.status-block{margin-top:8px;padding-top:7px;border-top:1px solid rgba(255,255,255,.08)}.status-caption,.subsection-title{margin-bottom:5px;color:#fff6;font-size:10px}.status-tags{display:flex;flex-wrap:wrap;gap:4px}.status-tag,.mini-tag{display:inline-flex;align-items:center;border-radius:4px}.status-tag{padding:3px 6px;font-size:9px}.tag-on{background:#10b98126;color:#10b981}.tag-off{background:#6b728029;color:#9ca3af}.tag-alarm{background:#ef444429;color:#ef4444}.core-temp{margin-left:4px;color:#fbbf24;font-weight:700}.jizu-card{margin-top:8px;padding:11px;border-radius:10px;background:#ffffff0d}.jizu-head{justify-content:space-between;gap:8px;margin-bottom:8px;color:#fff;font-size:13px}.mini-tag{margin-left:4px;padding:2px 6px;font-size:9px}.mini-on{background:#10b98129;color:#10b981}.mini-on-blue{background:#3b82f629;color:#60a5fa}.mini-off{background:#6b728029;color:#9ca3af}.jizu-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.jizu-value{min-width:0;padding:7px 5px;border:0;border-radius:6px;text-align:center;background:#ffffff0d;color:#fff;cursor:default}button.jizu-value{cursor:pointer}.jizu-value span,.jizu-value small{display:block;color:#ffffff80;font-size:9px}.jizu-value b{display:block;margin:2px 0;font-size:13px}.jizu-value.blue b{color:#60a5fa}.jizu-value.amber b{color:#f59e0b}.jizu-value.purple b{color:#c084fc}.jizu-oil{margin-top:6px;padding:6px;border-radius:6px;background:#ef44441a;text-align:center;color:#ffffff80;font-size:9px}.jizu-oil b{margin-left:6px;color:#ef4444;font-size:12px}.jizu-subsection{margin-top:9px}.compressor-row{display:flex;justify-content:space-between;gap:10px;margin-top:4px;padding:5px 8px;border-radius:5px;font-size:10px}.compressor-row small{color:#ffffff8c;text-align:right}.compressor-row.is-running{background:#10b9811f;color:#10b981}.compressor-row.is-stopped{background:#6b72801f;color:#9ca3af}.fan-log-wrap{overflow-x:auto}.fan-log-table{min-width:540px}.compact-empty{padding:16px 8px;text-align:center}.picker-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:flex-end;justify-content:center;background:#0000008c}.picker-panel{width:100%;max-width:480px;padding:15px;border-radius:16px 16px 0 0;background:#0f172af7;box-shadow:0 -10px 40px #00000059}.jizu-picker-panel{max-width:360px;margin-bottom:15vh;border-radius:14px}.picker-title{margin-bottom:10px;color:#ffffffb3;font-size:13px;text-align:center}.picker-list{display:flex;flex-direction:column;gap:3px;max-height:230px;overflow-y:auto;padding:0 8px}.picker-list button,.picker-cancel,.picker-confirm{width:100%;padding:9px;border:0;border-radius:7px;color:#fffc;background:#ffffff12;font-size:14px;cursor:pointer}.picker-list button.selected{background:#6366f16b;color:#fff;font-weight:700}.picker-cancel{margin-top:10px}.picker-confirm{margin-top:10px;background:#10b981;color:#fff;font-weight:700}.number-input{width:100%;padding:10px;border:1px solid rgba(255,255,255,.2);border-radius:7px;outline:none;background:#ffffff14;color:#fff;font-size:18px;text-align:center}.picker-actions{gap:8px}.picker-actions>*{flex:1}.fullscreen.device-modal-box{width:98vw;max-width:98vw;height:96vh;max-height:96vh}@media (max-width:700px){.device-modal-box{width:calc(100vw - 24px);max-width:calc(100vw - 24px);max-height:92vh}.device-modal-body{padding:12px}.modal-summary{grid-template-columns:repeat(2,1fr)}.room-grid{grid-template-columns:1fr}.jizu-grid{grid-template-columns:repeat(2,1fr)}.compressor-row{display:block}.compressor-row small{display:block;margin-top:3px;text-align:left}.jizu-head{align-items:flex-start}}.toast-enter-active{transition:opacity .3s}.toast-leave-active{transition:opacity .5s}.toast-enter-from,.toast-leave-to{opacity:0}.glass-dark{background:#0a102099;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}#loginPage{position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#0f1a2e,#1a2540,#0d1f3c);display:flex;align-items:center;justify-content:center;z-index:99999;flex-direction:column;gap:16px}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden;max-width:100%}@keyframes fadeInUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.sidebar{background:#0a102099;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);display:flex;align-items:center;flex-shrink:0;box-shadow:0 2px 20px #0000004d;padding:0 20px;height:52px;border-bottom:1px solid rgba(255,255,255,.06)}.sidebar .logo-area{display:flex;align-items:center;gap:8px;flex-shrink:0}.nav{display:flex;align-items:center;gap:2px;flex:1;padding:0 12px}.nav-item{display:flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;cursor:pointer;font-size:13px;color:#ffffff8c;transition:all .2s;white-space:nowrap;font-weight:500}.nav-item:hover{background:#ffffff12;color:#ffffffd9}.nav-item.active{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;font-weight:600;box-shadow:0 4px 14px #6366f173}.nav-item .ico{width:18px;text-align:center}.sidebar-footer{display:flex;align-items:center;gap:14px;padding:0;margin-left:auto}.sdot{width:7px;height:7px;border-radius:50%;background:#10b981;box-shadow:0 0 6px #10b981;display:inline-block}.card{background:#ffffff1f;border-radius:18px;transform:translateZ(0);-webkit-mask-image:radial-gradient(white,black);mask-image:radial-gradient(#fff,#000);border:1px solid rgba(255,255,255,.15);overflow:hidden;box-shadow:0 8px 32px -12px #00000040;animation:fadeInUp .5s ease both}.card:nth-child(1){animation-delay:.05s}.card:nth-child(2){animation-delay:.1s}.card:nth-child(3){animation-delay:.15s}.card:nth-child(4){animation-delay:.2s}.card:nth-child(5){animation-delay:.25s}.card:nth-child(6){animation-delay:.3s}.card-head{padding:16px 20px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between;border-radius:18px 18px 0 0}.card-title{font-size:13px;font-weight:600;color:#ffffffe6}.card-body{padding:12px 14px}.card-body::-webkit-scrollbar{width:5px}.card-body::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.card-body::-webkit-scrollbar-track{background:transparent}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat-card{background:#ffffff1a;border-radius:14px;padding:12px 18px;border:1px solid rgba(255,255,255,.15);box-shadow:0 4px 24px -12px #0000004d;transition:box-shadow .2s,transform .2s;cursor:default;animation:fadeInUp .5s ease both;display:flex;align-items:center;gap:10px}.stat-icon{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:15px}.stat-num{font-size:38px;font-weight:800;color:#fff;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-2px}.stat-card:nth-child(1){animation-delay:.05s}.stat-card:nth-child(2){animation-delay:.1s}.stat-card:nth-child(3){animation-delay:.15s}.stat-card:nth-child(4){animation-delay:.2s}.stat-card:hover{box-shadow:0 6px 28px -12px #0006;transform:translateY(-2px)}@media (max-width:540px){.stat-icon{display:none}.stats-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px}}.dash-grid{display:flex;gap:14px;min-height:0}.dash-left>.card .card-body,.dash-right>.card .card-body{flex:1;overflow-y:auto;min-height:0}.chip{font-size:10px;font-weight:600;padding:3px 9px;border-radius:20px}.chip-blue{background:#6366f14d;color:#ffffffe6}.chip-red{background:#ef44444d;color:#ffffffe6}.chip-amber{background:#f59e0b4d;color:#ffffffe6}.chip-green{background:#10b9814d;color:#ffffffe6}.chip-gray{background:#ffffff1a;color:#ffffffb3}.dev-table{width:100%;border-collapse:collapse;table-layout:fixed}.dev-table th{text-align:left;font-size:10px;color:#ffffffb3;font-weight:700;padding:0 6px 6px;letter-spacing:.5px;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.1)}.dev-table td{padding:11px 6px;border-bottom:1px solid rgba(255,255,255,.06);font-size:13px;vertical-align:middle;color:#fffc}.dev-table th:not(:first-child),.dev-table td:not(:first-child){text-align:center}.dev-table tr:last-child td{border-bottom:none}.dev-table tr:hover td{background:#ffffff0d}.dev-name{font-weight:600;color:#ffffffe6;cursor:pointer}.dev-name:hover{color:#818cf8;text-decoration:underline}.filter-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.f-sel{background:#ffffff1a;color:#ffffffe6;border:1px solid rgba(255,255,255,.2);padding:8px 12px;border-radius:8px;font-size:13px;outline:none;cursor:pointer}.f-sel:focus{border-color:#6366f1}.btn-p{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border:none;padding:9px 22px;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 5px 14px #4f46e566;transition:all .18s}.btn-p:hover{background:linear-gradient(135deg,#818cf8,#6366f1);transform:translateY(-1px)}.empty{padding:30px 16px;text-align:center;color:#ffffff59;font-size:13px}.data-status{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;margin-bottom:12px;border:1px solid rgba(239,68,68,.35);border-radius:8px;background:#ef44441f;color:#fecaca;font-size:12px}.data-status button{border:0;border-radius:6px;padding:4px 9px;background:#ffffff1f;color:#fff;cursor:pointer}.room-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.room-item{background:#ffffff0f;border-radius:10px;padding:12px 16px}.room-item.r-alarm{background:#ef44441f}.room-nm{font-size:12px;font-weight:600;color:#ffffffe6}.room-t{font-size:20px;font-weight:700;color:#ffffffbf;margin-top:2px}.room-t.status-on{color:#10b981}.room-t.alarm{color:#ef4444}@media (max-width:540px){.room-grid{grid-template-columns:repeat(1,1fr)}}.login-box{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:36px 32px;width:320px;max-width:90vw;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-logo{text-align:center;margin-bottom:24px}.login-logo h2{color:#fff;font-size:18px;font-weight:600;margin:8px 0 4px}.login-logo p{color:#fff6;font-size:12px}.login-field{margin-bottom:14px}.login-field label{display:block;color:#fff9;font-size:12px;margin-bottom:6px}.login-field input{width:100%;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:10px 12px;color:#fff;font-size:14px;outline:none;box-sizing:border-box;transition:border-color .2s}.login-field input:focus{border-color:#63b3ed99}.login-err{color:#f87171;font-size:12px;text-align:center;min-height:18px;margin-top:6px}.login-btn{width:100%;padding:11px;border-radius:8px;border:none;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s;margin-top:4px}.login-btn.admin{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.login-btn.admin:hover{opacity:.85}.login-btn.guest{background:#ffffff14;color:#fff9;border:1px solid rgba(255,255,255,.15)}.login-btn.guest:hover{background:#ffffff1f}.login-divider{display:flex;align-items:center;gap:10px;margin:16px 0}.login-divider span{color:#ffffff40;font-size:12px;white-space:nowrap}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#ffffff1a}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:none;align-items:center;justify-content:center;z-index:999;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.modal-mask.open{display:flex;animation:maskIn .4s ease both}@keyframes maskIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:scale(.92) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-mask.open .modal-box{animation:modalIn .45s cubic-bezier(.34,1.56,.64,1) both}.modal-box{background:#0f172ad9;backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border-radius:20px;width:420px;max-width:92vw;max-height:82vh;overflow-y:auto;box-shadow:0 32px 80px -12px #0000004d;border:1px solid rgba(255,255,255,.2)}.modal-close{position:absolute;top:14px;right:16px;cursor:pointer;font-size:22px;color:#ffffff80;transition:color .2s;background:none;border:none;line-height:1}.modal-close:hover{color:#fff}.hamburger{display:none;flex-direction:row;align-items:center;gap:6px;cursor:pointer;padding:8px;margin-right:8px}.hamburger span{width:20px;height:2px;background:#fff;border-radius:2px;transition:all .2s}.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(4px,4px)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(4px,-4px)}.rank-name{font-weight:600;color:#ffffffe6}.rank-val{font-size:13px;font-weight:700;color:#fbbf24}@media (min-width:1101px){.app{flex-direction:row}.sidebar{flex-direction:column;align-items:stretch;width:180px;height:calc(100vh - 32px);padding:0;flex-shrink:0;overflow:hidden;border-radius:16px;margin:16px 0 16px 16px;align-self:flex-start;border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 32px #00000040}.sidebar .logo-area{display:flex;align-items:center;gap:8px;padding:16px 16px 12px;border-bottom:1px solid rgba(255,255,255,.06)}.nav{flex-direction:column;align-items:stretch;padding:8px;flex:1;overflow:hidden}.nav-item{padding:9px 12px;border-radius:8px;font-size:13px}.sidebar-footer{flex-direction:column;padding:12px 16px;border-top:1px solid rgba(255,255,255,.06);align-items:stretch;gap:8px}.sidebar-footer #currentTime{order:-1;text-align:center;font-size:11px}.sidebar-footer .sdot,.sidebar-footer [style*=运行中]{display:none}}@media (max-width:1100px){.sidebar{display:none}.dash-grid{flex-direction:column}.dash-right,.dash-right .card{width:100%}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,Helvetica Neue,Arial,sans-serif;font-size:14px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.glass-dark{background:#0a102099}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.inset-0{top:0;right:0;bottom:0;left:0}.left-1\/2{left:50%}.top-1\/2{top:50%}.z-\[1000\]{z-index:1000}.z-\[999999\]{z-index:999999}.mb-1{margin-bottom:.25rem}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-12{height:3rem}.h-5{height:1.25rem}.h-full{height:100%}.w-5{width:1.25rem}.w-64{width:16rem}.w-\[18px\]{width:18px}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-3px\]{--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[3px\]{--tw-translate-y: 3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-45{--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.rounded-lg{border-radius:.5rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-white\/10{border-color:#ffffff1a}.bg-black\/50{background-color:#00000080}.bg-dark{--tw-bg-opacity: 1;background-color:rgb(26 37 64 / var(--tw-bg-opacity, 1))}.bg-dark\/70{background-color:#1a2540b3}.bg-dark\/95{background-color:#1a2540f2}.bg-success\/90{background-color:#10b981e6}.bg-white\/90{background-color:#ffffffe6}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-brand{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-brand-dark{--tw-gradient-to: #4f46e5 var(--tw-gradient-to-position)}.p-3{padding:.75rem}.p-4{padding:1rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-8{padding-left:2rem;padding-right:2rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.text-danger{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-warning{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/60{color:#fff9}.text-white\/70{color:#ffffffb3}.text-white\/80{color:#fffc}.text-white\/90{color:#ffffffe6}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}html,body{height:100%;font-family:-apple-system,Helvetica Neue,Arial,sans-serif;background:#1a2540;background-image:linear-gradient(135deg,#1a2540,#2a3f5f,#1a2840);background-size:200% 200%;background-attachment:fixed;animation:gradientShift 8s ease infinite;color:#fffc;font-size:14px;overflow-x:hidden}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 6px #10b981}50%{opacity:.6;box-shadow:0 0 14px #10b981}}.spin-icon{animation:spin .8s linear infinite}.content{flex:1;overflow-y:auto;overflow-x:hidden;padding:10px 12px 16px;min-width:0;min-height:0;display:flex;flex-direction:column}.content::-webkit-scrollbar{width:6px}.content::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.content::-webkit-scrollbar-track{background:transparent}.dash-left,.dash-right{display:flex;flex-direction:column;gap:16px;min-width:0;flex:1;overflow:hidden}.dash-left>.card,.dash-right>.card{flex:1;display:flex;flex-direction:column;min-height:0}.t-alarm{color:#ef4444;font-weight:600}.alarm-item{display:flex;gap:8px;padding:8px 16px;border-bottom:1px solid rgba(255,255,255,.06);align-items:center;overflow:hidden;width:100%;box-sizing:border-box}.alarm-item:last-child{border-bottom:none}.alarm-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.ad-red{background:#ef4444;box-shadow:0 0 7px #ef444499}.ad-yellow{background:#f59e0b;box-shadow:0 0 7px #f59e0b99}.ad-gray{background:#ffffff4d}.rank-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}.rank-item:last-child{border-bottom:none}.rank-num{width:22px;height:22px;border-radius:50%;background:#ffffff1a;color:#ffffffb3;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.rank-num.top{background:#6366f166;color:#fff}.rank-info{flex:1;min-width:0}.rank-name{font-size:13px;font-weight:500;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-bar-wrap{height:4px;background:#ffffff1a;border-radius:2px;margin-top:4px}.rank-bar-fill{height:100%;background:#6366f1;border-radius:2px}.rank-val{font-size:12px;font-weight:600;color:#fffc;flex-shrink:0}@media (min-width: 768px){.modal-box{width:800px;max-height:90vh}}@media (min-width: 1101px){.content{padding:18px 28px 28px}.stats-grid{gap:20px}.stat-card{padding:16px 24px}.stat-num{font-size:34px}.dash-grid{gap:20px}.card-head{padding:14px 20px}.card-body{padding:14px 18px}.card-title{font-size:14px}.dev-table td{padding:12px 8px;font-size:14px}}@media (max-width: 768px){html,body{height:auto}.content{padding:12px}.stat-card{padding:14px 16px}.stat-num{font-size:26px}.card-head,.card-body{padding:12px 14px}.dev-table th,.dev-table td{padding:8px 4px}}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 1024px){.lg\:hidden{display:none}}
