.layout{background:var(--bg-canvas);flex-direction:column;height:100vh;display:flex;overflow:hidden}.topbar{height:42px;padding:0 var(--gap-lg);background:var(--bg-surface);border-bottom:1px solid var(--border-default);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.topbar-left{align-items:center;gap:8px;display:flex}.topbar-logo-icon{color:var(--accent-primary);filter:drop-shadow(0 0 4px #f906)}.topbar-logo{letter-spacing:.18em;color:var(--accent-primary-light);font-size:.85rem;font-weight:600}.topbar-divider{color:var(--text-muted);font-size:.75rem}.topbar-version{color:var(--text-muted);font-size:.7rem}.topbar-center{align-items:center;gap:10px;display:flex}.topbar-property{letter-spacing:.1em;color:var(--text-secondary);text-transform:uppercase;font-size:.72rem;font-weight:500}.topbar-separator{color:var(--border-default);font-size:.7rem}.topbar-time,.topbar-date{color:var(--text-secondary);font-size:.7rem}.topbar-right{align-items:center;gap:8px;display:flex}.topbar-status{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:.65rem}.topbar-status-label{color:var(--accent-primary-light);text-transform:uppercase;letter-spacing:.06em;font-size:.65rem;font-weight:500}.layout-body{flex:1;display:flex;overflow:hidden}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border-default);width:200px;padding:var(--gap-md);transition:width var(--transition-normal);flex-direction:column;flex-shrink:0;justify-content:space-between;display:flex;overflow:hidden}.sidebar.collapsed{width:52px;padding:var(--gap-sm)}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.sidebar .nav-item{white-space:nowrap;letter-spacing:.06em;text-transform:uppercase;padding:8px 10px;font-size:.72rem;overflow:hidden}.sidebar.collapsed .nav-item{justify-content:center;padding:10px 8px}.sidebar.collapsed .nav-item span{display:none}.sidebar-toggle{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;padding:8px;display:flex}.sidebar-toggle:hover{color:var(--text-primary);border-color:var(--border-hover);background:var(--accent-primary-faint)}.layout-main{padding:var(--gap-md);flex:1;overflow:hidden auto}@media (width<=768px){.topbar-center{display:none}.sidebar{width:52px;padding:var(--gap-sm)}.sidebar .nav-item span{display:none}.sidebar .nav-item{justify-content:center;padding:10px 8px}}.stats-row{gap:var(--gap-md);grid-template-columns:repeat(4,1fr);display:grid}.stat-tile{align-items:center;gap:14px;padding:16px 20px;display:flex;position:relative}.stat-tile-icon{color:var(--accent-primary);flex-shrink:0;width:24px;height:24px}.stat-tile-data{flex:1;min-width:0}.stat-tile-value{color:var(--text-primary);font-size:1.6rem;font-weight:700;line-height:1.1}.stat-tile-label{letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase;margin-top:4px;font-size:.75rem;display:block}.stat-tile-bar{flex-shrink:0;width:80px}.dashboard-layout{gap:var(--gap-lg);height:calc(100vh - 42px - var(--gap-lg) * 2);flex-direction:column;display:flex}.dashboard-main{gap:var(--gap-lg);flex:1;grid-template-columns:340px 1fr 380px;min-height:0;display:grid}.dash-col-left,.dash-col-right,.dash-col-center{gap:var(--gap-lg);flex-direction:column;min-height:0;display:flex}.dash-card{border-radius:var(--radius-md);flex-direction:column;display:flex;overflow:hidden}.dash-card .card-header h3{font-size:.85rem}.dash-col-left .dash-card:first-child{flex:1;min-height:0}.dash-col-left .command-compact{height:120px}.dash-col-right .dash-card:first-child{flex-shrink:0}.dash-col-right .dash-card:last-child{flex:1;min-height:0}.dash-col-center .wireframe-card{flex:1;width:100%}.agent-list-compact{flex:1;padding:8px 0;overflow-y:auto}.agent-row{cursor:pointer;transition:background var(--transition-fast);border-radius:4px;align-items:center;gap:8px;padding:8px 12px;display:flex}.agent-row:hover{background:var(--accent-primary-faint)}.agent-row-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.85rem;font-weight:500;overflow:hidden}.agent-row.idle .agent-row-name{color:var(--text-muted)}.agent-row-load{color:var(--text-muted);text-align:right;flex-shrink:0;width:32px;font-size:.75rem}.agent-row-chevron{color:var(--text-muted);transition:transform var(--transition-fast);flex-shrink:0}.agent-row-chevron.open{transform:rotate(90deg)}.command-compact{flex-grow:0!important;flex-shrink:0!important}.command-last-response{color:var(--text-secondary);flex:1;padding:12px 16px;font-size:.75rem;line-height:1.6;overflow-y:auto}.command-input-bar{border-top:1px solid var(--border-subtle);background:var(--bg-canvas-alt);align-items:center;gap:10px;padding:10px 14px;display:flex}.command-prompt{color:var(--accent-primary);flex-shrink:0;font-size:.9rem}.command-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:.85rem}.command-input::placeholder{color:var(--text-muted)}.command-submit-btn{background:var(--accent-primary);width:32px;height:32px;color:var(--text-inverse);cursor:pointer;transition:all var(--transition-fast);border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.command-submit-btn:hover{background:var(--accent-primary-light);box-shadow:0 0 14px #ff99004d}.wireframe-card{overflow:hidden}.wireframe-body{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.wireframe-svg{flex:1;width:100%;min-height:0}.wireframe-floor-badge{color:var(--text-secondary);cursor:pointer;align-items:center;gap:4px;font-size:.8rem;display:flex}.wireframe-legend{font-size:.75rem;font-family:var(--font-mono);color:var(--text-muted);gap:16px;padding:12px 20px;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.legend-dot{border-radius:50%;width:8px;height:8px}.legend-dot.occupied{background:var(--accent-primary)}.legend-dot.available{background:var(--status-idle)}.legend-dot.maintenance{background:var(--status-critical)}.wireframe-room{cursor:pointer;transition:opacity .2s}.wireframe-room:hover{opacity:.85}.alerts-compact{flex-direction:column;gap:4px;padding:6px 0;display:flex}.alert-row{transition:background var(--transition-fast);border-left:3px solid #0000;align-items:center;gap:12px;padding:10px 16px;display:flex}.alert-row:hover{background:var(--accent-primary-faint)}.alert-row.severity-high{border-left-color:var(--status-critical);background:var(--status-critical-dim)}.alert-row.severity-medium{border-left-color:var(--accent-primary)}.alert-row-room{color:var(--text-primary);flex-shrink:0;width:75px;font-size:.85rem;font-weight:600}.alert-row-issue{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.8rem;overflow:hidden}.log-card{overflow:hidden}.log-body{flex:1;padding:4px 0;overflow-y:auto}.log-entry{color:var(--text-secondary);border-left:2px solid #0000;gap:8px;padding:4px 16px 4px 14px;font-size:.75rem;line-height:1.8;display:flex}.log-entry:hover{background:var(--accent-primary-faint)}.log-entry.warning{color:var(--accent-primary-light);border-left-color:var(--accent-primary);background:var(--accent-primary-faint)}.log-entry.action{color:var(--text-primary);border-left-color:var(--status-positive)}.log-time{color:var(--text-muted);flex-shrink:0}.log-agent{color:var(--text-primary);flex-shrink:0;font-weight:600}.log-message{word-break:break-word;flex:1}@media (width<=1400px){.dashboard-main{grid-template-columns:280px 1fr 300px}}@media (width<=1024px){.dashboard-main{grid-template-rows:auto 1fr;grid-template-columns:1fr 1fr}.dash-col-left{grid-area:2/1}.dash-col-center{grid-area:1/1/auto/3;min-height:450px}.dash-col-right{grid-area:2/2}.dashboard-layout{height:auto}}@media (width<=768px){.stats-row{grid-template-columns:repeat(2,1fr)}.dashboard-main{grid-template-columns:1fr}.dash-col-left,.dash-col-center,.dash-col-right{grid-column:1}.dash-col-center{min-height:350px}}.floorplan-page{gap:var(--gap-md);height:calc(100vh - 42px - var(--gap-md) * 2);flex-direction:column;display:flex}.floorplan-topbar{justify-content:space-between;align-items:center;gap:var(--gap-md);flex-wrap:wrap;display:flex}.floorplan-title{align-items:center;gap:10px;display:flex}.floorplan-title h2{letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);font-size:.85rem;font-weight:500}.floorplan-controls{align-items:center;gap:var(--gap-sm);display:flex}.view-mode-group{gap:2px;display:flex}.view-mode-group .btn{border-radius:0}.view-mode-group .btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.view-mode-group .btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.floor-selector-wrap{position:relative}.floor-picker{width:160px;padding:var(--gap-xs);z-index:var(--z-dropdown);max-height:300px;animation:.15s ease-out fadeIn;position:absolute;top:calc(100% + 4px);right:0;overflow-y:auto}.floor-picker-item{text-align:left;width:100%;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;padding:8px 12px;font-size:.72rem;display:block}.floor-picker-item:hover{background:var(--accent-primary-faint);color:var(--text-primary)}.floor-picker-item.active{background:var(--accent-primary-dim);color:var(--accent-primary-light)}.floorplan-stats{gap:var(--gap-sm);flex-wrap:wrap;display:flex}.stat-chip{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:6px 14px;display:flex}.stat-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.6rem}.stat-value{font-size:.8rem;font-weight:600}.floorplan-main{gap:var(--gap-md);flex:1;min-height:0;display:flex}.floorplan-canvas-container{flex:1;min-height:400px;position:relative;overflow:hidden}.floorplan-canvas-container canvas{border-radius:var(--radius-md)}.canvas-overlay-info{color:var(--text-muted);pointer-events:none;flex-direction:column;gap:2px;font-size:.6rem;display:flex;position:absolute;bottom:12px;left:16px}.room-detail-panel{flex-shrink:0;width:280px;height:fit-content;max-height:100%;animation:.2s ease-out slideInRight;overflow-y:auto}.room-detail-status{border-radius:var(--radius-sm);letter-spacing:.08em;margin-bottom:var(--gap-md);align-items:center;gap:8px;padding:8px 12px;font-size:.7rem;font-weight:500;display:flex}.room-detail-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.room-detail-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.65rem}.room-detail-value{color:var(--text-primary);font-size:.75rem}.text-positive{color:var(--status-positive)!important}.text-critical{color:var(--status-critical)!important}.room-detail-actions{gap:var(--gap-sm);margin-top:var(--gap-lg);display:flex}.room-detail-actions .btn{padding:8px 10px;font-size:.62rem}@media (width<=900px){.floorplan-main{flex-direction:column}.room-detail-panel{width:100%}}.agents-page{gap:var(--gap-md);flex-direction:column;display:flex}.agents-header{justify-content:space-between;align-items:center;display:flex}.agents-title{align-items:center;gap:10px;display:flex}.agents-title h1{letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);font-size:.85rem;font-weight:500}.topology-card{overflow:hidden}.topology-body{padding:var(--gap-sm);flex:1;overflow:hidden}.topology-svg{width:100%;height:auto;max-height:440px}.topology-node-group{cursor:pointer}.topology-node-group:hover rect{stroke-width:2px;filter:brightness(1.1)}.agents-bottom{gap:var(--gap-md);grid-template-columns:1fr 1fr;display:grid}.agents-list-card{flex-direction:column;max-height:500px;display:flex}.agents-list-body{overflow-y:auto}.agent-list-item{border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:8px;padding:10px 12px;display:flex}.agent-list-item:hover{background:var(--accent-primary-faint)}.agent-list-item.selected{background:var(--accent-primary-dim);border-left:2px solid var(--accent-primary)}.agent-list-name{color:var(--text-primary);flex:1;font-size:.75rem;font-weight:500}.agent-list-version{flex-shrink:0}.agent-detail-card{max-height:500px;overflow-y:auto}.agent-detail-title{align-items:center;gap:8px;display:flex}.agent-metrics-grid{gap:var(--gap-md);margin-bottom:var(--gap-lg);grid-template-columns:repeat(2,1fr);display:grid}.agent-metric-box{background:var(--bg-canvas-alt);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);gap:10px;padding:12px;display:flex}.metric-icon{color:var(--accent-primary);flex-shrink:0;margin-top:2px}.metric-content{flex:1;min-width:0}.metric-label{letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase;margin-bottom:2px;font-size:.58rem}.metric-value{color:var(--text-primary);margin-bottom:6px;font-size:1rem;font-weight:600}.agent-info-row{gap:var(--gap-md);margin-bottom:var(--gap-lg);display:flex}.agent-info-item{background:var(--bg-canvas-alt);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex:1;padding:8px 10px}.info-label{letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase;margin-bottom:2px;font-size:.55rem;display:block}.info-value{color:var(--text-primary);font-size:.75rem}.agent-tasks-section{border-top:1px solid var(--border-subtle);padding-top:var(--gap-md)}.agent-tasks-toggle{width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:6px 0;display:flex}.agent-tasks-toggle .rotated{transform:rotate(90deg)}.agent-tasks-list{animation:.2s ease-out fadeIn}.agent-task-item{border-bottom:1px solid var(--border-subtle);align-items:center;gap:8px;padding:6px 0;display:flex}.task-status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.task-status-dot.positive{background:var(--status-positive)}.task-status-dot.active{background:var(--accent-primary)}.task-name{color:var(--text-secondary);flex:1;font-size:.7rem}.task-time{flex-shrink:0;font-size:.6rem}@media (width<=1024px){.agents-bottom{grid-template-columns:1fr}}.security-page{gap:var(--gap-md);flex-direction:column;display:flex}.security-header{justify-content:space-between;align-items:center;gap:var(--gap-md);flex-wrap:wrap;display:flex}.security-title{align-items:center;gap:10px;display:flex}.security-title h1{letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);font-size:.85rem;font-weight:500}.security-stats{gap:var(--gap-lg);display:flex}.sec-stat{color:var(--text-secondary);align-items:center;gap:6px;display:flex}.alert-stat{color:var(--accent-primary-light)}.security-top-row{gap:var(--gap-md);grid-template-columns:1fr 1fr;display:grid}.threat-body{gap:var(--gap-lg);flex-direction:column;display:flex}.threat-bar{border-radius:6px;height:12px;position:relative;overflow:visible}.threat-segments{border-radius:6px;height:100%;display:flex;overflow:hidden}.threat-seg{opacity:.2;transition:opacity var(--transition-normal);flex:1}.threat-seg.active{opacity:1}.threat-seg.low{background:#4caf50}.threat-seg.guarded{background:#8bc34a}.threat-seg.elevated{background:#f90}.threat-seg.high{background:#ff5722}.threat-seg.severe{background:#e53935}.threat-marker{background:var(--text-primary);border-radius:2px;width:4px;height:20px;position:absolute;top:-4px;transform:translate(-50%);box-shadow:0 0 6px #f3f3f44d}.threat-labels{color:var(--text-muted);justify-content:space-between;margin-top:6px;display:flex}.threat-current{padding-top:var(--gap-sm);border-top:1px solid var(--border-subtle);flex-direction:column;gap:4px;display:flex}.threat-current-level{color:#8bc34a;font-size:1rem;font-weight:600}.perimeter-grid{gap:var(--gap-sm);grid-template-columns:repeat(2,1fr);display:grid}.perimeter-zone{background:var(--bg-canvas-alt);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);transition:all var(--transition-fast);align-items:center;gap:10px;padding:10px;display:flex}.perimeter-zone:hover{border-color:var(--border-hover)}.perimeter-zone.secure .perimeter-zone-icon{color:var(--status-positive)}.perimeter-zone.monitoring .perimeter-zone-icon{color:var(--accent-primary)}.perimeter-zone.locked .perimeter-zone-icon{color:var(--text-muted)}.perimeter-zone-info{flex-direction:column;gap:2px;display:flex}.zone-name{color:var(--text-primary);font-size:.68rem}.zone-status{color:var(--text-muted)}.perimeter-zone.secure .zone-status{color:var(--status-positive)}.perimeter-zone.monitoring .zone-status{color:var(--accent-primary-light)}.camera-grid{gap:var(--gap-sm);padding:var(--gap-md);grid-template-columns:repeat(4,1fr);display:grid}.camera-feed{cursor:pointer;transition:all var(--transition-fast);overflow:hidden}.camera-feed:hover{border-color:var(--border-hover)}.camera-feed.camera-alert{border-color:#e5393566}.camera-viewport{aspect-ratio:16/10;background:var(--bg-canvas);position:relative;overflow:hidden}.camera-static{background:repeating-linear-gradient(0deg,#0000,#0000 2px,#ffffff03 2px 4px);position:absolute;inset:0}.camera-scanline{background:#ffffff0a;height:2px;animation:4s linear infinite scanline;position:absolute;top:0;left:0;right:0}.camera-noise{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 128 128' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='0.8' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");position:absolute;inset:0}.camera-overlay{justify-content:space-between;align-items:flex-start;display:flex;position:absolute;top:6px;left:8px;right:8px}.camera-id{color:var(--text-muted);font-size:.6rem}.camera-rec{color:var(--status-critical);align-items:center;gap:4px;font-size:.55rem;display:flex}.rec-dot{background:var(--status-critical);border-radius:50%;width:5px;height:5px;animation:1.5s infinite pulse-critical}.camera-alert-badge{background:var(--status-critical-dim);color:var(--status-critical);border:1px solid #e539354d;border-radius:2px;align-items:center;gap:4px;padding:2px 6px;font-size:.55rem;display:flex;position:absolute;bottom:6px;left:8px}.camera-info{justify-content:space-between;align-items:center;padding:8px;display:flex}.camera-location{color:var(--text-secondary);font-size:.65rem}.camera-occupancy{color:var(--text-muted);align-items:center;gap:4px;display:flex}.security-bottom-row{gap:var(--gap-md);grid-template-columns:1.5fr 1fr;display:grid}.access-log-body{flex-direction:column;gap:2px;max-height:350px;display:flex;overflow-y:auto}.access-entry{border-radius:var(--radius-sm);transition:background var(--transition-fast);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;font-size:.65rem;display:flex}.access-entry:hover{background:var(--accent-primary-faint)}.access-entry.deny{background:var(--status-critical-dim)}.access-entry.anomaly{background:var(--accent-primary-faint);border-left:2px solid var(--accent-primary)}.access-time{flex-shrink:0}.access-type-badge{border-radius:2px;flex-shrink:0;align-items:center;gap:4px;padding:2px 6px;font-size:.55rem;display:inline-flex}.access-type-badge.grant{color:var(--status-positive)}.access-type-badge.deny{color:var(--status-critical)}.access-type-badge.anomaly{color:var(--accent-primary-light)}.access-person{color:var(--text-primary);flex-shrink:0}.access-location{flex:1}.access-method{flex-shrink:0}.events-body{gap:var(--gap-sm);flex-direction:column;max-height:350px;display:flex;overflow-y:auto}.security-event{background:var(--bg-canvas-alt);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);padding:10px}.security-event:hover{border-color:var(--border-hover)}.security-event.investigating{border-left:3px solid var(--accent-primary)}.security-event.monitoring{border-left:3px solid var(--status-positive)}.event-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.event-type{color:var(--text-primary);font-size:.68rem;font-weight:500}.event-details{gap:var(--gap-md);margin-bottom:4px;display:flex}.event-details span{align-items:center;gap:4px;display:flex}@media (width<=1200px){.camera-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=900px){.security-top-row,.security-bottom-row{grid-template-columns:1fr}.camera-grid{grid-template-columns:repeat(2,1fr)}}.operations-page{gap:var(--gap-md);flex-direction:column;display:flex}.ops-header{justify-content:space-between;align-items:center;gap:var(--gap-md);flex-wrap:wrap;display:flex}.ops-title{align-items:center;gap:10px;display:flex}.ops-title h1{letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);font-size:.85rem;font-weight:500}.ops-stats{gap:var(--gap-lg);color:var(--text-secondary);display:flex}.ops-stat-item{align-items:center;gap:6px;display:flex}.ops-stat-cards{gap:var(--gap-md);grid-template-columns:repeat(4,1fr);display:grid}.ops-big-stat{padding:var(--gap-lg);text-align:center}.big-stat-value{color:var(--accent-primary-light);margin-bottom:6px;font-size:2rem;font-weight:700;line-height:1;animation:.5s ease-out countUp}.big-stat-label{letter-spacing:.1em}.ops-main-row{gap:var(--gap-md);grid-template-columns:1.5fr 1fr;display:grid}.ops-side-col{gap:var(--gap-md);flex-direction:column;display:flex}.wo-body{gap:var(--gap-sm);flex-direction:column;max-height:450px;display:flex;overflow-y:auto}.work-order-item{border-radius:var(--radius-sm);transition:all var(--transition-fast);border-left:3px solid;padding:12px}.work-order-item:hover{transform:translate(2px)}.wo-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.wo-id{color:var(--text-muted);font-size:.68rem}.wo-issue{color:var(--text-primary);margin-bottom:6px;font-size:.75rem}.wo-details{gap:var(--gap-md);flex-wrap:wrap;display:flex}.energy-body{flex-direction:column;gap:10px;display:flex}.energy-zone-row{align-items:center;gap:10px;display:flex}.energy-zone-name{color:var(--text-secondary);flex-shrink:0;width:120px;font-size:.65rem}.energy-bar-wrap{flex:1;align-items:center;gap:8px;display:flex}.energy-value{color:var(--text-primary);text-align:right;flex-shrink:0;width:30px;font-size:.65rem}.energy-trend{text-align:center;flex-shrink:0;width:16px}.trend-up{color:var(--status-critical)}.trend-down{color:var(--status-positive)}.floor-overview-body{flex-direction:column;gap:6px;max-height:340px;display:flex;overflow-y:auto}.floor-row{border-radius:var(--radius-sm);transition:background var(--transition-fast);align-items:center;gap:10px;padding:6px 8px;display:flex}.floor-row:hover{background:var(--accent-primary-faint)}.floor-num{color:var(--text-primary);flex-shrink:0;width:28px;font-size:.7rem;font-weight:600}.floor-occupancy-bar{flex:1;align-items:center;display:flex}.floor-occ-text{text-align:right;flex-shrink:0;width:40px}.floor-temp,.floor-energy,.floor-maint{flex-shrink:0;align-items:center;gap:3px;display:flex}.hk-body{overflow-x:auto}.hk-table{border-collapse:collapse;width:100%}.hk-table th{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);text-align:left;border-bottom:1px solid var(--border-default);padding:8px 12px;font-size:.6rem}.hk-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-primary);padding:10px 12px;font-size:.7rem}.hk-table tr:hover td{background:var(--accent-primary-faint)}.priority-tag{font-family:var(--font-mono);letter-spacing:.06em;border-radius:2px;padding:2px 6px;font-size:.58rem}.priority-tag.high{color:var(--accent-primary-light);background:var(--accent-primary-faint)}.priority-tag.normal{color:var(--text-muted)}.priority-tag.low{color:var(--text-muted);opacity:.6}@media (width<=1024px){.ops-stat-cards{grid-template-columns:repeat(2,1fr)}.ops-main-row{grid-template-columns:1fr}}@media (width<=600px){.ops-stat-cards{grid-template-columns:1fr}}.analytics-page{gap:var(--gap-md);flex-direction:column;display:flex}.analytics-header{justify-content:space-between;align-items:center;gap:var(--gap-md);flex-wrap:wrap;display:flex}.analytics-title{align-items:center;gap:10px;display:flex}.analytics-title h1{letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);font-size:.85rem;font-weight:500}.analytics-date{align-items:center;gap:6px;display:flex}.kpi-row{gap:var(--gap-md);grid-template-columns:repeat(4,1fr);display:grid}.kpi-card{padding:var(--gap-lg);align-items:flex-start;gap:14px;display:flex}.kpi-icon-wrap{background:var(--accent-primary-dim);border-radius:var(--radius-sm);width:36px;height:36px;color:var(--accent-primary-light);flex-shrink:0;justify-content:center;align-items:center;display:flex}.kpi-content{flex:1}.kpi-label{letter-spacing:.1em;margin-bottom:4px}.kpi-value{color:var(--text-primary);margin-bottom:4px;font-size:1.4rem;font-weight:700;line-height:1.2}.kpi-change{align-items:center;gap:2px;display:flex}.kpi-change.up{color:var(--status-positive)}.kpi-change.down{color:var(--status-critical)}.analytics-charts-row{gap:var(--gap-md);grid-template-columns:1.5fr 1fr;display:grid}.revenue-chart-body{padding:var(--gap-lg)!important}.chart-period-toggle{gap:2px;display:flex}.chart-period-toggle .btn{padding:4px 10px;font-size:.6rem}.bar-chart{align-items:flex-end;gap:6px;height:200px;display:flex}.bar-col{flex-direction:column;flex:1;align-items:center;gap:4px;height:100%;display:flex}.bar-value{flex-shrink:0}.bar-track{flex:1;justify-content:center;align-items:flex-end;width:100%;display:flex}.bar-fill{background:linear-gradient(to top, var(--accent-primary), var(--accent-primary-light));transform-origin:bottom;opacity:.85;width:70%;transition:opacity var(--transition-fast);border-radius:3px 3px 0 0;animation:.8s ease-out forwards barGrow}.bar-col:hover .bar-fill{opacity:1;box-shadow:0 0 12px #ff99004d}@keyframes barGrow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.bar-label{flex-shrink:0}.revpar-body{padding:var(--gap-md)!important}.revpar-svg{width:100%;height:130px}.revpar-labels{justify-content:space-between;margin-top:4px;padding:0 10px;display:flex}.guest-stats-grid{gap:var(--gap-md);grid-template-columns:repeat(3,1fr);display:grid}.guest-stat{padding:var(--gap-md);background:var(--bg-canvas-alt);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-direction:column;align-items:center;gap:4px;display:flex}.guest-stat-value{color:var(--text-primary);font-size:1.5rem;font-weight:700;line-height:1}.guest-stat-label{letter-spacing:.08em;text-align:center}.dept-body{flex-direction:column;gap:10px;display:flex}.dept-row{align-items:center;gap:12px;display:flex}.dept-name{color:var(--text-secondary);flex-shrink:0;width:100px;font-size:.68rem}.dept-bar-wrap{flex:1;position:relative}.dept-target-marker{background:var(--text-muted);opacity:.5;width:2px;height:calc(100% + 4px);position:absolute;top:-2px}.dept-score{color:var(--status-positive);text-align:right;flex-shrink:0;width:35px;font-size:.72rem}.dept-score.below-target{color:var(--accent-primary-light)}.analytics-bottom-row{gap:var(--gap-md);grid-template-columns:1fr 1.5fr;display:grid}@media (width<=1024px){.kpi-row{grid-template-columns:repeat(2,1fr)}.analytics-charts-row,.analytics-bottom-row{grid-template-columns:1fr}}@media (width<=600px){.kpi-row{grid-template-columns:1fr}.guest-stats-grid{grid-template-columns:repeat(2,1fr)}}.logs-page{gap:var(--gap-md);height:calc(100vh - 42px - var(--gap-md) * 2);flex-direction:column;display:flex}.logs-header{justify-content:space-between;align-items:center;gap:var(--gap-md);flex-wrap:wrap;display:flex}.logs-title{align-items:center;gap:10px;display:flex}.logs-title h1{letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);font-size:.85rem;font-weight:500}.logs-actions{align-items:center;gap:var(--gap-sm);display:flex}.log-count{margin-right:var(--gap-sm)}.logs-filters{gap:var(--gap-sm);flex-direction:column;display:flex}.filter-search{max-width:400px;position:relative}.search-icon{color:var(--text-muted);z-index:1;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.search-clear:hover{color:var(--text-primary)}.filter-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-pills{flex-wrap:wrap;gap:3px;display:flex}.filter-pill{background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);border-radius:2px;align-items:center;gap:4px;padding:4px 8px;font-size:.6rem;display:flex}.filter-pill:hover{border-color:var(--border-hover);color:var(--text-secondary)}.filter-pill.active{background:var(--accent-primary-dim);color:var(--accent-primary-light);border-color:#ff990040}.filter-pill.level-warning.active{background:var(--accent-primary-dim)}.filter-pill.level-action.active{background:var(--status-positive-dim);color:var(--status-positive);border-color:#b4c4b140}.pill-count{opacity:.6;font-size:.5rem}.logs-table-card{flex-direction:column;flex:1;display:flex;overflow:hidden}.logs-table-header{border-bottom:1px solid var(--border-default);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);flex-shrink:0;padding:8px 12px;font-size:.6rem;display:flex}.logs-table-body{flex:1;overflow-y:auto}.log-table-row{border-bottom:1px solid var(--border-subtle);transition:background var(--transition-fast);align-items:flex-start;padding:6px 12px;font-size:.68rem;display:flex}.log-table-row:hover{background:var(--accent-primary-faint)}.log-table-row.warning{border-left:2px solid var(--accent-primary);background:#ff99000a}.log-table-row.new-entry{background:#ff99000f;animation:.3s ease-out fadeIn}.log-col-time{flex-shrink:0;width:90px}.log-col-agent{width:120px;color:var(--text-primary);flex-shrink:0;font-weight:500}.log-col-level{flex-shrink:0;width:80px}.log-col-message{color:var(--text-secondary);word-break:break-word;flex:1}.level-badge{letter-spacing:.06em;border-radius:2px;padding:1px 6px;font-size:.55rem;display:inline-block}.level-badge.info{color:var(--text-muted);background:#5a5a631a}.level-badge.action{color:var(--status-positive);background:var(--status-positive-dim)}.level-badge.warning{color:var(--accent-primary-light);background:var(--accent-primary-dim)}@media (width<=768px){.log-col-agent{width:80px}.log-col-level{width:60px}}.settings-page{gap:var(--gap-md);flex-direction:column;max-width:1000px;display:flex}.settings-header{justify-content:space-between;align-items:center;gap:var(--gap-md);flex-wrap:wrap;display:flex}.settings-title{align-items:center;gap:10px;display:flex}.settings-title h1{letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);font-size:.85rem;font-weight:500}.settings-actions{gap:var(--gap-sm);display:flex}.settings-grid{gap:var(--gap-md);flex-direction:column;display:flex}.setting-section-title{align-items:center;gap:8px;display:flex}.setting-section-body{flex-direction:column;gap:0;display:flex}.setting-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:var(--gap-lg);padding:14px 0;display:flex}.setting-row:last-child{border-bottom:none}.setting-row-info{flex-direction:column;flex:1;gap:2px;display:flex}.setting-row-label{color:var(--text-primary);font-size:.78rem;font-weight:500}.setting-row-control{flex-shrink:0}.toggle-switch{color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:0}.toggle-switch.on{color:var(--accent-primary)}.toggle-switch:hover{color:var(--text-secondary)}.toggle-switch.on:hover{color:var(--accent-primary-light)}.setting-select{max-width:200px;padding:6px 10px;font-size:.72rem}.setting-select option{background:var(--bg-surface);color:var(--text-primary)}.color-picker-row{gap:8px;display:flex}.color-swatch{cursor:pointer;width:24px;height:24px;transition:all var(--transition-fast);border:2px solid #0000;border-radius:50%}.color-swatch:hover{transform:scale(1.15)}.color-swatch.active{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-canvas), 0 0 0 4px currentColor}.endpoint-status{align-items:center;gap:8px;display:flex}.system-info-grid{gap:var(--gap-md);grid-template-columns:repeat(3,1fr);display:grid}.sys-info-item{background:var(--bg-canvas-alt);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-direction:column;gap:4px;padding:12px;display:flex}.sys-label{letter-spacing:.08em}.sys-value{color:var(--text-primary);font-size:.78rem}@media (width<=768px){.setting-row{align-items:flex-start;gap:var(--gap-sm);flex-direction:column}.system-info-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.system-info-grid{grid-template-columns:1fr}}.landing-container{background-color:var(--bg-deep);min-height:100vh;color:var(--text-primary);flex-direction:column;display:flex;position:relative;overflow:hidden}.landing-background{z-index:0;pointer-events:none;position:absolute;inset:0}.grid-overlay{opacity:.5;background-image:linear-gradient(#1a1a1dcc 1px,#0000 1px),linear-gradient(90deg,#1a1a1dcc 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0}.glow-sphere{filter:blur(120px);opacity:.15;border-radius:50%;position:absolute}.main-sphere{background:var(--accent-primary);width:600px;height:600px;top:-100px;right:-100px}.secondary-sphere{background:var(--accent-secondary);width:400px;height:400px;bottom:-50px;left:-100px}.landing-nav{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0a0bcc;border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:1.5rem 3rem;display:flex;position:relative}.nav-logo{letter-spacing:2px;align-items:center;gap:.75rem;font-family:Inter,sans-serif;font-size:1.25rem;font-weight:700;display:flex}.logo-icon{color:var(--accent-primary)}.nav-link-btn{color:var(--text-secondary);border:1px solid #ffffff1a;border-radius:4px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:JetBrains Mono,monospace;font-size:.85rem;text-decoration:none;transition:all .2s;display:flex}.nav-link-btn:hover{color:var(--accent-primary);border-color:var(--accent-primary);background:#ffb84d0d}.landing-main{z-index:10;flex-direction:column;flex:1;justify-content:center;width:100%;max-width:1200px;margin:0 auto;padding:4rem 3rem;display:flex;position:relative}.hero-section{max-width:800px;margin-bottom:5rem}.hero-badge{border:1px solid var(--status-success);color:var(--status-success);background:#3a5a3a33;border-radius:50px;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.35rem .75rem;font-size:.75rem;display:inline-flex}.hero-title{letter-spacing:-1px;margin-bottom:1.5rem;font-size:4.5rem;font-weight:700;line-height:1.1}.highlight{background:linear-gradient(135deg, var(--accent-primary), #fff);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-subtitle{color:var(--text-secondary);max-width:600px;margin-bottom:2.5rem;font-size:1.25rem;line-height:1.6}.btn-primary{background:var(--accent-primary);color:var(--bg-deep);border-radius:4px;padding:1rem 2rem;font-family:JetBrains Mono,monospace;font-size:.9rem;font-weight:700;text-decoration:none;transition:all .2s;display:inline-block}.glow-effect:hover{transform:translateY(-2px);box-shadow:0 0 20px #ffb84d66}.features-grid{grid-template-columns:repeat(3,1fr);gap:2rem;display:grid}.feature-card{background:var(--surface-card);border:1px solid var(--border-color);border-radius:8px;padding:2rem;transition:all .3s}.feature-card:hover{background:#1a1a1dcc;border-color:#ffb84d4d;transform:translateY(-4px)}.feature-icon-wrapper{width:40px;height:40px;color:var(--accent-primary);background:#ffb84d1a;border-radius:8px;justify-content:center;align-items:center;margin-bottom:1.5rem;display:flex}.feature-card h3{margin-bottom:.75rem;font-size:1.1rem;font-weight:600}.feature-card p{color:var(--text-secondary);font-size:.9rem;line-height:1.5}@media (width<=900px){.features-grid{grid-template-columns:1fr}.hero-title{font-size:3rem}}:root{--bg-canvas:#0a0a0b;--bg-canvas-alt:#0d0d0f;--bg-surface:#1a1a1d;--bg-surface-hover:#1f1f23;--bg-surface-elevated:#222226;--bg-surface-input:#111113;--border-default:#2a2a2e;--border-hover:#3a3a3f;--border-active:#f90;--border-subtle:#1e1e22;--accent-primary:#f90;--accent-primary-light:#ffb84d;--accent-primary-dim:#ff990026;--accent-primary-glow:#ff99004d;--accent-primary-faint:#ff990014;--status-positive:#b4c4b1;--status-positive-dim:#b4c4b126;--status-warning:#f90;--status-warning-dim:#ff990026;--status-critical:#e53935;--status-critical-dim:#e539351f;--status-idle:#555560;--text-primary:#f3f3f4;--text-secondary:#8a8a93;--text-muted:#5a5a63;--text-accent:#ffb84d;--text-inverse:#0a0a0b;--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--gap-xs:4px;--gap-sm:8px;--gap-md:12px;--gap-lg:16px;--gap-xl:24px;--gap-2xl:32px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--z-base:1;--z-dropdown:100;--z-modal:1000;--z-toast:2000}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px}body{font-family:var(--font-ui);background-color:var(--bg-canvas);color:var(--text-primary);min-height:100vh;line-height:1.5;overflow-x:hidden}#root{min-height:100vh}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.font-mono{font-family:var(--font-mono)}.text-accent{color:var(--text-accent)}.text-muted{color:var(--text-secondary)}.text-xs{font-size:.7rem}.text-sm{font-size:.8rem}.uppercase{text-transform:uppercase;letter-spacing:.12em}.card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);position:relative;overflow:hidden}.card:before{content:"";pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");position:absolute;inset:0}.card>*{z-index:1;position:relative}.card-header{padding:var(--gap-md) var(--gap-lg);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.card-header h3{text-transform:uppercase;letter-spacing:.14em;color:var(--text-secondary);font-size:.72rem;font-weight:500}.card-body{padding:var(--gap-lg)}.status-badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;border-radius:3px;align-items:center;gap:6px;padding:3px 10px;font-size:.65rem;font-weight:500;display:inline-flex}.status-badge.active{background:var(--accent-primary-dim);color:var(--accent-primary-light);border:1px solid #ff990040}.status-badge.idle{color:var(--text-muted);background:#5a5a6326;border:1px solid #5a5a6333}.status-badge.positive{background:var(--status-positive-dim);color:var(--status-positive);border:1px solid #b4c4b133}.status-badge.critical{background:var(--status-critical-dim);color:var(--status-critical);border:1px solid #e5393533}.status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.status-dot.active{background:var(--accent-primary);box-shadow:0 0 6px var(--accent-primary-glow);animation:2s ease-in-out infinite pulse-glow}.status-dot.idle{background:var(--status-idle)}.status-dot.positive{background:var(--status-positive)}.status-dot.critical{background:var(--status-critical);animation:1.5s ease-in-out infinite pulse-critical}@keyframes pulse-glow{0%,to{opacity:1;box-shadow:0 0 6px var(--accent-primary-glow)}50%{opacity:.7;box-shadow:0 0 12px var(--accent-primary-glow)}}@keyframes pulse-critical{0%,to{opacity:1}50%{opacity:.5}}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}@keyframes scanline{0%{transform:translateY(-100%)}to{transform:translateY(100vh)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes amberPulse{0%,to{box-shadow:0 0 #ff99004d}50%{box-shadow:0 0 0 6px #f900}}@keyframes flowLine{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}@keyframes typewriter{0%{width:0}to{width:100%}}.btn{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:var(--bg-surface);color:var(--text-primary);justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:.72rem;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--border-hover);background:var(--bg-surface-hover)}.btn.btn-primary{background:var(--accent-primary);color:var(--text-inverse);border-color:var(--accent-primary)}.btn.btn-primary:hover{background:var(--accent-primary-light);border-color:var(--accent-primary-light)}.btn.btn-ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn.btn-ghost:hover{color:var(--text-primary);background:var(--accent-primary-faint)}.nav-item{border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;border:1px solid #0000;align-items:center;gap:10px;padding:10px 14px;font-size:.78rem;font-weight:400;text-decoration:none;display:flex}.nav-item:hover{color:var(--text-primary);background:var(--accent-primary-faint);border-color:var(--border-subtle)}.nav-item.active{color:var(--text-accent);background:var(--accent-primary-dim);border-color:#ff990026}.input{font-family:var(--font-mono);background:var(--bg-surface-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);transition:border-color var(--transition-fast);outline:none;width:100%;padding:10px 14px;font-size:.8rem}.input::placeholder{color:var(--text-muted)}.input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-faint)}.skeleton{background:linear-gradient(90deg, var(--bg-surface) 25%, var(--bg-surface-hover) 50%, var(--bg-surface) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s ease-in-out infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.tooltip-wrapper{position:relative}.tooltip{background:var(--bg-surface-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast);z-index:var(--z-dropdown);padding:6px 10px;font-size:.65rem;position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(-4px)}.tooltip-wrapper:hover .tooltip{opacity:1}.progress-bar{background:var(--bg-canvas);border-radius:2px;height:4px;overflow:hidden}.progress-bar-fill{background:var(--accent-primary);height:100%;transition:width var(--transition-slow);border-radius:2px}.progress-bar-fill.positive{background:var(--status-positive)}.page-enter{animation:.3s ease-out fadeIn}@media (width<=1200px){html{font-size:13px}}@media (width<=768px){html{font-size:12px}}
