.hchassis-viz-container{display:flex;justify-content:center;padding:16px}.hchassis-viz{width:100%;max-width:1200px;background:linear-gradient(180deg,#1c1c1e,#141416,#0e0e10);border:3px solid #3a3a3c;border-top:4px solid #555;border-radius:4px;padding:0;box-shadow:0 12px 40px #0009,inset 0 1px #ffffff0d;position:relative;overflow:hidden}.hchassis-viz:before{content:"";display:block;height:6px;background:linear-gradient(90deg,#1a3a6a,#2563eb,#1a3a6a);border-bottom:1px solid #1e40af}.hchassis-viz-header{display:flex;align-items:center;justify-content:space-between;padding:8px 20px;background:linear-gradient(180deg,#222224,#1a1a1c);border-bottom:1px solid #333}.hchassis-viz-label{font-size:11px;font-weight:600;color:#6b7280;letter-spacing:1.5px;font-family:Segoe UI,Arial,sans-serif;text-transform:uppercase}.hchassis-model-label{font-size:10px;color:#4b5563;font-family:monospace;letter-spacing:1px}.hchassis-viz-row{display:grid;grid-template-columns:130px 1fr 130px;gap:8px;padding:8px 16px;align-items:stretch}.hchassis-viz-row.middle{grid-template-columns:110px 1fr 70px;min-height:280px;padding:6px 16px}.hchassis-psu-module{background:linear-gradient(180deg,#2a2a2c,#1e1e20 40%,#181818);border:2px solid #404040;border-radius:4px;display:flex;flex-direction:column;transition:all .3s;cursor:pointer;position:relative;overflow:hidden}.hchassis-psu-module:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#555,transparent)}.hchassis-psu-module:hover{border-color:#ffc107;box-shadow:0 0 12px #ffc10733}.hchassis-psu-module.online{border-color:#388e3c}.hchassis-psu-module.online .psu-led{background:#4caf50;box-shadow:0 0 8px #4caf50}.hchassis-psu-module.offline{border-color:#d32f2f}.hchassis-psu-module.offline .psu-led{background:#ef5350;box-shadow:0 0 6px #ef5350}.psu-body{padding:8px 10px 6px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #333;flex:1}.psu-led{width:8px;height:8px;background:#555;border-radius:50%;flex-shrink:0}.psu-info{flex:1;min-width:0}.psu-label{color:#e5e7eb!important;font-weight:700!important;font-size:13px!important;font-family:Segoe UI,sans-serif!important;letter-spacing:.5px}.psu-status{color:#6b7280!important;font-size:9px!important;font-weight:600!important;text-transform:uppercase}.psu-handle{height:5px;background:linear-gradient(90deg,#3a3a3a,#555,#3a3a3a);border-radius:0 0 2px 2px;margin:0 8px}.psu-fanpack{padding:5px 10px;display:flex;align-items:center;gap:6px;background:linear-gradient(180deg,#1a1a1c,#141416);cursor:pointer}.psu-fanpack:hover{background:linear-gradient(180deg,#222224,#1a1a1c)}.fan-icon{width:20px;height:20px;border:2px solid #444;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;color:#888;flex-shrink:0;position:relative}.fan-icon:after{content:"+";font-size:12px;font-weight:700}.hchassis-psu-module.online .fan-icon{border-color:#4caf50;color:#4caf50;animation:fan-spin 2s linear infinite}@keyframes fan-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fan-label{color:#9ca3af!important;font-size:9px!important;font-weight:600!important;letter-spacing:.5px}.hchassis-viz-switch{background:linear-gradient(180deg,#1a2030,#0f1520 60%,#0a1018);border:2px solid #2a3a50;border-radius:4px;padding:12px 16px;text-align:center;transition:all .3s;cursor:pointer;position:relative}.hchassis-viz-switch:before{content:"";position:absolute;top:4px;left:50%;transform:translate(-50%);width:80%;height:2px;background:linear-gradient(90deg,transparent,#2a3a50,transparent)}.hchassis-viz-switch:hover{border-color:#4dd3fc;box-shadow:0 0 16px #4dd3fc40}.hchassis-viz-switch.online{border-color:#388e3c;box-shadow:0 0 8px #388e3c33}.hchassis-viz-switch .switch-ports{display:flex;justify-content:center;gap:3px;margin-top:6px}.switch-port-dot{width:4px;height:4px;background:#2a3a50;border-radius:1px}.hchassis-viz-switch.online .switch-port-dot{background:#4caf50}.hchassis-viz-switch .MuiTypography-h6{color:#7dd3fc;font-weight:700;font-size:14px;margin-bottom:2px;letter-spacing:1px}.hchassis-viz-switch .MuiTypography-caption{color:#6b7280;font-size:10px;display:block}.hchassis-viz-amms{display:flex;flex-direction:column;gap:6px;padding:4px 0}.hchassis-viz-amm{background:linear-gradient(180deg,#1e1828,#14101e);border:2px solid #352848;border-radius:4px;padding:12px 8px;text-align:center;transition:all .3s;cursor:pointer;position:relative;flex:1;display:flex;flex-direction:column;justify-content:center;gap:4px}.hchassis-viz-amm:hover{border-color:#7c3aed;box-shadow:0 0 12px #7c3aed4d}.hchassis-viz-amm.online{border-color:#388e3c}.hchassis-viz-amm.offline{border-color:#c62828;background:linear-gradient(180deg,#2a1018,#1a0810)}.hchassis-viz-amm .amm-led{width:6px;height:6px;background:#555;border-radius:50%;position:absolute;top:6px;right:6px}.hchassis-viz-amm.online .amm-led{background:#4caf50;box-shadow:0 0 6px #4caf50}.hchassis-viz-amm.offline .amm-led{background:#ef5350;box-shadow:0 0 6px #ef5350}.hchassis-viz-amm .MuiTypography-body2{color:#a78bfa;font-weight:700;font-size:12px;letter-spacing:.5px}.hchassis-viz-amm .MuiTypography-caption{color:#6b7280;font-size:9px}.amm-role-badge{font-size:8px!important;color:#9ca3af!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.5px}.amm-role-badge.primary{color:#4ade80!important}.hchassis-viz-blades{display:flex;gap:4px;justify-content:center;align-items:stretch}.hchassis-viz-blade-unit{flex:1;display:flex;flex-direction:column;gap:2px;transition:all .3s}.hchassis-viz-blade-unit:hover{transform:translateY(-2px)}.blade-slot{text-align:center;position:relative}.blade-main{background:linear-gradient(180deg,#1e2d3d,#0e1a28 60%,#0a1420);border:2px solid #2a3a4a;border-radius:4px 4px 1px 1px;padding:8px 4px 6px;display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;transition:all .3s;cursor:pointer}.blade-main:hover{box-shadow:0 4px 12px #7dd3fc4d;border-color:#4dd3fc}.hchassis-viz-blade-unit.online .blade-main{border-color:#388e3c;background:linear-gradient(180deg,#152815,#0e1e0e 60%,#0a1a0a)}.hchassis-viz-blade-unit.online .blade-led{background:#4caf50;box-shadow:0 0 8px #4caf50}.hchassis-viz-blade-unit.offline .blade-main{border-color:#d32f2f;background:linear-gradient(180deg,#2a1515,#1e0e0e 60%,#180a0a)}.hchassis-viz-blade-unit.offline .blade-led{background:#ef5350;box-shadow:0 0 6px #ef5350}.blade-handle{width:60%;height:3px;background:linear-gradient(90deg,#444,#666,#444);border-radius:1px;margin:2px 0}.blade-led{width:8px;height:8px;background:#444;border-radius:50%}.blade-label{color:#7dd3fc!important;font-weight:700!important;font-size:10px!important;font-family:Consolas,Monaco,monospace!important;letter-spacing:-.5px}.blade-status{color:#6b7280!important;font-size:8px!important;font-weight:600!important;text-transform:uppercase}.blade-sidecard{background:linear-gradient(180deg,#18182a,#101018);border:1px solid #252535;border-radius:1px 1px 4px 4px;padding:3px 2px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:60px}.sidecard-label{color:#555!important;font-size:7px!important;font-weight:600!important;letter-spacing:.5px}.pcie-cards{display:flex;flex-direction:column;gap:2px;width:100%}.pcie-card{background:linear-gradient(90deg,#1a2535,#152028);border:1px solid #253545;border-radius:2px;padding:2px;display:flex;flex-direction:column;align-items:center;gap:1px}.pcie-label{color:#678!important;font-size:7px!important;font-weight:600!important}.pcie-ports{display:flex;gap:2px;width:100%;justify-content:center}.blade-dac{background:#1a2a3a;border:1px solid #3a4a5a;border-radius:2px;padding:1px 4px;font-size:7px;color:#7dd3fc;cursor:pointer;transition:all .2s;font-weight:700;font-family:monospace}.blade-dac:hover{background:#2a3a4a;border-color:#5dd3fc;transform:scale(1.1);box-shadow:0 0 6px #7dd3fc66}.hchassis-viz-media{background:linear-gradient(180deg,#222,#1a1a1a);border:2px solid #333;border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s}.hchassis-viz-media:hover{border-color:#555;box-shadow:0 0 8px #64646433}.hchassis-viz-media .MuiTypography-body2{color:#555;font-weight:600;font-size:10px;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:2px}.hchassis-viz-blowers{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:8px 16px 12px}.hchassis-viz-blower{background:linear-gradient(180deg,#1a1a1c,#111113);border:2px solid #333;border-radius:4px;padding:10px 12px;display:flex;align-items:center;gap:10px;transition:all .3s;cursor:pointer}.hchassis-viz-blower:hover{border-color:#64b5f6;box-shadow:0 0 12px #64b5f633}.hchassis-viz-blower.online{border-color:#388e3c}.blower-fan-visual{width:32px;height:32px;border:2px solid #444;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0}.blower-fan-visual:after{content:"✱";font-size:16px;color:#555}.hchassis-viz-blower.online .blower-fan-visual{border-color:#4caf50;animation:fan-spin 1.5s linear infinite}.hchassis-viz-blower.online .blower-fan-visual:after{color:#4caf50}.blower-info{flex:1}.hchassis-viz-blower .MuiTypography-body2{color:#64b5f6;font-weight:700;font-size:12px}.hchassis-viz-blower .MuiTypography-caption{color:#6b7280;font-size:10px}.chassis-divider{height:1px;background:linear-gradient(90deg,transparent 5%,#333 30%,#444 50%,#333 70%,transparent 95%);margin:0 16px}@media (max-width: 1024px){.hchassis-viz-blades{gap:3px}.blade-label{font-size:9px!important}.hchassis-viz-row{grid-template-columns:100px 1fr 100px}}.rack-container{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;margin:0 0 20px;padding:15px;background:#fff;border-radius:8px;border:1px solid #e0e0e0;box-shadow:0 2px 4px #00000014}.rack{width:100%;max-width:1100px;background:linear-gradient(to bottom,#2a2a2a,#1a1a1a);border:3px solid #0a0a0a;border-radius:6px;padding:8px 6px;box-shadow:0 8px 16px #00000080,inset 0 1px #ffffff1a;position:relative}.rack .hchassis-viz-container{padding:4px 0}.rack .hchassis-viz{max-width:100%}.rack-label{background:#2c3e50;color:#fff;text-align:center;padding:6px 5px;margin-bottom:8px;border-radius:4px;font-family:Segoe UI,sans-serif;font-size:11px;font-weight:600;box-shadow:0 2px 4px #0000001a}.enclosure{background:linear-gradient(to bottom,#1a1a1a,#0a0a0a);border:2px solid #333;border-radius:6px;padding:6px;margin:6px 0;position:relative;pointer-events:auto}.enclosure-label{font-size:7px;color:#00a8e1;text-align:center;margin-bottom:4px;font-family:Segoe UI,sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.enclosure-content{display:flex;gap:3px;align-items:stretch}.enclosure-side{display:flex;flex-direction:column;gap:2px;width:18px}.mm-module{width:14px;height:18px;background:linear-gradient(to right,#2a2a2a,#1a1a1a);border:1px solid #333;border-radius:2px;font-size:6px;color:#888;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;font-weight:600}.pwr-module{width:14px;height:14px;background:linear-gradient(to right,#2a2a2a,#1a1a1a);border:1px solid #333;border-radius:2px;font-size:5px;color:#666;display:flex;align-items:center;justify-content:center;font-weight:600}.pwr-module.corner{width:16px;height:18px}.amm-module{width:100%;flex:1;background:linear-gradient(to right,#1f2a36,#121a22);border:1px solid #324152;border-radius:2px;font-size:6px;color:#8aa0b6;display:flex;align-items:center;justify-content:center;font-family:monospace;font-weight:700;writing-mode:vertical-rl;text-orientation:mixed}.media-tray{width:100%;flex:1;background:linear-gradient(to right,#232f3b,#151d25);border:1px solid #324152;border-radius:2px;font-size:6px;color:#9fb2c5;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;text-orientation:mixed;font-family:monospace;font-weight:700}.pwr-module.online{color:#4caf50;border-color:#4caf50}.blower-module{width:14px;height:12px;background:#1a1a1a;border:1px solid #333;border-radius:1px;font-size:5px;color:#666;display:flex;align-items:center;justify-content:center}.blower-module.online{color:#4caf50}.enclosure-center{flex:1}.enclosure-center.full{width:100%}.h-chassis{background:linear-gradient(135deg,#2a2a2a,#1a1a1a);border:1px solid #444;border-radius:4px;padding:4px;display:flex;flex-direction:column;gap:3px;min-height:225px}.chassis-header{display:flex;justify-content:center;align-items:center;padding:2px 4px;background:#0000004d;border-radius:2px;margin-bottom:2px}.chassis-label{font-size:7px;color:#90caf9;font-family:Segoe UI,sans-serif;font-weight:600}.sblades-container{display:flex;gap:4px;justify-content:space-between;min-height:120px;padding:4px;background:#0003;border-radius:2px}.sblade{flex:1;min-width:40px;height:120px;background:linear-gradient(to right,#3a3a3a,#2a2a2a,#3a3a3a);border:1px solid #1a1a1a;border-radius:2px;position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:2px;cursor:pointer}.sblade.populated{background:linear-gradient(to right,#1a1a1a,#0a0a0a,#1a1a1a);border-color:#000}.sblade.populated.online{border-color:#4caf50;box-shadow:inset 0 0 8px #4caf504d}.sblade.populated.offline{border-color:#546e7a}.sblade.populated.warning{border-color:#ff9800;box-shadow:inset 0 0 8px #ff98004d}.sblade.populated:hover{box-shadow:0 0 12px #00a8e199;transform:scale(1.05)}.sblade-led{width:3px;height:3px;background:#4caf50;border-radius:50%;margin:0 auto 1px;box-shadow:0 0 4px #4caf50;animation:pulse 2s infinite}.sblade-body{display:flex;gap:4px;align-items:stretch;flex:1}.sblade-spu{flex:1;background:linear-gradient(180deg,#141b22,#0b1016);border:1px solid #1f2a36;border-radius:2px;display:flex;align-items:center;justify-content:center;padding:1px}.sblade-spu.inactive{opacity:.5}.sblade-expansion{flex:1;background:linear-gradient(180deg,#1c2631,#0f161d);border:1px solid #223040;border-radius:2px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:2px 4px;margin-left:2px}.sblade-expansion.inactive{opacity:.5}.sblade-pcie{position:absolute;top:2px;bottom:2px;width:3px;background:linear-gradient(180deg,#3d4c5c,#2d3c4c);border:1px solid #4d5c6c;border-radius:1px;z-index:0}.sblade-pcie.left{left:2px}.sblade-pcie.right{right:2px}.sblade-dac{width:100%;height:24px;background:linear-gradient(135deg,#1a2632,#0d1419);border:1px solid #3d5570;border-radius:2px;position:relative;display:flex;align-items:center;justify-content:center;z-index:1;box-shadow:inset 0 0 4px #00000080}.sblade-hba{position:absolute;left:50%;transform:translate(-50%);width:12px;height:4px;background:linear-gradient(135deg,#0f4f33,#0a2f1f);border:1px solid #1ee3a8;border-radius:1px;box-shadow:0 0 4px #1ee3a899,inset 0 0 2px #1ee3a84d}.sblade-hba.top{top:4px}.sblade-hba.bottom{bottom:4px}.hchassis-switch{background:linear-gradient(to bottom,#222c36,#0f161d);border:1px solid #2d3c4c;border-radius:2px;padding:3px 4px;font-size:7px;color:#7dd3fc;text-align:center;font-family:monospace;letter-spacing:.3px;flex:1}.hchassis-switch.top{margin-bottom:4px}.hchassis-switch.bottom{margin-top:4px}.hchassis-row{display:grid;grid-template-columns:20px 1fr 20px;gap:6px;align-items:center}.hchassis-row.middle{grid-template-columns:22px 1fr 22px;align-items:stretch}.hchassis-left,.hchassis-right{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:space-between;height:100%}.hchassis-right .media-tray{text-align:center;padding:2px 4px}.hchassis-blades{display:flex;align-items:stretch}.hchassis-blowers{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;margin-top:4px}.hchassis-blower{background:linear-gradient(to bottom,#1a1a1a,#0a0a0a);border:1px solid #333;border-radius:3px;padding:6px 4px;font-size:7px;color:#888;text-align:center;font-family:monospace;font-weight:700}.hchassis-blower.online{color:#4caf50;border-color:#4caf50}.hchassis-fanpacks-row{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;margin:2px 0}.hchassis-fanpack{background:linear-gradient(to bottom,#1a2a3a,#0f1a2a);border:1px solid #2d3c4c;border-radius:2px;padding:4px;font-size:7px;color:#7dd3fc;text-align:center;font-family:monospace;font-weight:600;letter-spacing:.3px;cursor:pointer;transition:all .2s}.hchassis-fanpack:hover{background:linear-gradient(to bottom,#2a3a4a,#1f2a3a);border-color:#4dd3fc}.hchassis-fanpack.online{color:#4caf50;border-color:#4caf50}.hchassis-fanpack.offline{color:#ef5350;border-color:#ef5350}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.sblade.offline .sblade-led{background:#546e7a;box-shadow:none;animation:none}.sblade.warning .sblade-led{background:#ff9800;box-shadow:0 0 6px #ff9800}.sblade-label{writing-mode:vertical-rl;text-orientation:mixed;font-size:2px;color:#9fb2c5;font-family:Segoe UI,sans-serif;text-align:center;margin:auto}.sblade.populated .sblade-label{color:#9fb2c5}.sblade.populated.online .sblade-label{color:#6ff7c9}.sblade.populated.warning .sblade-label{color:#f8e08a}.sblade.populated.offline .sblade-label{color:#9aa7b3}.sblade-vents{display:flex;flex-direction:column;gap:1px;margin-top:auto}.sblade-vent{height:1px;background:#2a2a2a}.sblade.populated .sblade-vent{background:#444}.ha-hosts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.ha-host-card{background:linear-gradient(135deg,#0f1720,#101a24 60%,#0b1118);border:1px solid #1e2936;border-radius:14px;padding:16px;color:#d7e2ee;box-shadow:0 8px 16px #0c131c40;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;cursor:pointer}.ha-host-card:hover{transform:translateY(-2px);box-shadow:0 12px 22px #0c131c59}.ha-host-card.active{border-color:#1ee3a8}.ha-host-card.standby{border-color:#6b7280}.ha-host-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.ha-host-name{font-weight:700;letter-spacing:1px;font-family:IBM Plex Sans,Segoe UI,sans-serif;color:#e9f1fb}.ha-host-model{color:#8aa0b6;font-family:IBM Plex Mono,SFMono-Regular,monospace}.ha-host-led{padding:4px 8px;border-radius:999px;font-size:.65rem;letter-spacing:1px;font-family:IBM Plex Mono,SFMono-Regular,monospace;background:#1b2a35;color:#b5c7d9;border:1px solid #263545}.ha-host-led.online{background:#0f3b2b;color:#4dffb0;border-color:#1ee3a8;box-shadow:0 0 8px #1ee3a866}.ha-host-led.standby{background:#2b313a;color:#d1d5db;border-color:#495463}.ha-host-chassis{border:1px solid #1f2a36;border-radius:10px;padding:10px;background:linear-gradient(180deg,#101720,#0b1118);box-shadow:inset 0 0 0 1px #ffffff05}.ha-host-vents{display:flex;gap:6px;justify-content:flex-end;margin-bottom:8px}.ha-host-vent{width:18px;height:4px;border-radius:999px;background:#263545;box-shadow:inset 0 0 2px #0009}.ha-host-drive-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}.ha-drive{position:relative;height:18px;border-radius:4px;background:#1a2530;border:1px solid #2a3a4a;display:flex;align-items:center;justify-content:center;transition:transform .15s ease,box-shadow .15s ease}.ha-drive .ha-drive-led{width:6px;height:6px;border-radius:50%;background:#324152;opacity:.6}.ha-drive.clickable:hover{transform:translateY(-1px);box-shadow:0 4px 10px #0f172080}.ha-drive.online{border-color:#1ee3a8;background:linear-gradient(180deg,#0f2f23,#10241c)}.ha-drive.online .ha-drive-led{background:#3bffb2;box-shadow:0 0 6px #3bffb2cc;opacity:1}.ha-drive.warning{border-color:#fbbf24;background:linear-gradient(180deg,#3a2b10,#23190a)}.ha-drive.warning .ha-drive-led{background:#facc15;box-shadow:0 0 6px #facc15b3;opacity:1}.ha-drive.error{border-color:#f87171;background:linear-gradient(180deg,#3b1616,#220c0c)}.ha-drive.error .ha-drive-led{background:#fb7185;box-shadow:0 0 6px #f87171b3;opacity:1}.ha-drive.unknown{border-color:#64748b;background:#1c2631}.ha-drive.empty{opacity:.5}.ha-host-footer{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.ha-host-chip{background:#1d2a36!important;color:#d0dde9!important;border:1px solid #2d3c4c!important;font-family:IBM Plex Mono,SFMono-Regular,monospace!important}.ha-host-chip.storage-healthy{background:#0f3b2b!important;color:#6ff7c9!important;border-color:#1ee3a8!important}.ha-host-chip.storage-warning{background:#3a2b10!important;color:#f8e08a!important;border-color:#fbbf24!important}.ha-host-chip.storage-failure{background:#3b1616!important;color:#fca5a5!important;border-color:#f87171!important}.switch-module{background:linear-gradient(to bottom,#2a2a2a,#1a1a1a);border:1px solid #333;border-radius:2px;padding:3px 4px;margin:3px 0;font-size:7px;color:#00a8e1;text-align:center;font-family:Segoe UI,sans-serif;font-weight:600}.pdu-module{background:linear-gradient(to right,#1a1a1a,#0a0a0a);border:1px solid #333;border-radius:2px;padding:2px;margin:2px 0;font-size:6px;color:#888;text-align:center;font-family:Segoe UI,sans-serif}.rack-status{text-align:center;margin-top:12px;padding:8px;background:#00000080;border-radius:4px;font-size:11px;color:#4caf50;font-family:monospace;font-weight:700;box-shadow:inset 0 1px 2px #00000080}.rack-status.offline{color:#546e7a}.rack-status.warning{color:#ff9800}.rack-status.error{color:#f44336}.disk-enclosure{background:linear-gradient(to bottom,#1a1a1a,#0a0a0a);border:2px solid #444;border-radius:5px;padding:8px;margin:8px 0}.disk-enclosure-header{display:flex;justify-content:space-between;align-items:center;padding:4px 6px;background:#0000004d;border-radius:3px;margin-bottom:6px}.disk-enclosure-label{font-size:8px;color:#90caf9;font-family:monospace;font-weight:700}.disk-grid{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:1px;padding:3px 2px;background:#0003;border-radius:2px;margin:2px 0;pointer-events:auto}.disk{width:100%;height:22px;background:linear-gradient(to bottom,#3a3a3a,#2a2a2a,#3a3a3a);border:1px solid #1a1a1a;border-radius:2px;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;cursor:pointer;z-index:10}.disk.populated{background:linear-gradient(to bottom,#2a2a2a,#1a1a1a,#2a2a2a);border-color:#000}.disk.populated.active{border-color:#27ae60;box-shadow:inset 0 0 8px #27ae6099,0 0 4px #27ae6066}.disk.populated.active .disk-led{background:#27ae60;box-shadow:0 0 6px #27ae60,0 0 3px #27ae60}.disk.populated.spare{border-color:#2196f3;box-shadow:inset 0 0 8px #2196f399,0 0 4px #2196f366}.disk.populated.spare .disk-led{background:#2196f3;box-shadow:0 0 6px #2196f3,0 0 3px #2196f3}.disk.populated.failed{border-color:#e74c3c;box-shadow:inset 0 0 8px #e74c3c99,0 0 4px #e74c3c66}.disk.populated.failed .disk-led{background:#e74c3c;box-shadow:0 0 6px #e74c3c,0 0 3px #e74c3c}.disk.empty{background:linear-gradient(to bottom,#1a1a1a,#0a0a0a,#1a1a1a);border-color:#333;opacity:.4}.disk.populated.online{border-color:#4caf50;box-shadow:inset 0 0 4px #4caf5033}.disk.populated.offline{border-color:#546e7a}.disk.populated.warning{border-color:#ff9800;box-shadow:inset 0 0 4px #ff980033}.disk.populated:hover{box-shadow:0 0 8px #00a8e1cc;transform:scale(1.1)}.disk-led{width:3px;height:3px;background:#666;border-radius:50%;margin-bottom:1px;box-shadow:0 0 2px #666;pointer-events:none}.disk.offline .disk-led{background:#546e7a;box-shadow:none}.disk.warning .disk-led{background:#ff9800;box-shadow:0 0 4px #ff9800}.disk-slots{display:flex;flex-direction:column;gap:1px;pointer-events:none}.disk-slot{width:10px;height:1px;background:#2a2a2a;pointer-events:none}.disk.populated .disk-slot{background:#444}.enclosure-modules{display:flex;justify-content:space-between;gap:4px;margin-top:4px}.module-group{display:flex;gap:2px;flex:1}.psu-module{flex:1;background:linear-gradient(to right,#2a2a2a,#1a1a1a);border:1px solid #333;border-radius:2px;padding:4px 6px;font-size:9px;color:#888;text-align:center;font-family:monospace;font-weight:600;min-height:20px;display:flex;align-items:center;justify-content:center}.psu-module.online{color:#4caf50;border-color:#4caf50}.esm-module{flex:1;background:linear-gradient(to right,#2a2a2a,#1a1a1a);border:1px solid #333;border-radius:2px;padding:4px 6px;font-size:9px;color:#00a8e1;text-align:center;font-family:monospace;font-weight:600;min-height:20px;display:flex;align-items:center;justify-content:center}.esm-module.online{color:#00bcd4;border-color:#00bcd4;box-shadow:0 0 2px #00bcd44d}.fan-indicator{width:8px;height:16px;background:linear-gradient(to bottom,#2a2a2a,#1a1a1a);border:1px solid #333;border-radius:1px;font-size:5px;color:#666;display:flex;align-items:center;justify-content:center;font-family:monospace;font-weight:600}.fan-indicator.online{color:#4caf50}
