body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;direction:rtl;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#f5f5f5;color:#333;direction:ltr;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{margin:0 auto;max-width:1200px;padding:20px}.app-with-sidebar{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:240px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);max-width:1500px}.page-brand{display:flex;grid-column:1;grid-row:1}.app-with-sidebar>.company-sidebar{grid-column:1;grid-row:2}.app-with-sidebar>.main-content{grid-column:2;grid-row:1/-1}.company-sidebar{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;max-height:calc(100vh - 40px);overflow-y:auto;padding:16px;position:-webkit-sticky;position:sticky;top:20px}.sidebar-title{color:#2c3e50;font-size:18px;font-weight:700;margin-bottom:12px}.sidebar-global{border-bottom:1px solid #e1e5e9;margin-bottom:16px;padding-bottom:16px}.global-view-button{border-left:3px solid #df5f2b}.global-view-button.active{background:#1d2927;border-color:#1d2927 #1d2927 #1d2927 #df5f2b;box-shadow:none}.company-list{display:flex;flex-direction:column;gap:8px}.company-button{background:#f8f9fa;border:1px solid #e1e5e9;border-radius:6px;color:#495057;cursor:pointer;padding:11px 12px;text-align:left;transition:all .2s ease;width:100%}.company-button small,.company-button span{display:block}.company-button span{font-weight:600}.company-button small{color:#6c757d;margin-top:3px}.company-button:hover{border-color:#007bff;transform:translateX(2px)}.company-button.active{background:#007bff;border-color:#007bff;box-shadow:0 2px 8px #007bff40;color:#fff}.company-button.active small{color:#fffc}.sidebar-state{color:#6c757d;font-size:14px;padding:12px 0}.sidebar-error{color:#721c24}.sidebar-error span{display:block;margin-bottom:10px}.main-content{min-width:0}.top-bar{align-items:center;display:flex;gap:20px;justify-content:space-between;text-align:left}.top-bar h1{margin-bottom:4px}.brand{align-items:center;display:flex;gap:14px;min-width:0}.brand-stacked{flex-direction:column;gap:12px;justify-content:center;margin-bottom:20px}.brand-stacked h1{margin-bottom:0}.brand-logo{border-radius:12px;display:block;flex-shrink:0;height:auto;max-width:100%}.active-company{color:#6c757d;font-size:14px}.user-actions{align-items:center;display:flex;gap:12px;justify-content:flex-end}.empty-panel{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#6c757d;padding:50px 20px;text-align:center}.sign-in-page{padding-top:10vh}.sign-in-button{padding:14px 28px}.header{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px;padding:20px;text-align:center}.header h1{color:#2c3e50;margin-bottom:20px}.nav-buttons{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.nav-button{background:#e9ecef;border:none;border-radius:6px;color:#495057;cursor:pointer;font-size:16px;font-weight:500;padding:12px 24px;transition:all .3s ease}.nav-button.active{background:#007bff;color:#fff}.nav-button:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.controls{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px;padding:20px}.search-container{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:15px}.refresh-button-container{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.search-input{border:1px solid #ddd;border-radius:4px;flex:1 1;font-size:14px;min-width:250px;padding:10px}.filter-controls{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.filter-select{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px}.data-table{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.table-container{max-height:70vh;overflow-x:auto;overflow-y:auto}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid #eee;padding:12px;text-align:left}th{background:#f8f9fa;cursor:pointer;font-weight:600;position:-webkit-sticky;position:sticky;top:0;-webkit-user-select:none;user-select:none;z-index:10}th:hover{background:#e9ecef}tr:hover{background:#f8f9fa}.table-row{cursor:pointer;transition:background-color .2s ease}.table-row.updated{animation:highlight-fade 2s ease-out;background-color:#d4edda!important}@keyframes highlight-fade{0%{background-color:#28a745}to{background-color:#d4edda}}.loading{color:#666;font-size:18px;padding:40px;text-align:center}.loading-spinner{animation:loading-spin .8s linear infinite;border:2px solid #c7ced4;border-radius:50%;border-top-color:#007bff;display:inline-block;height:18px;margin-right:10px;vertical-align:-3px;width:18px}@keyframes loading-spin{to{transform:rotate(1turn)}}.loading-more{background:#f8f9fa;color:#666;font-size:14px;padding:20px;text-align:center}.partial-results-warning{background:#fff8dd;border:1px solid #ffe08a;border-radius:4px;color:#684f00;margin:0 0 14px;padding:12px 15px}.error{background:#f8d7da;border-radius:4px;color:#721c24;margin:20px 0;padding:15px;text-align:center}.terminal-load-error{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.data-status{background:#e7f3ff;border-radius:4px;color:#0056b3;font-size:14px;margin-bottom:10px;padding:10px;text-align:center}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:8px;box-shadow:0 10px 25px #0003;max-height:80vh;max-width:500px;overflow-y:auto;padding:30px;width:90%}.modal h2{color:#2c3e50;margin-bottom:20px;text-align:center}.form-group{margin-bottom:15px}.form-group label{color:#555;display:block;font-weight:500;margin-bottom:5px}.form-group input,.form-group select{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:10px;width:100%}.form-group input:disabled,.form-group select:disabled{background-color:#f8f9fa;color:#6c757d;cursor:not-allowed}.present-warning{background:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;color:#856404;margin-bottom:20px;padding:15px;text-align:center}.form-actions{display:flex;gap:10px;justify-content:center;margin-top:20px}.btn{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover{background:#0056b3}.btn-primary:disabled{background:#6c757d;cursor:not-allowed}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#545b62}.btn-export{background:#17a2b8;color:#fff}.btn-export:hover{background:#138496}.btn-add{background:#28a745;color:#fff}.btn-add:hover{background:#218838}.btn:disabled{cursor:not-allowed;opacity:.65}.sort-indicator{margin-left:5px;opacity:.5}.sort-indicator.active{opacity:1}.status-badge{border-radius:12px;font-size:12px;font-weight:500;padding:4px 8px}.status-active{background:#d4edda;color:#155724}.status-inactive{background:#f8d7da;color:#721c24}.present-indicator{border-radius:50%;display:inline-block;height:10px;margin-right:5px;width:10px}.present-true{background:#28a745}.present-false{background:#dc3545}#toast-container{bottom:20px;position:fixed;right:20px;z-index:9999}@media (max-width:768px){.app{padding:10px}.app-with-sidebar{display:block}.company-sidebar{margin-bottom:12px;max-height:none;overflow:visible;position:static}.company-list{flex-direction:row;overflow-x:auto;padding-bottom:4px}.company-button{min-width:170px}.company-button:hover{transform:translateY(-1px)}.top-bar,.user-actions{align-items:stretch;flex-direction:column;text-align:center}.page-brand{justify-content:center;margin-bottom:12px}.filter-controls,.nav-buttons,.search-container{flex-direction:column}.filter-controls{align-items:stretch}.refresh-button-container .btn{width:100%}td,th{font-size:12px;padding:8px 4px}}.occ-export-overlay{align-items:center;background:#1118169e;display:flex;inset:0;justify-content:center;padding:24px 16px;position:fixed;z-index:1100}.occ-export-modal{background:#f7f8f4;border:1px solid #d8dedb;box-shadow:0 24px 70px #11181647;color:#17201f;display:flex;flex-direction:column;font-family:Avenir Next,Avenir,Segoe UI,sans-serif;gap:16px;max-height:min(88vh,860px);max-width:640px;overflow:auto;padding:0 22px 22px;width:min(640px,100%)}.occ-export-modal header{background:#1d2927;border-bottom:3px solid #df5f2b;color:#f2f5ef;margin:0 -22px 4px;padding:18px 22px 16px}.occ-export-modal header p,.occ-export-modal header span{color:#aeb9b5;font:700 10px/1.4 SFMono-Regular,Consolas,monospace;letter-spacing:.12em;margin:0;text-transform:uppercase}.occ-export-modal h2{font-family:Arial Narrow,Avenir Next Condensed,sans-serif;font-size:28px;letter-spacing:-.02em;margin:6px 0 8px;text-transform:uppercase}.occ-export-modal fieldset{border:1px solid #d8dedb;display:flex;flex-direction:column;gap:8px;margin:0;padding:12px 12px 10px}.occ-export-modal legend{color:#66716f;font:700 10px/1 Avenir Next,sans-serif;letter-spacing:.1em;padding:0 6px;text-transform:uppercase}.occ-export-check{align-items:flex-start;display:flex;font-size:14px;gap:10px}.occ-export-check input{margin-top:3px}.occ-export-check strong{display:block}.occ-export-check small{color:#66716f;display:block;font-size:12px}.occ-export-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.occ-export-modal label:not(.occ-export-check){display:flex;flex-direction:column;font-size:10px;font-weight:700;gap:5px;letter-spacing:.08em;text-transform:uppercase}.occ-export-modal input[type=date],.occ-export-modal input[type=text],.occ-export-modal input[type=time],.occ-export-modal select{background:#fff;border:1px solid #cbd2cf;border-radius:2px;color:#17201f;font:600 13px Avenir Next,sans-serif;min-height:38px;padding:7px 10px;text-transform:none}.occ-export-hint,.occ-export-progress{color:#66716f;font-size:13px;margin:0}.occ-export-error{background:#f8e8e6;border-left:4px solid #b93f34;color:#6b2a24;font-size:13px;margin:0;padding:10px 12px}.occ-export-actions{display:flex;gap:10px;justify-content:flex-end}.occ-export-modal .occ-button{background:#e9eeeb;border:1px solid #cbd2cf;border-radius:2px;color:#17201f;cursor:pointer;font:700 11px Avenir Next,sans-serif;letter-spacing:.06em;min-height:38px;padding:9px 15px;text-transform:uppercase}.occ-export-modal .occ-button-primary{background:#df5f2b;border-color:#df5f2b;color:#fff}.occ-export-modal .occ-button:disabled{cursor:wait;opacity:.65}@media (max-width:640px){.occ-export-grid{grid-template-columns:1fr}}.location-roster{--roster-ink:#17201f;--roster-muted:#66716f;--roster-line:#d8dedb;--roster-dark:#1d2927;--roster-accent:#df5f2b;color:var(--roster-ink);font-family:Avenir Next,Avenir,Segoe UI,sans-serif}.roster-header{background:var(--roster-dark);border-bottom:3px solid var(--roster-accent);color:#f2f5ef;padding:24px 28px}.roster-heading h2{font-family:Arial Narrow,Avenir Next Condensed,sans-serif;font-size:clamp(28px,4vw,42px);letter-spacing:-.025em;margin:5px 0;text-transform:uppercase}.roster-heading p{color:#aeb9b5;font-size:12px}.roster-kicker{color:#aeb9b5;font:700 10px SFMono-Regular,monospace;letter-spacing:.13em;text-transform:uppercase}.roster-back{background:#0000;border:0;color:#fff;cursor:pointer;font-weight:700;margin-bottom:20px;padding:4px 0}.roster-back:hover{color:#ffc5a9}.roster-export{background:#df5f2b;border:0;color:#fff;cursor:pointer;font:700 11px Avenir Next,sans-serif;letter-spacing:.06em;min-height:39px;padding:8px 16px;text-transform:uppercase;white-space:nowrap}.roster-export:hover{background:#c94e1d}.roster-controls{grid-gap:10px;align-items:end;display:grid;gap:10px;grid-template-columns:1.2fr 1fr 1.1fr 1fr 1.4fr auto;margin-top:22px}.roster-controls label{display:flex;flex-direction:column;font-size:10px;font-weight:700;gap:5px;letter-spacing:.07em;text-transform:uppercase}.roster-time-control{display:flex;flex-direction:column;gap:5px;position:relative}.roster-time-input{display:flex;gap:6px}.roster-time-clear{background:#ffffff1f;border:1px solid #55605d;border-radius:2px;color:#f2f5ef;cursor:pointer;flex:0 0 auto;font:700 15px Avenir Next,sans-serif;line-height:1;min-height:39px;width:34px}.roster-time-clear:hover{background:#ffffff38}.roster-controls input,.roster-controls select{background:#fff;border:1px solid #cbd2cf;border-radius:2px;color:var(--roster-ink);font:600 13px Avenir Next,sans-serif;min-height:39px;padding:7px 9px;width:100%}.roster-time-control small{color:#aeb9b5;font-size:9px;font-weight:500;left:0;letter-spacing:0;max-width:100%;position:absolute;text-transform:none;top:calc(100% + 3px)}.location-roster button:focus-visible,.location-roster input:focus-visible,.location-roster select:focus-visible,.roster-back:focus-visible,.roster-table tbody tr:focus-visible{outline:3px solid #f6b44f;outline-offset:2px}.roster-notice{background:#f5f1e8;border:1px solid #e3d8bd;color:#675c44;font-size:12px;margin-top:14px;padding:10px 13px}.roster-summary{border:1px solid var(--roster-line);display:grid;grid-template-columns:1.5fr repeat(4,1fr);margin-top:14px}.roster-summary>div{background:#fff;border-right:1px solid var(--roster-line);padding:16px}.roster-summary>div:last-child{border-right:0}.roster-summary span{color:var(--roster-muted);display:block;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.roster-summary strong{display:block;font:700 21px SFMono-Regular,monospace;margin-top:7px}.roster-state{align-items:center;background:#fff;border:1px solid var(--roster-line);color:var(--roster-muted);display:flex;flex-direction:column;gap:8px;justify-content:center;margin-top:14px;min-height:180px;padding:24px;text-align:center}.roster-error{border-left:4px solid #b93f34;color:#752f29}.roster-page-error button,.roster-pagination button,.roster-state button{background:#e9eeeb;border:1px solid #cbd2cf;cursor:pointer;font-weight:700;padding:8px 13px}.roster-table-wrap{background:#fff;border:1px solid var(--roster-line);margin-top:14px;overflow-x:auto}.roster-table{border-collapse:collapse;font-size:12px;min-width:820px;width:100%}.roster-table td,.roster-table th{border-bottom:1px solid #edf0ee;padding:12px 10px}.roster-table thead th{color:var(--roster-muted);cursor:default;font-size:9px;letter-spacing:.07em;position:static;text-transform:uppercase}.roster-table tbody tr{cursor:pointer}.roster-table tbody tr:hover{background:#f7f8f4}.roster-zone{background:#eef1ed;border:1px solid #d9dfdb;display:inline-block;font:700 9px SFMono-Regular,monospace;padding:5px 7px;text-transform:uppercase;white-space:nowrap}.roster-zone-floor_1,.roster-zone-floor_3{background:#e8f6f1;border-color:#c5e4d6;color:#1d6f55}.roster-zone-main{background:#fff2e8;border-color:#efd3c4;color:#a14a22}.roster-journey{align-items:center;display:flex;flex-wrap:nowrap;gap:5px;min-width:-webkit-max-content;min-width:max-content}.roster-step{background:#f0f3f1;border:1px solid #d9dfdb;font-size:10px;padding:5px 8px;white-space:nowrap}.roster-step+.roster-step:before{color:#8b9491;content:"→";margin-right:8px}.roster-step-synthetic{background:#f5f1e8;border-color:#e3d8bd}.roster-incomplete{border:1px solid #c9cecb;color:#59635f;font:700 9px SFMono-Regular,monospace;margin-left:5px;padding:5px 7px;text-transform:uppercase;white-space:nowrap}.roster-page-error{background:#f8ecea;color:#752f29;gap:12px;padding:10px 12px}.roster-page-error,.roster-pagination{align-items:center;display:flex;justify-content:space-between}.roster-pagination{color:var(--roster-muted);font-size:12px;padding:14px}.roster-pagination button:disabled{cursor:wait;opacity:.65}@media (max-width:950px){.roster-controls{grid-template-columns:repeat(2,1fr)}.roster-export,.roster-search{grid-column:1/-1}.roster-export{justify-self:start}.roster-time-control small{max-width:150px;position:static}.roster-summary{grid-template-columns:repeat(2,1fr)}.roster-summary>div{border-bottom:1px solid var(--roster-line)}}@media (max-width:600px){.roster-header{padding:20px 17px}.roster-controls{grid-template-columns:1fr}.roster-export,.roster-search{grid-column:auto}.roster-export{justify-self:stretch}.roster-summary{grid-template-columns:1fr 1fr}.roster-summary>div:first-child{grid-column:1/-1}.roster-journey{align-items:flex-start;flex-direction:column;min-width:0}.roster-step+.roster-step:before{content:none}}.occupancy-dashboard{--occ-ink:#17201f;--occ-muted:#66716f;--occ-line:#d8dedb;--occ-paper:#f7f8f4;--occ-panel:#fff;--occ-dark:#1d2927;--occ-accent:#df5f2b;--occ-signal:#15a077;color:var(--occ-ink);font-family:Avenir Next,Avenir,Segoe UI,sans-serif}.occ-command-bar{align-items:flex-end;background:linear-gradient(90deg,hsla(0,0%,100%,.035) 1px,#0000 1px) 0 0 /28px 28px,var(--occ-dark);border:1px solid #2e3d3a;color:#f2f5ef;display:flex;gap:28px;justify-content:space-between;padding:26px 28px;position:relative}.occ-command-bar:after{background:var(--occ-accent);bottom:-1px;content:"";height:3px;left:28px;position:absolute;width:72px}.occ-eyebrow,.occ-kicker{color:#788380;font-family:SFMono-Regular,Consolas,monospace;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.occ-eyebrow{color:#aeb9b5;margin-bottom:8px}.occ-eyebrow span{background:#36d29d;border-radius:50%;box-shadow:0 0 0 4px #36d29d1f;display:inline-block;height:7px;margin-right:9px;width:7px}.occ-command-bar h2{font-family:Arial Narrow,Avenir Next Condensed,sans-serif;font-size:clamp(28px,4vw,43px);font-stretch:condensed;letter-spacing:-.025em;line-height:1;margin:0;text-transform:uppercase}.occ-command-bar p{color:#aeb9b5;font-size:12px;margin:10px 0 0}.occ-command-controls{align-items:flex-end;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.occ-command-controls label,.occ-range label,.occ-search-field{color:inherit;display:flex;flex-direction:column;font-size:10px;font-weight:700;gap:5px;letter-spacing:.08em;text-transform:uppercase}.occ-command-controls input,.occ-command-controls select,.occ-range input,.occ-search-field input,.occ-search-field select{background:#fff;border:1px solid #cbd2cf;border-radius:2px;color:var(--occ-ink);font:600 13px Avenir Next,sans-serif;min-height:38px;padding:7px 10px}.occ-command-controls select{min-width:175px}.occ-button{background:#e9eeeb;border:1px solid #cbd2cf;border-radius:2px;color:var(--occ-ink);cursor:pointer;font:700 11px Avenir Next,sans-serif;letter-spacing:.06em;min-height:38px;padding:9px 15px;text-transform:uppercase}.occ-button:hover{background:#dce4df}.occ-button:disabled{cursor:wait;opacity:.65}.occ-button-primary{background:var(--occ-accent);border-color:var(--occ-accent);color:#fff}.occ-button-primary:hover{background:#c94e1d}.occ-button:focus-visible,.occupancy-dashboard input:focus-visible,.occupancy-dashboard select:focus-visible{outline:3px solid #f6b44f;outline-offset:2px}.occ-loading,.occ-state-panel{align-items:center;background:var(--occ-panel);border:1px solid var(--occ-line);display:flex;gap:16px;justify-content:center;margin-top:14px;min-height:100px;padding:20px}.occ-loader{animation:occ-spin .8s linear infinite;border:2px solid #d5ddda;border-radius:50%;border-top:2px solid var(--occ-accent);height:22px;width:22px}@keyframes occ-spin{to{transform:rotate(1turn)}}.occ-state-error{border-left:4px solid #b93f34;justify-content:flex-start}.occ-state-error p{color:var(--occ-muted);font-size:13px;margin:3px 0 0}.occ-state-error .occ-button{margin-left:auto}.occ-state-code{color:#b93f34;font:700 11px SFMono-Regular,monospace}.occ-state-inline{margin-top:0;min-height:78px;padding:16px;text-align:left}.occ-note{background:#f6f7f4;border-left:3px solid #c58a20;color:var(--occ-muted);font-size:12px;line-height:1.45;margin:14px 0 0;padding:9px 12px}.occ-metrics{border-bottom:1px solid var(--occ-line);border-left:1px solid var(--occ-line);display:grid;grid-template-columns:repeat(4,1fr);margin-top:14px}.occ-metric{background:var(--occ-panel);border-right:1px solid var(--occ-line);border-top:1px solid var(--occ-line);min-height:142px;padding:20px;position:relative}.occ-metric:before{background:#b9c2be;content:"";height:3px;left:20px;position:absolute;top:0;width:28px}.occ-metric-live:before{background:var(--occ-signal);width:58px}.occ-metric-status:before{background:var(--occ-accent)}.occ-metric-label{color:var(--occ-muted);display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.occ-metric strong{display:block;font-family:Arial Narrow,Avenir Next Condensed,sans-serif;font-size:48px;line-height:1;margin:13px 0 8px}.occ-metric-status strong{font-size:34px;margin-top:22px;text-transform:uppercase}.occ-metric small{color:var(--occ-muted);display:block;font-size:11px}.occ-metric small i{background:var(--occ-signal);border-radius:50%;display:inline-block;height:6px;margin-right:6px;width:6px}.occ-panel{background:var(--occ-panel);border:1px solid var(--occ-line);margin-top:14px;padding:20px}.occ-panel-heading{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.occ-panel-heading h3{font-size:17px;letter-spacing:-.01em;margin:3px 0 0}.occ-tag,.occ-unknown-badge{background:#eef1ed;border:1px solid #d9dfdb;color:#59635f;font:700 9px SFMono-Regular,monospace;letter-spacing:.06em;padding:5px 7px;text-transform:uppercase}.occ-zone-track{grid-gap:1px;background:var(--occ-line);border:1px solid var(--occ-line);display:grid;gap:1px;grid-template-columns:1fr 1.4fr 1fr}.occ-zone-track-unknown{grid-template-columns:1fr 1.2fr 1fr 1fr}.occ-zone{background:#f7f8f5;border:0;color:inherit;cursor:pointer;font:inherit;min-height:92px;padding:14px 16px;text-align:left}.occ-zone:hover:not(:disabled){background:#eef2ed}.occ-zone:focus-visible{outline:3px solid #f6b44f;outline-offset:-3px;position:relative;z-index:1}.occ-zone:disabled{cursor:not-allowed}.occ-zone>span{color:#8b9491;font:700 10px SFMono-Regular,monospace}.occ-zone strong{display:block;font-size:20px;margin:8px 0 3px}.occ-zone small{color:var(--occ-muted);font-size:10px}.occ-zone-main{background:#fff2e8;box-shadow:inset 3px 0 var(--occ-accent)}.occ-zone-main strong{font-size:29px}.occ-zone-unknown{background:#f3f1ee;box-shadow:inset 3px 0 #8d9693}.occ-zone-unknown strong{font-size:20px}.occ-zone-disabled strong{color:#909996;font-size:15px}.occ-gate-class-main{background:#fff2e8;border-color:#efd3c4;color:#a14a22}.occ-gate-class-floor_1,.occ-gate-class-floor_3{background:#e8f6f1;border-color:#c5e4d6;color:#1d6f55}.occ-gate-class-error{background:#f8ecea;border-color:#e3c7c3;color:#8d3a32}.occ-layout{grid-gap:14px;display:grid;gap:14px;grid-template-columns:minmax(0,1.75fr) minmax(290px,.8fr)}.occ-breakdown-panel,.occ-timeline-panel{min-width:0}.occ-panel-heading-wrap{align-items:flex-end}.occ-range{display:flex;gap:8px}.occ-range label{color:var(--occ-muted)}.occ-range input{min-height:32px;padding:4px 7px}.occ-chart{direction:ltr;margin:0;overflow:visible}.occ-chart svg{display:block;max-height:250px;width:100%}.occ-chart-grid{stroke:#e3e7e4;stroke-dasharray:2 4}.occ-chart-label{fill:#7b8581;font:9px SFMono-Regular,monospace}.occ-chart-x-tick line{stroke:#edf0ee;stroke-dasharray:1 5}.occ-chart-x-tick text{fill:#7b8581;font:8px SFMono-Regular,monospace}.occ-chart-line{fill:none;stroke:var(--occ-signal);stroke-linecap:square;stroke-linejoin:round;stroke-width:2.5}.occ-chart-area{fill:#15a07717;stroke:none}.occ-chart-point{fill:#fff;stroke:var(--occ-signal);stroke-width:2}.occ-chart-plot{position:relative}.occ-chart-plot svg{cursor:crosshair}.occ-chart-crosshair{stroke:var(--occ-signal);stroke-dasharray:3 3;stroke-width:1}.occ-chart-tooltip{background:#1d2422f0;border-radius:5px;color:#fff;padding:5px 8px;pointer-events:none;position:absolute;white-space:nowrap;z-index:2}.occ-chart-tooltip-above{transform:translate(-50%,calc(-100% - 8px))}.occ-chart-tooltip-below{transform:translate(-50%,8px)}.occ-chart-tooltip strong{display:block;font-size:12px}.occ-chart-tooltip span{color:#b9c2be;font:9px SFMono-Regular,monospace}.occ-chart figcaption{color:var(--occ-muted);display:flex;font:9px SFMono-Regular,monospace;justify-content:space-between;padding:2px 32px 0}.occ-empty{color:var(--occ-muted);font-size:13px;padding:34px 10px;text-align:center}.occ-table-wrap{overflow-x:auto}.occ-table{font-size:12px;width:100%}.occ-table td,.occ-table th{border-bottom:1px solid #edf0ee;padding:10px 7px}.occ-table thead th{background:#0000;color:var(--occ-muted);cursor:default;font-size:9px;letter-spacing:.06em;position:static;text-transform:uppercase}.occ-table tbody th{font-weight:700}.occ-table tbody td small,.occ-table tbody th small{color:var(--occ-muted);display:block;font:9px SFMono-Regular,monospace;margin-top:2px}.occ-gates{display:flex;flex-direction:column}.occ-gate-row{grid-gap:14px;align-items:center;border-top:1px solid #edf0ee;display:grid;gap:14px;grid-template-columns:210px minmax(100px,1fr) 45px 90px;min-height:52px}.occ-gate-row:first-child{border-top:0}.occ-gate-code span,.occ-gate-code strong{display:block}.occ-gate-code strong{font:700 11px SFMono-Regular,monospace}.occ-gate-code span{color:var(--occ-muted);font:9px SFMono-Regular,monospace;margin-top:3px}.occ-gate-bar{background:#edf0ee;height:8px;overflow:hidden}.occ-gate-bar span{background:var(--occ-accent);display:block;height:100%}.occ-gate-count{font:700 13px SFMono-Regular,monospace;text-align:right}.occ-unknown-badge{text-align:center}.occ-car-search{align-items:end;background:var(--occ-paper);border:1px solid var(--occ-line);display:flex;flex-wrap:wrap;gap:12px;padding:14px}.occ-car-search fieldset{border:0;display:flex;gap:13px;margin:0;padding:0 10px 0 0}.occ-car-search legend{color:var(--occ-muted);font-size:9px;font-weight:700;letter-spacing:.08em;margin-bottom:7px;text-transform:uppercase}.occ-car-search fieldset label{align-items:center;display:flex;font-size:12px;gap:5px}.occ-search-field{color:var(--occ-muted);flex:1 1 180px}.occ-search-field input,.occ-search-field select{width:100%}.occ-car-identity{background:var(--occ-dark);color:#fff;display:grid;grid-template-columns:repeat(3,1fr);margin-top:14px}.occ-car-identity>div{border-right:1px solid #3b4846;padding:14px}.occ-car-identity span{color:#aeb9b5;display:block;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.occ-car-identity strong{display:block;font:700 16px SFMono-Regular,monospace;margin-top:5px}.occ-event-list{list-style:none;margin:18px 0 0 8px;padding:0;position:relative}.occ-event-list:before{background:var(--occ-line);bottom:15px;content:"";left:5px;position:absolute;top:15px;width:1px}.occ-event{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:14px 105px 75px minmax(170px,1fr) minmax(130px,.7fr);min-height:44px;position:relative}.occ-event-marker{background:#8d9693;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #8d9693;height:11px;width:11px;z-index:1}.occ-event-entry .occ-event-marker{background:var(--occ-signal);box-shadow:0 0 0 1px var(--occ-signal)}.occ-event-exit .occ-event-marker{background:var(--occ-accent);box-shadow:0 0 0 1px var(--occ-accent)}.occ-event-move .occ-event-marker{background:#287f9d;box-shadow:0 0 0 1px #287f9d}.occ-event-reset .occ-event-marker,.occ-event-synthetic .occ-event-marker{background:#c58a20;box-shadow:0 0 0 1px #c58a20}.occ-event-reset>strong{color:#8a5f10}.occ-event small,.occ-event time{color:var(--occ-muted);font:9px SFMono-Regular,monospace}.occ-event>strong{font-size:10px;letter-spacing:.06em;text-transform:uppercase}.occ-event>span:not(.occ-event-marker){font:10px SFMono-Regular,monospace}@media (max-width:1050px){.occ-command-bar{align-items:stretch;flex-direction:column}.occ-command-controls{justify-content:flex-start}.occ-metrics{grid-template-columns:repeat(2,1fr)}.occ-layout{grid-template-columns:1fr}}@media (max-width:680px){.occ-command-bar{padding:21px 18px}.occ-command-controls,.occ-command-controls .occ-button,.occ-command-controls input,.occ-command-controls label,.occ-command-controls select{width:100%}.occ-metrics{grid-template-columns:1fr 1fr}.occ-metric{min-height:125px;padding:16px}.occ-metric strong{font-size:38px}.occ-zone-track{grid-template-columns:1fr}.occ-panel-heading-wrap{align-items:stretch;flex-direction:column}.occ-range,.occ-range label{flex:1 1}.occ-gate-row{gap:7px;grid-template-columns:1fr 45px;padding:9px 0}.occ-gate-bar{grid-column:1/-1;grid-row:2}.occ-unknown-badge{grid-column:2;grid-row:1}.occ-gate-count{display:none}.occ-car-search{align-items:stretch;flex-direction:column}.occ-car-identity{grid-template-columns:1fr}.occ-event{align-items:start;gap:4px 10px;grid-template-columns:14px 90px 1fr;padding:8px 0}.occ-event small,.occ-event>span:not(.occ-event-marker){grid-column:2/-1}}@media (prefers-reduced-motion:reduce){.occ-loader{animation:none}}
/*# sourceMappingURL=main.87204c01.css.map*/