[data-theme=dark]{--bg-page: #0a0e12;--bg-content: #0f1419;--bg-deep: #141a21;--bg-surface: #1a2229;--bg-surface-alt: #232d36;--bg-elevated: #2d3540;--text-primary: #c5d3e0;--text-bright: #e0e6ed;--text-secondary: #b8c9d9;--text-body: #a8bac9;--text-muted: #8b9fb0;--text-dim: #6b7a8a;--text-placeholder: #6a7a8a;--text-close-hover: #d4e5f4;--border-default: #2d3540;--border-subtle: #1a2229;--scrollbar-track: #141a21;--scrollbar-thumb: #2d3540;--scrollbar-thumb-hover: #3d4d5c;--navbar-start: #1a1f26;--navbar-end: #2d3540;--navbar-shadow: rgba(0, 0, 0, .5);--navbar-text-shadow: rgba(0, 0, 0, .7);--dropdown-bg: #1a2229;--dropdown-shadow: 0 8px 24px rgba(0, 0, 0, .7), 0 0 20px rgba(237, 204, 6, .3);--accent-gold: #EDCC06;--accent-gold-dim: #b8960c;--accent-gold-hover: #ffdb4d;--accent-gold-glow: rgba(237, 204, 6, .6);--accent-gold-tint: rgba(237, 204, 6, .1);--accent-gold-tint-strong: rgba(237, 204, 6, .2);--accent-gold-inset: rgba(237, 204, 6, .15);--accent-gold-shadow: rgba(237, 204, 6, .3);--accent-gold-header-shadow: rgba(237, 204, 6, .2);--status-alarm: #ff6b6b;--status-alarm-dark: #ff3333;--status-alert: #f1c40f;--status-fault: #87ceeb;--status-ok: #4ade80;--status-default: #ced4da;--status-resolved: #4ade80;--status-unresolved: #d98880;--status-inactive: #9e9e9e;--error-text: #d98880;--error-bg: #8b0000;--error-border: #a52a2a;--error-bg-hover: #a52a2a;--error-glow: rgba(165, 42, 42, .5);--error-config-bg: rgba(220, 53, 69, .15);--error-config-border: #dc3545;--error-config-text: #ff6b6b;--fault-bg: #2a2a2a;--fault-border: #9e9e9e;--fault-text: #d0d0d0;--modal-overlay: rgba(0, 0, 0, .85);--modal-shadow: rgba(0, 0, 0, .7);--chart-tooltip-bg: rgba(20, 26, 33, .95);--slate-text-primary: #e2e8f0;--slate-text-secondary: #cbd5e1;--slate-text-bright: #f1f5f9;--slate-text-muted: #94a3b8;--slate-text-dim: #64748b;--slate-bg-deep: #0f172a;--slate-bg-dark: #1e293b;--slate-bg-surface: #2d3748;--slate-bg-mid: #3a4557;--slate-bg-elevated: #475569;--slate-bg-subtle: #334155;--slate-bg-collecting: #1e3a5f;--slate-border: #475569;--slate-border-subtle: #334155;--accent-blue: #60a5fa;--accent-blue-hover: #3b82f6;--accent-blue-active: #93bbfd;--accent-blue-dark: #0f172a;--accent-blue-tint: rgba(96, 165, 250, .1);--accent-blue-tint-strong: rgba(96, 165, 250, .15);--accent-yellow: #f7c948;--accent-yellow-stroke: #f59e0b;--accent-teal: #38b2ac;--accent-teal-tint: rgba(56, 178, 172, .2);--accent-teal-bg: rgba(56, 178, 172, .15);--accent-cyan: #22d3ee;--accent-green: #34d399;--slate-error-bg: #7f1d1d;--slate-error-border: #dc2626;--slate-error-text: #fca5a5;--slate-error-tint: rgba(220, 38, 38, .15);--slate-alarm: #f87171;--slate-alarm-tint: rgba(248, 113, 113, .15);--slate-warning: #fbbf24;--slate-warning-tint: rgba(251, 191, 36, .1);--slate-success: #4ade80;--slate-success-glow: rgba(74, 222, 128, .4);--slate-success-tint: rgba(74, 222, 128, .15);--ship-air-cushion: #3a3f47;--ship-body: #c4c4b8;--ship-body-stroke: #2d3540;--ship-shaft: #50504a;--ship-structure: #727268;--ship-structure-stroke: #4f4f48;--ship-window: #3a4654;--ship-label-dark: #1a1a1a;--ship-component: #8a8a80;--ship-component-stroke: #6a6a62;--ship-fan-housing: #62625a;--ship-fan-housing-stroke: #4a4a42;--ship-fan-blade: #8a8a7e;--ship-hub: #3e3e38;--ship-hub-stroke: #2a2a24;--ship-prop-blade: #70706a;--ship-designator: #4ade80;--ship-designator-stroke: #1f6b3b;--ship-tooltip-bg: rgba(20, 26, 33, .95);--ship-dot-stroke: rgba(0, 0, 0, .4);--ship-dot-hover-stroke: #fff;--ship-ok-glow: rgba(74, 222, 128, .6);--ship-alert-glow: rgba(241, 196, 15, .8);--ship-alarm-glow: rgba(255, 51, 51, .9)}[data-theme=light]{--bg-page: #f5f7fa;--bg-content: #ffffff;--bg-deep: #edf0f4;--bg-surface: #ffffff;--bg-surface-alt: #f0f2f5;--bg-elevated: #e2e6eb;--text-primary: #1a1f26;--text-bright: #0f1419;--text-secondary: #374151;--text-body: #4b5563;--text-muted: #6b7280;--text-dim: #9ca3af;--text-placeholder: #9ca3af;--text-close-hover: #111827;--border-default: #d1d5db;--border-subtle: #e5e7eb;--scrollbar-track: #f0f2f5;--scrollbar-thumb: #c4ccd6;--scrollbar-thumb-hover: #9ca3af;--navbar-start: #ffffff;--navbar-end: #f0f2f5;--navbar-shadow: rgba(0, 0, 0, .08);--navbar-text-shadow: rgba(0, 0, 0, .06);--dropdown-bg: #ffffff;--dropdown-shadow: 0 8px 24px rgba(0, 0, 0, .12), 0 0 0 1px rgba(0, 0, 0, .05);--accent-gold: #9a7d0a;--accent-gold-dim: #7a6300;--accent-gold-hover: #b8960c;--accent-gold-glow: rgba(154, 125, 10, .35);--accent-gold-tint: rgba(154, 125, 10, .06);--accent-gold-tint-strong: rgba(154, 125, 10, .12);--accent-gold-inset: rgba(154, 125, 10, .08);--accent-gold-shadow: rgba(154, 125, 10, .15);--accent-gold-header-shadow: rgba(154, 125, 10, .1);--status-alarm: #dc2626;--status-alarm-dark: #b91c1c;--status-alert: #ca8a04;--status-fault: #3b82f6;--status-ok: #16a34a;--status-default: #6b7280;--status-resolved: #16a34a;--status-unresolved: #dc2626;--status-inactive: #9ca3af;--error-text: #dc2626;--error-bg: #fef2f2;--error-border: #fca5a5;--error-bg-hover: #fee2e2;--error-glow: rgba(220, 38, 38, .15);--error-config-bg: rgba(220, 53, 69, .08);--error-config-border: #f87171;--error-config-text: #dc2626;--fault-bg: #f3f4f6;--fault-border: #9ca3af;--fault-text: #4b5563;--modal-overlay: rgba(0, 0, 0, .4);--modal-shadow: rgba(0, 0, 0, .15);--chart-tooltip-bg: rgba(255, 255, 255, .97);--slate-text-primary: #1e293b;--slate-text-secondary: #334155;--slate-text-bright: #0f172a;--slate-text-muted: #64748b;--slate-text-dim: #94a3b8;--slate-bg-deep: #f8fafc;--slate-bg-dark: #f1f5f9;--slate-bg-surface: #ffffff;--slate-bg-mid: #f8fafc;--slate-bg-elevated: #e2e8f0;--slate-bg-subtle: #f1f5f9;--slate-bg-collecting: #eff6ff;--slate-border: #cbd5e1;--slate-border-subtle: #e2e8f0;--accent-blue: #2563eb;--accent-blue-hover: #1d4ed8;--accent-blue-active: #60a5fa;--accent-blue-dark: #1e3a5f;--accent-blue-tint: rgba(37, 99, 235, .06);--accent-blue-tint-strong: rgba(37, 99, 235, .1);--accent-yellow: #a16207;--accent-yellow-stroke: #ca8a04;--accent-teal: #0d9488;--accent-teal-tint: rgba(13, 148, 136, .12);--accent-teal-bg: rgba(13, 148, 136, .08);--accent-cyan: #0891b2;--accent-green: #059669;--slate-error-bg: #fef2f2;--slate-error-border: #f87171;--slate-error-text: #dc2626;--slate-error-tint: rgba(220, 38, 38, .08);--slate-alarm: #ef4444;--slate-alarm-tint: rgba(239, 68, 68, .08);--slate-warning: #d97706;--slate-warning-tint: rgba(217, 119, 6, .08);--slate-success: #16a34a;--slate-success-glow: rgba(22, 163, 74, .25);--slate-success-tint: rgba(22, 163, 74, .08);--ship-air-cushion: #e2e6eb;--ship-body: #d4d4cc;--ship-body-stroke: #b8bcc2;--ship-shaft: #8a8a80;--ship-structure: #9e9e94;--ship-structure-stroke: #8a8a80;--ship-window: #ccd5de;--ship-label-dark: #1a1a1a;--ship-component: #b0b0a6;--ship-component-stroke: #8a8a80;--ship-fan-housing: #9e9e94;--ship-fan-housing-stroke: #8a8a80;--ship-fan-blade: #b0b0a6;--ship-hub: #727268;--ship-hub-stroke: #50504a;--ship-prop-blade: #9e9e94;--ship-designator: #16a34a;--ship-designator-stroke: #15803d;--ship-tooltip-bg: rgba(255, 255, 255, .97);--ship-dot-stroke: rgba(0, 0, 0, .2);--ship-dot-hover-stroke: #1a1a1a;--ship-ok-glow: rgba(22, 163, 74, .5);--ship-alert-glow: rgba(202, 138, 4, .6);--ship-alarm-glow: rgba(220, 38, 38, .7)}:root{font-family:Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5;font-weight:400;color:var(--text-primary);background-color:var(--bg-page);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}a{font-weight:500;color:var(--accent-gold);text-decoration:inherit}a:hover{color:var(--accent-gold-hover)}body{margin:0;padding:0;min-width:320px;min-height:100vh;background-color:var(--bg-page)}h1{font-size:2em;line-height:1.1;color:var(--text-primary)}h2{font-size:1.5em;line-height:1.2;color:var(--text-primary)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border:1px solid var(--border-subtle)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.event-chart-container{width:100%;margin:20px 0;padding:20px;background:var(--bg-content);border-radius:0;border:1px solid var(--border-default)}.event-chart-container h3{margin:0 0 5px;color:var(--accent-gold);font-size:18px;font-weight:700;text-transform:uppercase;letter-spacing:1px}.chart-subtitle{margin:0 0 15px;color:var(--text-muted);font-size:14px;font-style:italic}.no-chart-data{padding:40px;text-align:center;color:var(--text-placeholder);font-style:italic;background:var(--bg-content);border-radius:0;border:1px solid var(--border-default)}.custom-tooltip{background:var(--chart-tooltip-bg);border:1px solid var(--accent-gold);border-radius:0;padding:10px;box-shadow:0 2px 8px var(--modal-shadow)}.tooltip-time{margin:0 0 5px;font-size:12px;color:var(--text-muted);font-weight:500}.tooltip-value{margin:0;font-size:14px;color:var(--accent-gold);font-weight:700}@media(max-width:768px){.event-chart-container{padding:15px}.event-chart-container h3{font-size:16px}}.events-table-container{width:100%;padding:20px;background-color:var(--bg-content)}.table-header h2{margin:0;color:var(--text-primary);text-transform:uppercase;letter-spacing:2px;font-weight:700}.refresh-button{padding:8px 16px;background-color:var(--accent-gold-dim);color:var(--bg-page);border:1px solid var(--accent-gold);border-radius:2px;cursor:pointer;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:1px;transition:all .3s}.refresh-button:hover{background-color:var(--accent-gold);box-shadow:0 0 12px var(--accent-gold-glow)}.filters{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.filter-select,.filter-input{padding:8px 12px;border:1px solid var(--border-default);border-radius:2px;font-size:14px;background-color:var(--bg-surface);color:var(--text-secondary)}.filter-input{flex:1;min-width:200px}.filter-input::placeholder{color:var(--text-placeholder)}.filter-select{min-width:150px}.filter-select option{background-color:var(--bg-surface);color:var(--text-secondary)}.table-wrapper{overflow-x:auto;border-radius:0;box-shadow:0 4px 12px var(--navbar-shadow);border:1px solid var(--border-default)}.events-table{width:100%;border-collapse:collapse;background:var(--bg-surface)}.events-table thead{background-color:var(--bg-deep);border-bottom:2px solid var(--accent-gold)}.events-table th{padding:14px 16px;text-align:left;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;font-size:13px;border-bottom:2px solid var(--border-default)}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:color .2s}.sortable-th:hover{color:var(--accent-gold)}.events-table tbody tr{border-bottom:1px solid var(--border-default);transition:background-color .2s;background-color:var(--bg-surface)}.clickable-row:hover{background-color:var(--bg-surface-alt);box-shadow:inset 0 0 8px var(--accent-gold-inset);border-left:3px solid var(--accent-gold)}.events-table td{padding:12px 16px;color:var(--text-body);font-size:14px}.sensor-name{font-weight:600;color:var(--accent-gold)}.badge{display:inline-block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.badge-alarm{color:var(--status-alarm)}.badge-alert{color:var(--status-alert)}.badge-fault{color:var(--status-fault)}.badge-default{color:var(--status-default)}.badge-resolved{color:var(--status-resolved)}.badge-unresolved{color:var(--status-unresolved)}.resolve-button{padding:6px 12px;background-color:var(--accent-gold-dim);color:var(--bg-page);border:1px solid var(--accent-gold);border-radius:2px;cursor:pointer;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;transition:all .3s}.resolve-button:hover{background-color:var(--accent-gold);box-shadow:0 0 8px var(--accent-gold-glow)}.unresolve-button{padding:6px 12px;background-color:var(--error-bg);color:var(--text-bright);border:1px solid var(--error-border);border-radius:2px;cursor:pointer;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;transition:all .3s}.unresolve-button:hover{background-color:var(--error-bg-hover);box-shadow:0 0 6px var(--error-glow)}.loading,.no-data{text-align:center;padding:40px;color:var(--text-muted);font-size:16px;text-transform:uppercase;letter-spacing:1px}.error{color:var(--error-text);margin-bottom:20px;font-weight:600}.retry-button{padding:10px 20px;background-color:var(--error-bg);color:var(--text-bright);border:1px solid var(--error-border);border-radius:2px;cursor:pointer;font-size:14px;font-weight:600;text-transform:uppercase}.retry-button:hover{background-color:var(--error-bg-hover);box-shadow:0 0 8px var(--error-glow)}.modal-content{background:var(--bg-surface);border:2px solid var(--border-default);border-radius:0;width:90%;max-width:700px;max-height:80vh;overflow-y:auto;box-shadow:0 8px 24px var(--modal-shadow)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:2px solid var(--accent-gold);background-color:var(--bg-deep);box-shadow:0 2px 8px var(--accent-gold-header-shadow)}.modal-header h2{margin:0;color:var(--text-primary);text-transform:uppercase;letter-spacing:2px;font-weight:700}.close-button{background:none;border:none;font-size:28px;color:var(--text-muted);cursor:pointer;line-height:1;padding:0;width:30px;height:30px}.close-button:hover{color:var(--text-close-hover)}.modal-body{padding:20px;background-color:var(--bg-surface)}.detail-group{display:flex;margin-bottom:15px;gap:10px}.detail-group.full-width{flex-direction:column}.detail-group label{font-weight:700;color:var(--accent-gold);min-width:120px;text-transform:uppercase;font-size:12px;letter-spacing:1px}.detail-group span{color:var(--text-secondary)}.detail-group pre{background-color:var(--bg-content);border:1px solid var(--border-default);padding:10px;border-radius:0;overflow-x:auto;margin:0;color:var(--text-body)}.json-data{font-size:12px;line-height:1.5}.fault-message{display:block;margin-top:6px;padding:12px 16px;background:var(--fault-bg);border-left:3px solid var(--fault-border);border-radius:4px;color:var(--fault-text);font-size:14px;line-height:1.5}.modal-actions{margin-top:20px;padding-top:20px;border-top:2px solid var(--border-default);display:flex;gap:10px;justify-content:flex-end}.chart-section{width:100%;margin:20px 0}.modal-content{max-width:1000px!important}details{margin-top:20px;border:1px solid var(--border-default);border-radius:0;background-color:var(--bg-content)}details summary{padding:12px 16px;background-color:var(--bg-deep);color:var(--accent-gold);cursor:pointer;font-weight:700;text-transform:uppercase;font-size:12px;letter-spacing:1px;-webkit-user-select:none;user-select:none;transition:background-color .2s}details summary:hover{background-color:var(--bg-surface)}details[open] summary{border-bottom:1px solid var(--border-default)}details .json-data{margin:0;padding:16px}.ship-diagram-container{position:relative;width:100%;padding:20px;background-color:var(--bg-content);display:flex;flex-direction:column;align-items:center}.ship-diagram-title{margin:0 0 12px;color:var(--text-primary);text-transform:uppercase;letter-spacing:2px;font-weight:700}.ship-diagram-loading{text-align:center;padding:60px 20px;color:var(--text-muted);font-size:14px;text-transform:uppercase;letter-spacing:1px}.ship-svg{width:100%;max-width:520px;height:auto}.ship-svg-photo{max-width:640px;background-color:#fff;border:1px solid var(--border-default);border-radius:4px}.ship-svg-photo-dark image{filter:invert(1)}.ship-svg-photo-dark{background-color:#0a0a0a}.engine-label-overlay{fill:#fff;font-size:18px;paint-order:stroke fill;stroke:#000000bf;stroke-width:3;stroke-linejoin:round}.air-cushion{fill:var(--ship-air-cushion);stroke:var(--ship-body-stroke);stroke-width:2}.ship-body{fill:var(--ship-body);stroke:var(--ship-body-stroke);stroke-width:3}.drive-shaft{stroke:var(--ship-shaft);stroke-width:5;stroke-linecap:round}.pilot-house{fill:var(--ship-structure);stroke:var(--ship-structure-stroke);stroke-width:2}.pilot-house-window{fill:var(--ship-window);stroke:var(--ship-body-stroke);stroke-width:1}.pilot-house-title{fill:var(--ship-label-dark);font-family:Courier New,monospace;font-size:16px;font-weight:700;text-anchor:middle;letter-spacing:.5px}.pilot-house-designator-label{fill:var(--ship-label-dark);font-family:Courier New,monospace;font-size:13px;font-weight:700;text-anchor:middle}.fixed-designator{fill:var(--ship-designator);stroke:var(--ship-designator-stroke);stroke-width:1.5}.fixed-designator-label{fill:var(--ship-label-dark);font-family:Courier New,monospace;font-size:13px;font-weight:700;text-anchor:middle;letter-spacing:.4px}.component-box{fill:var(--ship-component);stroke:var(--ship-component-stroke);stroke-width:1.5}.component-bar{fill:var(--ship-structure);stroke:var(--ship-structure-stroke);stroke-width:2}.fan-housing{fill:var(--ship-fan-housing);stroke:var(--ship-fan-housing-stroke);stroke-width:2.5}.fan-blade{fill:var(--ship-fan-blade);stroke:var(--ship-shaft);stroke-width:.8;stroke-linejoin:bevel}.fan-hub{fill:var(--ship-hub);stroke:var(--ship-hub-stroke);stroke-width:2}.prop-housing{fill:var(--ship-fan-housing);stroke:var(--ship-fan-housing-stroke);stroke-width:2.5}.prop-blade{fill:var(--ship-prop-blade);stroke:var(--ship-hub);stroke-width:.8;stroke-linejoin:bevel}.prop-hub{fill:var(--ship-hub);stroke:var(--ship-hub-stroke);stroke-width:2}.component-label{fill:var(--ship-label-dark);font-family:Courier New,monospace;font-size:16px;font-weight:700;text-anchor:middle;dominant-baseline:middle;letter-spacing:2px}.orientation-label{fill:var(--accent-gold);font-family:Courier New,monospace;font-size:13px;font-weight:700;text-anchor:middle;dominant-baseline:middle;letter-spacing:2px;text-transform:uppercase}.orientation-vertical-port,.orientation-vertical-stbd{writing-mode:tb;text-anchor:middle}.sensor-dot{cursor:pointer;transition:r .2s ease;stroke:var(--ship-dot-stroke);stroke-width:1}.sensor-dot:hover{r:9;stroke-width:2;stroke:var(--ship-dot-hover-stroke)}.sensor-dot-ok{filter:drop-shadow(0 0 3px var(--ship-ok-glow))}.sensor-dot-alert{filter:drop-shadow(0 0 6px var(--ship-alert-glow))}.sensor-dot-alarm{filter:drop-shadow(0 0 8px var(--ship-alarm-glow))}.sensor-dot-pulse-alarm{opacity:.6;animation:pulseAlarm 1s ease-in-out infinite}.sensor-dot-pulse-alert{opacity:.5;animation:pulseAlert 1.4s ease-in-out infinite}@keyframes pulseAlarm{0%{r:8;opacity:.7}50%{r:22;opacity:0}to{r:8;opacity:.7}}@keyframes pulseAlert{0%{r:8;opacity:.5}50%{r:18;opacity:0}to{r:8;opacity:.5}}.ship-tooltip{position:absolute;pointer-events:none;background-color:var(--ship-tooltip-bg);border:1px solid var(--border-default);padding:10px 14px;z-index:50;min-width:180px;box-shadow:0 4px 12px var(--modal-shadow)}.ship-tooltip-name{font-family:Courier New,monospace;font-size:13px;font-weight:700;color:var(--accent-gold);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;border-bottom:1px solid var(--border-default);padding-bottom:6px}.ship-tooltip-row{display:flex;justify-content:space-between;gap:12px;font-size:11px;line-height:1.8;color:var(--text-secondary);font-family:Courier New,monospace;text-transform:uppercase}.ship-tooltip-label{color:var(--text-muted);font-weight:700}.tooltip-val-yes{color:var(--status-ok)}.tooltip-val-no{color:var(--text-muted)}.tooltip-val-alarm{color:var(--status-alarm-dark);font-weight:700}.tooltip-val-alert{color:var(--status-alert);font-weight:700}.tooltip-val-ok{color:var(--status-ok)}.home-screen{display:flex;gap:0;width:100%;min-height:calc(100vh - 100px);background-color:var(--bg-content);position:relative}.home-version{position:absolute;bottom:10px;right:14px;text-align:right;font-size:14px;font-weight:700;color:var(--text-dim);letter-spacing:1.5px;font-family:Courier New,monospace;text-transform:uppercase}.home-panel{overflow-y:auto}.home-panel-events{flex:55;min-width:0;border-right:2px solid var(--border-default)}.home-panel-diagram{flex:45;min-width:0;display:flex;align-items:flex-start;justify-content:center}@media(max-width:1024px){.home-screen{flex-direction:column}.home-panel-events{border-right:none;border-bottom:2px solid var(--border-default)}.home-panel-diagram{min-height:500px}}.sensor-table-container{width:100%;max-width:1400px;margin:0 auto;padding:20px;color:var(--slate-text-primary);font-family:Courier New,monospace}.table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.table-header h2{margin:0;font-size:1.8rem;color:var(--accent-blue);letter-spacing:2px;font-weight:700}.refresh-button{background:var(--slate-bg-surface);border:2px solid var(--slate-text-secondary);color:var(--slate-text-secondary);padding:10px 25px;font-size:1rem;font-weight:700;cursor:pointer;border-radius:4px;transition:all .2s;letter-spacing:1px;font-family:Courier New,monospace;text-transform:uppercase}.refresh-button:hover{background:var(--slate-text-secondary);color:var(--slate-bg-dark)}.table-wrapper{overflow-x:auto;border-radius:8px;box-shadow:0 4px 12px var(--navbar-shadow);border:2px solid var(--slate-border)}.sensor-table{width:100%;border-collapse:collapse;background:var(--slate-bg-mid)}.sensor-table thead{background-color:var(--slate-bg-surface);border-bottom:2px solid var(--slate-border)}.sensor-table th{padding:14px 16px;text-align:left;font-weight:700;color:var(--slate-text-secondary);text-transform:uppercase;letter-spacing:1px;font-size:13px}.sensor-table tbody tr{border-bottom:1px solid var(--slate-border);transition:background-color .2s;background-color:var(--slate-bg-mid)}.clickable-row{cursor:pointer}.clickable-row:hover{background-color:var(--slate-bg-elevated);border-left:3px solid var(--accent-blue)}.sensor-table td{padding:12px 16px;color:var(--slate-text-primary);font-size:14px}.sensor-name{font-weight:600;color:var(--accent-blue)}.badge{display:inline-block;padding:4px 10px;border-radius:3px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border:2px solid;font-family:Courier New,monospace}.badge-success{background-color:var(--accent-teal-tint);color:var(--accent-teal);border-color:var(--accent-teal)}.badge-inactive{background-color:var(--slate-error-tint);color:var(--slate-error-text);border-color:var(--slate-error-border)}.loading,.no-data{text-align:center;padding:40px;color:var(--slate-text-muted);font-size:1.1rem;text-transform:uppercase;letter-spacing:1px}.error-container{text-align:center;padding:40px}.error{color:var(--slate-error-text);margin-bottom:20px;font-weight:600}.retry-button{background:var(--slate-error-bg);border:2px solid var(--slate-error-border);color:var(--slate-error-text);padding:10px 20px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;text-transform:uppercase;font-family:Courier New,monospace;transition:all .2s}.retry-button:hover{background:var(--slate-error-border);color:var(--slate-bg-dark)}.modal-overlay{position:fixed;inset:0;background-color:var(--modal-overlay);display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:var(--slate-bg-mid);border:2px solid var(--slate-border);border-radius:8px;width:90%;max-width:650px;max-height:85vh;overflow-y:auto;box-shadow:0 8px 32px var(--modal-shadow)}.modal-content.modal-content--health-detail{max-width:950px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:2px solid var(--slate-border);background-color:var(--slate-bg-surface);border-radius:6px 6px 0 0}.modal-header h2{margin:0;color:var(--accent-blue);text-transform:uppercase;letter-spacing:2px;font-weight:700;font-size:1.2rem}.close-button{background:transparent;border:2px solid var(--slate-text-secondary);font-size:1.2rem;color:var(--slate-text-secondary);cursor:pointer;line-height:1;width:36px;height:36px;border-radius:4px;transition:all .2s;font-family:Courier New,monospace}.close-button:hover{background:var(--slate-text-secondary);color:var(--slate-bg-dark)}.modal-body{padding:20px}.detail-group{display:flex;margin-bottom:12px;gap:10px;align-items:baseline}.detail-group label{font-weight:700;color:var(--accent-yellow);min-width:130px;text-transform:uppercase;font-size:.75rem;letter-spacing:1px}.detail-group span{color:var(--slate-text-primary);font-size:.9rem}.detail-group pre{background-color:var(--slate-bg-surface);border:1px solid var(--slate-border);padding:10px;border-radius:4px;overflow-x:auto;margin:0;flex:1;font-size:12px;color:var(--slate-text-primary);font-family:Courier New,monospace}.health-data-section{margin-top:24px;padding-top:20px;border-top:2px solid var(--slate-border)}.health-data-title{margin:0 0 14px;color:var(--accent-yellow);font-size:1.1rem;text-transform:uppercase;letter-spacing:1.5px;font-weight:700}.health-data-filters{margin-bottom:14px;display:flex;flex-direction:column;gap:10px}.health-data-filters-pickers{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.health-data-filter-label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;color:var(--slate-text-muted);text-transform:uppercase;letter-spacing:.5px}.health-data-filter-input{background:var(--slate-bg-dark);border:2px solid var(--slate-border);border-radius:4px;color:var(--slate-text-primary);padding:6px 10px;font-size:12px;font-family:Courier New,monospace;outline:none;transition:border-color .2s}.health-data-filter-input:focus{border-color:var(--accent-blue)}.health-data-filter-input::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}[data-theme=light] .health-data-filter-input::-webkit-calendar-picker-indicator{filter:none}.health-data-filter-clear{padding:6px 14px;background:transparent;color:var(--slate-error-text);border:2px solid var(--slate-error-border);border-radius:4px;cursor:pointer;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-family:Courier New,monospace;transition:all .2s}.health-data-filter-clear:hover{background:var(--slate-error-border);color:var(--slate-bg-dark)}.health-data-presets{display:flex;gap:6px;flex-wrap:wrap}.health-data-preset-btn{padding:5px 12px;background:var(--slate-bg-dark);color:var(--slate-text-secondary);border:2px solid var(--slate-border);border-radius:4px;cursor:pointer;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-family:Courier New,monospace;transition:all .2s}.health-data-preset-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.health-data-preset-btn--active{background:var(--accent-blue);color:var(--accent-blue-dark);border-color:var(--accent-blue)}.health-data-preset-btn--active:hover{background:var(--accent-blue-active);border-color:var(--accent-blue-active);color:var(--accent-blue-dark)}.health-data-id-search{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.health-data-id-search-row{display:flex;gap:6px;align-items:center}.health-data-id-input{width:130px}.health-data-id-error{font-size:11px;color:var(--slate-error-text);margin-left:4px}.health-data-loading{color:var(--slate-text-muted);font-size:14px;padding:16px 0}.health-data-list-wrap{overflow-x:auto;max-height:280px;overflow-y:auto;border-radius:4px}.health-data-table{width:100%;border-collapse:collapse;font-size:12px;background:var(--slate-bg-surface);border:2px solid var(--slate-border);border-radius:4px}.health-data-table thead{position:sticky;top:0;background:var(--slate-bg-dark);border-bottom:2px solid var(--accent-blue);z-index:1}.health-data-table th{padding:10px 12px;text-align:left;font-weight:700;color:var(--slate-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.health-data-table td{padding:10px 12px;color:var(--slate-text-primary);border-bottom:1px solid var(--slate-border)}.health-data-row{cursor:pointer;transition:background-color .2s}.health-data-row:hover{background-color:var(--slate-bg-elevated);border-left:3px solid var(--accent-blue)}.health-data-empty{color:var(--slate-text-muted);padding:16px 0;font-size:14px}.health-data-load-more{margin-top:12px;padding:8px 20px;background:var(--slate-bg-dark);color:var(--slate-text-secondary);border:2px solid var(--slate-text-secondary);border-radius:4px;cursor:pointer;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;font-family:Courier New,monospace;transition:all .2s}.health-data-load-more:hover:not(:disabled){background:var(--slate-text-secondary);color:var(--slate-bg-dark)}.health-data-load-more:disabled{opacity:.5;cursor:not-allowed}.health-data-detail{background:var(--slate-bg-surface);border:2px solid var(--slate-border);border-radius:8px;padding:20px}.health-data-back{margin-bottom:16px;padding:8px 20px;background:transparent;color:var(--accent-blue);border:2px solid var(--accent-blue);border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:600;letter-spacing:1px;font-family:Courier New,monospace;transition:all .2s}.health-data-back:hover{background:var(--accent-blue);color:var(--slate-bg-dark)}.health-data-meta{margin-bottom:16px}.health-data-meta .detail-group{margin-bottom:8px}.health-data-chart-wrap{margin-top:20px}.health-data-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.health-data-chart-header h4{margin:0;color:var(--accent-blue);font-size:.95rem;text-transform:uppercase;letter-spacing:1.5px;font-weight:700}.health-data-zoom-reset{padding:4px 12px;background:transparent;color:var(--slate-text-secondary);border:2px solid var(--slate-text-secondary);border-radius:4px;cursor:pointer;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-family:Courier New,monospace;transition:all .2s}.health-data-zoom-reset:hover{background:var(--slate-text-secondary);color:var(--slate-bg-dark)}.health-data-chart{min-height:280px;background:var(--slate-bg-dark);border:2px solid var(--slate-border);border-radius:4px;padding:12px}.live-vibration{padding:1rem;max-width:1400px;margin:0 auto}.live-vibration-header{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin-bottom:1.25rem}.live-vibration-header h1{margin:0;font-size:1.5rem;flex:1 1 auto}.live-vibration-meta{font-size:.875rem;opacity:.8}.live-vibration-controls{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.live-vibration-controls button,.live-vibration-controls select{padding:.35rem .75rem;border-radius:4px;border:1px solid var(--border-color, #444);background:var(--card-bg, #1e1e1e);color:inherit;cursor:pointer;font-size:.875rem}.live-vibration-controls button:hover{opacity:.9}.live-vibration-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media(max-width:1100px){.live-vibration-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.live-vibration-grid{grid-template-columns:1fr}}.spectrum-cell{border:1px solid var(--border-color, #444);border-radius:8px;padding:.75rem;background:var(--card-bg, #1a1a1a);cursor:pointer;transition:border-color .15s,opacity .15s}.spectrum-cell:hover{border-color:var(--accent, #4a9eff)}.spectrum-cell.stale{opacity:.55}.spectrum-cell-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.35rem}.spectrum-cell-title{font-weight:600;font-size:.95rem}.spectrum-cell-age{font-size:.75rem;opacity:.75}.spectrum-cell-chart-wrap{height:120px;width:100%;min-height:120px}.spectrum-cell-sparkline-wrap{height:36px;width:100%;min-height:36px;margin-top:.35rem}.spectrum-cell-peak{font-size:.8rem;margin-top:.35rem;opacity:.9}.spectrum-cell-empty{height:120px;display:flex;align-items:center;justify-content:center;opacity:.5;font-size:.85rem}.live-vibration-modal-overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.live-vibration-modal{background:var(--card-bg, #1a1a1a);border:1px solid var(--border-color, #444);border-radius:10px;padding:1.25rem;max-width:900px;width:100%;max-height:90vh;overflow:auto}.live-vibration-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.live-vibration-modal-chart-wrap{height:360px;width:100%;min-height:360px}.live-vibration-error{color:#f87171;font-size:.875rem}.live-vibration-note{font-size:.8rem;opacity:.7;margin-top:.25rem}.trip-data-container{width:100%;padding:20px;background-color:var(--bg-content)}.trip-data-container .table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.breadcrumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.breadcrumb-item{font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:1rem}.breadcrumb-active{color:var(--text-primary)}.breadcrumb-link{color:var(--accent-gold);cursor:pointer;transition:opacity .2s}.breadcrumb-link:hover{opacity:.8;text-decoration:underline}.breadcrumb-separator{color:var(--text-placeholder);font-size:1rem;font-weight:700;-webkit-user-select:none;user-select:none}.trip-data-container .table-wrapper{overflow-x:auto;box-shadow:0 4px 12px var(--navbar-shadow);border:1px solid var(--border-default)}.trip-table{width:100%;border-collapse:collapse;background:var(--bg-surface)}.trip-table thead{background-color:var(--bg-deep);border-bottom:2px solid var(--accent-gold)}.trip-table th{padding:14px 16px;text-align:left;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;font-size:13px;border-bottom:2px solid var(--border-default)}.trip-table tbody tr{border-bottom:1px solid var(--border-default);transition:background-color .2s;background-color:var(--bg-surface)}.trip-table .clickable-row{cursor:pointer}.trip-table .clickable-row:hover{background-color:var(--bg-surface-alt);box-shadow:inset 0 0 8px var(--accent-gold-inset);border-left:3px solid var(--accent-gold)}.trip-table td{padding:12px 16px;color:var(--text-body);font-size:14px}.trip-name,.parm-name,.trip-data-container .sensor-name{font-weight:600;color:var(--accent-gold)}.trip-data-container .loading,.trip-data-container .no-data{text-align:center;padding:40px;color:var(--text-muted);font-size:16px;text-transform:uppercase;letter-spacing:1px}.trip-data-container .error-container{text-align:center;padding:40px}.trip-data-container .error{color:var(--error-text);margin-bottom:20px;font-weight:600}.trip-data-container .retry-button{padding:10px 20px;background-color:var(--error-bg);color:var(--text-bright);border:1px solid var(--error-border);border-radius:2px;cursor:pointer;font-size:14px;font-weight:600;text-transform:uppercase}.trip-data-container .retry-button:hover{background-color:var(--error-bg-hover);box-shadow:0 0 8px var(--error-glow)}.trip-data-container .refresh-button{padding:8px 16px;background-color:var(--accent-gold-dim);color:var(--bg-page);border:1px solid var(--accent-gold);border-radius:2px;cursor:pointer;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:1px;transition:all .3s}.trip-data-container .refresh-button:hover{background-color:var(--accent-gold);box-shadow:0 0 12px var(--accent-gold-glow)}.parm-chart-container{width:100%;margin-bottom:20px;padding:20px;background:var(--bg-content);border:1px solid var(--border-default)}.parm-chart-container h3{margin:0 0 15px;color:var(--accent-gold);font-size:18px;font-weight:700;text-transform:uppercase;letter-spacing:1px}.parm-chart-tooltip{background:var(--chart-tooltip-bg);border:1px solid var(--accent-gold);padding:10px;box-shadow:0 2px 8px var(--modal-shadow)}.parm-chart-tooltip .tooltip-time{margin:0 0 5px;font-size:12px;color:var(--text-muted);font-weight:500}.parm-chart-tooltip .tooltip-value{margin:0;font-size:14px;color:var(--accent-gold);font-weight:700}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary, #0f1419);padding:1rem}.login-card{width:100%;max-width:400px;background:var(--bg-secondary, #1a2332);border:1px solid var(--border-color, #2d3a4d);border-radius:8px;padding:2rem}.login-logos{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.login-logo-aces{height:40px}.login-logo-vims{height:36px}.login-card h1{margin:0 0 .25rem;font-size:1.5rem;color:var(--text-primary, #e8edf4)}.login-subtitle{margin:0 0 1.5rem;color:var(--text-muted, #8899aa);font-size:.9rem}.login-card label{display:block;margin-bottom:1rem;color:var(--text-secondary, #b8c5d6);font-size:.85rem}.login-card input{display:block;width:100%;margin-top:.35rem;padding:.6rem .75rem;border:1px solid var(--border-color, #2d3a4d);border-radius:4px;background:var(--bg-primary, #0f1419);color:var(--text-primary, #e8edf4);box-sizing:border-box}.login-card button{width:100%;margin-top:.5rem;padding:.75rem;background:#2563eb;color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer}.login-card button:disabled{opacity:.6;cursor:not-allowed}.login-error{color:#f87171;font-size:.85rem;margin:0 0 .5rem}.login-hint{margin-top:1rem;font-size:.8rem;color:var(--text-muted, #8899aa);text-align:center}#root{width:100%;min-height:100vh;margin:0;padding:0;background-color:var(--bg-page)}.app-container{width:100%;min-height:100vh;display:flex;flex-direction:column;background-color:var(--bg-page)}.top-navbar{background:linear-gradient(135deg,var(--navbar-start) 0%,var(--navbar-end) 100%);color:var(--text-bright);padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 4px 12px var(--navbar-shadow);border-bottom:3px solid var(--accent-gold);position:relative;z-index:100}.navbar-left{display:flex;align-items:center;gap:1.5rem}.logo-small{height:60px;width:auto;filter:drop-shadow(0 2px 4px rgba(0,0,0,.8)) brightness(.95)}.navbar-title{display:flex;flex-direction:column;gap:.25rem}.navbar-title h1{margin:0;font-size:1.5rem;font-weight:700;text-transform:uppercase;letter-spacing:3px;color:var(--accent-gold);text-shadow:2px 2px 4px var(--navbar-text-shadow)}.subtitle{margin:0;font-size:.75rem;opacity:.8;color:var(--text-muted);letter-spacing:1.5px;text-transform:uppercase;font-weight:500}.navbar-right{position:relative;display:flex;align-items:center;gap:1rem}.vims-logo{height:80px;width:auto}.hamburger-menu{background:none;border:2px solid var(--accent-gold);padding:.5rem;width:45px;height:45px;cursor:pointer;display:flex;flex-direction:column;justify-content:space-around;align-items:center;transition:all .3s ease;border-radius:2px}.hamburger-menu:hover{background-color:var(--accent-gold-tint);box-shadow:0 0 10px var(--accent-gold-shadow)}.hamburger-menu span{display:block;width:28px;height:3px;background-color:var(--accent-gold);transition:all .3s ease;border-radius:2px}.theme-toggle{background:none;border:2px solid var(--accent-gold);width:40px;height:40px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:2px;font-size:1.2rem;transition:all .3s ease;color:var(--accent-gold);padding:0;line-height:1}.theme-toggle:hover{background-color:var(--accent-gold-tint);box-shadow:0 0 10px var(--accent-gold-shadow)}.dropdown-menu{position:absolute;top:calc(100% + .5rem);right:0;background-color:var(--dropdown-bg);border:2px solid var(--accent-gold);border-radius:0;min-width:200px;box-shadow:var(--dropdown-shadow);z-index:1001;overflow:hidden}.menu-item{width:100%;padding:1rem 1.5rem;background:none;border:none;border-bottom:1px solid var(--border-default);color:var(--text-secondary);font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;cursor:pointer;text-align:left;transition:all .3s ease}.menu-item:last-child{border-bottom:none}.menu-item:hover{background-color:var(--accent-gold-tint);color:var(--accent-gold);padding-left:2rem}.menu-item.active{background-color:var(--accent-gold-tint-strong);color:var(--accent-gold);border-left:4px solid var(--accent-gold);font-weight:700}.menu-overlay{position:fixed;inset:0;background-color:transparent;z-index:99}.app-content{flex:1;background-color:var(--bg-content);padding:0;overflow-y:auto}@media(max-width:768px){.navbar-left{gap:1rem}.logo-small{height:45px}.navbar-title h1{font-size:1.2rem}.subtitle{font-size:.65rem}}
