:root{--bg-primary: #1a1d23;--bg-secondary: #22262e;--bg-card: #2a2e38;--bg-card-hover: #323742;--sidebar-bg: #16191f;--text-primary: #ecf0f1;--text-secondary: #95a5a6;--text-muted: #7f8c8d;--kpi-blue: #2980b9;--kpi-green: #27ae60;--kpi-teal: #16a085;--kpi-red: #c0392b;--kpi-yellow: #d4a017;--accent: #3498db;--accent-hover: #2c80b4;--success: #2ecc71;--warning: #f39c12;--danger: #e74c3c;--sidebar-width: 240px;--radius: 8px;--radius-sm: 4px;--shadow: 0 2px 8px rgba(0, 0, 0, .3);--transition: .2s ease;--border: rgba(255, 255, 255, .08)}[data-theme=light]{--bg-primary: #f0f2f5;--bg-secondary: #e4e7eb;--bg-card: #ffffff;--bg-card-hover: #f8f9fa;--sidebar-bg: #1e2128;--text-primary: #1a1d23;--text-secondary: #5a6068;--text-muted: #7f8690;--shadow: 0 2px 8px rgba(0, 0, 0, .08);--border: rgba(0, 0, 0, .08)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased}.app-layout{display:flex;min-height:100vh}.main-content{flex:1;margin-left:var(--sidebar-width);padding:28px 32px;overflow-y:auto;transition:margin-left .3s ease}.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;background:var(--sidebar-bg);display:flex;flex-direction:column;z-index:100;border-right:1px solid rgba(255,255,255,.06);transition:width .3s ease}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:16px 12px;border-bottom:1px solid rgba(255,255,255,.06);position:relative}.sidebar-collapse-toggle{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 16px;margin:0 12px 12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.sidebar-collapse-toggle:hover{background:#ffffff14;border-color:#ffffff1f;color:var(--text-primary)}.brand-logo{height:36px;width:auto;object-fit:contain}.brand-omni{font-size:28px;font-weight:700;color:var(--text-primary);letter-spacing:.08em}.sidebar-nav{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius);color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:500;transition:all var(--transition);position:relative}.nav-item svg{flex-shrink:0}.nav-item:hover{background:#ffffff0d;color:var(--text-primary)}.nav-item.active{background:var(--accent);color:#fff}.sidebar-collapsed .nav-item[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);background:#000000e6;color:#fff;padding:8px 12px;border-radius:6px;font-size:13px;font-weight:500;white-space:nowrap;z-index:1000;pointer-events:none;box-shadow:0 4px 12px #0000004d}.sidebar-collapsed .nav-item[data-tooltip]:hover:before{content:"";position:absolute;left:calc(100% + 6px);top:50%;transform:translateY(-50%);border:6px solid transparent;border-right-color:#000000e6;z-index:1000;pointer-events:none}.sidebar-footer{padding:12px 16px;border-top:1px solid rgba(255,255,255,.06)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.status-dot.online{background:var(--success);box-shadow:0 0 6px #2ecc7180}.sidebar-collapsed{width:70px!important}.sidebar-collapsed .brand-omni,.sidebar-collapsed .nav-item span:not(.nav-badge),.sidebar-collapsed .sidebar-collapse-toggle span,.sidebar-collapsed .sidebar-user-info{display:none}.sidebar-collapsed .sidebar-brand{justify-content:center;padding:16px 10px}.sidebar-collapsed .brand-logo{height:32px}.sidebar-collapsed .nav-item{justify-content:center;padding:12px;margin:0 8px 4px;opacity:1}.sidebar-collapsed .nav-item svg{opacity:1}.sidebar-collapsed .nav-badge{position:absolute;top:8px;right:8px;min-width:16px;font-size:10px;padding:2px 5px}.sidebar-collapsed .sidebar-collapse-toggle{margin:0 8px 12px;padding:14px 10px;justify-content:center}.sidebar-collapsed .sidebar-footer{padding:8px 6px}.sidebar-collapsed .sidebar-user{align-items:center;padding:6px 4px;gap:0}.sidebar-collapsed .sidebar-user-actions{flex-wrap:wrap;justify-content:center;gap:2px}.sidebar-collapsed .sidebar-user-actions button,.sidebar-collapsed .sidebar-user-actions .notif-bell-btn{padding:5px}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:50vh;gap:16px;color:var(--text-muted)}.spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.08);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14,#ffffff0a 75%);background-size:800px 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}[data-theme=light] .skeleton{background:linear-gradient(90deg,#0000000a 25%,#00000014,#0000000a 75%);background-size:800px 100%}.skeleton-card{background:var(--bg-card);border-radius:var(--radius);padding:20px;border:1px solid var(--border)}.skeleton-text{display:block}.no-results{grid-column:1 / -1;text-align:center;padding:48px 16px;color:var(--text-muted);font-size:15px}.page-header{margin-bottom:28px}.page-header h1{font-size:28px;font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.page-subtitle{font-size:14px;color:var(--text-muted);margin-top:4px}.back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--accent);font-size:14px;font-weight:500;cursor:pointer;padding:6px 0;margin-bottom:12px;font-family:inherit}.back-btn:hover{color:var(--accent-hover)}.last-seen{font-size:13px;color:var(--text-muted);margin-left:16px}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;margin-bottom:32px}.site-lifecycle-bar{display:flex;gap:24px;margin-bottom:24px;padding:12px 16px;background:var(--card-bg);border-radius:var(--radius);border:1px solid var(--border-color)}.lifecycle-item{display:flex;align-items:center;gap:8px}.lifecycle-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.lifecycle-date{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-secondary);border-radius:var(--radius-sm);padding:4px 8px;font-size:13px;cursor:pointer}.lifecycle-date:disabled{opacity:.5;cursor:default}@media(max-width:768px){.site-lifecycle-bar{flex-wrap:wrap;gap:12px}}.kpi-card{border-radius:var(--radius);padding:20px 22px;display:flex;justify-content:space-between;align-items:center;color:#fff;transition:transform var(--transition),box-shadow var(--transition)}.kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.kpi-clickable{cursor:pointer}.kpi-active{outline:2px solid #fff;outline-offset:-2px;transform:translateY(-2px);box-shadow:0 4px 20px #0000004d}.kpi-blue{background:var(--kpi-blue)}.kpi-green{background:var(--kpi-green)}.kpi-teal{background:var(--kpi-teal)}.kpi-red{background:var(--kpi-red)}.kpi-yellow{background:var(--kpi-yellow)}.kpi-label{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;opacity:.85;margin-bottom:4px}.kpi-value{font-size:28px;font-weight:700;letter-spacing:-.02em}.kpi-unit{font-size:16px;font-weight:400;margin-left:2px;opacity:.8}.kpi-icon{opacity:.6}.fleet-stat-bar{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;font-size:14px;color:var(--text-secondary);flex-wrap:wrap}.fleet-stat strong{color:var(--text-primary);font-weight:600}.fleet-stat-risk,.fleet-stat-risk strong{color:#e74c3c}.fleet-stat-clickable{transition:all .2s ease;border-radius:4px;padding:4px 8px;margin:-4px -8px}.fleet-stat-clickable:hover{background:#e74c3c1a;transform:translateY(-1px)}.fleet-stat-sep{width:1px;height:14px;background:var(--border);flex-shrink:0}.deploy-stat-bar{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;font-size:13px;color:var(--text-secondary);flex-wrap:wrap}.deploy-stat-label{font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary)}.deploy-stat-sep{width:1px;height:12px;background:var(--border);flex-shrink:0}.deploy-stat-clickable{cursor:pointer;padding:2px 8px;border-radius:4px;transition:background var(--transition);display:flex;align-items:center;gap:5px}.deploy-stat-clickable:hover{background:#ffffff0f}.deploy-stat-active{background:#ffffff1a;font-weight:600;color:var(--text-primary)}.deploy-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.deploy-dot-green{background:#27ae60}.deploy-dot-yellow{background:#f39c12}.deploy-dot-blue{background:#3498db}.deploy-dot-red{background:#e74c3c}.btn-xs{font-size:11px;padding:1px 6px}.fleet-controls{display:flex;align-items:center;gap:16px;margin-bottom:28px;flex-wrap:wrap}.search-box{display:flex;align-items:center;gap:10px;background:var(--bg-card);border-radius:var(--radius);padding:8px 14px;flex:1;min-width:200px;max-width:360px;border:1px solid rgba(255,255,255,.06)}.search-box svg{color:var(--text-muted);flex-shrink:0}.search-box input{background:none;border:none;color:var(--text-primary);font-size:14px;font-family:inherit;width:100%;outline:none}.search-box input::placeholder{color:var(--text-muted)}.control-group{display:flex;align-items:center;gap:8px}.control-group label{font-size:13px;color:var(--text-muted);font-weight:500}.control-group select{background:var(--bg-card);border:1px solid rgba(255,255,255,.1);color:var(--text-primary);padding:8px 12px;border-radius:var(--radius-sm);font-size:13px;font-family:inherit;cursor:pointer;outline:none}.control-group select:focus{border-color:var(--accent)}.deployed-toggle{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.deployed-toggle input{accent-color:var(--accent)}.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.site-card{background:var(--bg-card);border-radius:var(--radius);padding:18px;cursor:pointer;transition:all var(--transition);border:1px solid rgba(255,255,255,.04);position:relative;overflow:hidden}.site-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;transition:background var(--transition)}.site-card-ok:before{background:var(--success)}.site-card-warning:before{background:var(--warning)}.site-card-alarm:before{background:var(--danger)}.site-card-offline:before{background:var(--text-muted)}.site-card:hover{background:var(--bg-card-hover);transform:translateY(-2px);box-shadow:var(--shadow)}.site-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.site-card-name{font-size:15px;font-weight:600;color:var(--text-primary)}.site-card-body{display:flex;align-items:center;gap:16px}.site-card-gauge{flex-shrink:0}.site-card-stats{flex:1;display:flex;flex-direction:column;gap:8px}.stat-row{display:flex;justify-content:space-between;align-items:center}.stat-label{font-size:12px;color:var(--text-muted);font-weight:500}.stat-value{font-size:14px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.site-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06)}.last-update{font-size:11px;color:var(--text-muted)}.site-card-icon{font-size:16px}.ic2-only-badge{display:inline-block;margin-left:8px;padding:1px 6px;font-size:10px;font-weight:600;letter-spacing:.5px;border-radius:4px;background:#3498db33;color:#3498db;vertical-align:middle}.ic2-only-body{display:flex;align-items:center;gap:16px;width:100%}.ic2-status-indicator{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;width:90px;height:90px;border-radius:50%;border:3px solid}.ic2-status-indicator.ic2-online{border-color:var(--success);background:#2ecc7114}.ic2-status-indicator.ic2-offline{border-color:var(--text-muted);background:#7f8c8d14}.ic2-status-icon{font-size:24px;line-height:1}.ic2-status-text{font-size:11px;font-weight:600;margin-top:4px;color:var(--text-secondary)}.ic2-online .ic2-status-text{color:var(--success)}.ic2-offline .ic2-status-text{color:var(--text-muted)}.ic2-no-data{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:12px;padding:16px}.site-card-badges{display:flex;align-items:center;gap:8px}.signal-badge{display:flex;align-items:center;gap:5px;padding:2px 6px;border-radius:10px;font-size:10px}.signal-badge-online{background:#2ecc711f}.signal-badge-offline{background:#7f8c8d1f}.signal-badge-carrier{color:var(--text-secondary);font-weight:500;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-card-netrow{display:flex;align-items:center;gap:8px;margin-top:10px;padding:6px 8px;background:#ffffff08;border-radius:var(--radius-sm);font-size:11px}.netrow-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.netrow-dot-on{background:var(--success);box-shadow:0 0 4px #2ecc7180}.netrow-dot-off{background:var(--text-muted)}.netrow-carrier{color:var(--text-secondary);font-weight:500}.netrow-tech{color:var(--text-muted)}.netrow-rsrp{margin-left:auto;font-weight:600;font-variant-numeric:tabular-nums}.netrow-good{color:var(--success)}.netrow-fair{color:var(--warning)}.netrow-poor{color:var(--danger)}.netrow-clients{color:var(--text-muted);font-size:10px}.detail-network-card{flex-direction:column;align-items:stretch}.detail-net-hero{display:flex;align-items:center;gap:14px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:4px}.detail-net-hero-info{display:flex;flex-direction:column}.detail-net-carrier{font-size:16px;font-weight:700;color:var(--text-primary)}.detail-net-tech{font-size:12px;color:var(--text-muted);text-transform:uppercase}.detail-net-status-badge{margin-left:auto;padding:3px 10px;border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.detail-net-online{background:#2ecc7126;color:var(--success)}.detail-net-offline{background:#7f8c8d26;color:var(--text-muted)}.detail-net-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:12px}.detail-net-block h4{font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}.sim-card{background:#ffffff08;border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:8px;border-left:3px solid var(--text-muted)}.sim-active{border-left-color:var(--success)}.sim-label{font-weight:600;font-size:13px;color:var(--text-primary)}.sim-status{font-size:11px;color:var(--text-muted)}.sim-details{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--text-secondary)}.sim-iccid{font-family:SF Mono,Consolas,monospace;font-size:10px;color:var(--text-muted)}.wan-iface{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#ffffff08;border-radius:var(--radius-sm);margin-bottom:6px;border-left:3px solid var(--text-muted);font-size:13px}.wan-iface-red{border-left-color:var(--danger)}.wan-name{font-weight:600;color:var(--text-primary);min-width:60px}.wan-type{color:var(--text-muted);font-size:11px;text-transform:uppercase}.wan-status{color:var(--text-secondary);flex:1}.wan-ip{font-family:SF Mono,Consolas,monospace;font-size:12px;color:var(--text-muted)}.alarm-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.alarm-ok{background:#2ecc7126;color:var(--success)}.alarm-warning{background:#f39c1226;color:var(--warning)}.alarm-critical{background:#e74c3c26;color:var(--danger)}.alarm-offline{background:#7f8c8d26;color:var(--text-muted)}.detail-gauges{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;margin-bottom:28px}.detail-gauge-card{background:var(--bg-card);border-radius:var(--radius);padding:24px;display:flex;align-items:center;gap:24px;border:1px solid rgba(255,255,255,.04)}.gauge-details{flex:1;display:flex;flex-direction:column;gap:10px}.gauge-detail-row{display:flex;justify-content:space-between;font-size:13px}.gauge-detail-row span:first-child{color:var(--text-muted)}.gauge-detail-row span:last-child{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}.solar-status{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:120px}.solar-icon-large{font-size:40px}.solar-power-value{font-size:28px;font-weight:700;color:#f1c40f}.solar-state{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.range-selector{display:flex;align-items:center;gap:8px;margin-bottom:20px}.range-label{font-size:13px;color:var(--text-muted);font-weight:500;margin-right:4px}.range-btn{background:var(--bg-card);border:1px solid rgba(255,255,255,.1);color:var(--text-secondary);padding:6px 16px;border-radius:var(--radius-sm);font-size:13px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.range-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.range-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:28px}.chart-card{background:var(--bg-card);border-radius:var(--radius);padding:20px;border:1px solid rgba(255,255,255,.04)}.chart-card-full{grid-column:1 / -1}.chart-card h3{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:16px}.chart-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0}.chart-card-header h3{margin-bottom:12px}.reset-zoom-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);font-size:11px;padding:4px 10px;border-radius:4px;cursor:pointer;font-family:inherit;transition:all .15s}.reset-zoom-btn:hover{background:#ffffff1a;color:var(--text-primary)}.chart-container{height:240px;position:relative}.chart-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:14px}.detail-section{background:var(--bg-card);border-radius:var(--radius);padding:24px;margin-bottom:20px;border:1px solid rgba(255,255,255,.04)}.detail-section h2{font-size:17px;font-weight:600;margin-bottom:16px;color:var(--text-primary)}.empty-state{color:var(--text-muted);font-size:14px;text-align:center;padding:24px 0}.alarm-list{display:flex;flex-direction:column;gap:8px}.alarm-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.alarm-name{flex:1;font-size:14px;color:var(--text-primary)}.alarm-device{font-size:13px;color:var(--text-muted)}.alarm-time{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.devices-table-wrapper{overflow-x:auto}.devices-table{width:100%;border-collapse:collapse}.devices-table th{text-align:left;padding:10px 14px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(255,255,255,.08)}.devices-table td{padding:10px 14px;font-size:14px;color:var(--text-primary);border-bottom:1px solid rgba(255,255,255,.04)}.devices-table .mono{font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.devices-table tr:hover td{background:#ffffff05}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}.settings-card{background:var(--bg-card);border-radius:var(--radius);padding:24px;border:1px solid rgba(255,255,255,.04)}.settings-card h2{font-size:17px;font-weight:600;margin-bottom:12px;color:var(--text-primary)}.settings-card-danger{border-color:#e74c3c33}.settings-desc{font-size:13px;color:var(--text-muted);margin-bottom:16px;line-height:1.6}.settings-stats{display:flex;flex-direction:column;gap:16px}.settings-stat{display:flex;justify-content:space-between;align-items:center}.settings-stat .stat-label{font-size:13px;color:var(--text-muted)}.stat-value-large{font-size:18px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.retention-options{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.retention-btn{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.1);color:var(--text-secondary);padding:8px 18px;border-radius:var(--radius-sm);font-size:13px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.retention-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.retention-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.settings-actions{display:flex;gap:12px}.profile-section{display:flex;flex-direction:column;gap:12px}.profile-field{display:flex;align-items:center;gap:12px}.profile-field label{font-size:13px;color:var(--text-muted);min-width:100px;font-weight:500}.profile-field span{font-size:14px;color:var(--text-primary)}.settings-card-wide{grid-column:1 / -1}.settings-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.settings-card-header h2{margin-bottom:0}.btn-secondary{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.1);color:var(--text-secondary);padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all var(--transition)}.btn-secondary:hover{background:var(--bg-card-hover);color:var(--text-primary)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.jobsite-mgmt-table-wrapper{overflow-x:auto;margin-top:12px}.jobsite-mgmt-table{width:100%;border-collapse:collapse;font-size:13px}.jobsite-mgmt-table th{text-align:left;padding:10px 14px;color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border)}.jobsite-mgmt-table td{padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.03);vertical-align:middle}.jobsite-mgmt-row:hover{background:#ffffff05}.jobsite-mgmt-completed{opacity:.55}.jobsite-mgmt-name .clickable-name{cursor:pointer;color:var(--text-primary);font-weight:500;border-bottom:1px dashed rgba(255,255,255,.2);transition:color .15s}.jobsite-mgmt-name .clickable-name:hover{color:var(--accent)}.inline-edit-compact{display:flex;align-items:center;gap:6px}.inline-edit-compact input{background:var(--bg-secondary);border:1px solid var(--accent);color:var(--text-primary);padding:4px 8px;border-radius:4px;font-size:13px;font-family:inherit;width:180px}.btn-sm{padding:4px 10px;font-size:12px;border-radius:4px;font-weight:600;font-family:inherit;cursor:pointer;border:none}.btn-sm:not(.btn-ghost){background:var(--accent);color:#fff}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid rgba(255,255,255,.1)}.btn-ghost:hover{color:var(--text-primary)}.jobsite-mgmt-address{color:var(--text-muted);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trailer-count-badge.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.trailer-count-badge.clickable:hover{background:#3498db4d}.trailer-assign-row{background:#0003}.trailer-assign-row td{padding:6px 12px;border-top:1px solid rgba(255,255,255,.03)}.trailer-assign-name{padding-left:28px!important;color:var(--text-secondary);font-size:.9rem}.reassign-select{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-secondary);padding:4px 8px;border-radius:4px;font-size:.85rem;cursor:pointer;min-width:160px}.reassign-select:hover{border-color:var(--accent)}.trailer-assign-row.dragging{opacity:.4}.trailer-assign-row td:first-child{cursor:grab}.jobsite-mgmt-row.drop-target{outline:2px dashed var(--accent);outline-offset:-2px;background:#3498db14}.drag-overlay-trailer{background:var(--bg-secondary);border:2px solid var(--accent);border-radius:6px;padding:8px 16px;font-size:13px;color:var(--text-primary);box-shadow:0 4px 12px #0000004d;white-space:nowrap}.status-select{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-secondary);padding:4px 8px;border-radius:4px;font-size:12px;font-family:inherit;cursor:pointer}.status-select-active{color:#2ecc71;border-color:#2ecc714d}.status-select-standby{color:#f1c40f;border-color:#f1c40f4d}.status-select-completed{color:#7f8c8d;border-color:#7f8c8d4d}.btn{padding:10px 24px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;font-family:inherit;border:none;cursor:pointer;transition:all var(--transition)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#c0392b}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-card);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);width:90%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000080;animation:slideUp .2s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.06)}.modal-header h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.modal-close{background:none;border:none;color:var(--text-muted);font-size:24px;cursor:pointer;padding:0 4px;line-height:1;transition:color .15s}.modal-close:hover{color:var(--text-primary)}.input{width:100%;background:var(--bg-secondary);border:1px solid rgba(255,255,255,.1);color:var(--text-primary);padding:10px 14px;border-radius:var(--radius-sm);font-size:14px;font-family:inherit;transition:border-color .15s;box-sizing:border-box}.input:focus{outline:none;border-color:var(--accent)}.input::placeholder{color:var(--text-muted);opacity:.6}.settings-message{margin-top:20px;padding:12px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500}.settings-message.success{background:#2ecc711a;color:var(--success);border:1px solid rgba(46,204,113,.2)}.settings-message.error{background:#e74c3c1a;color:var(--danger);border:1px solid rgba(231,76,60,.2)}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;gap:16px;color:var(--text-muted)}.spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.no-results{grid-column:1 / -1;text-align:center;padding:40px 0;color:var(--text-muted);font-size:14px}@media(max-width:1024px){.main-content{padding:20px 16px}.charts-grid{grid-template-columns:1fr}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media(max-width:768px){.sidebar{width:60px}.brand-logo{height:24px}.brand-omni,.nav-item span,.sidebar-user-info{display:none}.sidebar-brand{justify-content:center;padding:16px 8px}.nav-item{justify-content:center;padding:12px}.main-content{margin-left:60px}.site-grid{grid-template-columns:1fr}.fleet-controls{flex-direction:column;align-items:stretch}.search-box{max-width:none}.detail-gauges{grid-template-columns:repeat(2,1fr);gap:12px}}.energy-page .page-header h1{font-size:28px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.page-subtitle{font-size:14px;color:var(--text-muted);margin-bottom:24px}.energy-alerts-banner{background:linear-gradient(135deg,#e74c3c1f,#f1c40f14);border:1px solid rgba(231,76,60,.25);border-radius:var(--radius);padding:20px;margin-bottom:24px}.alert-banner-header{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:#e74c3c;margin-bottom:14px}.alert-banner-items{display:flex;flex-wrap:wrap;gap:10px}.alert-item{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#0003;border-radius:var(--radius-sm);border-left:3px solid}.alert-item.alert-caution{border-left-color:#f39c12}.alert-item.alert-warning{border-left-color:#e67e22}.alert-item.alert-critical{border-left-color:#e74c3c}.alert-site-name{font-size:14px;font-weight:600;color:var(--text-primary)}.alert-streak{font-size:12px;color:var(--text-muted)}.alert-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:4px;background:#e74c3c33;color:#e74c3c}.energy-chart-section{background:var(--bg-card);border-radius:var(--radius);padding:24px;margin-bottom:24px;border:1px solid rgba(255,255,255,.04)}.energy-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.energy-chart-header h2{font-size:17px;font-weight:600;color:var(--text-primary)}.site-selector{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.12);color:var(--text-primary);padding:8px 14px;border-radius:var(--radius-sm);font-size:14px;font-family:inherit;cursor:pointer;min-width:200px}.site-selector:focus{outline:none;border-color:var(--accent)}.energy-chart-container{height:320px;position:relative}.energy-table-section{background:var(--bg-card);border-radius:var(--radius);padding:24px;border:1px solid rgba(255,255,255,.04)}.energy-table-section h2{font-size:17px;font-weight:600;color:var(--text-primary);margin-bottom:16px}.energy-table-wrapper{overflow-x:auto}.energy-table{width:100%;border-collapse:collapse}.energy-table th{text-align:left;padding:12px 16px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(255,255,255,.08)}.energy-table td{padding:12px 16px;font-size:14px;color:var(--text-primary);border-bottom:1px solid rgba(255,255,255,.04);font-variant-numeric:tabular-nums}.energy-row{cursor:pointer;transition:background var(--transition)}.energy-row:hover{background:#ffffff08}.energy-row.has-alert{background:#e74c3c0a}.energy-row.has-alert:hover{background:#e74c3c14}.site-name-cell{display:flex;align-items:center;gap:8px;font-weight:500}.inline-alert-dot{width:8px;height:8px;border-radius:50%;background:#e74c3c;flex-shrink:0;animation:pulse-dot 2s infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.yield-cell{color:var(--success)}.consumed-cell{color:#e74c3c}.balance-cell.positive{color:var(--success);font-weight:600}.balance-cell.negative{color:#e74c3c;font-weight:600}.energy-status-badge{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 10px;border-radius:4px}.energy-status-badge.ok{background:#2ecc7126;color:var(--success)}.energy-status-badge.caution{background:#f39c1226;color:#f39c12}.energy-status-badge.warning{background:#e67e2226;color:#e67e22}.energy-status-badge.critical{background:#e74c3c26;color:#e74c3c}.deficit-row-throttled{background:#f39c120d;opacity:.7}.throttle-indicator{display:inline-block;margin-left:8px;font-size:11px;color:#f39c12;cursor:help}.action-throttle-note{font-size:11px;color:var(--text-muted);font-style:italic}.network-grouped{display:flex;flex-direction:column;gap:24px}.network-site-group{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.network-site-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .15s ease}.network-site-header:hover{background:#ffffff08}.network-site-header-left{display:flex;align-items:center;gap:10px}.network-site-header-left h3{font-size:1rem;font-weight:600;margin:0;color:#ecf0f1}.network-site-header .expand-icon{color:#7f8c8d;font-size:.85rem;width:16px}.network-site-count{font-size:.8rem;color:#7f8c8d;background:#ffffff0f;padding:2px 8px;border-radius:10px}.network-site-header-right{display:flex;align-items:center;gap:12px}.network-site-status{font-size:.85rem;font-weight:500;padding:3px 10px;border-radius:12px}.network-site-status.all-online{color:#2ecc71;background:#2ecc711f}.network-site-status.has-offline{color:#e74c3c;background:#e74c3c1f}.site-all-online{border-left:3px solid #2ecc71}.site-has-offline{border-left:3px solid #e74c3c}.site-unassigned{border-left:3px solid #7f8c8d}.network-site-group>.network-grid{padding:16px;border-top:none}.detail-site-tag{padding:6px 16px 12px;font-size:.85rem;color:#3498db;font-weight:500}.network-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.network-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;transition:all .2s ease}.network-card:hover{border-color:#3498db66;transform:translateY(-2px);box-shadow:0 4px 20px #0000004d}.network-card-selected{border-color:var(--accent)!important;box-shadow:0 0 0 1px var(--accent),0 4px 20px #3498db33}.network-card-offline{opacity:.6}.network-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.network-card-name{font-size:14px;font-weight:600;color:var(--text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.network-status-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 10px;border-radius:4px;white-space:nowrap}.network-status-online{background:#2ecc7126;color:var(--success)}.network-status-offline{background:#e74c3c26;color:#e74c3c}.network-card-signal{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:10px 12px;background:#ffffff08;border-radius:8px}.signal-info{display:flex;flex-direction:column;flex:1;min-width:0}.signal-carrier{font-size:13px;font-weight:600;color:var(--text-primary)}.signal-tech{font-size:11px;color:var(--text-muted);font-weight:500}.signal-quality{font-size:13px;font-weight:700;font-family:SF Mono,Consolas,monospace;white-space:nowrap}.network-card-stats{display:flex;justify-content:space-between;margin-bottom:12px}.net-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.net-stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.net-stat-value{font-size:13px;font-weight:600;color:var(--text-primary)}.network-card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:10px;border-top:1px solid var(--border)}.net-model{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}.net-fw{font-size:11px;color:var(--text-muted);font-family:SF Mono,Consolas,monospace}.network-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.network-detail-panel{background:var(--sidebar-bg);border:1px solid var(--border);border-radius:12px;max-width:580px;width:100%;max-height:85vh;overflow-y:auto;padding:28px}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.detail-header h2{font-size:22px;font-weight:700;color:var(--text-primary);margin:0}.detail-close{background:none;border:1px solid var(--border);color:var(--text-muted);width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s}.detail-close:hover{background:#ffffff0d;color:var(--text-primary)}.detail-section{margin-bottom:24px}.detail-section h4{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--border)}.subsection-title{margin-top:16px!important}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.detail-item{display:flex;flex-direction:column;gap:3px}.detail-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.detail-value{font-size:13px;font-weight:600;color:var(--text-primary);word-break:break-all}.detail-signal-hero{display:flex;align-items:center;gap:14px;padding:14px 16px;background:#ffffff08;border-radius:10px;margin-bottom:16px}.signal-hero-info{display:flex;flex-direction:column}.signal-hero-carrier{font-size:16px;font-weight:700;color:var(--text-primary)}.signal-hero-tech{font-size:12px;color:var(--accent);font-weight:600}.signal-metrics .detail-value{font-family:SF Mono,Consolas,monospace;font-weight:700}.sim-card{padding:10px 14px;border-radius:8px;margin-bottom:8px}.sim-active{background:#2ecc7114;border:1px solid rgba(46,204,113,.2)}.sim-inactive{background:#ffffff05;border:1px solid var(--border)}.sim-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.sim-label{font-size:12px;font-weight:700;color:var(--text-primary)}.sim-status{font-size:11px;font-weight:600;color:var(--text-muted)}.sim-status-active{color:var(--success)}.sim-details{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--text-muted)}.sim-iccid{font-family:SF Mono,Consolas,monospace;font-size:10px}.wan-iface{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;margin-bottom:6px;background:#ffffff05;border-left:3px solid transparent}.wan-iface-green{border-left-color:var(--success)}.wan-iface-red{border-left-color:#e74c3c}.wan-iface-gray{border-left-color:#ffffff26}.wan-name{font-size:12px;font-weight:600;color:var(--text-primary);min-width:80px}.wan-type{font-size:11px;color:var(--accent);background:#3498db1a;padding:2px 6px;border-radius:4px}.wan-status{font-size:11px;color:var(--text-muted);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wan-ip{font-size:11px;font-family:SF Mono,Consolas,monospace;color:var(--text-muted)}@media(max-width:768px){.network-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,1fr)}.network-detail-panel{max-width:100%;padding:20px}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}.query-bar-container{margin:0 0 28px;width:100%}.query-form{position:relative}.query-input-wrapper{display:flex;align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:6px 6px 6px 16px;gap:12px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.query-input-wrapper:focus-within{border-color:#3498db80;box-shadow:0 0 0 3px #3498db1a,var(--shadow-lg);transform:translateY(-1px)}.query-icon{font-size:18px;opacity:.8}.query-input{flex:1;background:transparent;border:none;font-size:15px;color:var(--text-primary);outline:none;padding:8px 0}.query-input::placeholder{color:var(--text-muted);opacity:.6}.query-submit{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;border-radius:10px;padding:8px 18px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #3498db33}.query-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #3498db4d;filter:brightness(1.1)}.query-submit:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(1)}.query-result-card{margin-top:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px;border-left:4px solid #3498db;box-shadow:var(--shadow-lg)}.animate-in{animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.query-answer{font-size:15px;line-height:1.6;color:var(--text-primary);white-space:pre-line}.query-data-table-wrapper{margin-top:20px;background:#0003;border-radius:10px;overflow:hidden;border:1px solid var(--border)}.query-data-table{width:100%;border-collapse:collapse;font-size:13px}.query-data-table th{text-align:left;padding:12px 16px;background:#ffffff0d;color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:11px}.query-data-table td{padding:12px 16px;border-top:1px solid var(--border);color:var(--text-secondary)}.query-data-table tr:hover td{background:#ffffff05;color:var(--text-primary)}.query-data-more{padding:10px 16px;font-size:12px;color:var(--text-muted);font-style:italic;background:#0000001a;border-top:1px solid var(--border)}.query-footer{margin-top:20px;display:flex;justify-content:flex-end}.query-clear{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:6px 14px;font-size:12px;border-radius:8px;cursor:pointer;transition:all .2s}.query-clear:hover{background:#ffffff0d;border-color:var(--text-muted);color:var(--text-primary)}.query-error{color:#e74c3c;font-weight:600;font-size:14px}.view-toggle{display:flex;background:#ffffff0a;border-radius:8px;padding:2px;gap:2px}.view-toggle-btn{padding:6px 14px;border:none;background:transparent;color:var(--text-muted);font-size:13px;font-weight:500;font-family:Inter,sans-serif;border-radius:6px;cursor:pointer;transition:all .2s}.view-toggle-btn.active{background:#3498db33;color:#3498db}.view-toggle-btn:hover:not(.active){background:#ffffff0f;color:var(--text-primary)}.view-toggle-btn svg{vertical-align:middle}.fleet-list{overflow-x:auto;border-radius:var(--radius);border:1px solid rgba(255,255,255,.06)}.fleet-table{width:100%;border-collapse:collapse;font-size:13px}.fleet-table thead th{background:#ffffff0a;padding:10px 12px;text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid rgba(255,255,255,.08);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.fleet-table thead th:hover{color:var(--text-primary);background:#ffffff0f}.fleet-table thead th.sorted{color:var(--accent)}.fleet-table-row{cursor:pointer;transition:background .15s}.fleet-table-row:hover{background:#ffffff0a}.fleet-table-row td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.04);white-space:nowrap}.fleet-table-name{font-weight:600;color:var(--text-primary)}.fleet-table-muted{color:var(--text-muted)}.fleet-table-site{cursor:pointer}.fleet-table-site:hover{color:var(--accent)}.fleet-table-company{display:block;font-size:11px;color:var(--text-muted);opacity:.7}.fleet-table-soc{font-weight:700;padding:2px 8px;border-radius:4px;font-size:12px}.fleet-table-soc.soc-good{background:#2ecc7126;color:#2ecc71}.fleet-table-soc.soc-warning{background:#f1c40f26;color:#f1c40f}.fleet-table-soc.soc-critical{background:#e74c3c26;color:#e74c3c}.fleet-table-net{font-weight:500;font-size:12px;padding:2px 8px;border-radius:4px}.fleet-table-net.net-online{background:#2ecc7126;color:#2ecc71}.fleet-table-net.net-offline{background:#e74c3c26;color:#e74c3c}.site-card-subtitle{display:block;font-size:11px;color:var(--text-muted);margin-top:2px;font-weight:400}.site-card-company{margin-left:6px;padding:1px 6px;background:#ffffff14;border-radius:3px;font-size:10px;opacity:.7}.jobsite-status-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:capitalize}.jobsite-status-badge.jobsite-status-healthy{background:#2ecc7126;color:#2ecc71}.jobsite-status-badge.jobsite-status-warning{background:#f1c40f26;color:#f1c40f}.jobsite-status-badge.jobsite-status-critical{background:#e74c3c26;color:#e74c3c}.jobsite-status-badge.jobsite-status-unknown{background:#7f8c8d26;color:#7f8c8d}.jobsite-status-badge.jobsite-status-active{background:#2ecc7126;color:#2ecc71}.jobsite-status-badge.jobsite-status-standby{background:#f1c40f26;color:#f1c40f}.jobsite-status-badge.jobsite-status-completed{background:#7f8c8d26;color:#7f8c8d}.detail-meta{display:flex;align-items:center;gap:10px;margin-top:4px}.detail-address{font-size:13px;color:var(--text-muted)}.detail-trailer-count{font-size:13px;color:var(--text-secondary)}.clickable{cursor:pointer}.clickable:hover{opacity:.8}.inline-edit{display:flex;align-items:center;gap:8px}.inline-edit input{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:6px 12px;color:var(--text-primary);font-size:20px;font-weight:700;font-family:Inter,sans-serif}.btn-sm{padding:4px 12px;font-size:12px}.btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.12);color:var(--text-muted)}.btn-ghost:hover{background:#ffffff0f}.jobsite-section{margin-top:24px}.jobsite-section h2{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:16px}.empty-section{background:var(--bg-card);border-radius:var(--radius);padding:32px;text-align:center;color:var(--text-muted);border:1px dashed rgba(255,255,255,.08)}.trailer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.trailer-mini-card{background:var(--bg-card);border-radius:var(--radius);padding:14px;cursor:pointer;transition:all .2s;border:1px solid rgba(255,255,255,.04);border-left:3px solid #2ecc71}.trailer-mini-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.trailer-mini-alarm{border-left-color:#e74c3c}.trailer-mini-warning{border-left-color:#f1c40f}.trailer-mini-offline{border-left-color:#7f8c8d}.trailer-mini-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.trailer-mini-name{font-size:14px;font-weight:600;color:var(--text-primary)}.trailer-mini-status{font-size:11px;font-weight:600;padding:1px 6px;border-radius:8px}.trailer-mini-status-ok{background:#2ecc7126;color:#2ecc71}.trailer-mini-status-alarm{background:#e74c3c26;color:#e74c3c}.trailer-mini-status-warning{background:#f1c40f26;color:#f1c40f}.trailer-mini-status-offline{background:#7f8c8d26;color:#7f8c8d}.trailer-mini-body{display:flex;align-items:center;gap:12px}.trailer-mini-stats{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-secondary)}.trailer-mini-net{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:12px;color:var(--text-muted)}.map-page{padding:0}.map-page .page-header{padding:20px 24px 0}.map-controls{display:flex;align-items:center;gap:12px;padding:12px 24px;flex-wrap:wrap}.map-status-filters{display:flex;gap:6px}.map-filter-btn{padding:6px 12px;border:1px solid rgba(255,255,255,.1);background:transparent;color:var(--text-muted);border-radius:20px;font-size:12px;font-weight:500;font-family:Inter,sans-serif;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px}.map-filter-btn:hover{border-color:#fff3;color:var(--text-primary)}.map-filter-btn.map-filter-active{background:#3498db26;border-color:#3498db4d;color:#3498db}.map-filter-count{background:#ffffff1a;padding:1px 6px;border-radius:10px;font-size:11px}.map-container{height:500px;margin:0 24px;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.06)}.leaflet-popup-content-wrapper{background:var(--bg-card)!important;border-radius:10px!important;box-shadow:0 4px 20px #00000080!important;border:1px solid rgba(255,255,255,.08)!important}.leaflet-popup-content{color:var(--text-primary)!important;margin:12px 14px!important}.leaflet-popup-tip{background:var(--bg-card)!important}.map-popup-content h3{font-size:15px;font-weight:600;margin-bottom:10px;color:var(--text-primary)}.map-popup-stats{display:flex;flex-direction:column;gap:6px}.map-popup-stat{display:flex;justify-content:space-between;gap:16px}.map-popup-label{font-size:12px;color:var(--text-muted)}.map-popup-value{font-size:12px;font-weight:600;color:var(--text-primary)}.map-popup-status{font-size:12px;font-weight:600;text-transform:capitalize}.map-popup-status-healthy{color:#2ecc71}.map-popup-status-warning{color:#f1c40f}.map-popup-status-critical{color:#e74c3c}.map-popup-status-unknown{color:#7f8c8d}.map-popup-link{display:block;width:100%;margin-top:10px;padding:6px;background:#3498db26;border:1px solid rgba(52,152,219,.3);border-radius:6px;color:#3498db;font-size:12px;font-weight:600;font-family:Inter,sans-serif;cursor:pointer;text-align:center;transition:background .2s}.map-popup-link:hover{background:#3498db40}.map-site-list{padding:24px}.map-site-list h2{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:12px}.map-site-table{background:var(--bg-card);border-radius:var(--radius);overflow:hidden;border:1px solid rgba(255,255,255,.04)}.map-site-table table{width:100%;border-collapse:collapse}.map-site-table th{text-align:left;padding:10px 14px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.06)}.map-site-table td{padding:10px 14px;font-size:13px;color:var(--text-secondary);border-bottom:1px solid rgba(255,255,255,.03)}.map-site-row{cursor:pointer;transition:background .15s}.map-site-row:hover{background:#ffffff08}.map-site-name{font-weight:600;color:var(--text-primary)}.map-site-indent{padding-left:38px!important}.map-state-row{cursor:pointer;transition:background .15s;background:#ffffff05}.map-state-row:hover{background:#ffffff0d}.map-state-row td{border-bottom:1px solid rgba(255,255,255,.06)}.map-state-name{font-weight:700;color:var(--text-primary);font-size:13px;display:flex;align-items:center;gap:8px}.map-state-chevron{transition:transform .2s;flex-shrink:0;color:var(--text-secondary)}.map-state-chevron.expanded{transform:rotate(90deg)}.map-state-site-count{font-weight:400;font-size:11px;color:var(--text-secondary);margin-left:4px}.map-state-total{font-weight:600;color:var(--text-primary)}.deployment-kpi-section{margin-bottom:24px}.deployment-kpi-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.deployment-kpi-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin:0}.hq-badge{display:inline-block;background:#9b59b633;color:#9b59b6;font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;margin-left:6px;text-transform:uppercase;letter-spacing:.5px;vertical-align:middle}.btn-hq-toggle{background:none;border:none;color:var(--text-muted);font-size:10px;cursor:pointer;padding:1px 4px;margin-left:4px;opacity:0;transition:opacity .15s}.jobsite-mgmt-row:hover .btn-hq-toggle,tr:hover .btn-hq-toggle{opacity:.6}.btn-hq-toggle:hover{opacity:1!important;color:#9b59b6}.deployment-status-badge{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:capitalize}.deployment-active{background:#2ecc7126;color:#2ecc71}.deployment-standby{background:#f1c40f26;color:#f1c40f}.deployment-completed{background:#7f8c8d26;color:#7f8c8d}.map-state-hq{background:#9b59b60a}.map-state-hq:hover{background:#9b59b614}.map-site-hq{opacity:.7}.jobsite-mgmt-date{min-width:110px}.date-input{background:var(--bg-tertiary);border:1px solid rgba(255,255,255,.08);color:var(--text-primary);font-size:11px;font-family:inherit;padding:3px 6px;border-radius:4px;width:110px;cursor:pointer}.date-input:hover{border-color:#ffffff26}.date-input:focus{outline:none;border-color:var(--accent)}.maint-tabs{display:flex;gap:4px;background:var(--bg-secondary);padding:3px;border-radius:var(--radius-sm)}.maint-tab{background:transparent;border:none;color:var(--text-muted);padding:6px 14px;font-size:13px;font-family:inherit;font-weight:500;cursor:pointer;border-radius:4px;transition:all .15s}.maint-tab:hover{color:var(--text-primary)}.maint-tab.active{background:var(--accent);color:#fff}.maint-groups{display:flex;flex-direction:column;gap:20px}.maint-group{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.maint-group-header{display:flex;align-items:center;gap:10px;padding:12px 20px;border-bottom:1px solid var(--border)}.maint-group-header h3{font-size:.95rem;font-weight:600;margin:0;color:#ecf0f1}.maint-group-count{font-size:.8rem;color:var(--text-muted);background:#ffffff0f;padding:2px 8px;border-radius:10px}.maint-table{width:100%;border-collapse:collapse;font-size:13px}.maint-table th{text-align:left;padding:8px 14px;color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(255,255,255,.04)}.maint-table td{padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.03)}.maint-row{cursor:pointer;transition:background .15s}.maint-row:hover{background:#ffffff08}.maint-title{font-weight:500;color:var(--text-primary)}.maint-date,.maint-trailer,.maint-tech{color:var(--text-muted)}.maint-cost{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.maint-type-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500;background:#ffffff0f;color:var(--text-secondary)}.maint-status-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:600}.maint-status-blue{background:#3498db26;color:#3498db}.maint-status-yellow{background:#f1c40f26;color:#f1c40f}.maint-status-green{background:#2ecc7126;color:#2ecc71}.maint-status-gray{background:#7f8c8d26;color:#95a5a6}.maint-actions{text-align:right}.maint-delete-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:4px 8px;border-radius:4px;transition:all .15s}.maint-delete-btn:hover{background:#e74c3c26;color:#e74c3c}.maint-form-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;justify-content:center;align-items:flex-start;padding:40px 20px;overflow-y:auto}.maint-form-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:680px;padding:28px}.maint-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.maint-form-header h2{font-size:1.15rem;font-weight:600;margin:0;color:var(--text-primary)}.maint-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group-wide{grid-column:1 / -1}.form-group label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.form-group input,.form-group select,.form-group textarea{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-primary);padding:8px 12px;border-radius:6px;font-size:13px;font-family:inherit;transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent)}.form-group textarea{resize:vertical;min-height:60px}.maint-parts-section{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.maint-parts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.maint-parts-header h4{margin:0;font-size:13px;color:var(--text-secondary)}.maint-part-row{display:flex;gap:8px;margin-bottom:8px;align-items:center}.maint-part-row input{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-primary);padding:6px 10px;border-radius:4px;font-size:13px;font-family:inherit;flex:1}.maint-part-row .part-qty{width:70px;flex:none}.maint-part-row .part-cost{width:90px;flex:none}.maint-part-labels{display:flex;gap:8px;margin-bottom:4px;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.maint-part-labels .part-label-name{flex:1}.maint-part-labels .part-label-qty{width:70px;flex:none}.maint-part-labels .part-label-cost{width:90px;flex:none}.maint-part-labels .part-label-remove{width:26px;flex:none}.maint-parts-total{text-align:right;font-size:13px;color:var(--text-secondary);margin-top:4px;padding-top:4px;border-top:1px solid var(--border)}.maint-part-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:4px}.maint-part-remove:hover{color:#e74c3c}.maint-form-total{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:16px;padding-top:12px;border-top:1px solid var(--border);font-size:14px;color:var(--text-secondary)}.maint-form-total strong{font-size:18px;color:var(--text-primary)}.maint-form-error{margin-top:12px;padding:10px 14px;background:#e74c3c1f;border:1px solid rgba(231,76,60,.3);border-radius:var(--radius);color:#e74c3c;font-size:13px}.maint-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}@media(max-width:700px){.maint-form-grid{grid-template-columns:1fr}.maint-table{font-size:12px}.maint-table th:nth-child(4),.maint-table td:nth-child(4),.maint-table th:nth-child(5),.maint-table td:nth-child(5){display:none}}.analytics-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.analytics-range-selector{display:flex;gap:4px;background:var(--bg-secondary);padding:3px;border-radius:var(--radius-sm)}.range-btn{background:transparent;border:none;color:var(--text-muted);padding:6px 16px;font-size:13px;font-family:inherit;font-weight:600;cursor:pointer;border-radius:4px;transition:all .15s}.range-btn:hover{color:var(--text-primary)}.range-btn.active{background:var(--accent);color:#fff}.analytics-actions{display:flex;align-items:center;gap:12px}.analytics-msg{font-size:12px;color:var(--text-muted)}.analytics-charts{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:28px}.analytics-chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.analytics-chart-card h3{font-size:.95rem;font-weight:600;margin:0 0 16px;color:var(--text-primary)}.analytics-chart-container{height:280px;position:relative}.analytics-empty{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:48px;text-align:center;margin-bottom:28px}.analytics-empty p{color:var(--text-muted);font-size:14px;margin:8px 0}.analytics-empty .text-muted{font-size:12px;opacity:.7}.analytics-rankings{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.analytics-rankings h2{font-size:1rem;font-weight:600;margin:0 0 16px;color:var(--text-primary)}.rankings-table-wrapper{overflow-x:auto}.rankings-table{width:100%;border-collapse:collapse;font-size:13px}.rankings-table th{text-align:left;padding:8px 12px;color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border)}.rankings-table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.03);color:var(--text-secondary)}.rankings-row:hover{background:#ffffff05}.rank-num{font-weight:700;color:var(--text-muted);width:40px}.rank-name{font-weight:600;color:var(--text-primary)}.rank-good{color:#2ecc71}.rank-warn{color:#f1c40f}.rank-bad{color:#e74c3c}@media(max-width:900px){.analytics-charts{grid-template-columns:1fr}}@media(max-width:700px){.analytics-controls{flex-direction:column;align-items:flex-start}.rankings-table th:nth-child(n+6),.rankings-table td:nth-child(n+6){display:none}}.detail-section{margin-top:28px}.detail-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.detail-section-header h2{font-size:18px;font-weight:600;color:var(--text-primary)}.components-table{width:100%;border-collapse:collapse;font-size:14px}.components-table th{padding:10px 14px;text-align:left;font-weight:600;color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid rgba(255,255,255,.08)}.components-table td{padding:12px 14px;color:var(--text-primary);border-bottom:1px solid rgba(255,255,255,.04)}.component-row:hover{background:#ffffff05}.component-type-badge{display:inline-block;padding:3px 10px;border-radius:4px;font-size:12px;font-weight:600;background:#3498db26;color:#3498db}.warranty-expired{color:#e74c3c;font-weight:600}.comp-status{display:inline-block;padding:3px 10px;border-radius:4px;font-size:12px;font-weight:600}.comp-status-active{background:#2ecc7126;color:#2ecc71}.comp-status-replaced{background:#f39c1226;color:#f39c12}.comp-status-failed{background:#e74c3c26;color:#e74c3c}.comparison-section{background:var(--bg-card);border-radius:var(--radius);padding:24px;margin-bottom:28px;border:1px solid rgba(255,255,255,.04)}.comparison-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.comparison-header h2{font-size:18px;font-weight:600;color:var(--text-primary)}.comparison-hint{font-size:13px;color:var(--text-muted)}.comparison-site-selector{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.comparison-chip{display:flex;align-items:center;gap:8px;padding:7px 14px;background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);border-radius:6px;cursor:pointer;transition:all .15s;font-size:13px;color:var(--text-secondary)}.comparison-chip:hover{border-color:var(--accent)}.comparison-chip.selected{border-color:var(--accent);background:#3498db1f;color:var(--text-primary);font-weight:600}.comparison-chip.disabled{opacity:.4;cursor:not-allowed}.comparison-charts{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:20px}@media(max-width:900px){.comparison-charts{grid-template-columns:1fr}}.maint-cost-section{margin:28px 0}.maint-cost-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.maint-cost-header h2{font-size:18px;font-weight:600;color:var(--text-primary)}.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column-reverse;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:10px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;pointer-events:auto;animation:toast-slide-in .3s ease-out;box-shadow:0 4px 20px #0000004d;min-width:260px;max-width:420px}.toast-success{background:linear-gradient(135deg,#27ae60,#2ecc71)}.toast-error{background:linear-gradient(135deg,#c0392b,#e74c3c)}.toast-info{background:linear-gradient(135deg,#2980b9,#3498db)}.toast-icon{font-size:18px;flex-shrink:0}.toast-message{flex:1}@keyframes toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.data-freshness{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary, #7f8c8d);white-space:nowrap}.freshness-dot{width:8px;height:8px;border-radius:50%;background:#2ecc71;flex-shrink:0}.freshness-dot-stale{background:#e67e22}.freshness-stale .freshness-text{color:#e67e22}.freshness-pulse .freshness-dot{animation:freshness-pulse-anim 1s ease-out}.freshness-text{font-family:Inter,sans-serif}@keyframes freshness-pulse-anim{0%{box-shadow:0 0 #2ecc7199}70%{box-shadow:0 0 0 8px #2ecc7100}to{box-shadow:0 0 #2ecc7100}}.page-header-row{display:flex;align-items:center;gap:16px}.page-header-row h1{margin:0}.nav-badge{background:#e74c3c;color:#fff;font-size:11px;font-weight:700;padding:2px 7px;border-radius:10px;margin-left:auto;line-height:1.3;min-width:18px;text-align:center}.breadcrumbs{display:flex;align-items:center;gap:0;font-size:13px;margin-bottom:4px}.breadcrumb-item{display:flex;align-items:center}.breadcrumb-sep{margin:0 8px;color:var(--text-secondary, #7f8c8d);font-size:16px}.breadcrumb-link{color:var(--accent, #3498db);text-decoration:none;font-weight:500}.breadcrumb-link:hover{text-decoration:underline}.breadcrumb-current{color:var(--text-secondary, #7f8c8d);font-weight:400}.yield-comparison{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.06);position:relative}.yield-bar-row{display:flex;align-items:center;gap:8px;margin-bottom:5px}.yield-bar-label{font-size:11px;color:var(--text-secondary, #7f8c8d);width:36px;flex-shrink:0;text-align:right}.yield-bar-track{flex:1;height:10px;background:#ffffff0f;border-radius:5px;overflow:hidden}.yield-bar{height:100%;border-radius:5px;transition:width .5s ease}.yield-bar-today{background:linear-gradient(90deg,#2ecc71,#27ae60)}.yield-bar-yesterday{background:linear-gradient(90deg,#7f8c8d,#95a5a6)}.yield-diff-badge{position:absolute;top:8px;right:0;font-size:12px;font-weight:700;padding:2px 8px;border-radius:8px}.yield-up{color:#2ecc71;background:#2ecc711f}.yield-down{color:#e74c3c;background:#e74c3c1f}.alert-card{border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.08);margin-bottom:6px}.alert-card-warning{border-left:3px solid #f39c12}.alert-card-critical{border-left:3px solid #e74c3c}.alert-card-header{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:background .15s}.alert-card-header:hover{background:#ffffff0a}.alert-severity-icon{font-weight:800;font-size:14px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.alert-card-critical .alert-severity-icon{background:#e74c3c33;color:#e74c3c}.alert-card-warning .alert-severity-icon{background:#f39c1233;color:#f39c12}.alert-expand-icon{margin-left:auto;color:var(--text-secondary, #7f8c8d);font-size:12px}.alert-deficit-detail{padding:0 14px 12px}.alert-deficit-table{width:100%;border-collapse:collapse;font-size:12px}.alert-deficit-table th{text-align:left;color:var(--text-secondary, #7f8c8d);font-weight:600;padding:4px 8px;border-bottom:1px solid rgba(255,255,255,.08)}.alert-deficit-table td{padding:4px 8px;border-bottom:1px solid rgba(255,255,255,.04)}.alert-deficit-table .positive{color:#2ecc71}.alert-deficit-table .negative{color:#e74c3c}.page-header-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.page-header-actions .btn-ghost{display:flex;align-items:center;gap:6px;font-size:13px;padding:5px 10px;border-radius:6px;background:#ffffff0f;color:var(--text-secondary, #7f8c8d);border:1px solid rgba(255,255,255,.1);cursor:pointer;transition:all .2s}.page-header-actions .btn-ghost:hover{background:#ffffff1f;color:var(--text-primary, #ecf0f1)}.freshness-refresh-btn{background:none;border:none;color:var(--text-secondary, #7f8c8d);cursor:pointer;padding:2px;border-radius:4px;display:flex;align-items:center;transition:all .2s}.freshness-refresh-btn:hover{color:#2ecc71;background:#2ecc711a}.freshness-refresh-btn.spinning svg{animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:2rem}.error-boundary-content{text-align:center;max-width:400px}.error-boundary-content h2{margin:1rem 0 .5rem;color:#e74c3c}.error-boundary-content p{color:var(--text-secondary, #7f8c8d);margin-bottom:1.5rem}.not-found-page{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:2rem}.not-found-content{text-align:center}.not-found-content h1{font-size:4rem;color:var(--text-secondary, #7f8c8d);margin:0;opacity:.5}.not-found-content p{color:var(--text-secondary, #7f8c8d);margin:.5rem 0 1.5rem;font-size:1.1rem}.battery-health-card{display:flex;align-items:center;gap:2rem;padding:1rem;background:#ffffff08;border-radius:8px;border:1px solid rgba(255,255,255,.06)}.battery-health-indicator{display:flex;flex-direction:column;gap:6px}.battery-trend-badge{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:600;padding:4px 10px;border-radius:6px;width:fit-content}.trend-stable{background:#3498db26;color:#3498db}.trend-improving{background:#2ecc7126;color:#2ecc71}.trend-declining{background:#e74c3c26;color:#e74c3c}.battery-health-detail{font-size:13px;color:var(--text-secondary, #7f8c8d)}.battery-critical-warning{font-size:12px;color:#e74c3c;font-weight:500}.battery-health-sparkline{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.sparkline-svg{width:100%;height:40px}.sparkline-label{font-size:11px;color:var(--text-secondary, #7f8c8d);text-align:center}.alert-resolved td{opacity:.6}.alert-active td{font-weight:500}.alert-active-badge{display:inline-block;background:#e74c3c26;color:#e74c3c;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600}.offline-duration{font-size:11px;opacity:.8}.section-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.section-header-row h2{margin:0}.maintenance-type-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;background:#3498db26;color:#3498db;text-transform:capitalize}.maintenance-status-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;text-transform:capitalize}.maintenance-status-badge.status-scheduled{background:#f1c40f26;color:#f1c40f}.maintenance-status-badge.status-in_progress{background:#3498db26;color:#3498db}.maintenance-status-badge.status-completed{background:#2ecc7126;color:#2ecc71}.maintenance-status-badge.status-cancelled{background:#95a5a626;color:#95a5a6}.site-maint-list{display:flex;flex-direction:column;gap:8px}.site-maint-item{display:flex;align-items:center;gap:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;cursor:pointer;transition:all var(--transition)}.site-maint-item:hover{background:var(--bg-card-hover);border-color:#3498db4d;transform:translate(2px)}.site-maint-overdue{border-left:3px solid #e74c3c}.site-maint-done{opacity:.6}.site-maint-date-col{display:flex;flex-direction:column;align-items:center;min-width:48px;padding:4px 8px;background:#ffffff0a;border-radius:8px}.site-maint-day{font-size:20px;font-weight:700;color:var(--text-primary);line-height:1.1}.site-maint-month{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.site-maint-body{flex:1;min-width:0}.site-maint-title-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.site-maint-title{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.site-maint-overdue-tag{font-size:10px;font-weight:700;color:#e74c3c;background:#e74c3c1f;padding:2px 6px;border-radius:4px;letter-spacing:.5px;flex-shrink:0}.site-maint-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.site-maint-tech{font-size:12px;color:var(--text-secondary)}.analytics-intelligence{background:var(--card-bg, #1e272e);border-radius:12px;padding:24px;margin-bottom:24px;border:1px solid rgba(255,255,255,.06)}.analytics-intel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}.analytics-intel-header h2{margin:0}.intel-table-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.intel-table-count{font-size:13px;color:var(--text-secondary, #7f8c8d)}.intel-sort-btns{display:flex;align-items:center;gap:6px}.intel-sort-label{font-size:12px;color:var(--text-secondary, #7f8c8d);margin-right:2px}.intel-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.intel-table{width:100%;border-collapse:collapse;font-size:13px;min-width:900px}.intel-table thead th{text-align:left;padding:10px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary, #7f8c8d);border-bottom:1px solid rgba(255,255,255,.08);white-space:nowrap;-webkit-user-select:none;user-select:none}.intel-th-sortable{cursor:pointer;transition:color .15s}.intel-th-sortable:hover{color:#ecf0f1}.intel-sort-arrow{font-size:10px;color:#3498db}.intel-table-row td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.04);white-space:nowrap;vertical-align:middle}.intel-table-row:hover{background:#ffffff08}.intel-table-name a{color:#3498db;text-decoration:none;font-weight:500}.intel-table-name a:hover{text-decoration:underline}.intel-table-sub{display:inline-block;font-size:11px;color:var(--text-muted, #95a5a6);margin-left:6px}.detail-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.detail-section-header h2{margin-bottom:0}.intel-specs-badge{font-size:12px;color:var(--text-secondary, #7f8c8d);background:#ffffff0d;padding:4px 10px;border-radius:4px;font-weight:500;white-space:nowrap}.intel-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:16px}.intel-metric-card{background:#ffffff08;border-radius:8px;padding:16px;border:1px solid rgba(255,255,255,.06)}.intel-metric-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.intel-metric-title{font-size:13px;color:var(--text-secondary, #7f8c8d);font-weight:500}.intel-metric-value{font-size:28px;font-weight:700;color:var(--text-primary, #ecf0f1);line-height:1.1}.intel-metric-value.intel-critical{color:#e74c3c}.intel-metric-value.intel-warning{color:#f39c12}.intel-metric-value.intel-good{color:#2ecc71}.intel-metric-unit{font-size:14px;font-weight:500;margin-left:4px;color:var(--text-secondary, #7f8c8d)}.intel-metric-detail{font-size:12px;color:var(--text-secondary, #7f8c8d);margin-top:4px}.intel-metric-secondary{font-size:12px;color:var(--text-muted, #95a5a6);margin-top:2px}.intel-score-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.intel-score-badge.score-excellent{background:#2ecc7126;color:#2ecc71}.intel-score-badge.score-good{background:#3498db26;color:#3498db}.intel-score-badge.score-fair{background:#f39c1226;color:#f39c12}.intel-score-badge.score-poor{background:#e74c3c26;color:#e74c3c}.intel-weather-context{font-size:12px;color:var(--text-secondary, #7f8c8d);padding:8px 12px;background:#ffffff05;border-radius:6px;margin-bottom:16px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.intel-source-tag{display:inline-block;background:#3498db1f;color:#3498db;padding:1px 6px;border-radius:3px;font-size:11px;margin-left:4px}.intel-energy-balance{background:#ffffff08;border-radius:8px;padding:14px 16px;border:1px solid rgba(255,255,255,.06);margin-bottom:16px}.intel-balance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;font-weight:500}.intel-balance-header .positive{color:#2ecc71}.intel-balance-header .negative{color:#e74c3c}.intel-bar-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}.intel-bar-label{width:38px;font-size:12px;color:var(--text-secondary, #7f8c8d)}.intel-bar-track{flex:1;height:10px;background:#ffffff0f;border-radius:5px;overflow:hidden}.intel-bar{height:100%;border-radius:5px;transition:width .5s ease}.intel-bar-yield{background:#2ecc71}.intel-bar-consumed{background:#e74c3c}.intel-bar-value{width:55px;text-align:right;font-size:12px;color:var(--text-secondary, #7f8c8d);font-variant-numeric:tabular-nums}.intel-analysis-section{margin-top:16px}.intel-analyze-btn{display:inline-flex;align-items:center;gap:6px}.intel-analysis-error{margin-top:8px;color:#e74c3c;font-size:13px}.intel-analysis-result{margin-top:16px;background:#3498db14;border:1px solid rgba(52,152,219,.2);border-radius:8px;padding:16px}.intel-analysis-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:600;font-size:14px;color:#3498db}.intel-analysis-time{font-size:12px;font-weight:400;color:var(--text-secondary, #7f8c8d)}.intel-analysis-text{font-size:13px;line-height:1.6;color:var(--text-primary, #ecf0f1);white-space:pre-wrap;font-family:inherit;margin:0;background:none;border:none;padding:0}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary);padding:20px}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:40px 36px;width:100%;max-width:400px;display:flex;flex-direction:column;gap:20px}.login-brand{text-align:center;margin-bottom:8px}.login-logo{font-size:32px;font-weight:800;color:var(--accent);letter-spacing:2px;display:flex;align-items:center;justify-content:center}.login-logo-row{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:8px}.login-logo-img{height:48px;width:auto;object-fit:contain}.login-omni{font-size:28px;font-weight:700;color:var(--text-primary);letter-spacing:.08em}.login-title{font-size:20px;font-weight:600;color:var(--text-primary);margin:4px 0 0}.login-subtitle{font-size:13px;color:var(--text-muted);margin:4px 0 0}.login-error{background:#e74c3c26;color:#e74c3c;padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;text-align:center}.login-expired{background:#f39c1226;color:#f39c12;padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;text-align:center}.login-btn{width:100%;padding:12px;font-size:15px;margin-top:4px}.google-signin-wrapper{display:flex;justify-content:center;margin:4px 0 0}.login-divider{display:flex;align-items:center;gap:12px;margin:16px 0 8px;color:#6b7280;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#374151}.sidebar-user{display:flex;flex-direction:column;gap:8px;padding:10px 12px;background:#ffffff08;border-radius:var(--radius-sm)}.sidebar-user-info{display:flex;align-items:center;gap:6px;min-width:0}.sidebar-user-name-row{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.sidebar-user-name{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-actions{display:flex;align-items:center;gap:2px}.role-badge{display:inline-block;padding:1px 6px;border-radius:8px;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;width:fit-content;flex-shrink:0}.role-badge-admin{background:#e74c3c1f;color:#e07060}.role-badge-technician{background:#3498db26;color:#5dade2}.role-badge-viewer{background:#7f8c8d26;color:#95a5a6}.sso-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#4285f433;color:#4285f4;font-size:10px;font-weight:700;margin-left:6px;vertical-align:middle}.sidebar-logout{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:var(--radius-sm);transition:all var(--transition);display:flex;align-items:center}.sidebar-logout:hover{color:var(--danger);background:#e74c3c1a}.action-queue{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;margin-bottom:28px}.action-queue-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.action-queue-header h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.action-queue-summary{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:14px;flex-shrink:0}.action-queue-summary .aq-critical{color:var(--danger)}.action-queue-summary .aq-warning{color:var(--warning)}.action-queue-list{display:flex;flex-direction:column;gap:8px}.action-queue-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-secondary);border-radius:var(--radius-sm);transition:all var(--transition)}.action-queue-item:hover{background:var(--bg-card-hover)}.action-queue-item-acked{opacity:.45}.priority-badge{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0}.priority-badge-critical{background:var(--danger)}.priority-badge-warning{background:var(--warning);color:#1a1d23}.priority-badge-info{background:var(--kpi-blue)}.action-queue-content{flex:1;min-width:0}.action-queue-title{font-size:13px;font-weight:500;color:var(--text-primary)}.action-queue-subtitle{font-size:11px;color:var(--text-muted)}.action-category-tag{font-size:10px;padding:2px 8px;border-radius:8px;text-transform:uppercase;font-weight:600;flex-shrink:0}.action-category-energy{background:#f1c40f26;color:#f1c40f}.action-category-intelligence{background:#3498db26;color:#3498db}.action-category-maintenance{background:#2ecc7126;color:#2ecc71}.action-ack-btn{background:none;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);width:28px;height:28px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);flex-shrink:0}.action-ack-btn:hover{border-color:var(--success);color:var(--success);background:#2ecc711a}.action-queue-empty{text-align:center;padding:20px;color:var(--text-muted);font-size:13px}.action-queue-toggle{background:none;border:none;color:var(--accent);font-size:12px;cursor:pointer;padding:4px 8px}.health-grade{font-weight:700;font-size:14px}.health-grade-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:12px;font-weight:700;border:2px solid}.health-grade-a{color:#27ae60;border-color:#27ae60}.health-grade-b{color:#16a085;border-color:#16a085}.health-grade-c{color:#d4a017;border-color:#d4a017}.health-grade-d{color:#f39c12;border-color:#f39c12}.health-grade-f{color:#c0392b;border-color:#c0392b}.users-section{margin-bottom:24px}.users-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.users-table{width:100%;border-collapse:collapse;font-size:13px}.users-table th{color:var(--text-muted);padding:10px 8px;text-align:left;font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid rgba(255,255,255,.06)}.users-table td{padding:10px 8px;border-bottom:1px solid rgba(255,255,255,.03);color:var(--text-primary)}.users-table select{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-primary);padding:4px 8px;border-radius:var(--radius-sm);font-size:12px}.user-actions{display:flex;gap:6px}.btn-sm{padding:5px 12px;font-size:12px}.btn-success{background:var(--success);color:#fff;border:none;cursor:pointer;border-radius:var(--radius-sm)}.btn-success:hover:not(:disabled){background:#27ae60}.btn-danger{background:transparent;color:var(--danger);border:1px solid rgba(231,76,60,.3);cursor:pointer;border-radius:var(--radius-sm)}.btn-danger:hover:not(:disabled){background:#e74c3c1a}.checklist-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:560px;padding:24px;max-height:80vh;display:flex;flex-direction:column}.checklist-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.checklist-header h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.checklist-items{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.checklist-item{padding:10px 12px;background:var(--bg-secondary);border-radius:var(--radius-sm);border-left:3px solid rgba(255,255,255,.06);transition:all var(--transition)}.checklist-item-done{border-left-color:var(--success);opacity:.7}.checklist-label{display:flex;align-items:center;gap:10px;cursor:pointer;margin-bottom:6px}.checklist-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--success);cursor:pointer}.checklist-text{font-size:13px;color:var(--text-primary)}.checklist-required{color:var(--danger);margin-left:2px}.checklist-note{width:100%;background:var(--bg-primary);border:1px solid rgba(255,255,255,.06);color:var(--text-secondary);padding:6px 10px;border-radius:var(--radius-sm);font-size:12px;font-family:inherit;margin-left:26px;width:calc(100% - 26px)}.checklist-note:focus{outline:none;border-color:var(--accent)}.checklist-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,.06);padding-top:12px}.checklist-progress{font-size:12px;color:var(--text-muted)}.checklist-actions{display:flex;gap:8px}.cal-container{margin-top:16px}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cal-nav-label{font-size:16px;font-weight:600;color:var(--text-primary)}.cal-nav-btns{display:flex;gap:4px}.cal-nav-btn{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-secondary);padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;transition:all var(--transition)}.cal-nav-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#ffffff0a;border-radius:var(--radius);overflow:hidden}.cal-header-cell{background:var(--bg-secondary);padding:8px;text-align:center;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase}.cal-day{background:var(--bg-card);min-height:70px;padding:6px 8px;cursor:pointer;transition:background var(--transition);position:relative}.cal-day:hover{background:var(--bg-card-hover)}.cal-day-outside{opacity:.3}.cal-day-today{border:1px solid var(--accent)}.cal-day-selected{background:#3498db1a}.cal-day-num{font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:4px}.cal-dots{display:flex;flex-wrap:wrap;gap:3px}.cal-dot{width:7px;height:7px;border-radius:50%}.cal-dot-red{background:var(--danger)}.cal-dot-yellow{background:var(--warning)}.cal-dot-green{background:var(--success)}.cal-dot-teal{background:var(--kpi-teal)}.cal-day-items{margin-top:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.cal-day-items h4{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.maint-calendar-section{margin-top:16px}.cal-header{background:var(--bg-secondary);padding:8px;text-align:center;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase}.cal-day-blank{background:var(--bg-card);opacity:.25;cursor:default}.cal-day-dots{display:flex;flex-wrap:wrap;gap:3px}.cal-day-dot{width:7px;height:7px;border-radius:50%}.cal-day-more{font-size:9px;color:var(--text-muted);line-height:7px}.cal-day-detail{margin-top:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.cal-day-detail h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 12px;display:flex;align-items:center;gap:10px}.work-section{margin-bottom:24px}.work-section-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 12px;padding-left:12px;border-left:3px solid var(--text-muted)}.work-section-red{border-left-color:var(--danger)}.work-section-yellow{border-left-color:var(--warning)}.work-section-blue{border-left-color:var(--accent)}.work-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.work-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:all var(--transition)}.work-card:hover{background:var(--bg-card-hover);transform:translateY(-1px)}.work-card-overdue{border-left:3px solid #e74c3c}.work-card-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.work-overdue-tag{font-size:10px;font-weight:700;color:var(--danger);background:#e74c3c26;padding:2px 6px;border-radius:4px;text-transform:uppercase}.work-card-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 6px}.work-card-meta{display:flex;gap:12px;font-size:12px;color:var(--text-muted);margin-bottom:8px}.work-card-desc{font-size:12px;color:var(--text-secondary);line-height:1.4;margin:0 0 12px}.work-card-actions{display:flex;gap:8px}.work-empty{text-align:center;padding:60px 20px;color:var(--text-muted)}.work-empty p{margin:4px 0}.report-overlay{z-index:1100}.report-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:800px;padding:28px;max-height:90vh;overflow-y:auto}.report-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.06)}.report-header h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.report-actions{display:flex;gap:8px}.report-meta{display:flex;gap:16px;font-size:12px;color:var(--text-muted);margin-bottom:20px}.report-content{display:flex;flex-direction:column;gap:20px}.report-section{border:1px solid rgba(255,255,255,.04);border-radius:var(--radius-sm);padding:16px}.report-section h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;font-size:13px;color:var(--text-secondary)}.report-grid strong{color:var(--text-muted);font-weight:500}.report-table{width:100%;border-collapse:collapse;font-size:12px}.report-table th{color:var(--text-muted);padding:8px 6px;text-align:left;font-weight:500;font-size:11px;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.06)}.report-table td{padding:6px;border-bottom:1px solid rgba(255,255,255,.03);color:var(--text-secondary)}.report-alert{display:flex;align-items:center;gap:10px;padding:8px 0}.maint-status-red{background:#e74c3c33;color:#e74c3c}.template-selector{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.06)}.template-selector label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;display:block}.template-selector select{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-primary);padding:10px 12px;border-radius:var(--radius-sm);font-family:inherit;width:100%;font-size:13px}@media print{.sidebar,.nav-item,.report-actions,.no-print,.sidebar-footer,.action-ack-btn{display:none!important}.main-content{margin-left:0!important;padding:0!important}.report-panel{max-width:100%;border:none;box-shadow:none;max-height:none}.maint-form-overlay,.report-overlay{position:static;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:0}body{background:#fff;color:#000}.report-section{border-color:#ddd}.report-table th,.report-table td{color:#333;border-color:#ddd}}.action-queue-header h2{font-size:16px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;margin:0}.action-queue-category{font-size:13px;color:var(--text-muted);white-space:nowrap;min-width:90px}.action-queue-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.action-queue-title,.action-queue-subtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fleet-details-page{padding:0}.fleet-details-page .page-header{padding:24px 24px 0}.fleet-details-tabs{display:flex;gap:0;padding:16px 24px 0;border-bottom:2px solid var(--border)}.fleet-tab{display:flex;align-items:center;gap:8px;padding:10px 20px;background:none;border:none;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .2s,border-color .2s}.fleet-tab:hover{color:var(--text-primary)}.fleet-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.fleet-tab svg{opacity:.7}.fleet-tab.active svg{opacity:1}.fleet-tab-badge{background:var(--danger);color:#fff;font-size:11px;font-weight:700;padding:1px 6px;border-radius:10px;min-width:18px;text-align:center}.fleet-details-content{padding:0}.fleet-details-content .energy-page,.fleet-details-content .network-page,.fleet-details-content .analytics-page{padding:0 24px 24px}.embedded-actions{display:flex;align-items:center;gap:12px;padding:16px 0}.maint-tab-badge{background:var(--danger);color:#fff;font-size:10px;font-weight:700;padding:1px 5px;border-radius:8px;margin-left:6px;min-width:16px;text-align:center}.my-tasks-section{margin-top:16px}.action-queue-summary .priority-badge{width:auto;border-radius:12px;min-width:unset;height:22px;padding:0 10px;font-size:12px;font-weight:600;white-space:nowrap}.action-ack-done{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--success);flex-shrink:0;opacity:.6}[data-theme=light] input,[data-theme=light] select,[data-theme=light] textarea{background:#f0f2f5;border-color:#00000026;color:var(--text-primary)}[data-theme=light] .settings-card,[data-theme=light] .kpi-card,[data-theme=light] .trailer-card,[data-theme=light] .jobsite-card{border-color:#0000000f;box-shadow:0 1px 3px #0000000f}[data-theme=light] .maint-table th{background:#e8eaed;color:var(--text-primary)}[data-theme=light] .maint-table td{border-bottom-color:#0000000f}[data-theme=light] .btn-ghost{color:var(--text-secondary)}[data-theme=light] .login-page{background:#e8eaed}[data-theme=light] .theme-toggle{color:var(--text-muted)}.theme-toggle{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:var(--radius-sm);transition:all var(--transition);display:flex;align-items:center}.theme-toggle:hover{color:var(--text-primary)}.mobile-header{display:none;align-items:center;gap:12px;padding:10px 16px;background:var(--sidebar-bg);border-bottom:1px solid rgba(255,255,255,.06);position:sticky;top:0;z-index:201}.mobile-hamburger{background:none;border:none;color:var(--text-primary);cursor:pointer;padding:6px;border-radius:var(--radius-sm);display:flex;align-items:center;min-width:44px;min-height:44px;justify-content:center}.mobile-hamburger:hover{background:#ffffff0f}.mobile-brand{display:flex;align-items:center;gap:8px}.mobile-logo{height:24px;width:auto}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:199}@media(max-width:768px){.mobile-header{display:flex}.sidebar{position:fixed;left:-260px;transition:left .3s ease;z-index:200;width:var(--sidebar-width)}.sidebar.sidebar-open{left:0}.sidebar-overlay.visible{display:block}.main-content{margin-left:0;padding:16px}.page-header{flex-direction:column;align-items:flex-start;gap:8px}.page-header h1{font-size:1.4rem}.kpi-row{grid-template-columns:1fr 1fr!important;gap:8px}.kpi-card{padding:14px 12px}.kpi-value{font-size:1.4rem}.site-grid,.fleet-grid,.settings-grid{grid-template-columns:1fr!important}.settings-card-wide{grid-column:span 1!important}.fleet-list,.jobsite-mgmt-table-wrapper,.maint-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.fleet-table{min-width:0}.fleet-table th:nth-child(3),.fleet-table td:nth-child(3),.fleet-table th:nth-child(5),.fleet-table td:nth-child(5),.fleet-table th:nth-child(6),.fleet-table td:nth-child(6),.fleet-table th:nth-child(7),.fleet-table td:nth-child(7){display:none}.fleet-table-row td{padding:14px 12px}.btn{min-height:44px;min-width:44px;padding:10px 16px}.btn-sm{min-height:36px;min-width:36px;padding:6px 12px}.nav-item{min-height:44px;padding:12px 16px}.filter-controls{flex-wrap:wrap;gap:6px}.filter-btn,.view-toggle button{min-height:38px;padding:6px 12px;font-size:12px}.action-queue-panel{width:100%;right:0;max-width:100%}.report-panel{width:100%;max-width:100%;margin:0;border-radius:0;height:100vh}.report-grid{grid-template-columns:1fr!important}.map-view.map-fullscreen .map-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;height:100vh!important}.map-view.map-fullscreen .map-controls{position:fixed;top:10px;right:10px;z-index:151}.chart-container{height:200px!important}.maint-form-panel{width:100%;max-width:100%;margin:0;border-radius:0;max-height:100vh}.maint-form-grid{grid-template-columns:1fr!important}.data-freshness{font-size:11px}.breadcrumbs{font-size:12px}.portal-sidebar{width:200px}}@media(max-width:480px){.kpi-row{grid-template-columns:1fr!important}.main-content{padding:12px}.page-header h1{font-size:1.2rem}.site-card{padding:12px}.site-card-stats{grid-template-columns:1fr 1fr;gap:6px}.tech-status-card{flex:1 1 100%;min-width:0}}.map-fullscreen-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);padding:8px;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:36px;min-height:36px}.map-fullscreen-btn:hover{background:var(--bg-card-hover)}.role-badge-customer{background:#9b59b626;color:#9b59b6}.intel-predictive-alert{padding:10px 14px;border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:12px}.intel-predictive-warning{background:#f39c121f;border-left:3px solid var(--warning);color:var(--warning)}.intel-predictive-critical{background:#e74c3c1f;border-left:3px solid var(--danger);color:var(--danger)}.intel-forecast-section{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.stale-data-banner{background:#e67e221a;border:1px solid #e67e22;border-radius:8px;padding:10px 16px;margin-bottom:12px;color:#e67e22;font-size:.85rem}.trailer-alert-banner{background:#e74c3c1a;border:1px solid #c0392b;border-radius:8px;padding:8px 14px;margin-bottom:12px;color:#e74c3c;font-size:.85rem;display:flex;gap:16px;align-items:center}.alarm-dot{display:inline-block;width:20px;height:20px;border-radius:50%;background:#e74c3c;color:#fff;text-align:center;line-height:20px;font-weight:700;font-size:.75rem;flex-shrink:0}.trailer-mini-load{font-size:.75rem;color:var(--text-secondary)}.trailer-mini-badges{display:flex;align-items:center;gap:6px}.tech-status-section{margin-bottom:16px}.tech-status-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.tech-status-header h3{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary)}.tech-status-cards{display:flex;gap:12px;flex-wrap:wrap}.tech-status-card{flex:1;padding:12px 16px;border-radius:10px;cursor:pointer;text-align:center;transition:transform .15s,box-shadow .15s;border:2px solid transparent}.tech-status-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.tech-status-active{border-color:#fff}.tech-status-attention{background:#e74c3c26}.tech-status-watch{background:#f39c1226}.tech-status-good{background:#27ae6026}.tech-status-count{display:block;font-size:1.75rem;font-weight:700;line-height:1;margin-bottom:4px}.tech-status-attention .tech-status-count{color:#e74c3c}.tech-status-watch .tech-status-count{color:#f39c12}.tech-status-good .tech-status-count{color:#27ae60}.tech-status-label{font-size:.8rem;color:var(--text-secondary);font-weight:500}.tech-status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.help-page{background:var(--bg-primary);min-height:100vh;color:var(--text-primary)}.help-header{background:linear-gradient(135deg,var(--accent) 0%,var(--kpi-blue) 100%);padding:40px 24px;text-align:center;border-bottom:1px solid var(--border)}.help-header-content h1{font-size:2.5rem;font-weight:700;margin:0 0 12px;color:#fff}.help-subtitle{font-size:1.1rem;color:#ffffffe6;margin:0 0 16px}.help-meta{display:flex;gap:16px;justify-content:center;font-size:.9rem}.help-version,.help-date{background:#fff3;padding:4px 12px;border-radius:12px;color:#fff}.help-layout{display:flex;max-width:1600px;margin:0 auto}.help-sidebar{width:280px;background:var(--bg-secondary);border-right:1px solid var(--border);position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column}.help-search{padding:20px;border-bottom:1px solid var(--border)}.help-search-input{width:100%;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:.95rem}.help-search-input:focus{outline:none;border-color:var(--accent)}.help-nav{flex:1;padding:12px}.help-nav-item{display:flex;align-items:center;gap:12px;padding:10px 14px;margin-bottom:4px;border-radius:8px;color:var(--text-secondary);text-decoration:none;transition:all .2s;cursor:pointer}.help-nav-item:hover{background:var(--bg-card);color:var(--text-primary)}.help-nav-item.active{background:var(--accent);color:#fff;font-weight:600}.help-nav-icon{font-size:1.3rem;flex-shrink:0}.help-nav-text{font-size:.95rem}.help-sidebar-footer{padding:16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.help-link{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-card);border-radius:6px;color:var(--text-primary);text-decoration:none;font-size:.9rem;transition:all .2s}.help-link:hover{background:var(--bg-card-hover);transform:translate(4px)}.help-content{flex:1;padding:40px;overflow-y:auto;max-width:900px}.help-section{margin-bottom:60px}.help-section h2{font-size:2rem;font-weight:700;margin:0 0 20px;color:var(--text-primary);padding-bottom:12px;border-bottom:2px solid var(--border)}.help-section h3{font-size:1.4rem;font-weight:600;margin:32px 0 16px;color:var(--text-primary)}.help-section h4{font-size:1.1rem;font-weight:600;margin:20px 0 12px;color:var(--text-primary)}.help-section p{line-height:1.7;color:var(--text-secondary);margin:0 0 16px}.help-section ul,.help-section ol{line-height:1.8;color:var(--text-secondary);margin:0 0 16px;padding-left:24px}.help-section li{margin-bottom:8px}.help-section code{background:var(--bg-card);padding:2px 8px;border-radius:4px;font-family:Courier New,monospace;font-size:.9rem;color:var(--accent)}.help-section strong{color:var(--text-primary);font-weight:600}.help-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:24px;margin:24px 0}.help-info{background:#3498db1a;border-left:4px solid var(--accent);padding:16px 20px;border-radius:6px;margin:20px 0;color:var(--text-secondary)}.help-warning{background:#f39c121a;border-left:4px solid var(--warning);padding:16px 20px;border-radius:6px;margin:20px 0;color:var(--text-secondary)}.help-tip{background:#2ecc711a;border-left:4px solid var(--success);padding:16px 20px;border-radius:6px;margin:20px 0;color:var(--text-secondary)}.help-example{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:20px;margin:20px 0}.help-example h4{margin-top:0}.help-formula{background:var(--bg-secondary);border:2px dashed var(--border);padding:20px;border-radius:8px;text-align:center;margin:20px 0;font-size:1.1rem;font-family:Courier New,monospace;color:var(--accent);font-weight:600}.help-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:20px 0}.help-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:20px 0}.help-feature{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:20px;text-align:center;transition:transform .2s}.help-feature:hover{transform:translateY(-4px);border-color:var(--accent)}.help-feature-icon{font-size:3rem;margin-bottom:12px}.help-feature h4{margin:8px 0;font-size:1.1rem;color:var(--text-primary)}.help-feature p{font-size:.9rem;color:var(--text-muted);margin:0}.help-status-examples{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.help-status-card{text-align:center;padding:24px;background:var(--bg-secondary);border-radius:10px;border:2px solid var(--border)}.help-status-card h4{margin:16px 0 8px;color:var(--text-primary)}.help-status-card p{font-size:.9rem;color:var(--text-muted);margin:0}.status-badge-large{font-size:1.1rem;padding:10px 20px}.help-deficit-type{padding:20px;border-radius:10px;border:2px solid}.deficit-type-real{background:#ef444414;border-color:#ef44444d}.deficit-type-throttled{background:#22c55e14;border-color:#22c55e4d}.deficit-type-real h4{color:#ef4444}.deficit-type-throttled h4{color:#22c55e}.deficit-action{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.help-table{margin:24px 0;overflow-x:auto}.help-table table{width:100%;border-collapse:collapse;background:var(--bg-card);border-radius:8px;overflow:hidden}.help-table th{background:var(--bg-secondary);padding:12px 16px;text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--border)}.help-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text-secondary)}.help-table tr:last-child td{border-bottom:none}.help-table tr:hover{background:var(--bg-card-hover)}.help-diagram{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:32px;margin:24px 0;overflow-x:auto}.flowchart{display:flex;flex-direction:column;align-items:center;gap:16px}.flow-node{background:var(--bg-secondary);border:2px solid var(--border);border-radius:10px;padding:16px 24px;min-width:200px;text-align:center}.flow-start{background:#3498db26;border-color:var(--accent)}.flow-decision{background:#f39c1226;border-color:var(--warning);clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);padding:20px 30px}.flow-result{font-weight:600}.flow-critical{background:#ef444426;border-color:#ef4444;color:#ef4444}.flow-good{background:#22c55e26;border-color:#22c55e;color:#22c55e}.flow-warn{background:#f39c1226;border-color:var(--warning);color:var(--warning)}.flow-arrow{font-size:1.5rem;color:var(--text-muted)}.flow-split{display:flex;gap:32px;width:100%;justify-content:center}.flow-branch{display:flex;flex-direction:column;align-items:center;gap:12px}.flow-arrow-label{font-size:.9rem;font-weight:600;color:var(--accent)}.deficit-example-table{width:100%;border-collapse:collapse;margin:16px 0}.deficit-example-table th,.deficit-example-table td{padding:10px 12px;text-align:left;border:1px solid var(--border)}.deficit-example-table th{background:var(--bg-secondary);font-weight:600}.mppt-badge{display:inline-block;padding:4px 10px;border-radius:4px;font-size:12px;font-weight:600;color:#fff}.mppt-bulk{background:#3b82f6}.mppt-float{background:#22c55e}.help-score-examples{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}.help-score-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:20px;text-align:center}.help-score-card p{font-size:.85rem;color:var(--text-muted);margin-top:12px}.help-pages-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:24px 0}.help-page-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:20px;transition:transform .2s,border-color .2s}.help-page-card:hover{transform:translateY(-4px);border-color:var(--accent)}.help-page-card h3{margin:0 0 8px;font-size:1.2rem;color:var(--text-primary)}.help-page-card code{font-size:.85rem;color:var(--text-muted)}.help-page-card ul{margin:12px 0 0;padding-left:20px;font-size:.9rem}.help-page-card li{margin-bottom:6px;color:var(--text-secondary)}.help-decision-tree{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:24px;margin:20px 0}.decision-node{background:var(--bg-secondary);border:2px solid var(--border);border-radius:8px;padding:12px 20px;font-weight:600;color:var(--text-primary);text-align:center;margin:12px 0}.decision-branches{display:flex;gap:24px;margin:16px 0}.decision-branch{flex:1;border-left:2px solid var(--border);padding-left:16px}.branch-label{display:block;font-size:.9rem;font-weight:600;color:var(--accent);margin-bottom:8px}.decision-result{padding:12px 16px;border-radius:8px;font-weight:600;text-align:center;margin:12px 0}.decision-good{background:#22c55e26;border:2px solid #22c55e;color:#22c55e}.decision-warn{background:#f39c1226;border:2px solid var(--warning);color:var(--warning)}.decision-critical{background:#ef444426;border:2px solid #ef4444;color:#ef4444}.help-scenario{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:24px;margin:24px 0}.help-scenario h3{margin-top:0;color:var(--accent)}.help-scenario-content>div{margin:16px 0;padding:12px;border-radius:6px}.scenario-symptom{background:#ef44441a;border-left:3px solid #ef4444}.scenario-diagnosis{background:#f39c121a;border-left:3px solid var(--warning)}.scenario-causes{background:#3498db1a;border-left:3px solid var(--accent)}.scenario-explanation{background:#9b59b61a;border-left:3px solid #9b59b6}.scenario-action{background:#22c55e1a;border-left:3px solid #22c55e}.help-timeline{margin:24px 0}.timeline-item{display:flex;gap:20px;margin-bottom:24px}.timeline-badge{width:50px;height:50px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.timeline-content{flex:1;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:20px}.timeline-content h4{margin-top:0;color:var(--accent)}.timeline-content ol{margin-bottom:0}.help-numbered-list{counter-reset:item;list-style:none;padding-left:0}.help-numbered-list>li{counter-increment:item;margin-bottom:16px;padding-left:32px;position:relative}.help-numbered-list>li:before{content:counter(item);position:absolute;left:0;top:0;background:var(--accent);color:#fff;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}.help-glossary{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:24px}.help-glossary dl{display:grid;grid-template-columns:200px 1fr;gap:16px 24px}.help-glossary dt{font-weight:700;color:var(--accent);font-family:Courier New,monospace;font-size:1rem}.help-glossary dd{margin:0;color:var(--text-secondary);border-bottom:1px solid var(--border);padding-bottom:16px}.help-glossary dd:last-child{border-bottom:none;padding-bottom:0}.help-footer-section{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:32px;margin-top:60px;text-align:center}.help-footer-section h2{border-bottom:none;margin-bottom:16px}.help-footer-section a{color:var(--accent);text-decoration:none;font-weight:600}.help-footer-section a:hover{text-decoration:underline}@media(max-width:1200px){.help-grid-3,.help-pages-grid,.help-score-examples{grid-template-columns:repeat(2,1fr)}.help-status-examples{grid-template-columns:1fr}}@media(max-width:768px){.help-layout{flex-direction:column}.help-sidebar{width:100%;height:auto;position:static;border-right:none;border-bottom:1px solid var(--border)}.help-content{padding:24px 16px}.help-grid-2,.help-grid-3,.help-pages-grid,.help-score-examples{grid-template-columns:1fr}.help-glossary dl{grid-template-columns:1fr;gap:8px}.flow-split,.decision-branches{flex-direction:column}}.companies-list{display:flex;flex-direction:column;gap:8px}.company-card{background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);overflow:hidden;transition:border-color .15s}.company-card:hover{border-color:#ffffff1f}.company-card-expanded{border-color:var(--accent)}.company-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;cursor:pointer;gap:16px}.company-info{flex:1;min-width:0}.company-name-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.company-name-row h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.company-badges{display:flex;gap:6px}.company-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;background:#ffffff0f;color:var(--text-muted)}.company-address{font-size:13px;color:var(--text-muted);margin:4px 0 0}.company-detail{border-top:1px solid rgba(255,255,255,.06);padding:16px 20px 20px}.company-actions-bar{display:flex;gap:8px;margin-bottom:16px}.company-section{margin-top:16px}.company-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.company-section-header h4{font-size:14px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0}.company-empty{font-size:13px;color:var(--text-muted);font-style:italic}.contacts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.contact-card{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm);padding:14px;position:relative}.contact-card-top{display:flex;align-items:center;gap:10px;margin-bottom:10px}.contact-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#8e44ad);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;flex-shrink:0}.contact-info{display:flex;flex-direction:column;min-width:0}.contact-name{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-title{font-size:12px;color:var(--text-muted)}.contact-primary-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:3px;background:#2ecc7126;color:var(--success);margin-left:auto}.contact-details{display:flex;flex-direction:column;gap:4px}.contact-detail{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.contact-detail svg{flex-shrink:0;opacity:.5}.contact-delete{position:absolute;top:8px;right:8px;background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;opacity:0;transition:opacity .15s}.contact-card:hover .contact-delete{opacity:1}.contact-delete:hover{color:var(--danger)}.sites-mini-list{display:flex;flex-direction:column;gap:4px}.site-mini-card{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s}.site-mini-card:hover{background:var(--bg-card-hover)}.site-mini-name{font-size:13px;font-weight:500;color:var(--text-primary);flex:1}.site-mini-status{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:2px 8px;border-radius:3px}.site-status-active{background:#2ecc7126;color:var(--success)}.site-status-standby{background:#f1c40f26;color:#f1c40f}.site-status-completed{background:#7f8c8d26;color:#7f8c8d}.site-mini-trailers{font-size:12px;color:var(--text-muted)}.link-site-picker{display:flex;align-items:center;gap:8px}.link-site-picker select{min-width:200px;font-size:13px}.site-mini-unlink{background:none;border:none;color:var(--text-muted);font-size:18px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:3px;opacity:0;transition:opacity .15s,color .15s}.site-mini-card:hover .site-mini-unlink{opacity:.6}.site-mini-unlink:hover{opacity:1!important;color:var(--danger)}.company-select{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-secondary);border-radius:var(--radius-sm);padding:4px 8px;font-size:12px;cursor:pointer;min-width:120px}.company-select:disabled{opacity:.5;cursor:default}.jobsite-mgmt-company{min-width:140px}.jobsite-mgmt-actions{min-width:120px}.site-remove-btn{color:var(--danger)!important;border-color:var(--danger)!important;opacity:.7;transition:opacity .15s}.site-remove-btn:hover{opacity:1;background:#e74c3c1a!important}.site-remove-confirm{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.site-remove-label{font-size:11px;color:var(--danger);white-space:nowrap}.site-remove-input{width:80px;padding:3px 6px;font-size:12px;background:var(--bg-secondary);border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--text-primary);text-transform:uppercase}.modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:20px;border-top:1px solid var(--border-color);padding-top:16px}.form-label{display:block;font-size:13px;font-weight:600;margin-bottom:4px;color:var(--text-secondary)}.add-note-form{display:flex;gap:8px;margin-bottom:16px}.notes-timeline{display:flex;flex-direction:column;gap:0;position:relative;padding-left:20px}.notes-timeline:before{content:"";position:absolute;left:7px;top:4px;bottom:4px;width:2px;background:#ffffff14}.note-item{display:flex;gap:12px;padding:10px 0;position:relative}.note-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:4px;position:relative;left:-20px;margin-right:-20px;z-index:1}.note-content{flex:1;min-width:0}.note-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.note-author{font-size:13px;font-weight:600;color:var(--text-primary)}.note-time{font-size:12px;color:var(--text-muted)}.note-text{font-size:14px;color:var(--text-secondary);line-height:1.5;margin:0;word-break:break-word}.note-mentions{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.mention-tag{font-size:11px;font-weight:600;padding:2px 6px;border-radius:3px;background:#3498db26;color:var(--accent)}.note-actions{display:flex;align-items:center;gap:12px;margin-top:6px}.note-reply-btn{background:none;border:none;color:var(--text-muted);font-size:12px;cursor:pointer;padding:2px 0;transition:color .15s}.note-reply-btn:hover{color:var(--accent)}.note-thread-toggle{background:none;border:none;color:var(--accent);font-size:12px;cursor:pointer;padding:2px 0;font-weight:500;transition:opacity .15s}.note-thread-toggle:hover{opacity:.8}.note-thread{border-left:2px solid rgba(255,255,255,.08);padding-left:16px;margin-top:8px;margin-left:4px;display:flex;flex-direction:column;gap:8px}.note-reply{padding:8px 12px;background:#ffffff05;border-radius:6px}.note-reply .note-header{margin-bottom:2px}.note-reply .note-author{font-size:12px}.note-reply .note-time{font-size:11px}.note-reply .note-text{font-size:13px}.note-reply-input{display:flex;gap:8px;margin-top:8px}.note-reply-input input{flex:1;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:6px 10px;color:var(--text-primary);font-size:13px;outline:none;transition:border-color .15s}.note-reply-input input:focus{border-color:var(--accent)}.note-reply-input input::placeholder{color:var(--text-muted)}.note-reply-input button{background:var(--accent);border:none;color:#fff;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:opacity .15s}.note-reply-input button:hover{opacity:.85}.tag-picker{position:relative}.tag-picker-btn{padding:6px 12px;font-size:13px;font-weight:500;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:border-color .15s,color .15s;white-space:nowrap}.tag-picker-btn:hover{border-color:var(--accent);color:var(--text-primary)}.tag-picker-dropdown{position:absolute;bottom:calc(100% + 4px);left:0;min-width:200px;max-height:300px;overflow-y:auto;background:var(--bg-card);border:1px solid rgba(255,255,255,.1);border-radius:8px;box-shadow:0 4px 16px #0000004d;z-index:1000;padding:6px 0}.tag-picker-section:not(:last-child){border-bottom:1px solid rgba(255,255,255,.06);padding-bottom:4px;margin-bottom:4px}.tag-picker-section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:6px 12px 4px}.tag-picker-item{display:flex;align-items:center;gap:8px;padding:5px 12px;cursor:pointer;font-size:13px;color:var(--text-secondary);transition:background .1s}.tag-picker-item:hover{background:#ffffff0a}.tag-picker-item input[type=checkbox]{margin:0;cursor:pointer;accent-color:var(--accent)}.tag-picker-selected{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.tag-chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 8px;border-radius:4px;cursor:pointer;transition:opacity .15s}.tag-chip:hover{opacity:.8}.tag-chip-trailer{background:#10b98126;color:#10b981}.tag-chip-category{background:#f9731626;color:#f97316}.tag-chip-remove{font-size:14px;font-weight:700;opacity:.6}.tag-chip:hover .tag-chip-remove{opacity:1}.note-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.tag-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:3px;display:inline-block}.tag-badge-trailer{background:#10b9811f;color:#10b981}.tag-badge-trailer:hover{background:#10b98138}.tag-badge-category{background:#f973161f;color:#f97316}.note-site-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:3px;background:#8b5cf626;color:#8b5cf6;cursor:pointer;margin-left:auto;transition:background .15s}.note-site-badge:hover{background:#8b5cf640}.notes-filter-bar{display:flex;gap:8px;align-items:center;margin:12px 0;flex-wrap:wrap}.notes-filter-search{display:flex;align-items:center;gap:6px;flex:1;min-width:160px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:0 10px;transition:border-color .15s;color:var(--text-muted)}.notes-filter-search:focus-within{border-color:var(--accent);color:var(--text-primary)}.notes-filter-input{background:none;border:none;outline:none;color:var(--text-primary);font-size:13px;padding:7px 0;width:100%}.notes-filter-input::placeholder{color:var(--text-muted)}.notes-filter-select{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px;color:var(--text-secondary);font-size:13px;padding:7px 10px;outline:none;cursor:pointer;transition:border-color .15s;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.notes-filter-select:focus{border-color:var(--accent)}.notes-filter-clear{background:none;border:none;color:var(--accent);font-size:12px;font-weight:500;cursor:pointer;padding:7px 8px;transition:opacity .15s}.notes-filter-clear:hover{opacity:.7}.note-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.note-header-actions{display:flex;align-items:center;gap:2px;margin-left:auto;opacity:0;transition:opacity .15s}.note-item:hover .note-header-actions{opacity:1}.note-icon-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:3px;border-radius:4px;display:flex;align-items:center;transition:color .15s,background .15s}.note-icon-btn:hover{color:var(--accent);background:#ffffff0f}.note-icon-btn.note-icon-active{color:var(--accent)}.note-icon-delete:hover{color:#ef4444;background:#ef444414}.note-edited{font-size:11px;color:var(--text-muted);font-style:italic}.note-edit-form{display:flex;flex-direction:column;gap:8px;margin:4px 0}.note-edit-input{font-size:14px!important;padding:8px 10px!important}.note-edit-actions{display:flex;gap:6px}.note-item-pinned{border-left:2px solid var(--accent);padding-left:8px;margin-left:-10px}.note-dot-pinned{background:var(--accent)!important}.note-seen-by{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-muted);margin-top:6px;font-style:italic}.note-seen-by svg{opacity:.6;flex-shrink:0}.contact-role-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;border-radius:3px;background:#3498db26;color:var(--accent);margin-left:auto}.detail-company-badge{font-size:12px;padding:2px 8px;border-radius:4px;background:#ffffff0f;color:var(--text-secondary);transition:color .15s}.detail-company-badge:hover{color:var(--accent)}.contact-card-actions{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:8px;border-top:1px solid rgba(255,255,255,.06)}.btn-xs{font-size:11px;padding:3px 8px;border-radius:4px}.btn-accent{background:linear-gradient(135deg,var(--accent),#8e44ad);color:#fff;border:none;cursor:pointer;font-weight:600;transition:opacity .15s}.btn-accent:hover{opacity:.85}.btn-accent:disabled{opacity:.5;cursor:default}.contact-portal-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;background:#2ecc7126;color:var(--success)}.invite-credentials{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-sm);padding:16px}.invite-cred-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0}.invite-cred-row+.invite-cred-row{border-top:1px solid rgba(255,255,255,.06)}.invite-cred-label{font-size:13px;font-weight:600;color:var(--text-muted)}.invite-cred-value{font-size:14px;font-weight:500;color:var(--text-primary);font-family:JetBrains Mono,monospace;background:#ffffff0a;padding:2px 8px;border-radius:3px}.assign-sites-modal{max-width:540px;width:100%}.assign-sites-count{font-size:12px;color:var(--text-muted);font-weight:400;margin-top:2px;display:block}.assign-sites-search{position:relative;padding:16px 24px 8px}.assign-sites-list{padding:8px 24px 16px;max-height:420px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.assign-site-card{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.06);background:#ffffff05;cursor:pointer;transition:all .15s ease}.assign-site-card:hover{background:#ffffff0d;border-color:#ffffff1a}.assign-site-card-selected{background:#3498db14;border-color:#3498db4d}.assign-site-card-selected:hover{background:#3498db1f;border-color:#3498db66}.assign-site-check{width:20px;height:20px;border-radius:4px;border:2px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.assign-site-check-on{background:var(--accent);border-color:var(--accent)}.assign-site-info{flex:1;min-width:0}.assign-site-name-row{display:flex;align-items:center;gap:8px}.assign-site-name{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assign-site-uid{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--text-muted);background:#ffffff0d;padding:1px 5px;border-radius:3px;flex-shrink:0}.assign-site-address{font-size:12px;color:var(--text-muted);display:block;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assign-site-trailer-count{font-size:11px;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.mention-dropdown{position:absolute;bottom:calc(100% + 4px);left:0;right:0;background:var(--bg-card);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);box-shadow:0 8px 24px #00000080;z-index:100;max-height:240px;overflow-y:auto;padding:4px}.mention-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:4px;cursor:pointer;transition:background .1s}.mention-item:hover{background:#ffffff14}.mention-name{font-size:13px;font-weight:600;color:var(--text-primary)}.mention-role{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:3px;background:#ffffff0f;color:var(--text-muted)}.mention-role-admin{background:#e74c3c1f;color:#e74c3c}.mention-role-technician{background:#3498db1f;color:#3498db}.mention-role-viewer{background:#2ecc711f;color:#2ecc71}.notif-bell-wrapper{position:relative}.notif-bell-btn{background:none;border:none;cursor:pointer;padding:6px;border-radius:var(--radius-sm);color:var(--text-secondary);transition:all .15s;position:relative}.notif-bell-btn:hover{background:#ffffff0f;color:var(--text-primary)}.notif-bell-badge{position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:50%;background:var(--danger, #e74c3c);color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.notif-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:340px;background:var(--bg-card);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);box-shadow:0 12px 32px #0009;z-index:200;max-height:420px;overflow-y:auto}.notif-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.notif-dropdown-header h3{font-size:14px;font-weight:700;margin:0}.notif-dropdown-header button{font-size:11px;color:var(--accent);background:none;border:none;cursor:pointer;font-weight:600}.notif-dropdown-header button:hover{text-decoration:underline}.notif-item{display:flex;gap:10px;padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.04);cursor:pointer;transition:background .1s}.notif-item:hover{background:#ffffff0a}.notif-item-unread{background:#3498db0f}.notif-item-unread:hover{background:#3498db1a}.notif-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:5px}.notif-dot-read{background:transparent}.notif-item-content{flex:1;min-width:0}.notif-item-title{font-size:13px;font-weight:600;color:var(--text-primary)}.notif-item-body{font-size:12px;color:var(--text-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-item-time{font-size:10px;color:var(--text-muted);margin-top:4px}.notif-empty{padding:32px 16px;text-align:center;color:var(--text-muted);font-size:13px}.comm-log-filters{display:flex;flex-wrap:wrap;gap:12px;padding:12px 20px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.comm-filter-group{display:flex;flex-direction:column;gap:4px;min-width:120px}.comm-filter-group label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.comm-filter-group select,.comm-filter-group input{font-size:13px;padding:6px 10px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:var(--text-primary)}.comm-filter-group select:focus,.comm-filter-group input:focus{border-color:var(--accent);outline:none}.date-input{color-scheme:dark}.comm-log-site-name{font-weight:600;font-size:13px;display:block;color:var(--text-primary)}.comm-log-site-uid{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--text-muted)}.comm-log-note{font-size:13px;color:var(--text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.comm-log-mentions{display:flex;flex-wrap:wrap;gap:4px}.mention-tag-sm{font-size:11px;font-weight:600;color:var(--accent);background:#3498db1a;padding:1px 6px;border-radius:3px}.comm-log-date{font-size:12px;color:var(--text-muted);white-space:nowrap}.comm-log-pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 20px;border-top:1px solid rgba(255,255,255,.06)}.comm-log-page-info{font-size:12px;color:var(--text-muted)}.trailer-board-section{margin-top:16px;border-top:1px solid rgba(255,255,255,.06);padding-top:16px}.trailer-board-header{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding:0 4px}.trailer-board-header h3{font-size:15px;font-weight:700;margin:0}.trailer-board-hint{font-size:12px;color:var(--text-muted);font-style:italic}.trailer-board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.trailer-board-card{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);overflow:hidden;transition:border-color .2s,box-shadow .2s;min-height:80px}.trailer-board-card-drop{border-color:var(--accent)!important;box-shadow:0 0 12px #3498db4d,inset 0 0 20px #3498db0d}.trailer-board-card-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 8px;border-bottom:1px solid rgba(255,255,255,.06)}.trailer-board-card-name{font-size:13px;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trailer-board-card-count{background:#ffffff14;color:var(--text-muted);font-size:11px;font-weight:700;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.trailer-board-card-body{padding:8px 10px;display:flex;flex-wrap:wrap;gap:6px;min-height:36px}.trailer-board-empty{color:var(--text-muted);font-size:12px;font-style:italic;padding:4px 0}.trailer-chip{display:inline-flex;align-items:center;gap:4px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:4px 8px;cursor:grab;transition:all .15s;-webkit-user-select:none;user-select:none}.trailer-chip:hover{background:#ffffff1a;border-color:#fff3}.trailer-chip:active{cursor:grabbing}.trailer-chip-grip{color:var(--text-muted);font-size:10px;opacity:.5}.trailer-chip-name{font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap}.trailer-chip-soc{font-size:10px;font-weight:700;font-family:JetBrains Mono,monospace;margin-left:2px}.trailer-chip-dragging{background:var(--bg-card);border-color:var(--accent);box-shadow:0 8px 24px #00000080;transform:scale(1.05)}.gps-suggestions-list{display:flex;flex-direction:column;gap:16px;margin-top:16px}.gps-suggestion-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;padding:16px}.suggestion-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.suggestion-header strong{display:block;font-size:16px;color:var(--text-primary);margin-bottom:4px}.suggestion-distance{display:inline-block;background:#3498db;color:#fff;padding:2px 8px;border-radius:4px;font-size:13px;margin-left:8px}.suggestion-date{font-size:13px;color:var(--text-secondary)}.suggestion-details{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;padding:12px;background:var(--bg-secondary);border-radius:6px}.suggestion-row{display:flex;gap:8px}.suggestion-row .label,.suggestion-coords .label{font-weight:600;color:var(--text-secondary);min-width:60px}.suggestion-coords{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-color);font-size:13px;font-family:Courier New,monospace}.suggestion-actions{display:flex;gap:12px}.suggestion-actions .btn{flex:1;font-size:14px}.settings-tabs{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--border-color);padding-bottom:0;overflow-x:auto;-webkit-overflow-scrolling:touch}.settings-tab{display:flex;align-items:center;gap:8px;padding:10px 18px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:14px;font-weight:500;font-family:Inter,sans-serif;cursor:pointer;white-space:nowrap;transition:all .2s;margin-bottom:-1px}.settings-tab:hover{color:var(--text-primary);background:#ffffff0a}.settings-tab.active{color:#3498db;border-bottom-color:#3498db}.settings-tab svg{flex-shrink:0}@media(max-width:768px){.settings-tabs{gap:0}.settings-tab{padding:8px 12px;font-size:13px}.settings-tab span{display:none}}
