@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";.notification-trigger,.notification-close{display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid #dce5eb;border-radius:8px;color:#64748b;min-width:38px;min-height:38px;cursor:pointer}.notification-trigger{position:relative}.notification-trigger>span{position:absolute;top:-6px;right:-7px;min-width:18px;padding:2px 4px;background:#bb4545;border-radius:9px;color:#fff;font-size:10px;font-weight:700}.notification-dialog{padding:0;width:min(540px,calc(100vw - 24px));max-height:calc(100dvh - 32px);border:1px solid #dce5eb;border-radius:12px;box-shadow:0 20px 60px #0f172a33;color:#263449;overflow:hidden}.notification-dialog[open]{display:flex;flex-direction:column}.notification-dialog::backdrop{background:#0f172a66}.notification-header{padding:22px;display:flex;justify-content:space-between;gap:16px;align-items:start}.notification-header h2{font-size:19px;margin:0}.notification-header p{margin:7px 0 0;font-size:12px;color:#64748b}.notification-tabs{display:flex;gap:20px;padding:0 22px;border-bottom:1px solid #e5ebf0}.notification-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:12px 0;color:#64748b;font-weight:700;cursor:pointer}.notification-tabs button[aria-selected=true]{border-color:#1cb5a3;color:#148d80}.notification-content{overflow:auto;overscroll-behavior:contain;min-height:100px;padding:0 22px}.notification-item{padding:20px 0;border-bottom:1px solid #e5ebf0;overflow-wrap:anywhere}.notification-item:last-child{border-bottom:0}.notification-meta{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:11px;color:#64748b}.notification-meta>span{padding:4px 7px;border-radius:4px;font-weight:700}.notification-meta .critical{background:var(--status-danger-bg);color:var(--status-danger-text)}.notification-meta .resolved{background:var(--status-success-bg);color:var(--status-success-text)}.notification-item h3{margin:12px 0 6px;font-size:14px;line-height:1.5}.notification-item p{font-size:12px;color:#64748b;line-height:1.6;margin:8px 0}.notification-item .notification-device{font-weight:700;color:#334155}.notification-item .notification-resolution{color:#148d80}.notification-empty{padding:25px 0;font-size:13px;color:#64748b}.notification-footer{margin:0;border-top:1px solid #e5ebf0;padding:14px 22px;font-size:11px;line-height:1.5;color:#64748b;background:#f8fafc}.notification-trigger:focus-visible,.notification-close:focus-visible,.notification-tabs button:focus-visible{outline:2px solid #148d80;outline-offset:3px}.notification-meta .warning{background:var(--status-warning-bg);color:var(--status-warning-text)}.notification-meta .info{background:var(--status-info-bg);color:var(--status-info-text)}.notification-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px}.notification-pagination .outline-button{width:auto;height:34px;min-height:34px;margin:0;padding:0 12px;font-size:12px;background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border)}.notification-pagination button:disabled{opacity:.5;cursor:default}.notification-pagination span{font-size:12px;white-space:nowrap}.notification-footer p{margin:10px 0 0}.account-modal-backdrop{position:fixed;inset:0;z-index:80;background:#0f172a8c;display:grid;place-items:center;padding:18px}.account-modal{width:min(100%,440px);padding:24px;display:grid;gap:16px;max-height:calc(100vh - 36px);overflow:auto}.account-modal header,.account-modal footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.account-modal h2{font-size:18px;margin:0}.account-modal header button{border:0;background:none;color:#64748b}.account-modal label{display:grid;gap:6px;font-size:13px;font-weight:600}.account-modal input{height:40px;padding:0 10px;border:1px solid #cbd5e1;border-radius:7px}.account-modal footer{justify-content:flex-end}.account-modal footer button{width:auto;margin:0}.settings-page{display:grid;gap:20px;max-width:900px}.settings-card{padding:24px}.settings-card h2{font-size:18px;margin:0 0 8px}.settings-card p{font-size:13px;color:#64748b;line-height:1.5}.settings-theme-options{display:flex;gap:8px;margin-top:18px}.settings-theme-options button{width:130px;justify-content:center;margin:0;font-size:13px}.settings-theme-options .outline-button{background:#fff}.settings-theme-options .primary-button{background:#1cb5a3}.settings-detail{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--border,#e2e8f0);font-size:13px;align-items:center}.settings-detail span,.settings-timezone-form>label{color:var(--text-muted,#64748b)}.settings-detail strong{font-weight:600;overflow-wrap:anywhere}.settings-timezone-form{display:grid;gap:10px;margin-top:18px}.settings-timezone-form>label{font-size:13px;font-weight:600}.settings-timezone-controls{display:flex;gap:10px;align-items:center}.settings-timezone-controls select{min-width:0;flex:1;max-width:320px}.settings-timezone-controls button{margin:0;white-space:nowrap}.settings-timezone-form p{margin:0}.settings-card .success-banner{margin:12px 0 0}.dark .settings-detail{border-color:#334155}.dark .settings-card p,.dark .settings-detail span,.dark .settings-timezone-form>label{color:#a9b9cd}.dark .settings-theme-options .outline-button{background:#17283c}@media(max-width:600px){.settings-timezone-controls{align-items:stretch;flex-direction:column}.settings-timezone-controls select{max-width:none;width:100%}.settings-timezone-controls button{width:100%}}.settings-timezone-controls select{width:100%;height:40px;flex:1 1 320px;padding:0 10px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#263449}.settings-timezone-controls .primary-button{width:auto;flex:0 0 auto;height:40px;padding:0 16px;font-size:12px}.settings-timezone-controls .primary-button:disabled{opacity:.55;cursor:default}@media(max-width:600px){.settings-timezone-controls select,.settings-timezone-controls .primary-button{width:100%;flex:auto}}.settings-logo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.settings-logo-variant{min-width:0;border:1px solid #dbe5ed;border-radius:9px;padding:15px}.settings-logo-variant h3{font-size:13px;margin:0 0 12px}.settings-logo-preview{height:110px;border:1px solid #dbe5ed;border-radius:7px;display:grid;place-items:center;padding:12px;overflow:hidden}.settings-logo-preview.light{background:#fff;color:#94a3b8}.settings-logo-preview.dark{background:#172638;color:#b6c7d4}.settings-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.settings-logo-preview span{font-size:12px}.settings-logo-actions{display:flex;gap:8px;margin-top:12px}.settings-logo-actions .primary-button,.settings-logo-actions .outline-button{width:auto;height:38px;margin:0;padding:0 13px;font-size:12px}.settings-logo-notice{color:#0c826f;font-size:12px}.dark .settings-logo-variant{border-color:#344757}.dark .settings-logo-preview.light{color:#64748b}.dark .settings-logo-preview.dark{border-color:#42596a}@media(max-width:600px){.settings-logo-grid{grid-template-columns:1fr}.settings-logo-actions .primary-button,.settings-logo-actions .outline-button{flex:1}}.settings-telegram-info{padding:12px 14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;font-size:13px;line-height:1.6;margin:16px 0}.settings-telegram fieldset{border:0;padding:0;margin:18px 0 0;min-width:0;display:grid;gap:18px}.settings-telegram label{display:grid;gap:8px;font-size:14px;font-weight:600;color:var(--text-primary)}.settings-telegram label input:not([type=checkbox]){width:100%;height:40px;box-sizing:border-box;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-elevated);color:var(--text-primary);font:inherit;font-weight:400}.settings-telegram small{font-size:12px;line-height:1.6;color:var(--text-secondary);font-weight:400}.settings-telegram .settings-telegram-enable{display:flex;align-items:center;gap:10px}.settings-telegram-enable input{width:16px;height:16px;margin:0;accent-color:#1cb5a3}.settings-telegram-token{position:relative}.settings-telegram-token input{padding-right:44px!important}.settings-token-eye{position:absolute;right:0;top:0;height:40px;width:40px;display:grid;place-items:center;background:transparent;color:var(--text-secondary);border:0;cursor:pointer}.settings-telegram-actions .primary-button,.settings-telegram-history .outline-button{width:auto;height:38px;min-height:38px;padding:0 14px;margin:0;font-size:13px}.settings-telegram button:disabled,.settings-telegram fieldset:disabled button{opacity:.6;cursor:not-allowed}.settings-telegram-history{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px}.settings-telegram-history h3{font-size:14px;margin:0}.settings-telegram-deliveries{padding:0;list-style:none;border:1px solid var(--border);border-radius:8px;overflow:hidden}.settings-telegram-deliveries li{display:grid;gap:5px;padding:12px;font-size:13px;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.settings-telegram-deliveries li:last-child{border-bottom:0}.settings-page{max-width:640px;gap:24px}.settings-card{padding:32px}.settings-card h2{font-size:20px;font-weight:600;line-height:1.5;margin:0 0 8px}.settings-card p{font-size:14px;color:var(--text-secondary)}.settings-card .settings-card-description{margin:0 0 24px}.settings-account-details{display:flex;flex-direction:column;gap:8px;margin-top:12px;font-size:14px;line-height:1.5;color:var(--text-primary);overflow-wrap:anywhere}.settings-account-details strong{font-weight:700}.settings-timezone-form>label{font-size:14px;color:var(--text-primary)}.settings-timezone-controls select{font-family:inherit;font-size:14px;background:var(--bg-input);color:var(--text-primary);border-color:var(--border)}@media(max-width:600px){.settings-card{padding:24px}}.settings-token-eye span{font-size:20px;line-height:1}.settings-telegram-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.settings-telegram-actions .outline-button{width:auto;height:38px;min-height:38px;padding:0 14px;margin:0;font-size:13px}.tg-manage-dialog{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border)}.tg-manage-content{padding-bottom:24px}.tg-manage-content p{font-size:13px;line-height:1.6;color:var(--text-secondary)}.tg-manage-content .settings-telegram-history{margin-top:20px}.tg-manage-content .settings-telegram-actions{margin-bottom:4px}.tg-manage-content .form-error{color:var(--status-danger-text)}@media(max-width:600px){.settings-telegram-actions{gap:8px;flex-wrap:nowrap}.settings-telegram-actions .primary-button,.settings-telegram-actions .outline-button{min-width:0;padding:0 10px;font-size:12px}.tg-manage-dialog .notification-header h2{font-size:18px}}.sensor-management .page-heading{margin-bottom:22px}.sensor-management .page-heading h1{margin:0 0 6px}.sensor-manage-toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:18px 0}.sensor-manage-toolbar .primary-button{width:auto;min-height:40px;margin:0;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-size:12px;padding:0 14px}.sensor-manage-toolbar .outline-button{min-height:40px;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.sensor-manage-search{display:flex;align-items:center;gap:9px;min-width:250px;flex:1;border:1px solid #cbd8e3;border-radius:8px;background:#fff;padding:0 12px;color:#718398}.sensor-manage-search:focus-within{border-color:#1cb5a3;box-shadow:0 0 0 3px #1cb5a322}.sensor-manage-search input{height:39px;width:100%;border:0;outline:0;background:transparent;color:#263449;font-size:13px}.sensor-manage-panel{padding:0;overflow:hidden}.sensor-manage-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:20px 22px;border-bottom:1px solid #e5ebf0}.sensor-manage-heading h2{font-size:17px;margin:0}.sensor-manage-heading span{font-size:12px;color:#64748b}.sensor-manage-empty{margin:0;padding:26px 22px;color:#64748b;font-size:13px}.sensor-manage-table-wrap{overflow-x:auto}.sensor-manage-table{width:100%;table-layout:fixed;border-collapse:collapse;text-align:left;font-size:12px}.sensor-manage-table th:nth-child(1){width:16%}.sensor-manage-table th:nth-child(2){width:19%}.sensor-manage-table th:nth-child(3){width:12%}.sensor-manage-table th:nth-child(4){width:10%}.sensor-manage-table th:nth-child(5){width:10%}.sensor-manage-table th:nth-child(6){width:12%}.sensor-manage-table th:nth-child(7){width:21%}.sensor-manage-table th{background:#f7f9fb;color:#64748b;font-size:11px;font-weight:700;padding:12px 14px}.sensor-manage-table td{padding:15px 14px;border-top:1px solid #e9eef2;vertical-align:middle;color:#334155}.sensor-manage-table strong,.sensor-manage-table small{display:block;overflow-wrap:anywhere}.sensor-manage-table strong{font-size:12px;color:#1e293b}.sensor-manage-table small{font-size:11px;color:#8090a0;margin-top:4px}.sensor-manage-status{display:inline-block;border-radius:999px;background:#e7eaee;color:#526171;padding:5px 9px;text-transform:capitalize;font-size:11px;font-weight:700}.sensor-manage-status.online{background:#e0f5ee;color:#148266}.sensor-manage-status.warning{background:#fff3d8;color:#98650f}.sensor-manage-status.offline{background:#fde8e5;color:#b5453e}.sensor-manage-enabled{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:5px}.sensor-manage-enabled.yes{color:#13856a;background:#e5f6ef}.sensor-manage-enabled.no{color:#bf4842;background:#fdeceb}.sensor-manage-actions{display:flex;gap:5px;flex-wrap:wrap}.sensor-manage-actions button{border:0;background:transparent;color:#137d91;padding:5px 6px;border-radius:5px;font-size:11px;font-weight:700;cursor:pointer}.sensor-manage-actions button:hover{background:#eaf6f6}.sensor-manage-actions button:focus-visible{outline:2px solid #1cb5a3;outline-offset:2px}.sensor-manage-dialog{width:min(500px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:0;border:1px solid #dce5eb;border-radius:11px;background:#fff;color:#1e293b;box-shadow:0 22px 60px #0f172a33}.sensor-manage-dialog::backdrop{background:#0f172a77}.sensor-manage-dialog form{display:flex;flex-direction:column;max-height:calc(100dvh - 30px)}.sensor-manage-dialog header{display:flex;justify-content:space-between;gap:14px;padding:21px 23px 18px;border-bottom:1px solid #e5ebf0}.sensor-manage-dialog h2{margin:0;font-size:18px}.sensor-manage-dialog header p{margin:5px 0 0;color:#64748b;font-size:12px}.sensor-manage-close{border:0;background:transparent;color:#64748b;cursor:pointer;padding:3px;align-self:start}.sensor-manage-close:hover{color:#1e293b}.sensor-manage-dialog-body{display:grid;gap:16px;padding:20px 23px;overflow:auto}.sensor-manage-dialog-body>label{display:grid;gap:6px;color:#334155;font-size:12px;font-weight:700}.sensor-manage-dialog-body input,.sensor-manage-dialog-body select{width:100%;height:41px;border:1px solid #cbd8e3;border-radius:7px;padding:0 11px;background:#fff;color:#263449;font-size:13px}.sensor-manage-dialog-body input:focus,.sensor-manage-dialog-body select:focus{outline:2px solid #1cb5a3;outline-offset:1px}.sensor-manage-dialog-body .sensor-manage-check{display:flex;align-items:center;gap:10px}.sensor-manage-check input{width:17px;height:17px;accent-color:#18a998}.sensor-manage-help{font-size:11px;line-height:1.5;color:#64748b;margin:0}.sensor-manage-endpoint{display:grid;gap:7px;padding:13px;border:1px solid #dce8ed;border-radius:8px;background:#f7fafb}.sensor-manage-endpoint>span{font-size:11px;font-weight:700;color:#526171}.sensor-manage-endpoint code{font-size:11px;overflow-wrap:anywhere;color:#1769aa}.sensor-manage-endpoint small{color:#64748b;font-size:11px;line-height:1.5}.sensor-manage-error{margin:0;padding:10px;border-radius:7px;border:1px solid var(--status-danger-border);background:var(--status-danger-bg);color:var(--status-danger-text);font-size:12px}.sensor-manage-dialog footer{display:flex;justify-content:flex-end;gap:9px;padding:16px 23px;border-top:1px solid #e5ebf0}.sensor-manage-dialog footer .primary-button{width:auto;margin:0;min-width:130px;font-size:12px;padding:0 14px}.sensor-manage-dialog footer .outline-button{min-width:75px}.sensor-manage-dialog footer .primary-button,.sensor-manage-dialog footer .outline-button{height:40px;min-height:40px;line-height:1}.sensor-manage-custom-id{display:grid;gap:4px;margin:0;padding:10px 12px;border:1px solid #dce8ed;border-radius:7px;background:#f7fafb;color:#526171;font-size:11px}.sensor-manage-custom-id code{font-size:12px;color:#1769aa;overflow-wrap:anywhere}.sensor-manage-toolbar button:focus-visible,.sensor-manage-dialog button:focus-visible{outline:2px solid #1cb5a3;outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:880px){.sensor-manage-table{table-layout:auto}.sensor-manage-table thead{display:none}.sensor-manage-table,.sensor-manage-table tbody,.sensor-manage-table tr,.sensor-manage-table td{display:block}.sensor-manage-table tr{padding:11px 15px;border-top:1px solid var(--border)}.sensor-manage-table td{display:flex;justify-content:space-between;gap:15px;border:0;padding:6px 0;text-align:right}.sensor-manage-table td:before{content:attr(data-label);color:#718398;font-size:11px;font-weight:700;text-align:left;flex:none}.sensor-manage-table td:last-child{display:block;text-align:left;padding-top:12px}.sensor-manage-table td:last-child:before{display:block;margin-bottom:7px}.sensor-manage-actions button{padding:7px 10px;border:1px solid #dce8ed;background:#fff}}@media(max-width:600px){.sensor-manage-toolbar{align-items:stretch}.sensor-manage-search{flex-basis:100%;min-width:0}.sensor-manage-toolbar .outline-button,.sensor-manage-toolbar .primary-button{justify-content:center;flex:1}.sensor-manage-heading{padding:17px}.sensor-manage-dialog header{padding:18px}.sensor-manage-dialog-body{padding:18px}.sensor-manage-dialog footer{padding:14px 18px}}.sensor-manage-toolbar{justify-content:flex-end;margin:0 0 24px;gap:12px}.sensor-manage-search{flex:1;max-width:360px;min-width:220px}.sensor-manage-toolbar .primary-button,.sensor-manage-toolbar .outline-button{height:38px;min-height:38px;font-size:12px}.sensor-manage-panel{border:1px solid #e2e8f0;border-radius:10px;background:#fff;box-shadow:0 1px 3px #0f172a12;overflow:hidden}.sensor-manage-table th{padding:14px 16px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e2e8f0}.sensor-manage-table td{padding:16px;border-color:#e2e8f0;font-size:12px}.sensor-manage-table tbody tr:hover{background:#f7fafb}.sensor-manage-sort-heading{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:none;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;text-align:left}.sensor-manage-sort-heading span{opacity:.25;font-size:10px}.sensor-manage-sort-heading span.active{opacity:1}.sensor-manage-actions button{border:1px solid #cde8e8;border-radius:6px;background:#eff8f8;color:#137d91;font-size:12px;font-weight:600;padding:5px 8px;white-space:nowrap}.sensor-manage-actions button:nth-child(2){background:#f2f5fb;border-color:#dce5f5;color:#42668f}.sensor-manage-actions button:hover{filter:brightness(.97)}@media(max-width:880px){.sensor-manage-table td{padding:6px 0}.sensor-manage-actions button{font-size:12px}}@media(max-width:600px){.sensor-manage-search{max-width:none;flex-basis:100%;min-width:0}.sensor-manage-toolbar{gap:8px;margin-bottom:16px}.sensor-manage-toolbar .outline-button,.sensor-manage-toolbar .primary-button{flex:1}}.sensor-manage-dialog button:disabled{opacity:.6;cursor:not-allowed}.platform-shell .sensor-manage-dialog-body p{font-size:12px;line-height:1.5;color:var(--text-secondary)}.platform-toolbar{justify-content:space-between}.platform-toolbar .sensor-manage-search{margin-right:auto}.platform-table td{font-weight:400}.platform-table td strong{font-weight:500}.platform-period{font-size:12px;color:var(--text-secondary)}.platform-actions{display:flex;gap:7px;flex-wrap:wrap}.platform-actions .outline-button{width:auto;height:30px;padding:0 12px;margin:0;font-size:12px;font-weight:500;white-space:nowrap}.platform-dialog{width:min(100% - 32px,560px)}.platform-date-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.platform-date-fields input{min-width:0}.platform-dialog .platform-field-hint{margin:-6px 0 0;font-size:11px}.platform-optional{font-weight:400;font-size:12px;color:var(--text-secondary)}.platform-admin-fields{display:grid;gap:16px;border-top:1px solid var(--border-color,#cbd5e1);padding-top:16px}.platform-details{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;font-size:13px;margin:0}.platform-details dt{color:var(--text-secondary)}.platform-details dd{margin:0;overflow-wrap:anywhere}@media(max-width:600px){.platform-date-fields{grid-template-columns:1fr}.platform-actions .outline-button{flex:none}.platform-dialog{max-height:calc(100dvh - 32px)}}.platform-shell .platform-table th:nth-child(1){width:16%}.platform-shell .platform-table th:nth-child(2){width:10%}.platform-shell .platform-table th:nth-child(3){width:18%}.platform-shell .platform-table th:nth-child(4){width:27%}.platform-shell .platform-table th:nth-child(5){width:14%}.platform-shell .platform-table th:nth-child(6){width:15%}.platform-table td{overflow-wrap:anywhere}.platform-dialog .sensor-manage-dialog-body label:not(.sensor-manage-check){display:block;font-size:14px;font-weight:600;color:var(--text-primary)}.platform-dialog .sensor-manage-dialog-body input:not([type=checkbox]){display:block;width:100%;margin-top:8px;font-family:var(--font-body);font-size:14px;font-weight:400}.platform-dialog .sensor-manage-dialog-body input::placeholder{color:var(--text-tertiary)}.platform-dialog .platform-optional{display:inline;font-weight:400}.platform-dialog .platform-date-fields label{display:flex;flex-direction:column;min-width:0}.platform-field-label{display:block;line-height:20px;min-height:20px;white-space:nowrap}.platform-dialog .platform-date-fields input{box-sizing:border-box;min-height:41px;line-height:20px;text-align:left;padding:9px 11px}.platform-date-fields input::-webkit-datetime-edit{padding:0;line-height:normal}.platform-date-fields input::-webkit-date-and-time-value{min-height:20px;line-height:20px;text-align:left}.platform-delete-button{color:var(--status-danger-text)!important;background:var(--status-danger-bg)!important;border-color:var(--status-danger-border)!important}.platform-dialog .platform-delete-warning{margin:0;padding:12px;background:var(--status-danger-bg);color:var(--status-danger-text);border:1px solid var(--status-danger-border);border-radius:7px}.admin-records{display:grid;gap:20px;margin-top:22px}.record-panel{padding:22px}.record-panel h2{font-size:17px;margin:0 0 14px}.record-panel h2 span{color:#94a3b8;font-weight:500}.record-panel>p{font-size:13px;color:#64748b}.record-item{border-top:1px solid #edf1f5;padding:14px 0}.record-item:first-of-type{border-top:0}.record-line{display:flex;align-items:center;gap:12px}.record-line>div{min-width:0;flex:1}.record-line strong,.record-line small{display:block}.record-line strong{font-size:13px}.record-line small{font-size:11px;color:#94a3b8;margin-top:4px;overflow-wrap:anywhere}.record-state{font-size:11px;font-weight:700;color:#64748b;background:#e2e8f0;padding:5px 9px;border-radius:100px}.record-state.active{color:#07836d;background:#dcf7ef}.record-line .outline-button{font-size:11px;padding:7px 10px;white-space:nowrap}.record-item details{margin-top:10px}.record-item summary{color:#168d83;font-size:12px;font-weight:700;cursor:pointer}.record-edit{display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding:14px 0 4px}.record-edit label{display:grid;gap:5px;font-size:11px;font-weight:600;color:#475569}.record-edit input,.record-edit select{height:37px;border:1px solid #d9e2eb;border-radius:7px;padding:0 9px;min-width:150px;background:#fff}.record-edit .primary-button{height:37px;font-size:12px;padding:0 14px}@media(max-width:600px){.record-line{flex-wrap:wrap}.record-line>div{flex-basis:100%}.record-edit label,.record-edit input,.record-edit select{width:100%}}.record-edit .primary-button{width:auto;margin-top:0}.weather-station-note{grid-column:1/-1;margin:0;color:#64748b;font-size:11px;line-height:1.45}.administration-page .admin-page-actions{display:flex;justify-content:flex-end}.admin-page-actions .primary-button{width:auto;margin:0;padding:0 17px;display:flex;align-items:center;gap:8px;font-size:13px}.admin-records{margin-top:18px}.record-line{flex-wrap:wrap}.record-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.record-actions .outline-button{font-size:12px;padding:7px 10px}.admin-dialog{width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:0;border:1px solid #d9e2eb;border-radius:12px;box-shadow:0 22px 65px #0f172a38;color:#263449;overflow:auto}.admin-dialog::backdrop{background:#0f172a88}.admin-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 22px;border-bottom:1px solid #e2e8f0}.admin-dialog header h2{margin:0;font-size:18px}.admin-dialog header button{border:0;background:none;color:#64748b;display:grid;place-items:center}.admin-dialog-form{display:grid;gap:14px;padding:21px 22px}.admin-dialog-form p{font-size:12px;color:#64748b;margin:0}.admin-dialog-form label{display:grid;gap:6px;font-size:12px;font-weight:600}.admin-dialog-form input,.admin-dialog-form select{height:40px;width:100%;padding:0 10px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#263449}.admin-dialog-form footer{display:flex;justify-content:flex-end;gap:8px;margin-top:7px}.admin-dialog-form footer button{width:auto;min-height:40px;height:40px;margin:0;padding:0 14px;font-size:12px;line-height:1}.admin-create-options{display:grid;gap:10px;padding:22px}.admin-create-options button{border:1px solid #d9e2eb;background:#fff;border-radius:8px;padding:16px;text-align:left}.admin-create-options button:hover{border-color:#1cb5a3;background:#f4fbf9}.admin-create-options strong,.admin-create-options span{display:block}.admin-create-options strong{font-size:14px}.admin-create-options span{font-size:12px;color:#64748b;margin-top:4px}@media(max-width:600px){.record-actions{width:100%}.record-actions .outline-button{flex:1;justify-content:center}.admin-dialog{width:calc(100vw - 24px)}}.kiosk-link-panel{margin-top:20px;padding:22px;display:flex;align-items:center;justify-content:space-between;gap:14px 24px;flex-wrap:wrap}.kiosk-link-panel h2{margin:0;font-size:15px}.kiosk-link-panel p{font-size:12px;color:#64748b;margin:7px 0 0;line-height:1.5}.kiosk-link-state{display:inline-block;margin-top:12px;font-size:11px;font-weight:700;color:#168f83}.kiosk-link-actions .outline-button{white-space:nowrap}.kiosk-link-result{width:100%;display:flex;align-items:end;gap:9px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:16px}.kiosk-link-result label{display:grid;gap:6px;flex:1;min-width:220px;font-size:11px;font-weight:700;color:var(--text-secondary)}.kiosk-link-result input{height:38px;width:100%;padding:0 10px;border:1px solid #d9e2eb;border-radius:7px;color:#334155;background:#f8fafc;font-size:12px}.kiosk-link-result a{text-decoration:none}.kiosk-link-message{width:100%;margin:0!important;color:#168f83!important}@media(max-width:600px){.kiosk-link-actions,.kiosk-link-actions button{width:100%}.kiosk-link-result label{min-width:100%}}.kiosk-link-panel .kiosk-link-message{order:-1;width:100%;padding:14px 16px;border:1px solid #86cfc2;border-radius:8px;background:#e8f7f1;color:#116455!important;font-size:14px;font-weight:700}.kiosk-link-legacy{width:100%}html.dark .kiosk-link-panel .kiosk-link-message{background:#133e37;border-color:#38786b;color:#abf1de!important}.events-panel{margin-top:20px}.events-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.events-heading h2{margin-bottom:4px}.events-heading h2 span{margin-left:5px}.events-heading p{margin:0;color:var(--text-secondary);font-size:12px;line-height:1.5}.events-heading .outline-button{white-space:nowrap}.events-list{margin-top:15px;border-top:1px solid var(--border)}.events-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 0;border-bottom:1px solid var(--border)}.events-row:last-child{border-bottom:0;padding-bottom:0}.events-row>div{min-width:0}.events-row strong,.events-row small{display:block;overflow-wrap:anywhere}.events-row strong{font-size:13px}.events-row small{margin-top:5px;color:var(--text-secondary);font-size:11px;line-height:1.5}.events-row button{border:1px solid var(--action-edit-border);border-radius:6px;background:var(--action-edit-bg);color:var(--action-edit-text);font-size:12px;font-weight:600;padding:6px 13px;flex:none}.events-empty,.events-notice,.events-error{margin:16px 0 0;font-size:12px;line-height:1.5}.events-empty{color:var(--text-secondary)}.events-notice{color:var(--status-success-text)}.events-error{color:var(--status-danger-text)}.events-dialog{width:min(510px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:0;border:1px solid var(--border);border-radius:11px;background:var(--bg-elevated);color:var(--text-primary);box-shadow:0 22px 60px #0f172a33}.events-dialog::backdrop{background:#0f172a77}.events-dialog form{display:flex;flex-direction:column;max-height:calc(100dvh - 30px)}.events-dialog header{display:flex;justify-content:space-between;gap:14px;padding:21px 23px 18px;border-bottom:1px solid var(--border)}.events-dialog h2{margin:0;font-size:18px}.events-dialog header p{margin:5px 0 0;color:var(--text-secondary);font-size:12px}.events-dialog header button{border:0;background:transparent;color:var(--text-secondary);padding:3px;align-self:start}.events-dialog-body{display:grid;gap:16px;padding:20px 23px;overflow:auto}.events-dialog-body label{display:grid;gap:6px;font-size:12px;font-weight:700;color:var(--text-primary)}.events-dialog-body input,.events-dialog-body select{width:100%;height:41px;min-width:0;border:1px solid var(--border-input);border-radius:7px;padding:0 11px;background:var(--bg-input);color:var(--text-primary);font-size:13px}.events-date-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:0}.events-help{margin:0;font-size:11px;line-height:1.5;color:var(--text-secondary)}.events-delete-confirm{margin:0;padding:10px;border:1px solid var(--status-danger-border);border-radius:7px;background:var(--status-danger-bg);color:var(--status-danger-text);font-size:12px;line-height:1.5}.events-dialog footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:16px 23px;border-top:1px solid var(--border)}.events-dialog footer .primary-button{width:auto;min-width:108px;margin:0;padding:0 12px;font-size:12px}.events-dialog footer .outline-button{padding:0 12px}.events-delete-actions{margin-right:auto;display:flex;gap:8px}.events-delete-actions button{border:0;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:700;padding:7px}.events-delete-actions .danger{color:var(--status-danger-text)}@media(max-width:600px){.events-heading{align-items:flex-start;flex-direction:column}.events-dialog header{padding:18px}.events-dialog-body{padding:18px}.events-dialog footer{padding:14px 18px;flex-wrap:wrap}.events-delete-actions{width:100%}.events-date-fields{grid-template-columns:1fr}}.events-row button:hover{filter:brightness(1.06)}.events-row button:focus-visible{outline:2px solid var(--brand-primary);outline-offset:3px}.user-management-table th:nth-child(1){width:31%}.user-management-table th:nth-child(2){width:14%}.user-management-table th:nth-child(3){width:15%}.user-management-table th:nth-child(4){width:17%}.user-management-table th:nth-child(5){width:23%}.user-management-table td{overflow-wrap:anywhere}.user-management .sensor-manage-actions{flex-wrap:wrap}@media(max-width:880px){.user-management-table th:nth-child(n){width:auto}}.report-schedules{min-width:0}.report-schedules-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.report-schedules-heading h2{margin:0;font-size:18px}.report-schedules-heading p{margin:5px 0 0;color:#64748b;font-size:12px}.report-schedules-empty{padding:26px;text-align:center;color:#64748b;font-size:13px}.report-schedules-empty p{margin:6px 0 0}.report-schedules-notice{padding:10px 12px;border:1px solid #bfe9df;border-radius:7px;background:#eefaf7;color:#087f73;font-size:12px}.report-schedules-table{overflow-x:auto;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.report-schedules-table table{width:100%;min-width:920px;border-collapse:collapse;text-align:left}.report-schedules-table th{padding:13px 15px;background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.report-schedules-table td{padding:14px 15px;border-bottom:1px solid #edf1f4;color:#1e293b;font-size:12px;vertical-align:middle}.report-schedules-table tr:last-child td{border:0}.report-schedules-table tbody tr:hover{background:#1cb5a30a}.report-schedules-status{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700}.report-schedules-status.active{background:#dcfce7;color:#166534}.report-schedules-status.paused{background:#e2e8f0;color:#64748b}.report-schedules-actions{display:flex;flex-wrap:wrap;gap:4px}.report-schedules-actions button,.report-schedules-delete button{border:0;background:transparent;color:#1769aa;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer}.report-schedules-actions button:hover{text-decoration:underline}.report-schedules-actions button:disabled{opacity:.5}.report-schedules-log{margin-top:15px;padding:19px}.report-schedules-log h3{margin:0 0 12px;font-size:14px}.report-schedules-log p{font-size:12px;color:#718398}.report-schedules-log ul{margin:0;padding:0;list-style:none}.report-schedules-log li{display:flex;align-items:center;gap:14px;padding:10px 0;border-top:1px solid #edf1f5;color:#475569;font-size:12px}.report-schedules-log li small{margin-left:auto;color:#94a3b8}.report-schedules-dialog{width:min(530px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:0;border:1px solid #dce5eb;border-radius:11px;background:#fff;color:#1e293b;box-shadow:0 22px 60px #0f172a33}.report-schedules-dialog::backdrop{background:#0f172a77}.report-schedules-dialog form{display:flex;flex-direction:column;max-height:calc(100dvh - 30px)}.report-schedules-dialog header{display:flex;justify-content:space-between;gap:14px;padding:21px 23px 18px;border-bottom:1px solid #e5ebf0}.report-schedules-dialog h2{margin:0;font-size:18px}.report-schedules-dialog header p{margin:5px 0 0;color:#64748b;font-size:12px}.report-schedules-dialog header button{border:0;background:transparent;color:#64748b;cursor:pointer}.report-schedules-fields{display:grid;gap:14px;padding:20px 23px;overflow:auto}.report-schedules-fields label{display:grid;gap:6px;color:#334155;font-size:12px;font-weight:700}.report-schedules-fields input:not([type=checkbox]),.report-schedules-fields select,.report-schedules-fields textarea{width:100%;min-width:0;border:1px solid var(--border);border-radius:7px;padding:0 11px;background:var(--bg-input);color:var(--text-primary);font-size:13px}.report-schedules-fields input:not([type=checkbox]),.report-schedules-fields select{height:41px}.report-schedules-fields textarea{padding:10px 11px;resize:vertical}.report-schedules-fields small{margin-top:-10px;color:#64748b;font-size:11px}.report-schedules-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.report-schedules-fields .report-schedules-check{display:flex;align-items:center;gap:9px}.report-schedules-check input{accent-color:#1cb5a3;width:16px;height:16px;margin:0}.report-schedules-delete-warning{margin:0;padding:10px;border:1px solid #f0c5c1;border-radius:7px;background:#fff4f2;color:#a83e39;font-size:12px}.report-schedules-dialog footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:16px 23px;border-top:1px solid #e5ebf0}.report-schedules-dialog footer .primary-button{width:auto;min-width:108px;margin:0;padding:0 12px;font-size:12px}.report-schedules-delete{margin-right:auto;display:flex;gap:8px}.report-schedules-delete .danger{color:#b5453e}@media(max-width:700px){.report-schedules-heading{align-items:flex-start;flex-direction:column}.report-schedules-table{overflow:visible;border:0}.report-schedules-table table,.report-schedules-table tbody,.report-schedules-table tr,.report-schedules-table td{display:block;width:100%;min-width:0}.report-schedules-table thead{display:none}.report-schedules-table tr{margin-bottom:12px;padding:8px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.report-schedules-table td{display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px;padding:7px 0;border:0;overflow-wrap:anywhere}.report-schedules-table td:before{content:attr(data-label);font-size:11px;font-weight:700;color:#8090a0}.report-schedules-log li{align-items:flex-start;flex-wrap:wrap}.report-schedules-log li small{margin:0}.report-schedules-pair{grid-template-columns:1fr}.report-schedules-dialog header,.report-schedules-fields,.report-schedules-dialog footer{padding:16px}.report-schedules-dialog footer{flex-wrap:wrap}.report-schedules-delete{width:100%}}.report-schedules-heading .primary-button{width:auto;margin:0;padding:0 15px;display:flex;align-items:center;gap:7px;font-size:13px}.report-schedules-sort{border:0;background:none;padding:0;color:inherit;font:inherit;text-align:left;text-transform:inherit;letter-spacing:inherit;white-space:nowrap;cursor:pointer}.report-schedules-sort span{margin-left:4px;opacity:.65}.report-schedules-sort:focus-visible{outline:2px solid #1cb5a3;outline-offset:3px}.report-zone-list{margin:0;padding:14px 16px;border:1px solid var(--border-color);border-radius:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;background:var(--bg-card)}.report-zone-list legend{padding:0 6px;color:var(--text-primary);font-size:13px;font-weight:600}.report-zone-list label{min-width:0;overflow-wrap:anywhere}.report-zone-list label:first-of-type{grid-column:1/-1}@media(max-width:600px){.report-zone-list{grid-template-columns:1fr}}.report-schedules-actions .action-delete{color:var(--status-danger-text);background:var(--status-danger-bg);border-color:var(--status-danger-border)}.report-schedules-fields label{font-weight:600}.report-schedules-fields input:not([type=checkbox]),.report-schedules-fields textarea,.report-schedules-fields select{font-weight:400}.report-confirm-delete{color:var(--status-danger-text);border-color:var(--status-danger-border);background:var(--status-danger-bg)}.report-schedules-delete-warning{background:var(--status-danger-bg);border-color:var(--status-danger-border);color:var(--status-danger-text)}@media(max-width:700px){.report-schedules-table .report-schedules-status{justify-self:start;width:max-content;max-width:100%}.report-schedules-table .report-schedules-status.active{background:var(--status-success-bg);color:var(--status-success-text)}.report-schedules-table .report-schedules-status.paused{background:var(--status-neutral-bg);color:var(--status-neutral-text)}}.reports-page{display:grid;gap:22px;min-width:0}.reports-tabs{display:flex;gap:4px;border-bottom:1px solid #dbe5eb;min-width:0}.reports-tabs button{padding:12px 17px;border:0;border-bottom:2px solid transparent;background:transparent;color:#64748b;font-size:13px;font-weight:600;cursor:pointer}.reports-tabs button:hover{color:#1e3a5f}.reports-tabs button.active{border-bottom-color:#1769aa;color:#1e3a5f}.reports-tabs button:focus-visible{outline:2px solid #1769aa;outline-offset:-2px}.reports-generator{padding:22px}.reports-generator h2{font-size:18px;margin:0 0 5px}.reports-generator p{font-size:12px;color:#64748b;margin:0}.reports-generator form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-top:20px}.reports-generator form label{display:grid;gap:6px;color:#475569;font-size:12px;font-weight:700;min-width:155px;flex:1}.reports-generator form input,.reports-generator form select{height:40px;width:100%;min-width:0;padding:0 10px;border:1px solid #cbd8e3;border-radius:7px;background:#fff;color:#263449;font-size:12px}.reports-generator form .primary-button{width:auto;height:40px;min-width:150px;margin:0;font-size:12px}.reports-generator small{display:block;margin-top:13px;color:#718398;font-size:11px}.reports-error{margin-top:14px!important;padding:10px 12px;border-radius:7px;border:1px solid var(--status-danger-border);background:var(--status-danger-bg);color:var(--status-danger-text)!important}.reports-export{padding:20px 22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.reports-export>div:first-child{flex:1;min-width:220px}.reports-export h2{font-size:16px;margin:0 0 5px}.reports-export p{font-size:12px;color:#64748b;margin:0}.reports-export-controls{display:flex;align-items:end;gap:10px}.reports-export-controls label{display:grid;gap:6px;color:#475569;font-size:12px;font-weight:700}.reports-export-controls select{height:38px;min-width:175px;padding:0 10px;border:1px solid #cbd8e3;border-radius:7px;background:#fff;color:#263449;font-size:12px}.reports-export-controls button{height:38px;margin:0;padding:0 15px;border:1px solid #a9c7d2;border-radius:7px;background:#f1faf9;color:#147e79;font-size:12px;font-weight:700;cursor:pointer}.reports-export-controls button:hover:not(:disabled){background:#dff4f0}.reports-export-controls button:disabled{opacity:.55;cursor:not-allowed}.reports-export>small{flex-basis:100%;font-size:11px;color:#718398}.reports-export-note{flex-basis:100%;color:#a16d1c!important}.reports-export .reports-error{flex-basis:100%}.reports-preview{display:grid;gap:18px;min-width:0}.reports-preview-title{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;padding:0 2px}.reports-preview-title div>span{font-size:10px;font-weight:800;letter-spacing:.12em;color:#148d86}.reports-preview-title h2{font-size:22px;margin:4px 0}.reports-preview-title p,.reports-preview-title>span{margin:0;color:#64748b;font-size:12px}.reports-pdf-actions{display:flex;justify-content:flex-end}.reports-pdf-button{height:38px;padding:0 17px;border:1px solid #1769aa;border-radius:7px;background:#1769aa;color:#fff;font-size:12px;font-weight:700;cursor:pointer}.reports-pdf-button:hover:not(:disabled){background:#125889}.reports-pdf-button:disabled{opacity:.55;cursor:not-allowed}.reports-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.reports-summary>div{display:grid;gap:6px;padding:20px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;box-shadow:0 1px 3px #0f172a0d}.reports-summary span{color:#64748b;font-size:12px}.reports-summary strong{font-size:27px;line-height:1.15;color:#1e293b}.reports-summary small{color:#8090a0;font-size:11px}.reports-coverage{margin:0;padding:11px 14px;border:1px solid #e8d9ac;border-radius:8px;background:#fffaf0;color:#765c20;font-size:12px}.reports-section{padding:21px;min-width:0}.reports-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:17px}.reports-section h2{margin:0;font-size:17px}.reports-section-heading span{font-size:11px;color:#8090a0}.reports-chart-scroll,.reports-heatmap-scroll{overflow-x:auto;max-width:100%;scrollbar-color:#c3d3de transparent}.reports-note{margin:12px 0 0;color:#718398;font-size:11px;line-height:1.5}.reports-chart-detail{margin:10px 0 0;padding:10px 12px;border:1px solid #e1e9ee;border-radius:7px;background:#f8fafb;color:#526171;font-size:12px}.reports-heatmap-grid{width:max-content;min-width:100%;display:grid;grid-template-columns:96px repeat(24,22px);column-gap:4px;row-gap:5px;align-items:center}.reports-heatmap-corner,.reports-heatmap-hour{font-size:10px;color:#8a98a8;text-align:center}.reports-heatmap-corner{text-align:left}.reports-heatmap-row{display:contents}.reports-heatmap-row strong{font-size:10px;color:var(--text-secondary);white-space:nowrap}.reports-heatmap-cell{width:22px;height:19px;padding:0;border:0;border-radius:3px;cursor:pointer}.reports-heatmap-cell.missing{background:repeating-linear-gradient(135deg,#edf1f4,#edf1f4 3px,#f7f9fa 3px 6px)}.reports-heatmap-cell.zero{background:#e2f1ec}.reports-heatmap-cell:focus-visible{outline:2px solid #1769aa;outline-offset:1px}.reports-hour-detail{margin:14px 0 0;padding:10px 12px;border:1px solid #e1e9ee;border-radius:7px;background:#f8fafb;color:#526171;font-size:12px}.reports-history{padding:22px;min-width:0}.reports-history-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.reports-history h2{font-size:18px;margin:0 0 5px}.reports-history-heading p,.reports-history-note{font-size:12px;color:#718398;margin:0}.reports-history-refresh,.reports-history-download{height:34px;padding:0 12px;border:1px solid #b9cbd7;border-radius:6px;background:#fff;color:#1e3a5f;font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer}.reports-history-download{border-color:#1769aa;color:#1769aa}.reports-history-refresh:hover:not(:disabled),.reports-history-download:hover:not(:disabled){background:#f1f7fa}.reports-history-refresh:disabled,.reports-history-download:disabled{opacity:.55;cursor:not-allowed}.reports-history-empty{padding:32px 0;text-align:center;color:#718398;font-size:13px}.reports-history-scroll{overflow-x:auto;margin-top:20px;max-width:100%}.reports-history table{width:100%;border-collapse:collapse;min-width:850px;text-align:left}.reports-history th{padding:11px 12px;border-bottom:1px solid #d9e4eb;background:#f8fafb;color:#64748b;font-size:11px;font-weight:700}.reports-history td{padding:13px 12px;border-bottom:1px solid #edf1f4;color:#334155;font-size:12px;vertical-align:middle}.reports-history td strong{display:block;font-weight:600}.reports-history td small{display:block;margin-top:3px;color:#8090a0}.reports-history-status{color:#147e79;font-weight:600}.reports-history-note{margin-top:16px}.reports-zones{display:grid;gap:15px}.reports-zones>div>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:12px}.reports-zones strong{color:#334155}.reports-zones span{color:#718398}.reports-zone-track{height:8px;margin-top:7px;background:#edf2f4;border-radius:999px;overflow:hidden}.reports-zone-track i{display:block;height:100%;background:#1cb5a3;border-radius:999px}.reports-limitations p,.reports-limitations li{font-size:12px;line-height:1.55;color:#64748b}.reports-limitations ul{padding-left:19px;margin-bottom:0}@media(max-width:1050px){.reports-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.reports-generator,.reports-section,.reports-export{padding:17px}.reports-generator form label,.reports-generator form .primary-button{flex-basis:100%}.reports-export-controls{width:100%;flex-wrap:wrap}.reports-export-controls label,.reports-export-controls button{flex:1;min-width:140px}.reports-export-controls select{min-width:0;width:100%}.reports-preview-title h2{font-size:19px}.reports-summary{gap:9px}.reports-summary>div{padding:15px}.reports-summary strong{font-size:22px}.reports-summary small{line-height:1.4}}@media(max-width:600px){.reports-history{padding:17px}.reports-history-scroll{overflow:visible}.reports-history table,.reports-history tbody,.reports-history tr,.reports-history td{display:block;width:100%;min-width:0}.reports-history thead{display:none}.reports-history tr{padding:10px 0;border-bottom:1px solid #edf1f4}.reports-history td{display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px;align-items:start;padding:6px 0;border:0;overflow-wrap:anywhere}.reports-history td:before{content:attr(data-label);font-size:11px;font-weight:700;color:#8090a0}.reports-history td strong{font-size:12px}.reports-history-download{width:auto}}.reports-tabs{gap:0;border-bottom:2px solid #e2e8f0}.reports-tabs button{padding:.55rem 1.2rem;margin-bottom:-2px;font-size:.875rem;font-weight:500}.reports-tabs button:hover{color:#1e293b}.reports-tabs button.active{border-bottom-color:#1cb5a3;color:#1e293b;font-weight:700}.reports-tabs button:focus-visible{outline-color:#1cb5a3}.reports-history-scroll{border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0000000d}.reports-history th{padding:.875rem 1rem;border-bottom-color:#e2e8f0;background:#f8fafc;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.reports-history td{padding:1rem;border-bottom-color:#e2e8f0;color:#1e293b;font-size:.875rem}.reports-history tr:last-child td{border-bottom:0}.reports-history tbody tr:hover{background:#1cb5a30a}.reports-history td strong{font-weight:500}.reports-history td:nth-child(4){white-space:nowrap}.reports-history-status{display:inline-flex;justify-self:start;padding:.2rem .65rem;border-radius:9999px;background:var(--status-success-bg);color:var(--status-success-text);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.reports-history-status.failed{background:var(--status-danger-bg);color:var(--status-danger-text)}.reports-history{padding:0}.reports-history-heading{margin-bottom:4px}.reports-history-scroll{margin-top:20px}.reports-history-more{display:block;margin:18px auto 0;padding:8px 14px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#1e293b;font-size:13px;font-weight:600;cursor:pointer}.reports-history-more:hover:not(:disabled){background:#f8fafc}.reports-history-more:disabled{opacity:.6;cursor:not-allowed}@media(max-width:600px){.reports-history{padding:0}.reports-history-scroll{border:0;box-shadow:none}.reports-history td{padding:6px 0;font-size:12px}.reports-history tr:last-child td{border-bottom:0}}.content.reports-content{padding-top:16px}.reports-tabs{margin-top:0;margin-bottom:24px}.report-delivery-history{margin-top:28px}.reports-history-status.queued,.reports-history-status.running,.reports-history-status.cancelled{background:var(--status-neutral-bg);color:var(--status-neutral-text)}.reports-history-status.uncertain{background:var(--status-warning-bg);color:var(--status-warning-text)}.reports-history-actions{display:flex;gap:8px;flex-wrap:wrap}.report-csv-dialog{box-sizing:border-box;width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid var(--border);border-radius:12px;background:var(--bg-elevated);color:var(--text-primary)}.report-csv-dialog::backdrop{background:#0f172a80}.report-csv-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.report-csv-dialog h2{margin:0;font-size:18px}.report-csv-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0;padding:0;border:0}.report-csv-fields label:first-child{grid-column:1/-1}.report-csv-fields label{display:grid;gap:6px;font-size:14px;font-weight:600}.report-csv-fields input,.report-csv-fields select,.report-csv-dialog .reports-export-controls select{box-sizing:border-box;width:100%;min-width:0;height:38px;border:1px solid var(--border);border-radius:7px;padding:0 10px;background:var(--bg-elevated);color:var(--text-primary);font:inherit;font-weight:400}.report-csv-dialog .reports-export{padding:16px 0;border:0;box-shadow:none;background:transparent}.report-csv-dialog .reports-export-controls{flex-wrap:wrap;width:100%}.report-csv-dialog .reports-export-controls label:has(input[type=checkbox]){display:flex;align-items:center;gap:8px;min-height:38px;color:var(--text-primary)}.report-csv-dialog .reports-export p,.report-csv-dialog .reports-export>small{color:var(--text-secondary)}@media(max-width:600px){.reports-history-heading{flex-wrap:wrap}.report-csv-dialog{padding:18px}.report-csv-fields{grid-template-columns:1fr}.report-csv-fields label:first-child{grid-column:auto}}.report-csv-dialog .reports-export-controls input[type=checkbox]{width:16px;height:16px;margin:0;flex-shrink:0;accent-color:var(--brand-primary)}.reports-content .reports-history,html.dark .reports-content .reports-history{padding:0;border:0;border-radius:0;background:transparent}.reports-content .reports-history-scroll{border-color:var(--border);background:var(--bg-elevated)}.reports-content .reports-history th{border-bottom-color:var(--border);background:var(--bg-table-head);color:var(--text-secondary)}.reports-content .reports-history td{border-bottom-color:var(--border);color:var(--text-primary)}.reports-content .reports-history tbody tr:hover{background:var(--bg-table-row-hover)}@media(max-width:600px){.reports-content .reports-history-scroll{background:transparent}.reports-content .reports-history tr{border-bottom-color:var(--border)}}.reports-heatmap-cell:hover,.reports-heatmap-cell:focus-visible{outline:2px solid var(--text-primary,#1e293b);outline-offset:1px}html.dark .reports-heatmap-cell.missing{background:repeating-linear-gradient(135deg,var(--bg-app),var(--bg-app) 3px,var(--bg-input-disabled) 3px,var(--bg-input-disabled) 6px)}html.dark .reports-heatmap-cell.zero{background:var(--bg-input-disabled)}html.dark .reports-hour-detail{background:var(--bg-app);border-color:var(--border);color:var(--text-secondary)}.feed-toolbar{margin-top:25px;padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.feed-connection{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:#64748b}.feed-connection.connected{color:#148d80}.feed-connection.reconnecting{color:#a46b19}.feed-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.feed-controls label{display:grid;gap:5px;color:#64748b;font-size:11px;font-weight:700}.feed-controls select,.feed-controls input{height:36px;min-width:150px;border:1px solid #d9e2eb;border-radius:7px;background:#fff;padding:0 10px;color:#334155;font-size:12px}.feed-controls input{min-width:180px}.feed-pause{height:36px}.feed-panel{margin-top:18px;overflow:hidden}.feed-panel-heading{padding:19px 22px;display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-bottom:1px solid #edf1f5}.feed-panel-heading h2{font-size:15px;margin:0}.feed-panel-heading span{font-size:11px;color:#94a3b8}.feed-list-head,.feed-row{display:grid;grid-template-columns:minmax(185px,1.2fr) minmax(160px,1fr) minmax(190px,1.1fr) 95px;gap:16px;align-items:center}.feed-list-head{padding:11px 22px;background:#f8fafc;color:#94a3b8;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.feed-row{padding:16px 22px;border-top:1px solid #edf1f5;font-size:12px}.feed-row.fresh{animation:feed-flash .2s ease-out}.feed-row.offline{border-left:3px solid #e96f6a;background:#fff9f8}.feed-row strong,.feed-row small{display:block}.feed-row strong{font-size:12px;color:#263449}.feed-row small{margin-top:5px;color:#94a3b8;font-size:11px;line-height:1.4}.feed-count strong span{color:#b7c4cf;margin:0 3px}.feed-status{display:inline-flex;text-transform:capitalize;border-radius:5px;padding:5px 8px;background:var(--status-success-bg);color:var(--status-success-text);font-size:11px;font-weight:700}.feed-status.warning{background:var(--status-warning-bg);color:var(--status-warning-text)}.feed-status.offline{background:var(--status-danger-bg);color:var(--status-danger-text)}.feed-status.inactive{background:var(--status-neutral-bg);color:var(--status-neutral-text)}.feed-empty{padding:32px 22px;color:#94a3b8;font-size:13px;margin:0}@keyframes feed-flash{0%{background:#d9f5ee}to{background:transparent}}@media(max-width:900px){.feed-toolbar{align-items:stretch}.feed-controls{width:100%}.feed-controls label{flex:1;min-width:130px}.feed-controls select,.feed-controls input{width:100%;min-width:0}.feed-list-head{display:none}.feed-row{grid-template-columns:1fr 1fr}.feed-row>div:last-child{text-align:right}}@media(max-width:600px){.feed-toolbar{padding:15px}.feed-controls label{min-width:calc(50% - 6px)}.feed-controls label:nth-child(3){min-width:100%}.feed-pause{width:100%;justify-content:center}.feed-row{padding:15px;grid-template-columns:1fr auto;gap:12px}.feed-time,.feed-count{grid-column:1/-1}.feed-row>div:last-child{grid-row:2;grid-column:2;align-self:start}}.sensor-feed-intro{margin:17px 0 0;color:#64748b;font-size:12px;line-height:1.5}.bounded-hover{box-sizing:border-box;position:fixed;z-index:1000;pointer-events:none;max-height:calc(100vh - 16px);overflow:hidden;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#64748b;box-shadow:0 8px 22px #0f172a24;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.bounded-hover strong,.bounded-hover span{display:block}.bounded-hover strong{margin-bottom:4px;color:#1e293b}.bounded-hover span+span{margin-top:2px}.bounded-hover-dark{border-color:#547185;background:#122333;color:#c6d7e3;font-size:15px}.bounded-hover-dark strong{color:#fff}html.dark .bounded-hover:not(.bounded-hover-dark){background:var(--bg-elevated);color:var(--text-secondary);border-color:var(--border);box-shadow:0 8px 22px #02061766}html.dark .bounded-hover:not(.bounded-hover-dark) strong{color:var(--text-primary)}.data-health-panel{margin-top:20px;padding:22px;min-width:0}.data-health-header{display:flex;justify-content:space-between;align-items:end;gap:18px;flex-wrap:wrap}.data-health-header h2{margin:0;font-size:15px}.data-health-header p{margin:6px 0 0;color:#94a3b8;font-size:12px}.data-health-header label{display:grid;gap:5px;color:#64748b;font-size:11px;font-weight:700}.data-health-header select{min-width:260px;max-width:100%;height:38px;border:1px solid #d9e2eb;border-radius:7px;background:#fff;color:#334155;padding:0 10px;font-size:12px}.data-health-empty{margin:26px 0;color:#94a3b8;font-size:13px}.data-health-summary{display:flex;gap:12px 22px;align-items:baseline;flex-wrap:wrap;border-top:1px solid #edf1f5;margin-top:20px;padding-top:16px;font-size:12px;color:#64748b}.data-health-summary strong{font-size:20px;color:#263449;margin-right:4px}.data-health-summary span:last-child{margin-left:auto}.data-health-legend{display:flex;gap:8px 18px;flex-wrap:wrap;margin:20px 0 10px;color:#64748b;font-size:11px}.data-health-legend span{display:flex;align-items:center;gap:6px}.data-health-legend i,.data-health-day i{display:block;border-radius:3px;background:var(--status-neutral-bg)}.data-health-legend i{width:12px;height:12px}.data-health-legend .reported,.data-health-day.reported i{background:#1cb5a3}.data-health-legend .recovered,.data-health-day.recovered i{background:#e4a74c}.data-health-legend .missing,.data-health-day.missing i{background:#dc6e6a}.data-health-legend .checking,.data-health-day.checking i{background:repeating-linear-gradient(135deg,var(--bg-table-head),var(--bg-table-head) 4px,var(--border) 4px,var(--border) 6px)}.data-health-scroll{max-width:100%;overflow-x:auto;padding-bottom:5px}.data-health-grid{display:grid;grid-template-columns:repeat(30,minmax(26px,1fr));gap:3px;min-width:870px}.data-health-day{border:1px solid transparent;border-radius:5px;background:none;padding:5px 1px;display:grid;gap:5px;justify-items:center;color:#64748b;font-size:10px}.data-health-day i{width:100%;height:24px}.data-health-day small{font-size:10px;line-height:1}.data-health-day.selected{border-color:#1769aa;background:#f0f6fb}.data-health-day:focus-visible{outline:2px solid #1769aa;outline-offset:1px}.data-health-detail{border-top:1px solid #edf1f5;margin-top:16px;padding-top:15px}.data-health-detail-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.data-health-detail h3{font-size:13px;margin:0}.data-health-detail-title button{border:0;background:none;color:#1769aa;font-size:12px;font-weight:700}.data-health-detail p{font-size:12px;color:#64748b;line-height:1.5}.data-health-detail ul{list-style:none;margin:12px 0 0;padding:0;max-height:260px;overflow-y:auto;border:1px solid #e4eaf0;border-radius:7px}.data-health-detail li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid #edf1f5;font-size:12px}.data-health-detail li:first-child{border-top:0}.data-health-detail li strong,.data-health-detail li small{display:block}.data-health-detail li small{margin-top:3px;color:#64748b}.data-health-window-status{font-size:10px;font-weight:700;text-transform:capitalize}.data-health-window-status.missing{color:#b84945}.data-health-window-status.recovered{color:#9b681d}.data-health-footnote{border-top:1px solid #edf1f5;padding-top:14px;margin:18px 0 0;color:#94a3b8;font-size:11px;line-height:1.5}@media(max-width:700px){.data-health-panel{padding:17px}.data-health-header label,.data-health-header select{width:100%;min-width:0}.data-health-summary span:last-child{margin-left:0;flex-basis:100%}.data-health-detail li{align-items:start}.data-health-detail li strong{font-size:11px}}.data-health-recovery{border-top:1px solid #edf1f5;margin-top:18px;padding-top:18px}.data-health-recovery-heading{display:flex;justify-content:space-between;align-items:start;gap:12px}.data-health-recovery h3,.data-health-jobs h4{font-size:13px;margin:0;color:#263449}.data-health-recovery-heading p,.data-health-recovery-help,.data-health-jobs>p,.data-health-job-detail>p{font-size:12px;color:#64748b;line-height:1.5;margin:5px 0}.data-health-configuration{font-size:11px;color:#9a6720;background:#fff7e9;border:1px solid #f1deb9;padding:5px 8px;border-radius:5px;white-space:nowrap}.data-health-recovery-form{display:flex;align-items:end;gap:10px;margin:15px 0;flex-wrap:wrap}.data-health-recovery-form label{display:grid;gap:5px;font-size:11px;font-weight:700;color:#64748b}.data-health-recovery-form input{height:38px;min-width:155px;padding:0 9px;border:1px solid #d9e2eb;border-radius:6px;color:#334155;background:#fff}.data-health-recovery-form button{height:38px;font-size:12px}.data-health-recovery-notice{color:#16856e;font-size:12px}.data-health-recovery-error{color:#b84945;font-size:12px}.data-health-jobs{margin-top:16px}.data-health-jobs ul,.data-health-job-detail ul{list-style:none;margin:10px 0 0;padding:0;border:1px solid #e4eaf0;border-radius:7px;max-height:250px;overflow:auto}.data-health-jobs li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-top:1px solid #edf1f5;font-size:12px}.data-health-jobs li:first-child,.data-health-job-detail li:first-child{border-top:0}.data-health-jobs li>span:first-child{min-width:0;flex:1}.data-health-jobs li strong,.data-health-jobs li small{display:block}.data-health-jobs li small{color:#64748b;margin-top:3px;line-height:1.4}.data-health-jobs li button,.data-health-job-detail button{border:0;background:none;color:#1769aa;font-size:12px;font-weight:700;cursor:pointer}.data-health-job-state{text-transform:capitalize;font-size:11px;font-weight:700}.data-health-job-state.complete{color:#16856e}.data-health-job-state.failed{color:#b84945}.data-health-job-state.partial{color:#9a6720}.data-health-job-detail{margin-top:12px;padding:12px;border:1px solid #e4eaf0;border-radius:7px;font-size:12px}.data-health-job-detail>div{display:flex;justify-content:space-between;align-items:center}.data-health-job-detail li{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-top:1px solid #edf1f5}.data-health-job-detail li span:last-child{text-align:right;color:#64748b}@media(max-width:700px){.data-health-recovery-heading{flex-wrap:wrap}.data-health-recovery-form label,.data-health-recovery-form input,.data-health-recovery-form button{width:100%}.data-health-jobs li{align-items:start;flex-wrap:wrap}.data-health-jobs li>span:first-child{flex-basis:100%}.data-health-job-detail li,.data-health-job-detail li span{display:block}.data-health-job-detail li span:last-child{text-align:left;margin-top:3px}}.data-health-hover-detail{margin:8px 0 0;padding:8px 10px;border:1px solid #e1e9ee;border-radius:7px;background:#f8fafb;color:#526171;font-size:12px}.monitor-back{margin-bottom:16px;width:auto}.monitor-detail{display:flex;align-items:center;flex-wrap:wrap;gap:14px 24px;padding:20px;margin-bottom:18px;font-size:12px}.monitor-detail h2{margin:0;font-size:18px}.monitor-detail p{margin:5px 0 0}.monitor-row{cursor:pointer}.monitor-row:hover{background:var(--bg-table-row-hover)}.monitor-sensor-link{background:none;border:0;color:var(--text-link);padding:0;font-size:12px;font-weight:600;text-align:left}.monitor-total{font-size:12px;color:var(--text-secondary)}.monitor-entries{color:var(--status-success-text)}.monitor-exits{color:var(--status-danger-text)}.monitor-detail>span{color:var(--text-secondary)}.monitor-hour-sort{display:flex;align-items:center;gap:10px;white-space:nowrap}.monitor-hour-label{display:block;margin-bottom:4px}.monitor-table th:nth-child(1){width:24%}.monitor-table th:nth-child(2){width:8%}.monitor-table th:nth-child(3){width:20%}.monitor-table th:nth-child(4){width:11%}.monitor-table th:nth-child(5){width:19%}.monitor-table th:nth-child(6){width:18%}.monitor-table .monitor-sensor-link{overflow-wrap:anywhere;white-space:normal}.monitor-hour-sort{gap:8px}.monitor-hour-sort button{font-size:10px}.kiosk-screen{min-height:100vh;background:#091827;color:#f3f9fc;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.kiosk-header{min-height:98px;padding:19px clamp(24px,4vw,60px);display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #345069;background:#102336}.kiosk-brand{display:flex;align-items:center;gap:20px}.kiosk-brand img{width:170px;height:52px;object-fit:contain;background:#fff;border-radius:8px;padding:5px}.kiosk-brand span{font-size:24px;font-weight:800}.kiosk-header-time{text-align:right;display:grid;gap:4px}.kiosk-header-time strong{font-size:24px}.kiosk-header-time span{font-size:16px;color:#b8cbd8}.kiosk-body{max-width:1800px;margin:auto;padding:30px clamp(24px,4vw,60px) 48px}.kiosk-error,.kiosk-stale,.kiosk-loading{padding:16px 20px;margin-bottom:20px;border-radius:10px;font-size:24px;font-weight:700}.kiosk-loading{background:#173449;color:#d4eaf0;border:1px solid #3a6075}.kiosk-error{background:#572b33;color:#fff;border:1px solid #e7838a}.kiosk-stale{background:#543c16;color:#ffe5ad;border:1px solid #dda64f}.kiosk-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.kiosk-metrics>div{min-height:190px;border:1px solid #3a6075;border-radius:14px;background:#173449;padding:25px 30px;display:flex;flex-direction:column;justify-content:space-between}.kiosk-metrics span{color:#c6e0e8;font-size:24px}.kiosk-metrics strong{font-size:clamp(66px,8vw,120px);line-height:1;letter-spacing:-.05em}.kiosk-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(350px,1fr);gap:20px;margin-top:20px}.kiosk-panel{min-width:0;border:1px solid #345069;border-radius:14px;background:#102336;padding:25px}.kiosk-panel h2{font-size:26px;margin:0}.kiosk-panel p{font-size:24px;color:#bfd2df;margin:8px 0}.kiosk-chart-wrap{height:370px;margin-top:20px}.kiosk-no-data{height:100%;display:grid;place-items:center;font-size:24px;color:var(--text-secondary)}.kiosk-zone-list{display:grid;margin-top:12px}.kiosk-zone{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:20px;border-top:1px solid #345069;padding:22px 0}.kiosk-zone strong,.kiosk-zone span,.kiosk-zone b,.kiosk-zone small{display:block}.kiosk-zone strong,.kiosk-zone b{font-size:24px}.kiosk-zone span,.kiosk-zone small{font-size:24px;color:#bfd2df;margin-top:4px}.kiosk-zone-status{min-width:110px;text-align:center;border-radius:7px;padding:8px 10px;color:#092b27!important;background:#45d5bc;font-size:24px!important;font-weight:800}.kiosk-zone-status.warning{background:#ffcf72;color:#382b13!important}.kiosk-zone-status.offline{background:#ff8d8b;color:#3d1416!important}.kiosk-zone-status.unmonitored{background:#9eb0be;color:#172738!important}.kiosk-weather{margin-top:20px;border:1px solid #345069;border-radius:14px;background:#102336;padding:20px 25px;display:flex;gap:28px;align-items:center}.kiosk-weather span{font-size:24px;color:#bfd2df}.kiosk-weather strong{font-size:24px}.kiosk-note{color:#bfd2df;font-size:24px;line-height:1.5;margin:24px 0 0}@media(max-width:1000px){.kiosk-grid{grid-template-columns:1fr}.kiosk-chart-wrap{height:300px}}@media(max-width:650px){.kiosk-header{align-items:start;flex-direction:column}.kiosk-header-time{text-align:left}.kiosk-metrics{grid-template-columns:1fr}.kiosk-metrics>div{min-height:155px}.kiosk-metrics strong{font-size:68px}.kiosk-zone{grid-template-columns:1fr auto}.kiosk-zone-status{grid-column:1/-1;text-align:left;width:max-content}.kiosk-panel{padding:20px}.kiosk-chart-wrap{height:240px}}.kiosk-weather{display:block}.kiosk-weather h2{margin:0 0 16px;font-size:26px}.kiosk-weather>p,.kiosk-weather-site p{margin:8px 0;color:#bfd2df;font-size:24px}.kiosk-weather-list{display:grid;gap:12px}.kiosk-weather-site{padding:16px 0;border-top:1px solid #345069}.kiosk-weather-site:first-child{border-top:0;padding-top:0}.kiosk-weather-site>strong{display:block;margin-bottom:12px;font-size:26px}.kiosk-weather-values{display:flex;flex-wrap:wrap;gap:14px 28px}.kiosk-weather-values>div{min-width:170px;max-width:100%;display:grid;gap:6px}.kiosk-weather-values b{font-size:28px}.kiosk-weather-values span{font-size:24px;line-height:1.4;overflow-wrap:anywhere}.kiosk-header{min-height:74px;padding:12px clamp(18px,3vw,36px)}.kiosk-brand{gap:12px}.kiosk-brand img{width:135px;height:43px}.kiosk-brand span{font-size:16px}.kiosk-header-time strong{font-size:17px}.kiosk-header-time span{font-size:12px}.kiosk-body{max-width:1300px;padding:22px clamp(18px,3vw,36px) 32px}.kiosk-metrics{gap:14px}.kiosk-metrics>div{min-height:130px;padding:20px 23px}.kiosk-metrics span{font-size:15px}.kiosk-metrics strong{font-size:clamp(46px,5vw,72px)}.kiosk-grid{gap:14px;margin-top:14px}.kiosk-panel{padding:20px}.kiosk-panel h2,.kiosk-weather h2{font-size:19px}.kiosk-panel p,.kiosk-zone strong,.kiosk-zone b,.kiosk-zone span,.kiosk-zone small,.kiosk-zone-status,.kiosk-weather span,.kiosk-weather strong,.kiosk-weather-site p,.kiosk-weather-values b,.kiosk-weather-values span,.kiosk-note{font-size:14px!important}.kiosk-chart-wrap{height:280px}.kiosk-zone{gap:12px;padding:13px 0}.kiosk-zone-status{min-width:90px}.kiosk-weather{margin-top:14px}.kiosk-weather-site>strong{font-size:16px}@media(max-width:650px){.kiosk-metrics>div{min-height:112px}.kiosk-metrics strong{font-size:52px}.kiosk-chart-wrap{height:230px}}.kiosk-error,.kiosk-stale,.kiosk-loading{font-size:15px;padding:13px 16px;margin-bottom:16px}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.assign-dialog{width:min(540px,calc(100vw - 32px));max-height:min(700px,calc(100dvh - 32px));padding:0;border:1px solid #dce5eb;border-radius:12px;background:#fff;color:#1e293b;box-shadow:0 24px 70px #0f172a38}.assign-dialog::backdrop{background:#0f172a7a}.assign-dialog form{display:flex;flex-direction:column;max-height:calc(100dvh - 34px)}.assign-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 24px 18px;border-bottom:1px solid #e2e8f0}.assign-dialog h2{margin:0;font-size:19px}.assign-dialog header p{margin:5px 0 0;color:#64748b;font-size:12px}.assign-close{border:0;background:transparent;color:#64748b;font-size:25px;line-height:1;cursor:pointer}.assign-close:hover{color:#1e293b}.assign-body{padding:20px 24px;overflow:auto}.assign-zone-label{display:grid;gap:7px;color:#334155;font-size:12px;font-weight:700}.assign-zone-label select{height:42px;width:100%;padding:0 12px;border:1px solid #cbd8e3;border-radius:7px;background:#fff;color:#1e293b}.assign-list-heading{display:flex;justify-content:space-between;align-items:center;margin:22px 0 9px;font-size:12px}.assign-list-heading span{color:#64748b}.assign-list{max-height:280px;overflow:auto;border:2px solid #bdccd7;border-radius:9px;background:#fff}.assign-row{display:flex;align-items:center;gap:12px;min-height:62px;padding:10px 13px;border-bottom:1px solid #dce5eb;cursor:pointer}.assign-row:last-child{border-bottom:0}.assign-row:hover{background:#f7fafb}.assign-row.selected{background:#edf9f6}.assign-row input{width:18px;height:18px;margin:0;accent-color:#13a998;flex:none}.assign-row span{min-width:0;flex:1}.assign-row strong,.assign-row small{display:block;overflow-wrap:anywhere}.assign-row strong{font-size:12px}.assign-row small{margin-top:3px;color:#64748b;font-size:11px}.assign-row em{color:#64748b;font-size:10px;font-style:normal;text-transform:capitalize}.assign-list>p{margin:0;padding:20px;color:#64748b;font-size:12px}.assign-note{margin:13px 0 0;color:#64748b;font-size:11px;line-height:1.5}.assign-error{padding:10px 12px;border-radius:7px;background:#fee2e2;color:#a21c1c;font-size:12px}.assign-dialog footer{display:flex;justify-content:flex-end;gap:10px;padding:15px 24px;border-top:1px solid #e2e8f0}.assign-dialog footer .primary-button{width:auto;min-width:130px;margin:0}.assign-dialog footer .outline-button{padding:0 16px}@media(max-width:600px){.assign-dialog header{padding:18px}.assign-body{padding:16px 18px}.assign-dialog footer{padding:14px 18px}.assign-row{min-height:68px}}.assign-dialog footer .primary-button:disabled{background:#e2e8f0;color:#94a3b8;box-shadow:none;cursor:not-allowed}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px}.map-panel{padding:0;overflow:hidden}.map-summary{padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.map-summary strong{font-size:14px}.map-legend{display:flex;gap:14px;flex-wrap:wrap;color:#64748b;font-size:12px}.map-legend span{display:flex;align-items:center;gap:5px}.map-legend i{width:8px;height:8px;border-radius:50%}.map-legend .online,.sensor-map-dot.online{background:#1cb5a3}.map-legend .warning,.sensor-map-dot.warning{background:#f59e0b}.map-legend .offline,.sensor-map-dot.offline{background:#ef4444}.sensor-map{height:520px;width:100%;background:#e9f0f1}.sensor-map-icon{background:transparent}.sensor-map-dot{display:block;width:18px;height:18px;border:3px solid white;border-radius:50%;box-shadow:0 1px 7px #253b4999}.map-details{padding:22px}.map-details h2,.map-unlocated h2{margin:0 0 12px;font-size:17px}.map-details p{font-size:13px;color:#64748b}.map-detail-sn{font-family:monospace;overflow-wrap:anywhere}.map-coordinate-form{display:grid;gap:13px;margin-top:24px}.map-coordinate-form label{display:grid;gap:6px;font-size:12px;font-weight:600}.map-coordinate-form input{width:100%;padding:10px;border:1px solid #d9e2eb;border-radius:7px}.map-unlocated{margin-top:20px;padding:22px}.map-unlocated h2 span{color:#94a3b8}.map-unlocated p{color:#64748b;font-size:13px}.unlocated-list{display:grid;gap:8px}.unlocated-list button{border:1px solid #e2e8f0;background:#fff;border-radius:8px;padding:12px;text-align:left;display:flex;align-items:center;gap:12px}.unlocated-list button span:nth-child(2){color:#64748b;margin-left:auto}.status-pill{display:inline-block;border-radius:20px;padding:3px 8px;font-size:11px;font-weight:700;background:var(--status-neutral-bg);color:var(--status-neutral-text)}.status-pill.online{background:var(--status-success-bg);color:var(--status-success-text)}.status-pill.warning{background:var(--status-warning-bg);color:var(--status-warning-text)}.status-pill.offline{background:var(--status-danger-bg);color:var(--status-danger-text)}.status-pill.inactive{background:var(--status-neutral-bg);color:var(--status-neutral-text)}@media(max-width:900px){.map-layout{grid-template-columns:1fr}.sensor-map{height:450px}}@media(max-width:600px){.map-summary{align-items:flex-start}.sensor-map{height:360px}.unlocated-list button{flex-wrap:wrap}}.map-summary-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.map-summary-actions .outline-button{padding:7px 10px;font-size:11px;white-space:nowrap}.sensor-map-wrap{position:relative}.map-tile-notice,.map-empty-note{position:absolute;z-index:500;left:16px;bottom:16px;max-width:min(320px,calc(100% - 32px));margin:0;padding:10px 12px;border:1px solid #d5e2e8;border-radius:8px;background:#fff;color:#334155;font-size:12px;line-height:1.45;box-shadow:0 4px 14px #0f172a1f;pointer-events:none}.map-empty-note{bottom:auto;top:16px}.map-import{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 20px;margin:0 0 20px}.map-import>div{flex:1 1 280px}.map-import strong{display:block;font-size:13px}.map-import p{margin:4px 0 0;color:#64748b;font-size:11px}.map-import input[type=file]{max-width:230px;font-size:11px;color:#475569}.map-import .outline-button{white-space:nowrap}.map-import-success{flex-basis:100%;color:#087866;font-size:12px}@media(max-width:600px){.map-import{align-items:stretch}.map-import input[type=file]{max-width:100%}}.map-file-picker{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 12px;border:1px solid #d8e3ec;border-radius:7px;background:#fff;color:#334155;font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer}.map-file-picker:hover{border-color:#1cb5a3;color:#087f73}.map-file-picker:focus-within{outline:2px solid #1cb5a3;outline-offset:2px}.map-file-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.map-file-name{max-width:165px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b;font-size:11px}@media(max-width:600px){.map-file-name{max-width:100%;align-self:center}}.map-weather{border-top:1px solid #e4eaf0;margin-top:22px;padding-top:18px}.map-weather h3{font-size:14px;line-height:1.3;margin:0 0 8px;color:#213748}.map-weather h3 small{display:block;margin-top:3px;font-size:11px;font-weight:500;color:#71869a}.map-details .map-weather p{font-size:11px;line-height:1.45}.map-weather-status{margin:7px 0 12px;color:#506a7e}.map-weather-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.map-weather-grid>div{min-width:0;padding:10px;border:1px solid #dce6ed;border-radius:8px;background:#f8fbfc}.map-weather-grid span,.map-weather-grid strong,.map-weather-grid small{display:block}.map-weather-grid span{color:#597185;font-size:10px}.map-weather-grid strong{margin:4px 0;font-size:16px;color:#203448}.map-weather-grid small{font-size:10px;line-height:1.35;color:#71869a;overflow-wrap:anywhere}.map-weather-forecast{margin:13px 0 0;color:#315b74}.map-weather-note{margin:10px 0 0;color:#8090a0}@media(max-width:900px){.map-weather-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:600px){.map-weather-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.sensor-map-icon{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.sensor-map-count{min-width:24px;max-width:48px;padding:1px 4px;border:1px solid #dbe5eb;border-radius:5px;background:#fff;color:#203448;box-shadow:0 1px 5px #253b4933;font-size:10px;font-weight:700;line-height:14px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-summary-actions .map-place-active{border-color:#1cb5a3;background:#e7f8f4;color:#087f73}.map-place-hint,.map-density-hint{margin:0;padding:0 22px 12px;color:#506a7e;font-size:12px;line-height:1.4}.map-summary .map-legend{flex-basis:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:8px;border-top:1px solid #e4eaf0;gap:9px 12px;line-height:1.3}@media(max-width:600px){.map-summary .map-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}.map-legend .expected,.sensor-map-dot.expected{background:#1cb5a3}.map-legend .variance,.sensor-map-dot.variance{background:#e6a43c}.map-legend .rain,.sensor-map-dot.rain{background:#3986bd}.map-legend .disconnected,.sensor-map-dot.disconnected{background:#df5656}.map-legend .inactive,.sensor-map-dot.inactive{background:#94a3b8}.map-legend .unknown,.sensor-map-dot.unknown{background:#fff;border:2px solid #71869a}.map-flow-detail{margin:17px 0 0;padding:13px;border:1px solid #dce6ed;border-radius:8px;background:#f8fbfc;color:#334155}.map-flow-detail strong,.map-flow-detail small{display:block}.map-flow-detail strong{font-size:12px;margin:9px 0 4px}.map-flow-detail p{margin:0 0 5px}.map-flow-detail small{font-size:10px;color:#71869a;line-height:1.45}.map-indicator-tag{display:inline-block;padding:3px 8px;border-radius:12px;font-size:10px;font-weight:700;background:var(--status-neutral-bg);color:var(--status-neutral-text)}.map-indicator-tag.expected{background:var(--status-success-bg);color:var(--status-success-text)}.map-indicator-tag.variance{background:var(--status-warning-bg);color:var(--status-warning-text)}.map-indicator-tag.rain{background:var(--status-info-bg);color:var(--status-info-text)}.map-indicator-tag.disconnected{background:var(--status-danger-bg);color:var(--status-danger-text)}.map-search{position:relative;margin:16px 0}.map-search form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.map-search-field{display:flex;align-items:center;gap:8px;border:1px solid var(--border-input);border-radius:7px;background:var(--bg-input);padding:0 12px;height:38px;flex:1;min-width:180px}.map-search-field input{border:0;outline:0;background:transparent;color:var(--text-primary);width:100%;font-size:13px}.map-search select{height:38px;border:1px solid var(--border-input);border-radius:7px;background:var(--bg-input);color:var(--text-primary);padding:0 9px}.map-search small,.map-search p{font-size:11px;color:var(--text-secondary);line-height:1.5}.map-search small{display:block;margin-top:9px}.map-search-results{padding:0;margin:8px 0;list-style:none;border:1px solid var(--border);border-radius:8px;overflow:hidden}.map-search-results li+li{border-top:1px solid var(--border)}.map-search-results button{display:block;text-align:left;width:100%;padding:12px;background:var(--bg-elevated);color:var(--text-primary);border:0;font-size:12px}.map-search-results button:hover{background:var(--bg-elevated-hover)}.map-search-results{position:absolute;top:44px;left:0;right:0;z-index:1100;max-height:min(280px,40vh);overflow-y:auto;margin:0;box-shadow:0 8px 24px #0f172a26}.map-search-results [aria-selected=true] button{background:var(--bg-elevated-hover)}@media(max-width:600px){.map-search-results{top:44px}.map-search-results button{overflow-wrap:anywhere}}.map-details-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.map-details-close{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--text-secondary);padding:2px;cursor:pointer}.map-details-close:hover{color:var(--text-primary)}.map-details-close:focus-visible{outline:2px solid var(--text-link);outline-offset:3px}.map-details-close:disabled{opacity:.5;cursor:wait}.map-context-hint{margin:0;padding:0 22px 12px;font-size:12px;line-height:1.45;color:var(--text-secondary)}.map-context-label.leaflet-tooltip{box-sizing:border-box;width:180px;min-width:120px;max-width:180px;white-space:normal;word-break:normal;overflow-wrap:break-word;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);font-family:inherit;font-size:10px;line-height:1.4;box-shadow:0 1px 5px #253b4933;padding:3px 6px}.map-context-window .leaflet-popup-content-wrapper,.map-context-window .leaflet-popup-tip{background:var(--bg-elevated);color:var(--text-primary)}.map-context-popup{max-height:220px;overflow:auto;overflow-wrap:anywhere;font-family:inherit;font-size:12px;line-height:1.5}.map-context-popup strong{display:block;font-size:13px}.map-context-popup p{margin:7px 0;color:var(--text-secondary)}@media(max-width:600px){.map-context-label.leaflet-tooltip{width:140px;min-width:120px;max-width:140px}.map-context-hint{padding-left:18px;padding-right:18px}}.map-context-label.map-context-flow-label{width:max-content;min-width:80px;max-width:140px}.map-empty-note{left:64px;max-width:min(320px,calc(100% - 80px))}.map-search-pin{background:none;border:0;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}.map-search-pin svg{display:block;width:32px;height:42px}.map-search-pin-details{position:relative;padding-right:24px;overflow:auto;overflow-wrap:anywhere;font-size:12px;line-height:1.5;color:var(--text-primary)}.map-search-pin-details strong{display:block;font-size:13px}.map-search-pin-details p{margin:8px 0;color:var(--text-secondary)}.map-search-pin-details small{color:var(--text-secondary)}.map-search-pin-close{position:absolute;right:0;top:0;width:22px;height:22px;padding:0;display:grid;place-items:center;background:transparent;border:0;border-radius:4px;font-size:22px;line-height:1;color:var(--text-secondary)}.map-search-pin-close:hover{background:var(--bg-elevated-hover);color:var(--text-primary)}.sensor-map{scroll-margin-top:80px;scroll-margin-bottom:16px}.map-load-status{position:absolute;z-index:500;right:12px;top:12px;margin:0;padding:5px 9px;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated);color:var(--text-secondary);font-size:11px;pointer-events:none}.map-tile-notice{pointer-events:auto}.map-tile-notice .outline-button{display:block;margin-top:8px;padding:6px 10px;font-size:11px}.weather-impact{margin-top:20px;padding:20px;min-width:0}.weather-impact-quality{margin:14px 0;color:#62788b;font-size:12px}.weather-impact-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.weather-impact-columns>div{min-width:0}.weather-impact h3{font-size:14px;color:#273b4d;margin:10px 0 12px}.weather-impact-scroll{max-width:100%;overflow-x:auto}.weather-impact table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.weather-impact th,.weather-impact td{text-align:left;padding:10px 8px;border-bottom:1px solid #e4ebf0}.weather-impact thead th{font-size:11px;color:#62788b;background:#f6f9fb}.weather-impact tbody th{color:#334155;font-weight:600}.weather-impact tbody td{color:#334155}.weather-impact-columns p,.weather-impact-note,.weather-impact-response p{color:#62788b;font-size:12px;line-height:1.5}.weather-impact-temperature-chart{width:100%;height:190px;margin:12px 0}.weather-impact-response{margin-top:20px;padding-top:16px;border-top:1px solid #e4ebf0}.weather-impact-response-chart{width:100%;height:210px;margin:10px 0}.weather-impact-note{margin:18px 0 0}@media(max-width:850px){.weather-impact-columns{grid-template-columns:1fr}}@media(max-width:600px){.weather-impact{padding:16px}}.weather-page .weather-select{display:grid;gap:6px;color:#53687a;font-size:12px;font-weight:700}.weather-select select{min-width:210px;padding:9px 12px;border:1px solid #cbd8e2;border-radius:7px;background:#fff;color:#203448;font:inherit}.weather-status{margin:0 0 18px;padding:12px 16px;border:1px solid #dce5eb;border-radius:8px;background:#f6fafb;color:#53687a;font-size:13px}.weather-page .metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.weather-metric{min-width:0}.weather-metric strong{font-size:38px}.weather-metric small{display:block;overflow-wrap:anywhere;margin-top:5px}.weather-forecast{margin-top:20px;padding:20px}.weather-forecast>strong{display:block;font-size:24px;margin-top:20px}.weather-forecast>p{color:#62788b}.weather-empty{padding:24px}@media(max-width:1100px){.weather-page .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.weather-page .page-actions{display:block;width:100%}.weather-page .weather-select select{width:100%}}@media(max-width:600px){.weather-page .metric-grid{grid-template-columns:1fr}.weather-select select{min-width:0;width:100%}}.weather-trend{margin-top:20px;padding:20px}.weather-day{display:grid;gap:5px;font-size:12px;font-weight:700;color:#53687a}.weather-day input{min-width:145px;border:1px solid #cbd8e2;border-radius:7px;background:#fff;padding:8px;color:#203448}.weather-trend-chart{height:330px;margin-top:12px}.weather-trend-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:15px;font-size:12px;color:#53687a}.weather-trend-legend span:before{content:"";display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:2px;background:#79a9d6}.weather-trend-legend .temperature:before{background:#c77942}.weather-trend-legend .humidity:before{background:#548e80}.weather-trend-note{margin:12px 0 0;font-size:12px;line-height:1.5;color:#62788b}@media(max-width:600px){.weather-trend{padding:16px}.weather-trend .panel-heading{display:block}.weather-day{margin-top:14px}.weather-day input{width:100%}.weather-trend-chart{height:270px}}.weather-trend-coverage{font-size:12px;color:#62788b;margin:7px 0 0}.weather-backfill-state{margin-top:16px;padding:12px 14px;border:1px solid #dce5eb;border-radius:8px;background:#f7fafb;color:#53687a;font-size:12px;line-height:1.5}.weather-backfill-state>strong{display:block;margin-bottom:5px;color:var(--text-primary);font-size:12px}.weather-backfill-state>div{display:flex;flex-wrap:wrap;gap:4px 16px}.weather-backfill-state b{color:var(--text-primary);font-weight:600}.weather-toolbar{display:flex;justify-content:flex-end;margin-bottom:20px}@media(max-width:700px){.weather-toolbar{display:block}.weather-toolbar .weather-select select{width:100%}}.weather-toolbar{align-items:end;flex-wrap:wrap;gap:14px}.weather-export{display:grid;gap:4px;max-width:100%}.weather-export-fields{display:flex;align-items:end;flex-wrap:wrap;gap:8px}.weather-export label{display:grid;gap:5px;font-size:12px;font-weight:700;color:#53687a}.weather-export input{width:145px;max-width:100%;padding:8px;border:1px solid #cbd8e2;border-radius:7px;background:#fff;color:#203448;font:inherit}.weather-export button{padding:9px 14px;border:0;border-radius:7px;background:#1e6b9a;color:#fff;font-size:13px;font-weight:700;cursor:pointer}.weather-export button:disabled{cursor:not-allowed;opacity:.55}.weather-export small{font-size:11px;color:#62788b}.weather-export-error{font-size:12px;color:#b42318}@media(max-width:700px){.weather-export{margin-top:14px}.weather-export-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.weather-export input{width:100%}.weather-export button{grid-column:1/-1}}.weather-export button[type=submit]{background:#1cb5a3}.weather-export button[type=submit]:hover:not(:disabled){background:#169a8b}.weather-export .weather-export-button{background:#1769aa}.weather-export .weather-export-button:hover:not(:disabled){background:#125783}.weather-rain-heatmap{margin-top:20px;padding:20px;min-width:0}.weather-rain-coverage{margin:16px 0 8px;font-size:12px;color:#62788b}.weather-rain-detail{min-height:34px;padding:8px 11px;margin-bottom:10px;border:1px solid #dce5eb;border-radius:6px;background:#f7fafb;color:#334155;font-size:12px}.weather-rain-scroll{max-width:100%;overflow-x:auto;overflow-y:hidden}.weather-rain-grid{min-width:680px}.weather-rain-hours,.weather-rain-row{display:grid;grid-template-columns:62px repeat(24,minmax(0,1fr));gap:3px;align-items:center}.weather-rain-hours{margin-bottom:5px;font-size:10px;color:#7d8d9e;text-align:center}.weather-rain-row{margin-bottom:3px}.weather-rain-date-label{font-size:11px;font-weight:600;color:#53687a;white-space:nowrap}.weather-rain-cell{height:16px;min-width:0;border:0;border-radius:3px;padding:0;cursor:pointer}.weather-rain-cell.missing,.weather-rain-legend i.missing{background:repeating-linear-gradient(135deg,#eef1f4,#eef1f4 3px,#dce3e9 3px 4px)}.weather-rain-cell.zero,.weather-rain-legend i.zero{background:#e7f3fa;border:1px solid #c8dfea}.weather-rain-cell.wet,.weather-rain-legend i.wet{background:#236fa9}.weather-rain-cell:focus-visible{outline:2px solid #174b70;outline-offset:1px}.weather-rain-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px;font-size:11px;color:#53687a}.weather-rain-legend span{display:inline-flex;align-items:center;gap:6px}.weather-rain-legend i{display:inline-block;width:14px;height:14px;border-radius:2px}@media(max-width:600px){.weather-rain-heatmap{padding:16px}}.weather-rain-distribution{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.weather-rain-distribution>div{min-width:0;padding:10px;border:1px solid var(--border,#dce5eb);border-radius:6px;background:var(--panel,#fff);display:flex;flex-direction:column;gap:2px}.weather-rain-distribution span,.weather-rain-distribution small{font-size:11px;color:var(--text-muted,#62788b)}.weather-rain-distribution strong{font-size:18px;color:var(--text,#24354a)}.weather-rain-distribution p{grid-column:1/-1;margin:0;color:var(--text-muted,#62788b);font-size:11px}@media(max-width:600px){.weather-rain-distribution{grid-template-columns:repeat(2,minmax(0,1fr))}}.weather-toolbar{align-items:flex-start}.weather-page .weather-select{gap:5px}.weather-page .weather-select select,.weather-export input{height:39px;padding:0 10px}.weather-export label{gap:5px}.weather-export-fields button{height:39px;padding:0 14px}.weather-export .weather-export-button{background:#fff;border:1px solid #cbd8e2;color:#1769aa}.weather-export .weather-export-button:hover:not(:disabled){background:#eff8fb}.weather-page .metric-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.weather-comfort-method{margin:10px 0 0;color:#62788b;font-size:12px;line-height:1.5}@media(max-width:1200px){.weather-page .metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.weather-page .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.weather-page .metric-grid{grid-template-columns:1fr}}.weather-rain-cell:hover,.weather-rain-cell:focus-visible{outline:2px solid var(--text-primary,#1e293b);outline-offset:1px}html.dark .weather-rain-cell.missing,html.dark .weather-rain-legend i.missing{background:repeating-linear-gradient(135deg,var(--bg-app),var(--bg-app) 3px,var(--border) 3px,var(--border) 4px)}html.dark .weather-rain-cell.zero,html.dark .weather-rain-legend i.zero{background:#18384d;border-color:#37617c}html.dark .weather-rain-distribution span{color:var(--text-secondary)}.dashboard-weather{margin-top:18px;padding:22px}.dashboard-weather-site{border-top:1px solid #e9eef2;margin-top:18px;padding-top:17px}.dashboard-weather-site h3{font-size:13px;margin:0 0 15px;color:#334155}.dashboard-weather-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dashboard-weather-metric{min-width:0}.dashboard-weather-metric span{display:block;color:#64748b;font-size:11px;font-weight:700}.dashboard-weather-metric strong{display:block;color:#24364a;font-size:22px;line-height:1.2;margin:6px 0}.dashboard-weather-metric small{display:block;color:#8492a3;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.dashboard-weather-forecast{font-size:12px;color:#53687a;margin:16px 0 0}.dashboard-weather-note,.dashboard-weather-message{font-size:12px;line-height:1.5;color:#64748b;margin:16px 0 0}@media(max-width:700px){.dashboard-weather{padding:18px}.dashboard-weather .panel-heading{padding:0}.dashboard-weather-metrics{grid-template-columns:1fr;gap:15px}.dashboard-weather-metric{border-bottom:1px solid #f0f3f6;padding-bottom:12px}.dashboard-weather-metric:last-child{border-bottom:0;padding-bottom:0}}.heatmap-panel{margin-top:20px;padding:22px}.heatmap-key{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-secondary)}.heatmap-key i{width:13px;height:13px;border-radius:3px}.heatmap-scroll{overflow-x:auto}.heatmap-grid{display:grid;grid-template-columns:75px repeat(24,minmax(19px,1fr));gap:4px;min-width:660px}.heatmap-hour{text-align:center;font-size:10px;color:#94a3b8}.heatmap-row{display:contents}.heatmap-row strong{font-size:11px;color:var(--text-secondary);display:flex;align-items:center;gap:5px}.heatmap-row small{font-size:10px;color:#94a3b8;font-weight:500}.heatmap-cell{height:24px;border-radius:3px}.heatmap-cell.missing{background:var(--bg-input-disabled)}.heatmap-cell.zero{background:var(--bg-table-head)}.heatmap-cell.low,.heatmap-key .low{background:#55cdb1}.heatmap-cell.medium,.heatmap-key .medium{background:#f3be62}.heatmap-cell.high,.heatmap-key .high{background:#ed766a}.legend em{display:inline-block;width:13px;border-top:2px dashed #c77942;vertical-align:middle;margin:0 5px 2px 10px}.baseline-note{font-size:11px;line-height:1.5;color:var(--text-secondary);margin:6px 0 0}@media(max-width:700px){.baseline-note{padding:0 8px}}.heatmap-cell{padding:0;border:0;cursor:pointer}.heatmap-cell:focus-visible{outline:2px solid #1769aa;outline-offset:1px}.heatmap-detail{margin:12px 0 0;padding:9px 11px;border:1px solid var(--border);border-radius:7px;background:var(--bg-app);color:var(--text-secondary);font-size:12px}.heatmap-cell:hover,.heatmap-cell:focus-visible{outline:2px solid var(--text-primary,#1e293b);outline-offset:1px}html.dark .heatmap-cell.missing{background:var(--border)}:root{font-family:Inter,Arial,sans-serif;color:#1e293b;background:#f8fafc;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible{outline:3px solid #71d7cc;outline-offset:2px}.app-shell{display:flex;min-height:100vh}.sidebar{width:240px;flex:none;background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar-brand,.login-brand{display:flex;align-items:center;gap:12px}.sidebar-brand{height:72px;padding:0 22px;border-bottom:1px solid #eef2f6}.brand-mark{height:36px;width:36px;border-radius:10px;background:#1cb5a3;color:#fff;display:grid;place-items:center}.sidebar-brand strong,.login-brand strong{display:block;font-size:16px;letter-spacing:-.4px}.sidebar-brand span,.login-brand span{display:block;font-size:11px;color:#94a3b8;margin-top:2px;font-weight:600}.nav-label{color:#94a3b8;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin:32px 22px 12px}.sidebar nav{padding:0 11px;display:grid;gap:3px}.nav-item{height:43px;width:100%;display:flex;align-items:center;gap:12px;border:0;background:transparent;color:#64748b;padding:0 13px;border-radius:8px;text-align:left;font-weight:600;font-size:13px}.nav-item.selected{background:linear-gradient(90deg,#1cb5a329,#1cb5a30a);color:#169a8b}.nav-item:disabled{opacity:.65}.coming-soon{font-size:10px;margin-left:auto;color:#94a3b8}.sidebar-footer{margin-top:auto;border-top:1px solid #e2e8f0;display:flex;align-items:center;padding:16px;gap:10px}.org-avatar,.top-avatar{background:#d8f4ef;color:#148d80;display:grid;place-items:center;border-radius:9px;font-weight:800}.org-avatar{height:36px;width:36px}.sidebar-footer strong,.sidebar-footer span{display:block;font-size:12px}.sidebar-footer span{color:#94a3b8;text-transform:capitalize;margin-top:3px}.sidebar-footer button{border:0;background:none;color:#64748b;margin-left:auto}.main-area{flex:1;min-width:0}.topbar{height:64px;border-bottom:1px solid #e2e8f0;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 32px}.breadcrumb{font-size:13px;color:#94a3b8}.breadcrumb span{padding:0 10px;color:#cbd5e1}.breadcrumb strong{color:#334155}.topbar-right{display:flex;align-items:center;gap:12px;color:#64748b}.live-indicator{font-size:12px;font-weight:700;background:#e7f8f3;color:#138477;padding:8px 12px;border-radius:7px;margin-right:12px}.live-indicator i{display:inline-block;background:#22c55e;border-radius:50%;width:7px;height:7px;margin-right:6px}.top-avatar{height:32px;width:32px}.mobile-menu{display:none;background:none;border:0;color:#334155}.content{max-width:1600px;margin:auto;padding:33px 36px 70px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:end}.page-heading h1{font-size:26px;letter-spacing:-.8px;margin:5px 0 7px}.page-heading p{color:#64748b;font-size:13px;margin:0}.page-heading .eyebrow{color:#1a9c8f;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.page-actions{display:flex;gap:10px;align-items:center}.date-pill,.outline-button{height:37px;border:1px solid #d9e2eb;background:#fff;border-radius:7px;padding:0 13px;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#475569}.outline-button:disabled{opacity:.5}.zone-tabs{margin:28px 0 20px;border-bottom:1px solid #dfe6ed;display:flex;gap:25px;overflow:auto}.zone-tabs button{border:0;background:none;white-space:nowrap;padding:0 2px 13px;color:#64748b;font-weight:600;font-size:13px;border-bottom:2px solid transparent}.zone-tabs button.active{color:#159989;border-bottom-color:#1cb5a3}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric-card{background:#fff;border:1px solid #e4eaf0;border-radius:11px;padding:22px 23px;min-height:147px;box-shadow:0 2px 5px #0f172a06}.metric-card span{display:block;color:#64748b;font-size:12px;font-weight:700}.metric-card strong{display:block;font-size:41px;letter-spacing:-1.5px;margin:14px 0 9px;line-height:1}.metric-card small{font-size:11px;color:#94a3b8}.status-card strong{color:#cbd5e1}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,1fr);gap:17px;margin-top:18px}.panel{background:#fff;border:1px solid #e4eaf0;border-radius:11px;box-shadow:0 2px 5px #0f172a06}.chart-panel{padding:22px 22px 16px}.side-panel{padding:22px 0 0;display:flex;flex-direction:column}.side-panel .panel-heading{padding:0 22px}.panel-heading{display:flex;align-items:start;justify-content:space-between;gap:16px}.panel-heading h2{margin:0;font-size:15px}.panel-heading p{font-size:12px;color:#94a3b8;margin:6px 0}.legend{font-size:11px;color:#64748b;white-space:nowrap}.legend i,.legend b{display:inline-block;width:8px;height:8px;border-radius:2px;background:#1cb5a3;margin:0 5px 0 10px}.legend b{background:#1769aa}.chart-wrap{height:330px;margin-top:22px}.empty-chart{height:100%;display:grid;place-items:center;color:#94a3b8;font-size:13px}.zone-list{padding:8px 12px}.zone-list button{width:100%;display:flex;gap:13px;align-items:center;text-align:left;background:none;border:0;border-radius:7px;padding:13px 10px}.zone-list button:hover{background:#f5faf9}.zone-index{background:#e7f8f4;color:#149b8c;padding:8px;border-radius:7px;font-size:11px;font-weight:800}.zone-list strong,.zone-list small{display:block}.zone-list strong{font-size:12px}.zone-list small{font-size:11px;color:#94a3b8;margin-top:4px}.zone-arrow{margin-left:auto;color:#94a3b8;font-size:20px}.empty-note{color:#94a3b8;font-size:12px;margin:20px}.panel-footnote{border-top:1px solid #edf1f5;margin:auto 0 0;padding:17px 22px;color:#94a3b8;font-size:11px;line-height:1.5}.error-banner{background:var(--status-danger-bg);color:var(--status-danger-text);border:1px solid var(--status-danger-border);border-radius:8px;padding:12px 16px;margin-top:20px;font-size:13px}.login-screen{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#1cb5a3,#1769aa);padding:20px}.login-card{background:#fff;border-radius:16px;padding:42px;width:min(100%,440px);box-shadow:0 24px 70px #0f172a2e}.login-brand{margin-bottom:34px}.login-card h1{font-size:27px;letter-spacing:-.6px;margin:0 0 8px}.login-card .subtle{font-size:13px;color:#64748b;margin:0 0 28px;line-height:1.5}.login-card label{display:block;font-size:12px;font-weight:700;color:#475569;margin:18px 0}.login-card input{display:block;width:100%;height:43px;border:1px solid #cbd5e1;border-radius:7px;padding:0 12px;margin-top:8px;color:#1e293b;background:#fff}.primary-button{width:100%;height:44px;background:#1cb5a3;color:#fff;border:0;border-radius:7px;font-weight:700;margin-top:10px}.primary-button:hover{background:#169a8b}.form-error{font-size:12px;color:var(--status-danger-text)}.login-card .brand-mark{height:42px;width:42px}@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}}@media(max-width:700px){.sidebar{display:none;position:fixed;z-index:5;box-shadow:0 20px 40px #0000001a}.sidebar.sidebar-open{display:flex}.mobile-menu{display:block}.topbar{padding:0 17px}.topbar-right .live-indicator{display:none}.content{padding:25px 17px}.page-heading{align-items:start;flex-direction:column}.page-actions{display:none}.metric-grid{gap:10px}.metric-card{padding:17px;min-height:125px}.metric-card strong{font-size:32px}.metric-card small{font-size:10px}.chart-panel{padding:18px 10px}.panel-heading{padding:0 8px}.legend{display:none}.chart-wrap{height:250px}}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:28px}.admin-form{padding:24px}.admin-form h2,.sensor-table h2{font-size:16px;margin:0 0 7px}.admin-form p,.sensor-table p{font-size:12px;color:#94a3b8;margin:0 0 22px}.admin-form label{display:block;font-size:12px;font-weight:700;color:#475569;margin:15px 0}.admin-form input,.admin-form select{display:block;width:100%;height:40px;margin-top:7px;border:1px solid #cbd5e1;border-radius:7px;padding:0 10px;background:#fff;color:#1e293b}.admin-form .primary-button{width:auto;padding:0 20px}.success-banner{background:#e7f8f3;color:#137f73;border:1px solid #bde9df;border-radius:8px;padding:12px 16px;margin-top:20px;font-size:13px}.sensor-table{margin-top:18px;padding:24px}.table-scroll{overflow:auto}.sensor-table table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.sensor-table th,.sensor-table td{padding:13px 10px;border-bottom:1px solid #edf1f5}.sensor-table th{color:#64748b;background:#f8fafc}@media(max-width:800px){.admin-grid{grid-template-columns:1fr}}:root{--brand-primary: #1CB5A3;--brand-primary-hover: #169A8B;--brand-secondary: #1769AA;--brand-secondary-hover: #125783;--brand-accent: #F5A623;--bg-app: #f8fafc;--bg-elevated: #ffffff;--bg-elevated-hover: #f8fafc;--bg-input: #ffffff;--bg-input-disabled: #f1f5f9;--bg-table-head: #f8fafc;--bg-table-row-hover: rgba(28, 181, 163, .04);--bg-overlay: rgba(15, 23, 42, .45);--sidebar-bg: #ffffff;--sidebar-text: #64748b;--sidebar-text-active: #1e293b;--sidebar-border: #e2e8f0;--sidebar-hover-bg: #f1f5f9;--sidebar-active-bg: linear-gradient(90deg, rgba(28,181,163,.16) 0%, rgba(28,181,163,.04) 100%);--text-primary: #1e293b;--text-secondary: #64748b;--text-tertiary: #94a3b8;--text-on-brand: #ffffff;--text-link: #1CB5A3;--border: #e2e8f0;--border-strong: #cbd5e1;--border-input: #cbd5e1;--status-success-bg: #dcfce7;--status-success-text: #166534;--status-success-border: #86efac;--status-warning-bg: #fef3c7;--status-warning-text: #92400e;--status-warning-border: #fde68a;--status-danger-bg: #fee2e2;--status-danger-text: #991b1b;--status-danger-border: #fca5a5;--status-info-bg: #dbeafe;--status-info-text: #1e40af;--status-info-border: #93c5fd;--status-neutral-bg: #f1f5f9;--status-neutral-text: #64748b;--status-neutral-border: #cbd5e1;--status-purple-bg: #e9d5ff;--status-purple-text: #6b21a8;--status-purple-border: #c084fc;--action-edit-bg: #fef3c7;--action-edit-text: #92400e;--action-edit-border: #fbbf24;--action-delete-bg: #fee2e2;--action-delete-text: #991b1b;--action-delete-border: #fca5a5;--action-reset-bg: #e9d5ff;--action-reset-text: #6b21a8;--action-reset-border: #c084fc;--action-view-bg: #d1fae5;--action-view-text: #065f46;--action-view-border: #6ee7b7;--action-info-bg: #dbeafe;--action-info-text: #1e40af;--action-info-border: #93c5fd;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.1);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.1);--shadow-modal: 0 20px 45px rgba(15,23,42,.2);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--sidebar-width: 240px;--topbar-height: 64px;--font-body: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SF Mono", Monaco, "Courier New", monospace;--transition-fast: .15s ease;--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .3s cubic-bezier(.34, 1.56, .64, 1);--theme-transition: background-color .25s ease, color .25s ease, border-color .25s ease;--primary-color: var(--brand-primary);--primary-hover: var(--brand-primary-hover);--secondary-color: var(--brand-secondary);--secondary-hover: var(--brand-secondary-hover);--accent-color: var(--brand-accent);--bg-primary: var(--bg-app);--bg-secondary: var(--bg-elevated-hover);--bg-light: var(--bg-elevated);--bg-card: var(--bg-elevated);--card-bg: var(--bg-elevated);--card-bg-secondary: var(--bg-elevated-hover);--bg-table: var(--bg-table-head);--text-heading: var(--text-primary);--text-body: var(--text-primary);--border-color: var(--border);--input-bg: var(--bg-input);--input-border: var(--border-input);--sidebar-active: var(--brand-primary);--sidebar-hover: var(--sidebar-hover-bg);--success-green: var(--status-success-text);--error-red: var(--status-danger-text);--warning-amber: var(--brand-accent);--info-blue: #3498DB;--stale-gray: #95A5A6}html.dark{--bg-app: #0f172a;--bg-elevated: #1e293b;--bg-elevated-hover: #334155;--bg-input: #0f172a;--bg-input-disabled: #1e293b;--bg-table-head: #0f172a;--bg-table-row-hover: rgba(28, 181, 163, .08);--bg-overlay: rgba(0, 0, 0, .65);--sidebar-bg: #1e293b;--sidebar-text: #D1D5DB;--sidebar-text-active: #ffffff;--sidebar-border: #334155;--sidebar-hover-bg: #374151;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-tertiary: #64748b;--border: #334155;--border-strong: #475569;--border-input: #475569;--status-success-bg: #052e16;--status-success-text: #86efac;--status-success-border: #166534;--status-warning-bg: #451a03;--status-warning-text: #fcd34d;--status-warning-border: #854d0e;--status-danger-bg: #450a0a;--status-danger-text: #fca5a5;--status-danger-border: #991b1b;--status-info-bg: #172554;--status-info-text: #93c5fd;--status-info-border: #1e40af;--status-neutral-bg: #334155;--status-neutral-text: #94a3b8;--status-neutral-border: #475569;--status-purple-bg: #2e1065;--status-purple-text: #c4b5fd;--status-purple-border: #5b21b6;--action-edit-bg: #451a03;--action-edit-text: #fcd34d;--action-edit-border: #854d0e;--action-delete-bg: #450a0a;--action-delete-text: #fca5a5;--action-delete-border: #991b1b;--action-reset-bg: #2e1065;--action-reset-text: #c4b5fd;--action-reset-border: #5b21b6;--action-view-bg: #052e16;--action-view-text: #86efac;--action-view-border: #166534;--action-info-bg: #172554;--action-info-text: #93c5fd;--action-info-border: #1e40af;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.4);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.4);--shadow-modal: 0 20px 45px rgba(0,0,0,.5)}@media(prefers-color-scheme:dark){html:not(.light):not(.dark){--bg-app: #0f172a;--bg-elevated: #1e293b;--bg-elevated-hover: #334155;--bg-input: #0f172a;--bg-input-disabled: #1e293b;--bg-table-head: #0f172a;--bg-table-row-hover: rgba(28, 181, 163, .08);--bg-overlay: rgba(0, 0, 0, .65);--sidebar-bg: #1e293b;--sidebar-text: #D1D5DB;--sidebar-text-active: #ffffff;--sidebar-border: #334155;--sidebar-hover-bg: #374151;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-tertiary: #64748b;--border: #334155;--border-strong: #475569;--border-input: #475569;--status-success-bg: #052e16;--status-success-text: #86efac;--status-success-border: #166534;--status-warning-bg: #451a03;--status-warning-text: #fcd34d;--status-warning-border: #854d0e;--status-danger-bg: #450a0a;--status-danger-text: #fca5a5;--status-danger-border: #991b1b;--status-info-bg: #172554;--status-info-text: #93c5fd;--status-info-border: #1e40af;--status-neutral-bg: #334155;--status-neutral-text: #94a3b8;--status-neutral-border: #475569;--status-purple-bg: #2e1065;--status-purple-text: #c4b5fd;--status-purple-border: #5b21b6;--action-edit-bg: #451a03;--action-edit-text: #fcd34d;--action-edit-border: #854d0e;--action-delete-bg: #450a0a;--action-delete-text: #fca5a5;--action-delete-border: #991b1b;--action-reset-bg: #2e1065;--action-reset-text: #c4b5fd;--action-reset-border: #5b21b6;--action-view-bg: #052e16;--action-view-text: #86efac;--action-view-border: #166534;--action-info-bg: #172554;--action-info-text: #93c5fd;--action-info-border: #1e40af;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.4);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.4);--shadow-modal: 0 20px 45px rgba(0,0,0,.5)}}:root{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#1e293b}button,input,select{font-family:inherit}.sidebar-brand{height:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:8px 18px}.sidebar-brand img{width:190px;height:49px;object-fit:contain;object-position:left center}.sidebar-brand span{font-size:10px;font-weight:700;letter-spacing:.04em;color:#64748b;margin-left:3px;margin-top:-2px}.nav-item{font-size:14px;height:45px;transition:background-color .15s ease,color .15s ease}.nav-item:hover{background:#f1f5f9;color:#1e293b}.nav-item.selected{box-shadow:inset 3px 0 #1cb5a3;color:#159a8b;background:linear-gradient(90deg,#1cb5a32b,#1cb5a30a)}.topbar{box-shadow:0 1px 2px #0000000a}.user-menu{position:relative}.user-menu-trigger{border:1px solid #e2e8f0;background:#fff;border-radius:8px;padding:5px 8px;display:flex;align-items:center;justify-content:center;gap:9px;color:#334155;font-size:12px;font-weight:700}.user-menu-trigger:hover{border-color:#1cb5a3;background:#f8fafc}.user-menu-popup{position:absolute;right:0;top:calc(100% + 7px);z-index:30;width:100%;min-width:180px;max-width:calc(100vw - 34px);display:grid;gap:4px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 12px 28px #0f172a1f;border-radius:9px;padding:8px}.user-menu-popup>span{display:block;padding:6px 10px;color:#94a3b8;font-size:11px;overflow-wrap:anywhere}.user-menu-popup button{width:100%;display:flex;align-items:center;gap:8px;border:0;background:#fff;border-radius:6px;padding:10px;color:#334155;text-align:left;font-size:12px}.user-menu-popup button:hover{background:#f1f5f9}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card strong{font-size:36px}.page-heading h1{font-size:27px}.login-screen{position:relative;overflow:hidden}.login-screen:before{content:"";position:absolute;inset:-50%;background:repeating-linear-gradient(0deg,transparent,transparent 50px,rgba(255,255,255,.03) 50px,rgba(255,255,255,.03) 51px),repeating-linear-gradient(90deg,transparent,transparent 50px,rgba(255,255,255,.03) 50px,rgba(255,255,255,.03) 51px);pointer-events:none}.login-card{width:min(100%,480px);padding:43px 42px 38px;border:1px solid #e2e8f0;box-shadow:0 10px 15px -3px #0000001a;position:relative}.login-card h1{text-align:center;font-size:28px;letter-spacing:-.5px;margin:0 0 5px}.login-card .subtle{text-align:center;font-size:14px;margin:0 0 34px;color:#64748b}.login-card label{font-size:14px;font-weight:600;margin:20px 0 0;color:#263449}.login-card input{height:48px;border:2px solid #e2e8f0;border-radius:10px;padding:0 16px;font-size:14px;font-weight:500;margin-top:8px}.login-card input::placeholder{color:#94a3b8}.login-card input:focus{outline:none;border-color:#1cb5a3;box-shadow:0 0 0 3px #1cb5a31f}.password-field{position:relative}.password-field input{padding-right:48px}.password-field button{position:absolute;right:10px;top:17px;display:grid;place-items:center;width:32px;height:32px;border:0;background:transparent;color:#94a3b8;border-radius:6px}.password-field button:hover{background:#f1f5f9;color:#475569}.login-card .primary-button{height:52px;margin-top:38px;border-radius:10px;font-size:15px;letter-spacing:.02em;background:linear-gradient(135deg,#1cb5a3,#1769aa);box-shadow:0 4px 12px #1769aa2e}.login-card .primary-button:hover{filter:brightness(.97)}.login-card .form-error{margin:12px 0 0}@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.metric-grid{grid-template-columns:1fr 1fr}.metric-card:last-child{grid-column:1/-1}.sidebar-brand{height:78px}.user-menu-trigger>span:last-child{display:none}.user-menu-trigger{width:44px;height:44px;padding:5px;gap:0}.user-menu-trigger .top-avatar{flex:none}.user-menu-popup{width:min(280px,calc(100vw - 34px))}.login-card{padding:32px 26px}.login-card h1{font-size:25px}}.admin-view-tabs{display:flex;gap:6px;border-bottom:1px solid #e2e8f0;margin-top:26px}.admin-view-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:#64748b;padding:12px 15px;font-size:13px;font-weight:700}.admin-view-tabs button.active{color:#168f83;border-bottom-color:#1cb5a3}.admin-view-tabs button:hover{color:#168f83}.admin-records{margin-top:20px}.record-panel{box-shadow:0 1px 2px #0f172a0a}.empty-zone-banner{margin:18px 0 0;padding:14px 16px;border:1px solid #d8e5ea;border-left:3px solid #1cb5a3;border-radius:8px;background:#f6fafb;color:#334155;font-size:13px;line-height:1.5}.reading-status{display:flex;align-items:center;justify-content:space-between;gap:8px 24px;flex-wrap:wrap;margin-top:14px;padding:11px 15px;border:1px solid #dce8eb;border-radius:8px;background:#f7fafb;color:#64748b;font-size:12px;line-height:1.4}.reading-status strong{color:#334155;margin-right:8px}.reading-status-coverage{flex-basis:100%;border-top:1px solid #e4edf0;padding-top:8px}@media(max-width:700px){.sidebar-backdrop{position:fixed;inset:0;z-index:4;border:0;background:#0f172a73}.sidebar.sidebar-open{z-index:5}.breadcrumb{font-size:12px}.topbar{gap:10px}}.sidebar{transition:width .24s ease}.sidebar-brand{flex-direction:row;justify-content:space-between;gap:8px;padding:8px 12px 8px 17px}.sidebar-logo{min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.sidebar-brand img{width:166px;height:45px}.sidebar-brand span{white-space:nowrap}.sidebar-collapse-button{width:28px;height:28px;flex:none;display:grid;place-items:center;padding:0;border:1px solid #dce5eb;border-radius:6px;background:#f8fafc;color:#64748b}.sidebar-collapse-button:hover{background:#eef6f5;color:#168f83}.sidebar nav{padding-top:10px;overflow-y:auto}.sidebar-collapsed{width:70px}.sidebar-collapsed .sidebar-brand{justify-content:center;padding:8px}.sidebar-collapsed .sidebar-logo,.sidebar-collapsed .nav-item span,.sidebar-collapsed .sidebar-footer .org-avatar,.sidebar-collapsed .sidebar-footer>div{display:none}.sidebar-collapsed nav{padding-left:7px;padding-right:7px}.sidebar-collapsed .nav-item{justify-content:center;padding:0}.sidebar-collapsed .sidebar-footer{justify-content:center;padding:16px 6px}.sidebar-collapsed .sidebar-footer button{margin:0}@media(max-width:700px){.sidebar.sidebar-open{width:240px}.sidebar.sidebar-open .sidebar-logo{display:flex}.sidebar.sidebar-open .nav-item span{display:inline}.sidebar.sidebar-open .sidebar-footer .org-avatar{display:grid}.sidebar.sidebar-open .sidebar-footer>div:not(.org-avatar){display:block}.sidebar.sidebar-open .sidebar-brand{justify-content:flex-start;padding:8px 18px}.sidebar.sidebar-open .sidebar-brand img{width:190px}.sidebar.sidebar-open nav{padding-left:11px;padding-right:11px}.sidebar.sidebar-open .nav-item{justify-content:flex-start;padding:0 13px}.sidebar.sidebar-open .sidebar-footer{justify-content:flex-start;padding:16px}.sidebar.sidebar-open .sidebar-footer button{margin-left:auto}.sidebar-collapse-button{display:none}}.topbar{padding:0;height:64px}.topbar-content{display:flex;align-items:center;justify-content:space-between;width:100%;height:100%;padding:0 32px}.topbar-left{display:flex;align-items:center;gap:16px;min-width:0}.topbar-title-block{min-width:0}.topbar-page-title{margin:0;color:#374151;font-size:20px;font-weight:700;line-height:1.25}.topbar-page-subtitle{display:block;margin-top:2px;color:#94a3b8;font-size:12px;font-weight:500;line-height:1.25}@media(max-width:700px){.topbar-content{padding:0 17px}.topbar-left{gap:9px}.topbar-page-title{font-size:16px}.topbar-page-subtitle{font-size:10px}}.topbar-organization-logo{width:86px;height:40px;flex:0 0 86px;border:1px solid #dbe5ed;border-radius:7px;background:#fff;display:grid;place-items:center;padding:4px}.topbar-organization-logo img{display:block;max-width:100%;max-height:100%;object-fit:contain}.topbar-organization-logo .organization-logo-dark{display:none}html.dark .topbar-organization-logo{background:#203241;border-color:#42596a}html.dark .topbar-organization-logo .organization-logo-light{display:none}html.dark .topbar-organization-logo .organization-logo-dark{display:block}@media(max-width:700px){.topbar-organization-logo{width:46px;height:32px;flex-basis:46px;padding:3px}.topbar-title-block{overflow:hidden}.topbar-page-subtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.dashboard-date{display:flex;justify-content:flex-end}.dashboard-date+.zone-tabs{margin-top:16px}.content>.admin-view-tabs{margin-top:0}.password-field{display:flex;align-items:center;margin-top:8px}.password-field input{margin-top:0}.password-field button{top:50%;transform:translateY(-50%)}.sidebar-brand{height:72px;min-height:72px;padding:1.25rem .75rem}.sidebar-brand img{width:100%;max-width:210px;height:56px}.sidebar-logo{flex:1;overflow:hidden}.sidebar nav{padding:.5rem .625rem;gap:0}.nav-item{min-height:44px;height:auto;padding:.75rem 1rem;font-size:14.5px;font-weight:500}.sidebar-collapsed .sidebar-brand{padding:1rem .5rem}.sidebar-collapsed .sidebar-logo{display:none}@media(max-width:700px){.sidebar.sidebar-open .sidebar-brand{padding:1.25rem .75rem}.sidebar.sidebar-open .sidebar-brand img{width:100%;max-width:210px;height:56px}.sidebar.sidebar-open nav{padding:.5rem .625rem}.sidebar.sidebar-open .nav-item{padding:.75rem 1rem}}.dashboard-back{margin:0 0 18px;width:auto;color:#1769aa}.dashboard-overview-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}.performance-strip{display:flex;align-items:center;gap:10px 22px;flex-wrap:wrap;margin-top:16px;padding:13px 16px;border:1px solid #dce8eb;border-left:4px solid #94a3b8;border-radius:8px;background:#f7fafb;color:#475569;font-size:12px}.performance-strip>span:first-child{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.performance-strip strong{font-size:13px;color:#334155}.performance-strip small{color:#64748b}.performance-strip button{margin-left:auto;background:none;border:0;color:#168d80;font-weight:700;cursor:pointer}.performance-above_expected{border-left-color:#21a979}.performance-on_track{border-left-color:#1cb5a3}.performance-below_weather{border-left-color:#3986bd}.performance-below_non_weather{border-left-color:#c58829}.performance-below_weather_unknown{border-left-color:#94a3b8}.dashboard-overview-links button{display:grid;gap:9px;padding:22px;text-align:left;cursor:pointer}.dashboard-overview-links button:hover{border-color:#1cb5a3;background:#f7fcfa}.dashboard-overview-links strong{font-size:16px;color:#1e293b}.dashboard-overview-links span{font-size:12px;color:#64748b}@media(max-width:700px){.dashboard-overview-links{grid-template-columns:1fr}}.sidebar-brand{align-items:center;flex-shrink:0;padding:8px 12px}.sidebar-logo{align-items:center}.sidebar-brand img{display:block;object-position:center}.primary-button,.outline-button{height:38px;min-height:38px;padding:0 16px;margin-top:0;font-size:13px;line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:7px}dialog footer .primary-button,dialog footer .outline-button{height:38px;min-height:38px;width:auto;margin:0;padding:0 16px;font-size:13px}.settings-theme-options button{height:38px;min-height:38px;width:130px;padding:0 16px;border:1px solid var(--border-input);font-size:13px;line-height:1;box-shadow:none}html.dark .settings-theme-options .outline-button{background:var(--bg-input)}.nav-item,.outline-button,.primary-button,.panel,.sidebar-collapse-button{transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}.sidebar-collapse-button:active{transform:scale(.94)}.nav-item:hover{background:var(--sidebar-hover-bg)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:600px){.settings-theme-options button{width:auto;flex:1}}.row-action,.report-schedules-actions .row-action,.reports-history .row-action{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 9px;border:1px solid var(--action-border);border-radius:6px;font-size:12px;font-weight:600;background:var(--action-bg);color:var(--action-text);text-decoration:none}.action-edit{--action-bg:var(--action-edit-bg);--action-text:var(--action-edit-text);--action-border:var(--action-edit-border)}.action-info{--action-bg:var(--action-info-bg);--action-text:var(--action-info-text);--action-border:var(--action-info-border)}.action-view{--action-bg:var(--action-view-bg);--action-text:var(--action-view-text);--action-border:var(--action-view-border)}.row-action:hover{filter:brightness(.97);text-decoration:none!important}.chart-wrap{-webkit-user-select:none;user-select:none}.action-delete{--action-bg:var(--status-danger-bg);--action-text:var(--status-danger-text);--action-border:var(--status-danger-border)}html.dark{color-scheme:dark}html.light{color-scheme:light}@media(prefers-color-scheme:dark){html:not(.light):not(.dark){color-scheme:dark}}html.dark body,html.dark .app-shell,html.dark .main-area,html.dark .login-screen{background:#0f172a;color:#f1f5f9}html.dark .sidebar,html.dark .topbar,html.dark .panel,html.dark .metric-card,html.dark .login-card,html.dark .user-menu-popup,html.dark .account-modal,html.dark .notification-dialog,html.dark dialog,html.dark .settings-card{background:#1e293b;color:#f1f5f9;border-color:#334155}html.dark .nav-item,html.dark .topbar-page-title,html.dark .panel h2,html.dark .metric-card strong,html.dark .record-line strong,html.dark .settings-card h2{color:#f1f5f9}html.dark .nav-item:hover,html.dark .user-menu-popup button:hover{background:#334155}html.dark .mobile-menu,html.dark .sidebar-collapse-button{color:#d8e6ee;background:#0f172a;border-color:#475569}html.dark .user-menu-popup button,html.dark .user-menu-trigger,html.dark .outline-button,html.dark input,html.dark select,html.dark textarea{background:#0f172a;color:#f1f5f9;border-color:#475569}html.dark .panel p,html.dark .panel small,html.dark .metric-card span,html.dark .topbar-page-subtitle,html.dark .settings-card p{color:#94a3b8}html.dark .reading-status,html.dark .empty-zone-banner,html.dark .performance-strip,html.dark .reports-chart-detail,html.dark .reports-hour-detail{background:#0f172a;color:#c9d7e1;border-color:#475569}html.dark .reports-history th{background:#0f172a;color:#94a3b8}html.dark .reports-history td,html.dark .record-item{border-color:#334155;color:#f1f5f9}html.light .kiosk-screen{background:#f6f9fb;color:#203448}html.light .kiosk-header,html.light .kiosk-panel,html.light .kiosk-weather{background:#fff;color:#203448;border-color:#dbe6ec}html.light .kiosk-metrics>div{background:#fff;color:#203448;border-color:#dbe6ec}html.light .kiosk-header-time span,html.light .kiosk-metrics span,html.light .kiosk-panel p,html.light .kiosk-zone span,html.light .kiosk-zone small,html.light .kiosk-weather span,html.light .kiosk-weather-site p,html.light .kiosk-note{color:#63798b}html.light .kiosk-zone{border-color:#e2e8f0}@media(prefers-color-scheme:light){html:not(.dark) .kiosk-screen{background:#f6f9fb;color:#203448}html:not(.dark) .kiosk-header,html:not(.dark) .kiosk-panel,html:not(.dark) .kiosk-weather,html:not(.dark) .kiosk-metrics>div{background:#fff;color:#203448;border-color:#dbe6ec}html:not(.dark) .kiosk-header-time span,html:not(.dark) .kiosk-metrics span,html:not(.dark) .kiosk-panel p,html:not(.dark) .kiosk-zone span,html:not(.dark) .kiosk-zone small,html:not(.dark) .kiosk-weather span,html:not(.dark) .kiosk-weather-site p,html:not(.dark) .kiosk-note{color:#63798b}html:not(.dark) .kiosk-zone{border-color:#e2e8f0}}@media(prefers-color-scheme:dark){html:not(.light) body,html:not(.light) .app-shell,html:not(.light) .main-area{background:#0f172a;color:#f1f5f9}html:not(.light) .sidebar,html:not(.light) .topbar,html:not(.light) .panel,html:not(.light) .metric-card,html:not(.light) .user-menu-popup{background:#1e293b;color:#f1f5f9;border-color:#334155}html:not(.light) .nav-item,html:not(.light) .topbar-page-title,html:not(.light) .panel h2,html:not(.light) .metric-card strong{color:#f1f5f9}html:not(.light) input,html:not(.light) select,html:not(.light) textarea,html:not(.light) .outline-button{background:#0f172a;color:#f1f5f9;border-color:#475569}}html.dark .notification-trigger,html.dark .notification-close,html.dark .notification-footer{background:#0f172a;color:#d8e6ee;border-color:#475569}html.dark .notification-header h2,html.dark .notification-item h3{color:#f1f5f9}html.dark .notification-header p,html.dark .notification-item p,html.dark .notification-meta,html.dark .notification-footer,html.dark .notification-tabs button,html.dark .notification-item .notification-device{color:#94a3b8}html.dark .notification-item,html.dark .notification-tabs{border-color:#334155}html.dark .notification-tabs button[aria-selected=true]{color:#35c9b6}html.dark .admin-dialog,html.dark .admin-create-options button,html.dark .report-schedules-dialog,html.dark .report-schedules-table,html.dark .report-schedules-table tr{background:#1e293b;color:#f1f5f9;border-color:#334155}html.dark .admin-dialog header,html.dark .admin-dialog-form footer,html.dark .report-schedules-dialog header,html.dark .report-schedules-dialog footer{border-color:#334155}html.dark .admin-dialog h2,html.dark .admin-create-options strong,html.dark .report-schedules-dialog h2{color:#f1f5f9}html.dark .admin-dialog-form label,html.dark .report-schedules-fields label{color:#dce8f0}html.dark .admin-create-options button:hover{background:#334155}html.dark .admin-dialog-form p,html.dark .admin-create-options span{color:#94a3b8}html.dark .weather-rain-detail,html.dark .weather-backfill-state,html.dark .reports-generator,html.dark .reports-history,html.dark .report-schedules-log{background:#1e293b;color:#d6e4ed;border-color:#334155}html.dark .weather-rain-distribution>div{background:#0f172a;border-color:#475569}html.dark .weather-rain-distribution strong{color:#f1f5f9}html.dark .weather-rain-coverage,html.dark .weather-rain-legend,html.dark .weather-comfort-method,html.dark .dashboard-weather-metric span,html.dark .dashboard-weather-metric small,html.dark .dashboard-weather-note{color:#94a3b8}html.dark .dashboard-weather-metric strong,html.dark .dashboard-weather-site h3{color:#f1f5f9}html.dark .dashboard-weather-site,html.dark .dashboard-weather-metric{border-color:#334155}html.dark .weather-impact h3,html.dark .weather-impact tbody th,html.dark .weather-impact tbody td{color:#f1f5f9}html.dark .weather-impact thead th{background:#0f172a;color:#94a3b8}html.dark .weather-impact th,html.dark .weather-impact td{border-color:#334155}html.dark .weather-impact-quality{color:#94a3b8}html.dark .weather-impact-response{border-color:#334155}html.dark .weather-impact-response p,html.dark .weather-impact-columns p,html.dark .weather-impact-note,html.dark .weather-rain-date-label,html.dark .weather-day,html.dark .weather-select,html.dark .weather-export label{color:#94a3b8}html.dark .weather-status{background:#0f172a;color:#c9d7e1;border-color:#475569}html.dark .weather-export .weather-export-button{background:#0f172a;color:#79cdf6;border-color:#475569}html.dark .weather-export small{color:#94a3b8}html.dark .dashboard-overview-links button:hover{background:#334155}html.dark .dashboard-overview-links strong{color:#f1f5f9}html.dark .dashboard-overview-links span{color:#94a3b8}html.dark .map-summary .map-legend{border-color:#334155;color:#94a3b8}html.dark .map-flow-detail{background:#0f172a;color:#f1f5f9;border-color:#475569}html.dark .map-flow-detail strong{color:#f1f5f9}html.dark .map-flow-detail small{color:#94a3b8}html.dark .map-weather h3,html.dark .map-weather-grid strong{color:#f1f5f9}html.dark .map-weather h3 small,html.dark .map-weather-grid span,html.dark .map-weather-grid small,html.dark .map-weather-note{color:#94a3b8}html.dark .map-weather-grid>div{background:#0f172a;border-color:#475569}html.dark .map-weather{border-color:#475569}html.dark .map-weather-status,html.dark .map-weather-forecast{color:#c4d5e0}html.dark .map-legend .unknown,html.dark .sensor-map-dot.unknown{background:#0f172a;border-color:#9fb5c4}html.dark .performance-strip strong{color:#f1f5f9}html.dark .performance-strip small{color:#94a3b8}html.dark .performance-strip button{color:#59d8c8}html.dark .reports-tabs{border-color:#475569}html.dark .reports-tabs button{color:#94a3b8}html.dark .reports-tabs button.active,html.dark .reports-tabs button:hover{color:#f1f5f9}html.dark .report-schedules-heading p,html.dark .report-schedules-log p,html.dark .reports-history-heading p{color:#94a3b8}html.dark .report-schedules-table td,html.dark .report-schedules-log li,html.dark .reports-history td{color:#f1f5f9;border-color:#334155}html.dark .report-schedules-table td:before,html.dark .reports-history td:before{color:#94a3b8}html.dark .report-schedules-table th{background:#0f172a;color:#94a3b8;border-color:#475569}html.dark .report-schedules-actions button,html.dark .reports-history-download{color:#79cdf6}html.light .kiosk-screen svg text{fill:#6b7d8b}@media(prefers-color-scheme:light){html:not(.dark) .kiosk-screen svg text{fill:#6b7d8b}}@media(prefers-color-scheme:dark){html:not(.light):not(.dark) body,html:not(.light):not(.dark) .app-shell,html:not(.light):not(.dark) .main-area,html:not(.light):not(.dark) .login-screen{background:#0f172a;color:#f1f5f9}html:not(.light):not(.dark) .sidebar,html:not(.light):not(.dark) .topbar,html:not(.light):not(.dark) .panel,html:not(.light):not(.dark) .metric-card,html:not(.light):not(.dark) .login-card,html:not(.light):not(.dark) .user-menu-popup,html:not(.light):not(.dark) .account-modal,html:not(.light):not(.dark) .notification-dialog,html:not(.light):not(.dark) dialog,html:not(.light):not(.dark) .settings-card{background:#1e293b;color:#f1f5f9;border-color:#334155}html:not(.light):not(.dark) .nav-item,html:not(.light):not(.dark) .topbar-page-title,html:not(.light):not(.dark) .panel h2,html:not(.light):not(.dark) .metric-card strong,html:not(.light):not(.dark) .record-line strong,html:not(.light):not(.dark) .settings-card h2{color:#f1f5f9}html:not(.light):not(.dark) .nav-item:hover,html:not(.light):not(.dark) .user-menu-popup button:hover{background:#334155}html:not(.light):not(.dark) .mobile-menu,html:not(.light):not(.dark) .sidebar-collapse-button{color:#d8e6ee;background:#0f172a;border-color:#475569}html:not(.light):not(.dark) .user-menu-popup button,html:not(.light):not(.dark) .user-menu-trigger,html:not(.light):not(.dark) .outline-button,html:not(.light):not(.dark) input,html:not(.light):not(.dark) select,html:not(.light):not(.dark) textarea{background:#0f172a;color:#f1f5f9;border-color:#475569}html:not(.light):not(.dark) .panel p,html:not(.light):not(.dark) .panel small,html:not(.light):not(.dark) .metric-card span,html:not(.light):not(.dark) .topbar-page-subtitle,html:not(.light):not(.dark) .settings-card p{color:#94a3b8}html:not(.light):not(.dark) .reading-status,html:not(.light):not(.dark) .empty-zone-banner,html:not(.light):not(.dark) .performance-strip,html:not(.light):not(.dark) .reports-chart-detail,html:not(.light):not(.dark) .reports-hour-detail{background:#0f172a;color:#c9d7e1;border-color:#475569}html:not(.light):not(.dark) .map-summary .map-legend{border-color:#334155;color:#94a3b8}html:not(.light):not(.dark) .map-flow-detail{background:#0f172a;color:#f1f5f9;border-color:#475569}html:not(.light):not(.dark) .map-flow-detail strong{color:#f1f5f9}html:not(.light):not(.dark) .map-flow-detail small{color:#94a3b8}html:not(.light):not(.dark) .map-weather h3,html:not(.light):not(.dark) .map-weather-grid strong{color:#f1f5f9}html:not(.light):not(.dark) .map-weather h3 small,html:not(.light):not(.dark) .map-weather-grid span,html:not(.light):not(.dark) .map-weather-grid small,html:not(.light):not(.dark) .map-weather-note{color:#94a3b8}html:not(.light):not(.dark) .map-weather-grid>div{background:#0f172a;border-color:#475569}html:not(.light):not(.dark) .map-weather{border-color:#475569}html:not(.light):not(.dark) .map-weather-status,html:not(.light):not(.dark) .map-weather-forecast{color:#c4d5e0}html:not(.light):not(.dark) .map-legend .unknown,html:not(.light):not(.dark) .sensor-map-dot.unknown{background:#0f172a;border-color:#9fb5c4}html:not(.light):not(.dark) .reports-history th{background:#0f172a;color:#94a3b8}html:not(.light):not(.dark) .reports-history td,html:not(.light):not(.dark) .record-item{border-color:#334155;color:#f1f5f9}html:not(.light):not(.dark) .reports-tabs{border-color:#475569}html:not(.light):not(.dark) .reports-tabs button{color:#94a3b8}html:not(.light):not(.dark) .reports-tabs button.active,html:not(.light):not(.dark) .reports-tabs button:hover{color:#f1f5f9}html:not(.light):not(.dark) .report-schedules-heading p,html:not(.light):not(.dark) .report-schedules-log p,html:not(.light):not(.dark) .reports-history-heading p{color:#94a3b8}html:not(.light):not(.dark) .report-schedules-table td,html:not(.light):not(.dark) .report-schedules-log li,html:not(.light):not(.dark) .reports-history td{color:#f1f5f9;border-color:#334155}html:not(.light):not(.dark) .report-schedules-table td:before,html:not(.light):not(.dark) .reports-history td:before{color:#94a3b8}html:not(.light):not(.dark) .report-schedules-table th{background:#0f172a;color:#94a3b8;border-color:#475569}html:not(.light):not(.dark) .report-schedules-actions button,html:not(.light):not(.dark) .reports-history-download{color:#79cdf6}html:not(.light):not(.dark) .weather-status{background:#0f172a;color:#c9d7e1;border-color:#475569}html:not(.light):not(.dark) .weather-export .weather-export-button{background:#0f172a;color:#79cdf6;border-color:#475569}html:not(.light):not(.dark) .weather-export small{color:#94a3b8}}html.dark .sensor-manage-panel,html.dark .sensor-manage-search,html.dark .sensor-manage-dialog,html.dark .sensor-manage-table,html.dark .reports-summary>div,html.dark .map-tile-notice,html.dark .map-empty-note,html.dark .map-file-picker,html.dark .unlocated-list button{background:#1e293b;color:#f1f5f9;border-color:#334155}html.dark .sensor-manage-table th,html.dark .feed-list-head{background:#0f172a;color:#94a3b8;border-color:#475569}html.dark .sensor-manage-table td,html.dark .sensor-manage-heading,html.dark .feed-row,html.dark .feed-panel-heading{color:#dce8f0;border-color:#334155}html.dark .sensor-manage-table tbody tr:hover,html.dark .sensor-manage-actions button:hover,html.dark .feed-row.offline{background:#334155}html.dark .sensor-manage-table strong,html.dark .feed-row strong,html.dark .data-health-summary strong,html.dark .data-health-recovery h3,html.dark .data-health-jobs h4,html.dark .reports-summary strong,html.dark .reading-status strong,html.dark .map-summary strong{color:#f1f5f9}html.dark .sensor-manage-table small,html.dark .sensor-manage-heading span,html.dark .sensor-manage-table td:before,html.dark .feed-row small,html.dark .feed-panel-heading span,html.dark .fleet-stat small,html.dark .sensor-status-card p,html.dark .last-report span,html.dark .uptime-grid small,html.dark .reports-summary span,html.dark .reports-summary small,html.dark .map-legend,html.dark .map-details p,html.dark .map-unlocated p{color:#94a3b8}html.dark .sensor-manage-search input{background:transparent;color:#f1f5f9}html.dark .sensor-manage-actions button{background:#203a43;color:#7ee0d4;border-color:#37636a}html.dark .sensor-manage-actions button:nth-child(2){background:#283850;color:#acc9ef;border-color:#466280}html.dark .sensor-manage-dialog header,html.dark .sensor-manage-dialog footer,html.dark .last-report,html.dark .uptime-grid,html.dark .uptime-grid span,html.dark .sensor-inspect-button,html.dark .data-health-summary,html.dark .data-health-detail,html.dark .data-health-footnote,html.dark .data-health-recovery,html.dark .data-health-jobs li,html.dark .data-health-job-detail li{border-color:#334155}html.dark .sensor-manage-dialog h2,html.dark .sensor-manage-dialog-body>label,html.dark .sensor-manage-close:hover,html.dark .fleet-stat strong{color:#f1f5f9}html.dark .sensor-manage-dialog header p,html.dark .sensor-manage-help,html.dark .data-health-header label,html.dark .data-health-summary,html.dark .data-health-legend,html.dark .data-health-day,html.dark .data-health-recovery-form label,html.dark .data-health-recovery-help,html.dark .data-health-jobs li small,html.dark .data-health-detail li small{color:#94a3b8}html.dark .sensor-manage-endpoint,html.dark .sensor-manage-custom-id,html.dark .data-health-hover-detail,html.dark .data-health-day.selected,html.dark .data-health-job-detail{background:#0f172a;color:#c9d7e1;border-color:#475569}html.dark .sensor-manage-endpoint>span,html.dark .sensor-manage-custom-id{color:#c9d7e1}html.dark .sensor-manage-endpoint code,html.dark .sensor-manage-custom-id code,html.dark .data-health-detail-title button,html.dark .data-health-jobs li button{color:#79cdf6}html.dark .sensor-manage-status.inactive{background:#334155;color:#c9d7e1}html.dark .sensor-manage-status.online,html.dark .sensor-manage-enabled.yes{background:#153c37;color:#66d5b8}html.dark .sensor-manage-status.warning{background:#473a23;color:#f0c276}html.dark .sensor-manage-status.offline,html.dark .sensor-manage-enabled.no{background:#4b2d33;color:#f2a6a0}html.dark .feed-list-head,html.dark .data-health-detail ul,html.dark .data-health-jobs ul,html.dark .data-health-job-detail ul{border-color:#334155}html.dark .data-health-configuration{background:#423723;color:#f0c276;border-color:#665339}html.dark .reports-coverage{background:#423723;color:#f0d39a;border-color:#665339}html.dark .reports-history-refresh,html.dark .reports-history-more,html.dark .reports-export-controls button{background:#0f172a;color:#a5d7ef;border-color:#475569}html.dark .reports-generator form label,html.dark .reports-export-controls label{color:#d8e6ee}html.dark .date-pill{background:#0f172a;color:#d8e6ee;border-color:#475569}html.dark .admin-view-tabs{border-color:#475569}html.dark .admin-view-tabs button{color:#94a3b8}html.dark .admin-view-tabs button.active{color:#55d8c5}html.dark .record-edit label,html.dark .weather-station-note{color:#94a3b8}html.dark .settings-theme-options .outline-button{background:#0f172a}html.dark .assign-dialog,html.dark .assign-list{background:#1e293b;color:#f1f5f9;border-color:#475569}html.dark .assign-dialog header,html.dark .assign-dialog footer,html.dark .assign-row{border-color:#334155}html.dark .assign-zone-label,html.dark .assign-list-heading strong,html.dark .assign-row strong{color:#f1f5f9}html.dark .assign-dialog header p,html.dark .assign-list-heading span,html.dark .assign-row small,html.dark .assign-row em,html.dark .assign-note,html.dark .assign-list>p{color:#94a3b8}html.dark .assign-row:hover,html.dark .assign-row.selected{background:#253e43}html.dark .assign-close:hover{color:#f1f5f9}html.dark .assign-dialog footer .primary-button:disabled{background:#334155;color:#94a3b8}html.dark .sensor-feed-intro,html.dark .weather-trend-legend{color:#94a3b8}html.dark .zone-tabs{border-color:#475569}html.dark .zone-tabs button{color:#94a3b8}html.dark .zone-tabs button.active{color:#55d8c5}html.dark .reports-history{border:1px solid #334155;border-radius:11px}html.dark .reports-history-empty,html.dark .reports-history-note,html.dark .legend,html.dark .zone-list small,html.dark .panel-footnote{color:#94a3b8}html.dark .zone-list button{color:#f1f5f9}html.dark .zone-list button:hover{background:#334155}html.dark .feed-controls label,html.dark .feed-empty{color:#94a3b8}html.dark .feed-controls input::placeholder{color:#9fb3c3;opacity:1}html.dark .login-card label{color:#dce8f0}html.dark .login-card .subtle{color:#94a3b8}html.dark .login-card input::placeholder{color:#9fb3c3;opacity:1}html.dark .password-field button{color:#94a3b8}html.dark .password-field button:hover{background:#2b4051;color:#f1f5f9}html.dark .login-card .form-error{color:#ffada9}.report-schedules-actions .row-action.action-edit{color:var(--action-edit-text);background:var(--action-edit-bg);border:1px solid var(--action-edit-border)}.report-schedules-actions .row-action.action-info,.reports-history .row-action.action-info{color:var(--action-info-text);background:var(--action-info-bg);border:1px solid var(--action-info-border)}.report-schedules-actions .row-action.action-view{color:var(--action-view-text);background:var(--action-view-bg);border:1px solid var(--action-view-border)}html.dark .kiosk-screen{background:var(--bg-app);color:var(--text-primary)}html.dark .kiosk-header,html.dark .kiosk-panel,html.dark .kiosk-weather,html.dark .kiosk-metrics>div{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border)}html.dark .kiosk-header-time span,html.dark .kiosk-metrics span,html.dark .kiosk-panel p,html.dark .kiosk-no-data,html.dark .kiosk-zone span:not(.kiosk-zone-status),html.dark .kiosk-zone small,html.dark .kiosk-weather span,html.dark .kiosk-weather-site p,html.dark .kiosk-note{color:var(--text-secondary)}html.dark .kiosk-zone,html.dark .kiosk-weather-site{border-color:var(--border)}html.dark .kiosk-screen svg text{fill:var(--text-secondary)}.report-schedules-actions .row-action.action-delete{color:var(--status-danger-text);background:var(--status-danger-bg);border:1px solid var(--status-danger-border)}html .report-schedules-dialog footer .report-confirm-delete{color:var(--status-danger-text);border-color:var(--status-danger-border);background:var(--status-danger-bg)}:root{--motion-press:.1s;--motion-fast:.15s;--motion-surface:.25s;--motion-ease:cubic-bezier(.4,0,.2,1);--motion-lift:2px}:is(.primary-button,.outline-button,.secondary-button,.row-action,.weather-export-button,.reports-history-refresh,.sensor-inspect-button,.notification-trigger,.notification-close,.assign-close,.sensor-manage-close,.map-details-close,.mobile-menu,.sidebar-collapse-button,.user-menu-trigger){transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow .2s ease,transform var(--motion-press) ease}:is(.nav-item,.user-menu-popup button,.reports-tabs button,.admin-view-tabs button,.notification-tabs button,.zone-tabs button){transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease,border-color var(--motion-fast) ease}dialog{opacity:0;transform:translateY(-10px) scale(.98);transition:opacity var(--motion-surface) var(--motion-ease),transform var(--motion-surface) var(--motion-ease),display var(--motion-surface) allow-discrete,overlay var(--motion-surface) allow-discrete}dialog[open]{opacity:1;transform:translateY(0) scale(1)}dialog::backdrop{background-color:#0f172a75;opacity:0;transition:opacity .18s ease,display .18s allow-discrete,overlay .18s allow-discrete}dialog[open]::backdrop{opacity:1}@starting-style{dialog[open]{opacity:0;transform:translateY(-10px) scale(.98)}dialog[open]::backdrop{opacity:0}}.account-modal{animation:surface-enter var(--motion-surface) var(--motion-ease)}.account-modal-backdrop,.sidebar-backdrop{animation:surface-fade .18s ease}.user-menu-popup{animation:menu-enter var(--motion-fast) var(--motion-ease)}.map-search-results{animation:menu-enter .18s var(--motion-ease);transform-origin:top}:is(.user-menu-popup,.map-search-results)[data-closing]{animation:menu-leave .12s ease-in both;pointer-events:none}:is(.success-banner,.error-banner){animation:surface-fade .18s ease}.login-card{animation:surface-enter .28s var(--motion-ease)}.topbar-title-block{animation:title-enter .22s var(--motion-ease)}.sidebar{transition:width .28s var(--motion-ease),transform .25s var(--motion-ease),background-color .22s ease,color .22s ease,border-color .22s ease}:is(.sensor-manage-table td,.user-manage-table td,.assign-row,.map-search-results button){transition:background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease}:is(.panel,.settings-card,.sensor-manage-panel,.topbar,.content,.login-card){transition:background-color .22s ease,border-color .22s ease,color .22s ease}.user-menu-trigger .top-avatar{transition:box-shadow .2s ease,transform .18s ease}.user-menu-popup button svg{transition:transform .18s ease}@media(hover:hover){.primary-button:hover:not(:disabled){box-shadow:0 3px 10px #1cb5a338}.user-menu-trigger:hover .top-avatar{box-shadow:0 0 0 3px #1cb5a329;transform:scale(1.03)}.user-menu-popup button:hover svg{transform:translate(2px)}}.primary-button:active:not(:disabled),.row-action:active:not(:disabled),.user-menu-trigger:active:not(:disabled){box-shadow:none}@keyframes surface-fade{0%{opacity:0}to{opacity:1}}@keyframes surface-enter{0%{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes title-enter{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes menu-enter{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes menu-leave{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}:is(button,a[href],[role=button],[role=tab],summary){transition:background-color .15s ease,color .15s ease,border-color .15s ease,box-shadow .18s ease,opacity .1s ease,transform .15s ease}:is(button,a[href],[role=button],[role=tab],summary):active:not(:disabled){opacity:.78}:is(button,a[href],[role=button],[role=tab],summary):focus-visible{transition:box-shadow .15s ease,background-color .15s ease,color .15s ease}:is(input[type=checkbox],input[type=radio]){transition:accent-color .15s ease,opacity .15s ease}:is(.monitor-row,.assign-row,.sensor-manage-table tr,.map-search-results li){transition:background-color .15s ease,color .15s ease}:is(.content>.panel,.content>.settings-card,[role=tabpanel]:not([hidden]),.leaflet-popup-content-wrapper){animation:surface-fade .18s ease}:is(.sensor-manage-search,.map-search-field,.settings-password-input){transition:border-color .15s ease,box-shadow .15s ease}.recharts-active-bar,.recharts-active-dot{animation:surface-fade .15s ease}:is(input,select,textarea){transition:border-color .2s ease,box-shadow .2s ease,outline-color .15s ease,background-color .2s ease,color .2s ease,opacity .15s ease}:is(input,textarea)::placeholder{transition:opacity .15s ease}:is(input,textarea):focus::placeholder{opacity:.65}:where(input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea):focus-visible{outline-color:var(--brand-primary);box-shadow:0 0 0 3px #1cb5a321}.login-card label{transition:color .2s ease}.login-card label:focus-within{color:var(--brand-primary)}html .login-card input:focus{border-color:var(--brand-primary);box-shadow:0 0 0 3px #1cb5a321}:is(.sensor-manage-search,.map-search-field,.settings-password-input):focus-within{border-color:var(--brand-primary);box-shadow:0 0 0 3px #1cb5a321}:is(.sensor-manage-search,.map-search-field,.settings-password-input) input:focus-visible{outline:none;box-shadow:none}.password-field button svg{animation:surface-fade .15s ease}@media(hover:hover){.login-card input:hover:not(:focus,:disabled){border-color:var(--border-strong)}:is(.assign-row,.sensor-manage-check,label):has(>input:is([type=checkbox],[type=radio])):hover{border-color:var(--border-strong)}}:is(.admin-create-options,.admin-dialog-form,.monitor-detail,.form-error,.sensor-manage-error,.map-search>p[role=status],.report-schedules-delete-warning,.events-delete-confirm){animation:surface-fade .18s ease}:is(.heatmap-cell,.weather-rain-cell,.data-health-day,.assign-row,.sensor-manage-check){transition:background-color .15s ease,color .15s ease,border-color .15s ease,outline-color .15s ease,box-shadow .15s ease}.sidebar-backdrop{display:none}@media(max-width:700px){.sidebar-backdrop{display:block}.sidebar{display:flex;visibility:hidden;pointer-events:none;transform:translate(-100%);transition:transform .25s var(--motion-ease),visibility 0s .25s,width .28s var(--motion-ease),background-color .22s ease}.sidebar.sidebar-open{visibility:visible;pointer-events:auto;transform:translate(0);transition-delay:0s}}.sidebar-backdrop[data-closing],.account-modal-backdrop[data-closing]{animation:surface-leave .18s ease both;pointer-events:none}.account-modal-backdrop[data-closing] .account-modal{animation:surface-exit .18s var(--motion-ease) both}@keyframes surface-leave{0%{opacity:1}to{opacity:0}}@keyframes surface-exit{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-6px) scale(.98)}}@supports not (transition-behavior:allow-discrete){dialog[open]{animation:surface-enter var(--motion-surface) var(--motion-ease)}dialog[open]::backdrop{animation:surface-fade .18s ease}}:is(button,a[href],[role=button],[role=tab],summary,.nav-item,.user-menu-popup button,.map-search-results button,.reports-tabs button,.admin-view-tabs button,.notification-tabs button,.zone-tabs button){transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .22s ease,opacity .12s ease,transform .18s var(--motion-ease),translate .2s var(--motion-ease),scale .14s ease}:is(input,select,textarea,.login-card>label,.password-field,.sensor-manage-search,.map-search-field,.settings-password-input){transition:border-color .2s ease,box-shadow .22s ease,outline-color .15s ease,background-color .2s ease,color .2s ease,opacity .15s ease,translate .2s var(--motion-ease),scale .15s ease}:where(input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea):focus:not(:disabled){translate:0 calc(-1 * var(--motion-lift));box-shadow:0 4px 12px #0f172a1a,0 0 0 3px #1cb5a324}:is(.login-card>label,.password-field,.sensor-manage-search,.map-search-field,.settings-password-input):focus-within{translate:0 calc(-1 * var(--motion-lift))}:is(.login-card,.password-field,.sensor-manage-search,.map-search-field,.settings-password-input) :is(input,select,textarea):focus{translate:none}.login-card .password-field:focus-within{translate:none}:is(input[type=checkbox],input[type=radio]):checked:not(:disabled){translate:0 -1px;scale:1.08}:is(.assign-row,.report-schedules-check,.sensor-manage-check):has(input:checked:not(:disabled)){translate:0 -1px;box-shadow:0 2px 6px #1cb5a324}:is(.assign-row,.report-schedules-check,.sensor-manage-check){transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .2s ease,translate .2s var(--motion-ease)}:where(button[aria-pressed=true],[role=tab][aria-selected=true]):not(:disabled,:where(.leaflet-container *),.heatmap-cell,.weather-rain-cell,.data-health-day){translate:0 -1px}@media(hover:hover){:is(button,a[href],[role=button],[role=tab],summary):hover:not(:disabled,[aria-disabled=true],.sidebar-backdrop,:where(.leaflet-container *),.heatmap-cell,.weather-rain-cell,.data-health-day){translate:0 calc(-1 * var(--motion-lift));box-shadow:0 3px 9px #0f172a1f}:is(.nav-item,.user-menu-popup button,.map-search-results button):hover:not(:disabled){translate:3px 0;box-shadow:none}:is(.assign-row,.report-schedules-check,.sensor-manage-check):hover:not(:has(input:disabled)){translate:0 -2px;box-shadow:0 3px 9px #1cb5a329}.primary-button:hover:not(:disabled){box-shadow:0 5px 12px #1cb5a338}.password-field button:hover:not(:disabled){scale:1.08}:is(.heatmap-cell,.weather-rain-cell,.data-health-day):hover{box-shadow:inset 0 0 0 2px var(--text-primary)}}:is(button,a[href],[role=button],[role=tab],summary):focus-visible:not(:disabled,.sidebar-backdrop,:where(.leaflet-container *),.heatmap-cell,.weather-rain-cell,.data-health-day){translate:0 -2px}:is(button,a[href],[role=button],[role=tab],summary):active:not(:disabled,.sidebar-backdrop,:where(.leaflet-container *),.heatmap-cell,.weather-rain-cell,.data-health-day){translate:0 0;scale:.98;opacity:.9;box-shadow:none}:is(.assign-row,.report-schedules-check,.sensor-manage-check):active:not(:has(input:disabled)){translate:0 0}:is(label:has(>input:is([type=checkbox],[type=radio])),.map-file-picker){transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .22s ease,translate .2s var(--motion-ease)}label:has(>input:is([type=checkbox],[type=radio]):checked:enabled){translate:0 -1px;box-shadow:0 2px 6px #1cb5a324}label:has(>input:is([type=checkbox],[type=radio]):focus-visible),.map-file-picker:focus-within{translate:0 -2px;box-shadow:0 0 0 3px #1cb5a329}input[type=file]::file-selector-button{transition:background-color .18s ease,color .18s ease,box-shadow .18s ease,translate .18s var(--motion-ease)}@media(hover:hover){label:has(>input:is([type=checkbox],[type=radio]):enabled):hover,.map-file-picker:hover{translate:0 -2px;box-shadow:0 3px 9px #1cb5a329}input[type=file]:enabled::file-selector-button:hover{translate:0 -1px;box-shadow:0 2px 6px #0f172a1f}}:is(label:has(>input:is([type=checkbox],[type=radio]):enabled),.map-file-picker):active{translate:0 0}button[aria-busy=true]{position:relative;cursor:progress}button[aria-busy=true]:after{content:"";position:absolute;left:8px;right:8px;bottom:2px;height:2px;border-radius:2px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--brand-primary),transparent);background-size:200% 100%;animation:action-progress 1.1s linear infinite}.primary-button[aria-busy=true]:after{background-image:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent)}@keyframes action-progress{0%{background-position:200% 0}to{background-position:-200% 0}}.admin-records[aria-busy=true] .record-state{animation:status-pending .9s ease-in-out infinite alternate}@keyframes status-pending{0%{opacity:.65}to{opacity:1}}.monitor-row td{transition:background-color .18s ease,box-shadow .18s ease,opacity .12s ease}.monitor-row:is(:hover,:focus-within) td:first-child{box-shadow:inset 3px 0 var(--brand-primary)}.monitor-row:active td{opacity:.8}:is([role=option],.feed-connection,.feed-connection i,.sensor-manage-status,.status-pill,.record-state,.report-schedules-status){transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,opacity .18s ease}:is([role=status],[role=alert],.kiosk-link-result,.kiosk-link-legacy,.settings-logo-preview,.reports-history-scroll,.technician-grid,dialog label,.sensor-manage-endpoint){animation:surface-fade .18s ease}:is(.data-health-detail,.data-health-job-detail)[data-closing]{animation:surface-leave .18s ease both;pointer-events:none}.bounded-hover{animation:surface-fade .12s ease;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.recharts-tooltip-cursor{animation:surface-fade .12s ease}:is(.sensor-map-dot,.sensor-map-count,.map-search-pin svg){transition:scale .18s var(--motion-ease),filter .18s ease,box-shadow .18s ease,opacity .18s ease}.sensor-map-icon:is(:hover,:focus-visible) .sensor-map-dot,.sensor-marker-dragging .sensor-map-dot{scale:1.18;box-shadow:0 0 0 4px #1cb5a32e}.sensor-marker-saving .sensor-map-dot{animation:status-pending .9s ease-in-out infinite alternate}.sensor-map-icon:active .sensor-map-dot{scale:.96}.map-search-pin svg{transform-origin:50% 100%}.map-search-pin:is(:hover,:focus-visible) svg{scale:1.1;filter:drop-shadow(0 3px 4px rgba(0,0,0,.25))}.leaflet-container .leaflet-interactive[role=button]{transition:fill .18s ease,stroke .18s ease,fill-opacity .18s ease,stroke-width .18s ease,opacity .12s ease}.leaflet-container .leaflet-interactive[role=button]:is(:hover,:focus-visible){stroke-width:4;fill-opacity:.3}.leaflet-control-zoom a{transition:background-color .18s ease,color .18s ease,box-shadow .18s ease,opacity .12s ease}.leaflet-control-zoom a:focus-visible{box-shadow:inset 0 0 0 2px var(--brand-primary)}:is(.sensor-marker-selected,.sensor-marker-dragging) .sensor-map-dot{scale:1.18;box-shadow:0 0 0 4px #1cb5a32e}:is(.weather-trend-chart,.weather-impact-temperature-chart,.weather-impact-response-chart,.weather-rain-scroll,.feed-list,.report-zone-list){animation:surface-fade .18s ease}:is(.data-health-job-state,.data-health-window-status,.sensor-status-badge,.feed-status,.reports-history-status,.map-indicator-tag){transition:background-color .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease}:is(body,.app-shell,.main-area,.sidebar-brand,.metric-card,.record-item,.kiosk-panel,.feed-row,.settings-logo-preview){transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .18s ease}@media(prefers-reduced-motion:reduce){:is(.primary-button,.outline-button,.secondary-button,.row-action,.weather-export-button,.reports-history-refresh,.sensor-inspect-button,.notification-trigger,.notification-close,.assign-close,.sensor-manage-close,.map-details-close,.mobile-menu,.sidebar-collapse-button,.user-menu-trigger):active:not(:disabled){transform:none}.primary-button:hover:not(:disabled),.row-action:hover:not(:disabled),.user-menu-trigger:hover:not(:disabled),.user-menu-trigger:hover .top-avatar,.user-menu-popup button:hover svg{transform:none}:is(button,a[href],[role=button],[role=tab],summary,label:has(>input:is([type=checkbox],[type=radio])),.map-file-picker,input,select,textarea,.login-card>label,.password-field,.sensor-manage-search,.map-search-field,.settings-password-input,.assign-row,.report-schedules-check,.sensor-manage-check){translate:none!important;scale:none!important}:is(.sensor-map-dot,.sensor-map-count,.map-search-pin svg){scale:none!important}input[type=file]::file-selector-button{translate:none!important;transition:none!important}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
