.admin-layout{min-height:100vh;display:flex}.admin-sidebar{width:var(--sidebar-width);color:#fff;z-index:100;background:#07162b;flex-direction:column;transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;left:0}.admin-sidebar-brand{border-bottom:1px solid #ffffff1a;align-items:center;gap:10px;padding:20px 16px 16px;display:flex}.admin-sidebar-brand img{flex-shrink:0;height:28px}.admin-sidebar-brand-name{letter-spacing:.04em;opacity:.9;font-size:.8rem;font-weight:700;line-height:1.2}.admin-sidebar-brand-name small{opacity:.6;font-size:.7rem;font-weight:400;display:block}.admin-nav{flex-direction:column;flex:1;padding:12px 0;display:flex;overflow-y:auto}.admin-nav>*{flex-shrink:0}.admin-nav-section{letter-spacing:.08em;text-transform:uppercase;opacity:.4;padding:8px 16px 4px;font-size:.65rem;font-weight:700}.admin-nav-link{color:#ffffffb3;border-radius:0;align-items:center;gap:10px;padding:9px 16px;font-size:.875rem;text-decoration:none;transition:background .15s,color .15s;display:flex}.admin-nav-link:hover{color:#fff;background:#ffffff14}.admin-nav-link.active{color:#fff;background:#0878b940;font-weight:500}.admin-nav-divider{background:#ffffff1a;height:1px;margin:8px 16px}.admin-nav-pinned{margin-top:auto}.admin-sidebar-footer{border-top:1px solid #ffffff1a;padding:12px 16px}.admin-sidebar-logout{color:#ffffff80;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:9px 0;font-size:.875rem;transition:color .15s;display:flex}.admin-sidebar-logout:hover{color:#fff}.admin-main{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-width:0;min-height:100vh;display:flex}.admin-mobile-header{color:#fff;z-index:99;background:#07162b;align-items:center;gap:12px;padding:12px 16px;display:none;position:sticky;top:0}.admin-hamburger{color:#fff;background:0 0;border:none;align-items:center;padding:4px;display:flex}.admin-mobile-title{font-size:.9rem;font-weight:600}.admin-overlay{z-index:99;background:#00000080;display:none;position:fixed;inset:0}@media (width<=768px){.admin-sidebar{transform:translate(-100%)}.admin-sidebar.open{transform:translate(0)}.admin-main{margin-left:0}.admin-mobile-header{display:flex}.admin-overlay.visible{display:block}}.route-error{text-align:center;max-width:640px;margin:60px auto;padding:0 24px}.route-error-icon{color:#d97706;margin-bottom:12px}.route-error h1{margin:0 0 8px;font-size:1.25rem}.route-error-message{color:var(--muted);overflow-wrap:anywhere;margin:0 0 20px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.85rem}.route-error-actions{justify-content:center;gap:10px;margin-bottom:24px;display:flex}.route-error-actions .btn{align-items:center;display:inline-flex}.route-error-details{text-align:left}.route-error-details summary{cursor:pointer;color:var(--muted);font-size:.85rem}.route-error-details pre{background:#64748b14;border-radius:8px;margin-top:8px;padding:12px;font-size:.72rem;overflow-x:auto}.form-field{flex-direction:column;gap:5px;display:flex}.form-field label{color:var(--muted);letter-spacing:.02em;font-size:.8rem;font-weight:600}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);color:var(--text);background:var(--bg);border-radius:6px;padding:9px 11px;font-size:.9375rem;transition:border-color .15s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent);outline:none}.form-field textarea{resize:vertical;min-height:80px}.form-field-error{color:var(--red);font-size:.8rem}.form-toggle{color:var(--text);cursor:pointer;align-items:center;gap:10px;font-size:.875rem;display:flex}.toggle-switch{flex-shrink:0;width:40px;height:22px;position:relative}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-track{background:var(--line);cursor:pointer;border-radius:22px;transition:background .2s;position:absolute;inset:0}.toggle-track:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle-switch input:checked+.toggle-track{background:var(--accent)}.toggle-switch input:checked+.toggle-track:before{transform:translate(18px)}.admin-auth-page{background:#eef4f8;min-height:100vh;padding:18px;display:grid}.admin-auth-shell{border-radius:10px;grid-template-columns:1fr 1fr;width:min(100%,900px);min-height:calc(100vh - 36px);margin:0 auto;display:grid;overflow:hidden;box-shadow:0 16px 34px #0f172a2e}.admin-auth-brand{color:#fff;background:radial-gradient(circle at 50% 44%,#1969c147,#0000 34%),linear-gradient(145deg,#06152b 0%,#082447 100%);place-items:center;padding:44px 24px;display:grid;position:relative;overflow:hidden}.admin-auth-brand-content{z-index:1;text-align:center;position:relative}.admin-auth-brand-logo{height:52px;margin-bottom:16px}.admin-auth-brand-name{letter-spacing:.08em;margin-bottom:4px;font-size:1.5rem;font-weight:300}.admin-auth-brand-name strong{letter-spacing:.04em;opacity:.85;font-size:1.1rem;font-weight:700;display:block}.admin-auth-brand p{opacity:.5;margin:16px 0 0;font-size:.85rem}.admin-auth-panel{background:var(--surface);justify-content:center;align-items:center;padding:40px 32px;display:flex}.admin-auth-form{flex-direction:column;gap:16px;width:100%;max-width:340px;display:flex}.admin-auth-form h1{color:var(--text);margin:0 0 4px;font-size:1.25rem}.admin-auth-form p{color:var(--muted);margin:0 0 8px;font-size:.875rem}.admin-auth-submit{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-top:4px;padding:11px;font-size:1rem;font-weight:600}.admin-auth-submit:hover:not(:disabled){background:var(--accent-strong)}@media (width<=600px){.admin-auth-shell{grid-template-columns:1fr}.admin-auth-brand{display:none}}.data-table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.875rem}.data-table th{text-align:left;border-bottom:2px solid var(--line);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;padding:10px 12px;font-size:.75rem;font-weight:600}.data-table td{border-bottom:1px solid var(--line);color:var(--text);vertical-align:middle;overflow-wrap:break-word;min-width:0;padding:12px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--surface-blue)}.data-table-actions{justify-content:flex-end;gap:6px;display:flex}.icon-btn{border:1px solid var(--line);background:var(--surface);width:32px;height:32px;color:var(--muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;transition:color .15s,border-color .15s;display:flex}.icon-btn:hover{color:var(--accent);border-color:var(--accent)}.icon-btn--danger:hover{color:var(--red);border-color:var(--red)}.data-table-empty{text-align:center;color:var(--muted);padding:32px}.modal-backdrop{z-index:200;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-box{background:var(--surface);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;width:100%;max-width:520px;max-height:90vh;display:flex}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 20px 14px;display:flex}.modal-title{color:var(--text);margin:0;font-size:1rem;font-weight:600}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px;transition:color .15s;display:flex}.modal-close:hover{color:var(--text)}.modal-body{flex-direction:column;flex:1;gap:14px;padding:20px;display:flex;overflow-y:auto}.modal-footer{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.btn{cursor:pointer;border:none;border-radius:6px;padding:9px 18px;font-size:.875rem;font-weight:600;transition:opacity .15s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-ghost{color:var(--muted);border:1px solid var(--line);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--muted);color:var(--text)}.btn-danger{background:var(--red);color:#fff}.form-error{background:var(--red-bg);color:var(--red);border-radius:6px;padding:10px 12px;font-size:.875rem}.form-warning{background:var(--orange-bg);color:var(--orange);border-radius:6px;align-items:flex-start;gap:8px;margin-bottom:14px;padding:10px 12px;font-size:.875rem;display:flex}.modal-box--wide{max-width:760px}.page-shell{width:100%;max-width:1100px;margin-inline:auto;padding:24px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.page-header h1{color:var(--text);margin:0;font-size:1.25rem}.btn-add{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;align-items:center;gap:6px;padding:9px 16px;font-size:.875rem;font-weight:600;display:flex}.btn-add:hover{background:var(--accent-strong)}.page-card{background:var(--surface);border-radius:10px;overflow:hidden;box-shadow:0 2px 8px #1736530f}.model-detail-header{padding:20px 24px 0}.model-detail-header h1{margin:0 0 4px;font-size:1.25rem}.model-detail-header p{color:var(--muted);margin:0;font-size:.875rem}.model-detail-tabs{border-bottom:1px solid var(--line);gap:0;margin-top:16px;padding:0 24px;display:flex}.model-detail-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px;font-size:.875rem;font-weight:500;transition:color .15s}.model-detail-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.model-detail-content{width:100%;max-width:1100px;margin-inline:auto;padding:24px}.photo-grid{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.photo-thumb{border:1px solid var(--line);border-radius:6px;width:64px;height:64px;position:relative;overflow:hidden}.photo-thumb img{object-fit:cover;width:100%;height:100%}.photo-thumb-delete{color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;line-height:1;display:flex;position:absolute;top:2px;right:2px}.photo-upload-btn{border:1px dashed var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;margin-top:8px;padding:6px 12px;font-size:.8rem;display:flex}.photo-upload-btn:hover{border-color:var(--accent);color:var(--accent)}.breadcrumb{color:var(--muted);align-items:center;gap:6px;margin-bottom:16px;font-size:.8rem;display:flex}.breadcrumb a{color:var(--accent)}.breadcrumb-sep{opacity:.4}.badge{letter-spacing:.03em;white-space:nowrap;border-radius:20px;align-items:center;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.badge--admin{color:#1d4ed8;background:#dbeafe}.badge--technician{background:var(--line);color:var(--muted)}.badge--role-amber{background:var(--orange-bg);color:var(--orange)}.badge--role-green{background:var(--green-bg);color:var(--green)}.badge--role-violet{color:#6d28d9;background:#ede9fe}.badge--role-cyan{color:#0e7490;background:#cffafe}.badge--role-magenta{color:#9d2c7c;background:#fbe8f5}.badge--role-lime{color:#4d7c0f;background:#e7f5cf}.badge--ready{background:var(--green-bg);color:var(--green)}.badge--draft{background:var(--orange-bg);color:var(--orange)}.badge--public{background:var(--green-bg);color:var(--green)}.badge--private{background:var(--orange-bg);color:var(--orange)}.badge--online{background:var(--green-bg);color:var(--green)}.badge--offline,.badge--overdue{background:var(--red-bg);color:var(--red)}.badge--on{background:var(--green-bg);color:var(--green)}.badge--off{color:var(--muted);background:#64748b24}.badge--service-due{background:var(--orange-bg);color:var(--orange)}.badge--scheduled{color:#1d4ed8;background:#dbeafe}.model-checklist{flex-direction:column;gap:8px;max-height:180px;padding:8px 0;display:flex;overflow-y:auto}.model-checklist__item{cursor:pointer;align-items:center;gap:8px;font-size:.9rem;display:flex}.toast{color:#fff;z-index:1000;border-radius:8px;align-items:flex-start;gap:12px;max-width:min(560px,100vw - 32px);padding:16px 20px;font-size:1rem;font-weight:500;line-height:1.4;animation:.2s toast-in;display:flex;position:fixed;bottom:32px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0003}.toast--success{background:var(--green)}.toast--error{background:var(--red)}.toast-icon{flex:none;margin-top:1px}.toast-close{color:#fff;cursor:pointer;opacity:.7;background:0 0;border:none;flex:none;padding:0;font-size:1.2rem;line-height:1}.toast-close:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.user-reset-row{border-top:1px solid #64748b40;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:12px;display:flex}.user-reset-row .btn{align-items:center;gap:6px;display:inline-flex}.user-reset-title{font-size:.85rem;font-weight:600}.user-reset-hint{color:var(--muted);font-size:.78rem}.user-role-warning{color:var(--orange);margin:6px 0 0;font-size:.78rem}.units-state-glyphs{align-items:center;gap:6px;display:inline-flex}.units-conn{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.units-conn--online{background:var(--green-bg);color:var(--green)}.units-conn--offline{background:var(--red-bg);color:var(--red)}.units-mains--live{background:var(--green-bg);color:var(--green)}.units-mains--dead,.units-fault--idle{color:var(--muted);background:#64748b24}.units-fault--active{background:var(--red-bg);color:var(--red)}.units-monitor--off{color:var(--muted);background:#64748b24}.units-monitor--on{color:#2563eb;background:#2563eb24}.live-test-scope{color:var(--muted);margin:-8px 0 16px;font-size:.82rem}.unregistered-header{align-items:flex-start}.unregistered-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:.72rem;font-weight:600}.page-header h1.unregistered-title{letter-spacing:-.01em;align-items:center;gap:12px;font-size:1.75rem;font-weight:700;display:flex}.unregistered-count{min-width:28px;height:26px;color:var(--muted);background:#e8eef5;border-radius:8px;justify-content:center;align-items:center;padding:0 8px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.85rem;font-weight:600;display:inline-flex}.unregistered-subtitle{color:var(--muted);margin:8px 0 0;font-size:.95rem}.unregistered-tools{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.unregistered-pill{background:var(--green-bg);color:var(--green);border-radius:999px;align-items:center;gap:10px;padding:9px 18px;font-size:.95rem;font-weight:500;display:inline-flex}.unregistered-pill i{background:var(--green);border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 3px #147d582e}.unregistered-pill--error{background:var(--red-bg);color:var(--red)}.unregistered-pill--error i{background:var(--red);box-shadow:0 0 0 3px #b33b332e}.unregistered-refresh{border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:10px 22px;font-weight:600;display:inline-flex}.unregistered-refresh:hover{border-color:var(--accent);color:var(--accent)}.unregistered-refresh:disabled{opacity:.6;cursor:default}.is-spinning{animation:.9s linear infinite unregistered-spin}@keyframes unregistered-spin{to{transform:rotate(360deg)}}.unregistered-card{padding:0;overflow:hidden}.unregistered-table{width:100%}.unregistered-table th{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:16px 20px;font-size:.72rem;font-weight:600}.unregistered-table td{padding:14px 20px}.unregistered-th-action{text-align:right}.unregistered-mac{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.85rem}.unregistered-conn{color:var(--muted);align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.unregistered-conn i{background:#a9b6c6;border-radius:50%;width:8px;height:8px}.unregistered-conn.is-on{color:var(--green)}.unregistered-conn.is-on i{background:var(--green)}.unregistered-dismiss{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #64748b59;border-radius:6px;align-items:center;padding:6px;display:inline-flex}.unregistered-dismiss:hover{color:var(--red);border-color:#dc262666}.unregistered-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.unregistered-empty{text-align:center;flex-direction:column;align-items:center;padding:72px 24px 80px;display:flex}.unregistered-empty-icon{background:var(--surface-blue);width:108px;height:108px;color:var(--accent);border-radius:24px;justify-content:center;align-items:center;margin-bottom:28px;display:flex}.unregistered-empty h2{color:var(--text);margin:0 0 14px;font-size:1.4rem;font-weight:700}.unregistered-empty p{max-width:44rem;color:var(--muted);margin:0;font-size:1.05rem;line-height:1.65}@media (width<=720px){.unregistered-table th:nth-child(2),.unregistered-table td:nth-child(2){display:none}}@keyframes visit-photo-pulse{0%,to{opacity:1}50%{opacity:.55}}.visit-photo-grid,.visit-photo-strip{flex-wrap:wrap;gap:10px;display:flex}.visit-photo-strip{margin-top:6px}.visit-photo-thumb{border:1px solid var(--line);cursor:zoom-in;background:#e9eef3;border-radius:8px;width:88px;height:88px;padding:0;display:block;overflow:hidden}.visit-photo-strip .visit-photo-thumb{width:64px;height:64px}.visit-photo-thumb img{object-fit:cover;width:100%;height:100%;display:block}.visit-photo-thumb--loading{cursor:default;animation:1.2s ease-in-out infinite visit-photo-pulse}.visit-photo-thumb--failed{cursor:default;color:var(--muted);justify-content:center;align-items:center;display:flex}.visit-photo-tile{width:88px;position:relative}.visit-photo-remove{color:#fff;cursor:pointer;background:#10253bb8;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex;position:absolute;top:4px;right:4px}.visit-photo-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:linear-gradient(#0000,#10253bb3);border-radius:0 0 8px 8px;padding:14px 6px 5px;font-size:.6875rem;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.visit-photo-tile--pending{color:#fff;background:#6b7683;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;height:88px;font-size:.75rem;display:flex}.visit-photo-tile--error{background:var(--red-bg);color:var(--red);border:1px solid var(--red)}.visit-photo-error{text-align:center;padding:0 6px;font-size:.6875rem}.visit-photo-bar{background:#ffffff4d;border-radius:2px;width:60px;height:4px;overflow:hidden}.visit-photo-bar>div{background:#fff;height:100%;transition:width .15s linear}.visit-photo-drop{border:1.5px dashed var(--line);background:var(--bg);border-radius:10px;flex-direction:column;align-items:center;gap:10px;margin-top:10px;padding:16px;transition:border-color .15s,background .15s;display:flex}.visit-photo-drop--over{border-color:var(--accent);background:var(--surface-blue)}.visit-photo-drop-hint{color:var(--muted);align-items:center;gap:8px;font-size:.875rem;display:flex}.visit-photo-drop-actions{gap:8px;display:flex}.visit-photo-drop-actions .btn{background:var(--surface);align-items:center;gap:6px;display:inline-flex}.visit-photo-full,.visit-photo-notice{color:var(--muted);margin:8px 0 0;font-size:.75rem}.visit-photo-notice{color:var(--orange)}.visit-video-strip{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.visit-video-tile{border:1px solid var(--line);color:#fff;cursor:pointer;background:#1c2a3a;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:88px;height:88px;padding:0;font-size:.6875rem;display:flex;position:relative;overflow:hidden}.visit-video-strip .visit-video-tile{width:112px;height:72px}.visit-video-tile img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.visit-video-play{color:#10253b;background:#ffffffd9;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;padding-left:2px;display:flex;position:relative}.visit-video-duration{background:#10253bbf;border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.625rem;position:absolute;bottom:4px;right:4px}.visit-video-tile--processing,.visit-video-tile--failed{cursor:default;background:#6b7683}.visit-video-tile--failed{background:var(--red-bg);color:var(--red);border-color:var(--red)}.visit-video-spin{animation:1s linear infinite visit-video-spin}@keyframes visit-video-spin{to{transform:rotate(360deg)}}.visit-photo-tile--video .visit-photo-name{padding-right:40px}.visit-video-player{background:#000;border-radius:8px;width:100%;max-height:70vh;display:block}.unit-detail-back{color:var(--muted);align-items:center;gap:4px;margin-bottom:4px;font-size:.8rem;display:flex}.unit-meta{border:1px solid var(--line);align-items:stretch;margin-bottom:20px;font-size:.9rem;display:flex}.unit-meta-body{flex:1;grid-template-columns:1fr 1fr;min-width:0;display:grid}.unit-status-strip{border-bottom:1px solid var(--line);background:#eaeff5;align-items:center;gap:14px;padding:14px 20px;display:flex}.unit-controls>.unit-status-strip{margin:-16px -18px 14px}.unit-status-card{margin-bottom:16px}.unit-meta-status{letter-spacing:.08em;align-items:center;gap:8px;font-size:.82rem;font-weight:700;display:inline-flex}.unit-meta-status--online{color:var(--green)}.unit-meta-status--offline{color:var(--muted)}.unit-meta-dot{width:10px;height:10px;box-shadow:0 0 0 3px color-mix(in srgb, currentColor 18%, transparent);background:currentColor;border-radius:50%}.unit-meta-sep{background:var(--line);width:1px;height:20px}.unit-status-strip .unit-data-age{margin-left:0;font-size:.85rem}.unit-meta-power{align-items:center;gap:10px;margin-left:auto;display:inline-flex}.unit-meta-rail{border-left:1px solid var(--line);background:#eaeff5;flex-direction:column;flex:0 0 58px;justify-content:space-evenly;align-items:center;display:flex}.unit-meta-actions-mobile{display:none}.icon-btn{border:1px solid var(--line);background:var(--surface);color:#1868c4;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.icon-btn:hover:not(:disabled){background:#e3ecfb;border-color:#c9dbf5}.icon-btn:disabled{opacity:.4;cursor:default}.unit-meta-power-label{color:var(--muted);font-size:.85rem}.unit-meta-cell{border-bottom:1px solid var(--line);flex-direction:column;gap:6px;padding:16px 20px;display:flex}.unit-meta-cell--left{border-right:1px solid var(--line)}.unit-meta-label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:600}.unit-meta-value{color:var(--text);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:1rem}.unit-meta-value .inline-editable{margin-left:-5px;font-size:1rem}.unit-meta-foot{flex-wrap:wrap;grid-column:1/3;align-items:center;gap:12px;padding:14px 20px;display:flex}.unit-meta-cell--wide{grid-column:1/3}.unit-meta-owner-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 24px;display:grid}.unit-meta-owner-field{flex-direction:column;gap:6px;min-width:0;display:flex}.unit-meta--below{margin-top:16px}.unit-meta-chip{color:#1d5fd1;background:#e3ecfb;border-radius:8px;padding:6px 12px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.95rem}@media (width<=640px){.unit-meta{flex-direction:column}.unit-meta-body{grid-template-columns:1fr}.unit-meta-cell--left{border-right:none}.unit-meta-foot,.unit-meta-cell--wide{grid-column:1}.unit-meta-owner-row{grid-template-columns:minmax(0,1fr)}.unit-status-strip{flex-wrap:wrap;gap:10px 14px}.unit-meta-rail{display:none}.unit-meta-actions-mobile{border-top:1px solid var(--line);background:#eaeff5;justify-content:flex-end;gap:8px;padding:10px 16px;display:flex}}.unit-detail-mismatch{color:var(--red);align-items:center;gap:4px;margin-left:10px;font-weight:600;display:inline-flex}.unit-detail-category{margin-bottom:16px;padding:12px 20px;overflow-x:auto}.unit-detail-category h2{color:var(--text);margin:4px 0 10px;font-size:.95rem}.unit-control-row{grid-template-columns:minmax(0,520px) minmax(0,1fr);align-items:stretch;gap:16px;margin-bottom:16px;display:grid}@media (width<=900px){.unit-control-row{grid-template-columns:minmax(0,1fr)}}.unit-controls{padding:16px 18px 18px}.unit-control-right{grid-template-rows:minmax(0,1fr) auto;gap:16px;min-width:0;display:grid}.unit-errors{flex-direction:column;padding:16px 18px 18px;display:flex}.unit-errors-head{justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px;display:flex}.unit-errors h2{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:4px 0 0;font-size:.72rem;font-weight:700}.unit-errors-count{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid #0000;border-radius:8px;padding:4px 12px;font-size:.72rem;font-weight:700}.unit-errors-count--red{background:var(--red-bg);color:var(--red);border-color:#b33b3359}.unit-errors-count--green{background:var(--green-bg);color:var(--green);border-color:#147d584d}.unit-errors-list{flex-direction:column;gap:10px;display:flex}.unit-error{background:var(--red-bg);border:1px solid #b33b334d;border-radius:10px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.unit-error-icon{width:40px;height:40px;color:var(--red);background:#b33b331f;border-radius:8px;flex:0 0 40px;justify-content:center;align-items:center;display:inline-flex}.unit-error-body{flex-direction:column;gap:2px;min-width:0;display:flex}.unit-error-code{color:var(--red);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.75rem;font-weight:700}.unit-error-name{color:var(--text);font-size:.95rem;font-weight:600}.unit-error-meta{color:var(--muted);font-size:.75rem}.unit-errors--stale .unit-error{opacity:.55}.unit-errors-foot{text-align:center;color:var(--muted);margin:auto 0 0;padding-top:18px;font-size:.8rem}.unit-errors-foot--ok{color:var(--green);font-weight:600}.unit-controls-head{justify-content:space-between;align-items:flex-start;gap:12px;margin:0 0 14px;display:flex}.unit-controls h2{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:4px 0 0;font-size:.72rem;font-weight:700}.unit-status-list{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.unit-status{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;padding:4px 12px;font-size:.72rem;font-weight:700;display:flex}.unit-status--ok{background:var(--green-bg);color:var(--green);border-color:#147d584d}.unit-status--active{color:#1868c4;background:#2563eb1a;border-color:#2563eb4d}.unit-status--blocked{background:var(--orange-bg);color:var(--orange);border-color:#d9770666}.unit-status--alarm{background:var(--red-bg);color:var(--red);border-color:#b33b3359}.unit-status--idle{color:var(--muted);background:#64748b1a;border-color:#64748b4d}.unit-status-unverified{letter-spacing:0;text-transform:none;opacity:.75;white-space:nowrap;border:1px solid;border-radius:8px;padding:1px 6px;font-size:.62rem;font-weight:500}.unit-readings{background:#eef2f6;border-radius:12px;grid-template-columns:1fr 1fr;margin:0 0 14px;padding:14px 0;display:grid}.unit-reading{text-align:center;flex-direction:column;align-items:center;gap:6px;min-width:0;padding:4px 16px;display:flex}.unit-reading+.unit-reading{border-left:1px solid #d5dde6}.unit-reading-value{letter-spacing:-.01em;font-size:2.1rem;font-weight:700;line-height:1}.unit-reading-value sup{vertical-align:top;margin-left:1px;font-size:.95rem;font-weight:700;line-height:1;position:relative;top:1px}.unit-reading-label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.66rem;font-weight:600}.unit-reading--orange .unit-reading-value{color:#c2720a}.unit-reading--blue .unit-reading-value{color:#1868c4}.unit-reading--red .unit-reading-value{color:var(--red)}.unit-icons{flex-wrap:wrap;gap:10px;margin:0 0 14px;display:flex}.unit-icon{border:1px solid var(--line);background:var(--surface);width:72px;height:72px;color:var(--muted);opacity:.5;border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.unit-icon--active{opacity:1}.unit-icon--red.unit-icon--active{color:var(--red);background:var(--red-bg);border-color:#b33b3373}.unit-icon--blue.unit-icon--active{color:#1868c4;background:#2563eb1a;border-color:#1868c473}.unit-icon--green.unit-icon--active{color:var(--green);background:var(--green-bg);border-color:#147d5873}.unit-controls-divider{background:var(--line);height:1px;margin:0 0 6px}.unit-controls-offline{color:var(--muted);margin:8px 0 4px;font-size:.85rem}.unit-controls-power-row{align-items:center;gap:14px;padding:10px 2px;display:flex}.unit-controls-label{color:var(--text);flex:1;font-size:.92rem}.unit-controls-power{letter-spacing:.06em;color:var(--muted);font-size:.8rem;font-weight:700}.unit-controls-power--on{color:var(--green)}.btn-outline{background:var(--surface);cursor:pointer;white-space:nowrap;border:1px solid;border-radius:8px;align-items:center;gap:6px;padding:7px 14px;font-size:.85rem;font-weight:600;display:inline-flex}.btn-outline--red{color:var(--red)}.btn-outline--red:hover:not(:disabled){background:var(--red-bg)}.btn-outline--green{color:var(--green)}.btn-outline--green:hover:not(:disabled){background:var(--green-bg)}.btn-outline:disabled{opacity:.45;cursor:default}.btn-soft:disabled{opacity:.6;cursor:default}.btn-soft{color:#1d5fd1;cursor:pointer;white-space:nowrap;background:#e3ecfb;border:1px solid #c9dbf5;border-radius:8px;padding:7px 14px;font-size:.85rem;font-weight:700}.btn-soft:hover:not(:disabled){background:#d4e2f9}.unit-controls-grid{flex-direction:column;gap:8px;margin-top:4px;display:flex}.unit-param{background:#f1f4f8;border-radius:10px;flex-wrap:wrap;align-items:center;gap:14px;padding:10px 14px;display:flex}.unit-param-name{color:var(--text);flex-direction:column;flex:96px;gap:2px;font-size:.9rem;display:flex}.unit-param-code{letter-spacing:.06em;color:var(--muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.66rem}.unit-param-current{text-align:right;min-width:64px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.95rem;font-weight:600}.unit-param-current small{color:var(--muted);font-size:.75rem;font-weight:500}.unit-param-current--mode{min-width:0}.unit-param-current--orange{color:#c2720a}.unit-param-current--blue{color:#1868c4}.unit-param-current--red{color:var(--red)}.unit-param-edit{align-items:center;gap:8px;display:flex}.unit-param-edit select,.unit-param-edit input[type=number]{background:var(--surface);color:var(--text);border:1px solid #c7d1dc;border-radius:6px;width:84px;padding:7px 10px;font-size:.85rem}.unit-param-edit{min-width:0}.unit-param-edit select{flex:0 130px;width:130px;min-width:0}@media (width<=560px){.unit-readings{grid-template-columns:1fr}.unit-param-edit{flex-basis:100%}}.hp-tabs{margin-bottom:16px;padding:12px 20px}.hp-tabs h2{color:var(--text);margin:4px 0 10px;font-size:.95rem}.hp-tabs-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.view-toggle{border:1px solid var(--line);background:#eef2f6;border-radius:8px;padding:2px;display:inline-flex}.view-toggle-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:.8rem;font-weight:600}.view-toggle-btn--active{background:var(--surface);color:#1868c4;box-shadow:0 1px 2px #1736531f}.register-category{margin:4px 0 16px;overflow-x:auto}.register-category .data-table,.unit-detail-category .data-table{min-width:640px}.register-category h2{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:10px 0 6px;font-size:.8rem;font-weight:700}.hp-tabs-bar{border-bottom:1px solid #64748b40;gap:4px;display:flex;overflow-x:auto}.hp-tab{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex:none;padding:8px 14px;font-size:.88rem}.hp-tab--active{color:#1868c4;border-bottom-color:#1868c4;font-weight:600}.hp-tab:focus-visible{background:#2563eb14;border-bottom-color:#1868c4;border-radius:4px 4px 0 0;outline:none}.hp-tabs-note{color:var(--muted);margin:12px 0 0;font-size:.85rem}.hp-tabs-table{border-collapse:collapse;width:100%;margin-top:10px;font-size:.95rem}.hp-tabs-table tr:nth-child(odd){background:#64748b0f}.hp-tabs-table td{vertical-align:middle;padding:13px 14px}.hp-row-label{width:55%}.hp-row-value{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.95rem}.hp-row-value--unknown{color:var(--muted)}.hp-row-value--alarm{color:#b91c1c;font-weight:600}.hp-row--unmapped .hp-row-label{color:var(--muted)}.hp-row-tag{color:var(--muted);white-space:nowrap;border:1px solid #64748b4d;border-radius:8px;margin-left:8px;padding:1px 6px;font-size:.68rem}.hp-row-action{text-align:right;width:40px}.hp-row-edit{color:#1868c4;cursor:pointer;background:0 0;border:1px solid #1868c459;border-radius:6px;padding:4px;display:inline-flex}.hp-row-edit:disabled{color:var(--muted);cursor:not-allowed;border-color:#64748b40}.hp-editor{color:var(--text);flex-direction:column;gap:12px;display:flex}.hp-editor-range{color:var(--muted);margin:0;font-size:.85rem}.hp-editor select,.hp-editor input[type=number]{color:var(--text);background:0 0;border:1px solid #64748b66;border-radius:6px;width:220px;padding:6px 10px;font-size:.9rem}.hp-editor-warning{color:var(--muted);margin:0;font-size:.82rem}.bitfield-value{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.bitfield-raw{color:var(--muted);min-width:2.5em;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.8rem}.bitfield-none{color:var(--muted);font-size:.8rem}.bit-chip{color:var(--text);background:#2563eb1a;border:1px solid #2563eb40;border-radius:10px;padding:1px 8px;font-size:.75rem;display:inline-block}.bit-chip--alarm{color:var(--red);background:#dc26261a;border-color:#dc262659}.unit-detail-spin{animation:1s linear infinite unit-detail-spin}@keyframes unit-detail-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.register-access-cell{width:44px}.register-access{text-align:center;min-width:32px;color:var(--muted);border:1px solid #64748b4d;border-radius:6px;padding:1px 6px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;display:inline-block}.register-access--rw{color:#1868c4;border-color:#1868c473;font-weight:600}.register-app-name{color:#54657a;font-size:.85rem}.register-app-name--none{color:var(--muted)}.register-app-name--same{color:var(--muted);font-size:.78rem}.fault-journal{margin-top:10px}.fault-journal-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.fault-journal-note{color:var(--muted);margin:0;font-size:.8rem}.hp-tab--ours{border-left:1px solid #64748b4d;margin-left:10px;padding-left:14px}.fault-journal-refresh{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #64748b4d;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;display:inline-flex}.fault-journal-refresh:disabled{cursor:default;opacity:.6}.fault-journal-empty{color:var(--muted);margin:4px 0 0;font-size:.85rem}.fault-journal-table{border-collapse:collapse;width:100%;margin-top:6px;font-size:.88rem}.fault-journal-table th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid #64748b40;padding:6px 12px;font-size:.72rem;font-weight:600}.fault-journal-table td{vertical-align:middle;border-bottom:1px solid #64748b1f;padding:8px 12px}.fault-row--active{background:#dc26260f}.fault-row--active td{color:var(--red)}.fault-row-icon{vertical-align:-2px;margin-right:6px}.fault-code{border:1px solid #64748b59;border-radius:6px;margin-right:8px;padding:1px 7px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.75rem;font-weight:600;display:inline-block}.fault-single-sweep{color:#b45309;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;background:#d977061f;border:1px solid #d9770659;border-radius:8px;margin-left:8px;padding:1px 8px;font-size:.68rem;font-weight:700;display:inline-block}.fault-source{color:var(--muted);margin-top:2px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.7rem;display:block}.fault-time{white-space:nowrap;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.8rem}.unit-stale{color:var(--red);background:#dc262612;border:1px solid #dc262659;align-items:flex-start;gap:12px;margin-bottom:16px;padding:14px 20px;display:flex}.unit-stale strong{margin-bottom:4px;display:block}.unit-stale span{color:var(--text);font-size:.85rem;display:block}.inline-editable{cursor:text;border:1px dashed #0000;border-radius:4px;padding:1px 4px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.85rem}.inline-editable:hover{border-color:#64748b66}.inline-editable--empty{color:var(--muted);font-family:inherit}.inline-editable-form{align-items:center;gap:4px;display:inline-flex}.inline-editable-form input{width:220px;padding:2px 6px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.85rem}.inline-editable-btn{color:inherit;cursor:pointer;background:0 0;border:1px solid #64748b4d;border-radius:4px;align-items:center;padding:3px;display:inline-flex}.inline-editable-btn:disabled{opacity:.5;cursor:default}.unit-meta-hint .unit-meta-label{cursor:help;text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.unit-data-age{color:var(--muted);margin-left:10px;font-size:.78rem}.unit-data-age--stale{color:var(--red);font-weight:600}.unit-service-row{grid-template-columns:minmax(0,360px);margin-bottom:16px;display:grid}.unit-history{flex-direction:column;padding:16px 18px 18px;display:flex}.unit-history h2{margin:0 0 12px;font-size:17px}.unit-history-empty{color:var(--muted);margin:0;font-size:14px}.unit-history-list{flex-direction:column;display:flex}.unit-history-entry{border:1px solid var(--line);border-radius:12px;margin-bottom:10px;position:relative;overflow:hidden;box-shadow:0 1px 2px #1736530d}.unit-history-entry:before{content:"";pointer-events:none;background:#1d4ed8;border-radius:4px;width:4px;height:36px;position:absolute;top:14px;left:14px}.unit-history-entry--completed:before{background:var(--green)}.unit-history-entry--rescheduled:before{background:var(--orange)}.unit-history-entry--cancelled:before{background:var(--red)}.unit-history-row{cursor:pointer;grid-template-columns:92px minmax(0,1.3fr) minmax(0,1.3fr) 118px minmax(0,1fr) 118px 118px;align-items:center;gap:14px;padding:14px 16px 14px 32px;font-size:14px;display:grid}.unit-history-row:hover{background:#fafcfe}.unit-history-entry--open .unit-history-row{background:#f5f7f9}.unit-history-date{color:var(--text);letter-spacing:.02em;font-family:IBM Plex Mono,ui-monospace,monospace;font-weight:600}.unit-history-cell{overflow-wrap:anywhere;min-width:0}.unit-history-none{color:var(--muted)}.unit-history-techs{flex-direction:column;gap:2px;min-width:0;display:flex}.unit-history-billing{flex-direction:column;gap:2px;display:flex}.unit-history-amount{color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,ui-monospace,monospace;font-weight:700}.unit-history-pay{font-size:12px}.unit-history-pay--paid{color:var(--green)}.unit-history-pay--invoiced{color:var(--orange)}.unit-history-actions{justify-content:flex-end;gap:6px;display:flex}.unit-history-btn-complete{background:var(--green-bg);color:var(--green);border-color:#b7e1c9}.unit-history-btn-complete:hover{border-color:var(--green);color:var(--green)}.unit-history-photos{padding:10px 14px 0}.unit-history-details{border-top:1px solid var(--line);background:var(--surface);grid-template-columns:repeat(6,minmax(0,1fr));margin:0;display:grid}.unit-history-detail{border-left:1px solid var(--line);min-width:0;padding:12px 16px}.unit-history-detail:nth-child(6n+1){border-left:none}.unit-history-detail--wide{border-left:none;border-top:1px solid var(--line);grid-column:1/-1}.unit-history-detail dt{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:11px;font-weight:600}.unit-history-detail dd{color:var(--text);white-space:pre-line;overflow-wrap:anywhere;margin:0;font-size:14px}.unit-history-detail-accent{color:var(--accent)}@media (width<=1200px){.unit-history-details{grid-template-columns:repeat(3,minmax(0,1fr))}.unit-history-detail:nth-child(6n+1){border-left:1px solid var(--line)}.unit-history-detail:nth-child(3n+1){border-left:none}.unit-history-detail:nth-child(n+4){border-top:1px solid var(--line)}}@media (width<=700px){.unit-history-row{grid-template-columns:88px minmax(0,1fr) 118px;row-gap:8px}.unit-history-actions{grid-column:3}.unit-history-details{grid-template-columns:minmax(0,1fr)}.unit-history-detail{border-left:none;border-top:1px solid var(--line)}.unit-history-detail:first-child{border-top:none}.unit-history-detail:nth-child(3n+1){border-left:none}}.unit-history-more{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;margin-top:12px;padding:0;font-weight:600}.unit-history-more:hover{text-decoration:underline}.unit-next{background:#eef3fb;border-color:#d6e2f5;flex-direction:column;padding:16px 18px 18px;display:flex}.unit-next-label{color:var(--muted);letter-spacing:.08em;font-size:12px;font-weight:600}.unit-next-date{color:var(--text);font-variant-numeric:tabular-nums;margin-top:6px;font-size:26px;font-weight:700}.unit-next-date--none{color:var(--muted);font-size:20px}.unit-next-desc{color:var(--accent);margin-top:2px;font-size:14px}.unit-next-btn{justify-content:center;align-items:center;gap:8px;margin-top:14px;padding-top:11px;padding-bottom:11px;display:flex}.unit-controls--stale .unit-reading-value,.unit-controls--stale .unit-param-current,.unit-controls--stale .unit-controls-power{color:var(--muted)}.unit-controls--stale .unit-status,.unit-controls--stale .unit-icons{opacity:.55}.unit-controls--stale .unit-icon--active{color:var(--muted);border-color:var(--line);background:var(--surface)}.unit-errors-count--stale{background:var(--surface);border-color:var(--line);color:var(--muted)}.hp-tabs--stale .hp-row-value{color:var(--muted)}.hp-tabs-stale{color:var(--muted);margin:0 0 14px;font-size:.8rem}.hp-row--header td{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding-top:18px;font-size:.72rem;font-weight:700}.unit-controls-actions{gap:12px;margin:4px 0 14px;display:flex}.btn-big{cursor:pointer;border:1.5px solid #0000;border-radius:14px;flex:1;justify-content:center;align-items:center;gap:10px;padding:14px 20px;font-size:1rem;font-weight:700;display:inline-flex}.btn-big:disabled{opacity:.45;cursor:default}.btn-big--outline{border-color:var(--text);color:var(--text);background:#fff}.btn-big--red{color:#fff;background:#c65b3c;border-color:#c65b3c}.btn-big--green{background:var(--green);border-color:var(--green);color:#fff}.signal-monitoring-card{margin-top:18px;padding:16px 20px 18px}.signal-monitoring-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.signal-monitoring-head h2{align-items:center;gap:8px;margin:0;font-size:1rem;display:inline-flex}.signal-monitoring-actions{align-items:center;gap:10px;display:flex}.signal-monitoring-status{color:var(--green,#1c7d43);font-size:.8rem;font-weight:600}.signal-event-list{margin:8px 0 0;padding:0;list-style:none}.signal-event{border-bottom:1px solid var(--line);padding:8px 0}.signal-event:last-child{border-bottom:none}.signal-event-head{justify-content:space-between;gap:12px;font-size:.9rem;display:flex}.signal-event-label{font-weight:600}.signal-event--open .signal-event-label{color:var(--green,#1c7d43)}.signal-event-duration{color:var(--muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.8rem}.signal-event--open .signal-event-duration{color:var(--green,#1c7d43)}.signal-event-meta{color:var(--muted);margin-top:2px;font-size:.78rem}.monitoring-options{flex-direction:column;gap:4px;margin-bottom:14px;display:flex}.monitoring-option--frozen{opacity:.6}.monitoring-option-key{color:var(--muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem}.monitoring-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.value-chart{width:100%;height:auto;margin-top:8px}.value-chart-grid{stroke:var(--line);stroke-width:1px}.value-chart-tick{fill:var(--muted);font-size:10px}.value-chart-legend{color:var(--muted);flex-wrap:wrap;gap:10px 18px;margin-top:10px;font-size:.8rem;display:flex}.value-chart-legend-item{align-items:center;gap:6px;display:inline-flex}.value-chart-swatch{border-radius:3px;width:10px;height:10px;display:inline-block}.value-chart-legend-item{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 4px}.value-chart-legend-item:hover{background:#f1f4f8}.value-chart-legend-item--off{opacity:.4;text-decoration:line-through}.value-chart-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.value-chart-episodes-toggle{color:var(--muted);font-size:.8rem}.value-chart-stage{position:relative}.value-chart-tick--right{fill:#5b6b7c}.value-chart-crosshair{stroke:#16202c;stroke-width:1px;stroke-dasharray:3 3;opacity:.5}.value-chart-drag{fill:#1868c422;stroke:#1868c4;stroke-width:1px}.value-chart-marker{stroke:#8548b8;stroke-width:1px;stroke-dasharray:2 3;opacity:.7}.value-chart-marker-label{fill:#8548b8;font-size:9px}.value-chart-tooltip{border:1px solid var(--line);pointer-events:none;z-index:5;background:#fffe;border-radius:8px;max-width:260px;padding:8px 10px;font-size:.75rem;position:absolute;top:8px;transform:translate(12px);box-shadow:0 4px 14px #1020301f}.value-chart-tooltip-time{margin-bottom:4px;font-weight:600}.value-chart-tooltip-row{white-space:nowrap;align-items:center;gap:6px;display:flex}.value-chart-hint{color:var(--muted);margin:6px 0 0;font-size:.75rem}.value-chart-full{z-index:90;position:fixed;inset:12px;overflow:auto;box-shadow:0 12px 48px #10203040}.value-chart-legend--bands{background:#f6f8fb;border-radius:8px;margin-top:12px;padding:6px 8px}.value-chart-legend-caption{color:var(--muted);font-size:.72rem}.value-chart-legend-item--static{cursor:default}.value-chart-legend-item--static:hover{background:0 0}.value-chart-on{color:var(--green,#1c7d43)}.value-chart-lane-label{fill:#16202c;paint-order:stroke;stroke:#fff;stroke-width:2.5px;font-size:9px;font-weight:600}.value-chart-tooltip--left{transform:translate(calc(-100% - 12px))}.value-chart-marker-label{paint-order:stroke;stroke:#fff;stroke-width:3px}.value-chart-marker{stroke-width:1px}@keyframes unit-panel-slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.unit-panel-backdrop{z-index:50;background:0 0;justify-content:flex-end;display:flex;position:fixed;inset:0}.unit-panel{background:#fff;border-left:1px solid #e4eaf0;flex-direction:column;width:500px;max-width:100%;animation:.18s ease-out unit-panel-slide-in;display:flex;box-shadow:-16px 0 40px #1020301a}.unit-panel-header{border-bottom:1px solid #eef2f6;align-items:flex-start;gap:12px;padding:22px 24px 18px;display:flex}.unit-panel-eyebrow{letter-spacing:.11em;text-transform:uppercase;color:#7b8b9c;margin-bottom:6px;font-size:11px;font-weight:600}.unit-panel-title{color:#16202c;font-size:20px;font-weight:700}.unit-panel-subtitle{color:#54657a;margin-top:3px;font-size:13.5px}.unit-panel-close{color:#8b9aa9;background:0 0;border:none;margin-left:auto;padding:2px 4px;font-size:0}.unit-panel-close:hover{color:#16202c}.unit-panel-body{flex-direction:column;flex:1;gap:16px;padding:20px 24px;display:flex;overflow-y:auto}.unit-panel-field{border-bottom:1px solid #f4f7f9;justify-content:space-between;gap:16px;padding-bottom:12px;font-size:14.5px;display:flex}.unit-panel-field-label{color:#7b8b9c}.unit-panel-field-value{text-align:right;color:#16202c;font-weight:500}.unit-panel-footer{border-top:1px solid #eef2f6;gap:10px;padding:16px 24px;display:flex}.unit-panel-btn-primary{color:#fff;background:#1668c1;border:none;border-radius:7px;flex:1;height:42px;font-size:14.5px;font-weight:600}.unit-panel-btn-primary:not(:disabled):hover{background:#1259a8}.unit-panel-btn-secondary{color:#54657a;background:#fff;border:1px solid #dde5ec;border-radius:7px;height:42px;padding:0 16px;font-size:14.5px}.unit-panel-btn-secondary:not(:disabled):hover{background:#f5f8fa}.unit-panel-visits{margin-top:0}.unit-panel-visits-header{justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:600;display:flex}.unit-panel-visits-empty{color:var(--muted);font-size:.85rem}.unit-panel-visit{border-bottom:1px solid #64748b26;padding:8px 0}.unit-panel-visit-head{align-items:flex-start;gap:8px;display:flex}.unit-panel-visit-info{flex-wrap:wrap;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.unit-panel-visit-type{font-size:.8rem;font-weight:600}.unit-panel-visit-date{color:var(--muted);font-size:.8rem}.unit-panel-visit-actions{flex-shrink:0;gap:4px;display:flex}.unit-panel-visit-detail{color:#16202c;gap:10px;margin-top:4px;font-size:.8rem;display:flex}.unit-panel-visit-detail-label{color:#7b8b9c;flex-shrink:0;width:82px}.unit-panel-visits-buttons{gap:8px;display:flex}.unit-panel-history-btn{color:var(--text);background:0 0;border:1px solid #64748b66}.unit-panel-history-btn--active{color:#2563eb;border-color:#2563eb}.unit-panel-live .unit-icon{width:56px;height:56px}.unit-panel-live .unit-icon svg{width:32px;height:32px}.unit-panel-live .unit-icons{justify-content:space-between}.unit-panel-live .unit-param:has(.unit-param-current--mode) .unit-param-edit{flex:100%}.unit-panel-live .unit-param:has(.unit-param-current--mode) .unit-param-edit select{flex:auto;width:auto}.page-shell.units-page{color:#16202c;--units-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;max-width:1560px;padding:28px 36px 60px;font-family:Barlow,Helvetica Neue,Helvetica,Arial,sans-serif}.units-page .page-header{align-items:flex-start;gap:24px;margin-bottom:22px}.units-subtitle{color:#7b8b9c;margin-top:4px;font-size:14px}.units-page .page-header h1{letter-spacing:-.01em;font-size:27px;font-weight:700}.units-header-actions{align-items:center;gap:10px;display:flex}.units-btn-outline{color:#1e3450;background:#fff;border:1px solid #d5dee6;border-radius:7px;align-items:center;gap:8px;padding:11px 17px;font-size:14.5px;font-weight:600;display:inline-flex}.units-btn-outline:not(:disabled):hover{color:#1668c1;border-color:#1668c1}.units-btn-primary{color:#fff;background:#1f5fbf;border:none;border-radius:7px;align-items:center;gap:8px;padding:11px 18px;font-size:14.5px;font-weight:600;display:inline-flex}.units-btn-primary:hover{background:#184f9f}.units-page .page-card{background:#fff;border:1px solid #e4eaf0;border-radius:12px;box-shadow:0 1px 3px #1020300d}.units-filter-card{margin-bottom:20px;padding:14px 16px}.units-filter-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.units-filter-address{flex:240px;min-width:200px;position:relative}.units-prefixed{background:#fbfcfd;border:1px solid #dde5ec;border-radius:8px;flex:0 165px;align-items:center;gap:10px;min-width:0;height:46px;padding:0 12px;display:flex}.units-prefixed:focus-within{border-color:#1668c1}.units-prefixed span{color:#9aa8b6;white-space:nowrap;font-size:14.5px}.units-prefixed input{color:#16202c;background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:15px}.units-prefixed input::placeholder{color:#9aa8b6}.units-filter-sep{background:#dde5ec;flex-shrink:0;width:1px;height:30px;margin:0 4px}.units-seg{background:#eef2f6;border-radius:9px;gap:2px;padding:4px;display:inline-flex}.units-seg-btn{color:#54657a;height:38px;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;padding:0 13px;font-size:14.5px;font-weight:500}.units-seg-btn:hover{color:#16202c}.units-seg-btn--active{color:#16202c;background:#fff;font-weight:600;box-shadow:0 1px 2px #1736531f}.units-search-input{color:#8b9aa9;background:#fbfcfd;border:1px solid #dde5ec;border-radius:8px;align-items:center;gap:10px;height:46px;padding:0 12px;display:flex}.units-search-input:focus-within{border-color:#1668c1}.units-search-input input{color:#16202c;background:0 0;border:none;outline:none;flex:1;height:100%;font-size:15px}.units-search-input input::placeholder{color:#9aa8b6}.units-input-mono{font-family:var(--units-mono)}.units-btn-reset{color:#54657a;background:#fff;border:1px solid #dde5ec;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:inline-flex}.units-btn-reset:hover{background:#f5f8fa}.units-suggest-menu{z-index:30;background:#fff;border:1px solid #e4eaf0;border-radius:10px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden;box-shadow:0 12px 30px #10203024}.units-suggest-item{cursor:pointer;border-bottom:1px solid #f1f4f7;align-items:center;gap:12px;padding:11px 14px;display:flex}.units-suggest-item:last-child{border-bottom:none}.units-suggest-item:hover{background:#f5f9fd}.units-suggest-icon{color:#1668c1;flex-shrink:0}.units-suggest-text{flex:1}.units-suggest-street{color:#16202c;font-size:14.5px;font-weight:500}.units-suggest-city{color:#7b8b9c;font-size:12.5px}.units-suggest-count{color:#7b8b9c;font-size:12px;font-family:var(--units-mono);white-space:nowrap}.units-result-line{color:#54657a;font-size:14px}.units-result-row{border-bottom:1px solid var(--line);align-items:flex-end;gap:16px;margin-bottom:14px;display:flex}.units-tabs{flex:1;gap:4px;display:flex}.units-tab{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:10px 14px 12px;font-size:.9375rem;font-weight:500;display:inline-flex}.units-tab:hover{color:var(--text)}.units-tab--active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.units-tab-count{color:var(--muted);background:#e6edf3;border-radius:10px;padding:1px 8px;font-size:.75rem;font-weight:600}.units-tab--active .units-tab-count{background:var(--surface-blue);color:var(--accent)}.units-result-row .units-result-line{margin:0 4px 12px 0}.units-result-row .units-view-toggle{margin-bottom:8px}.units-kind-tag{background:var(--orange-bg);color:var(--orange);letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;border-radius:10px;margin-left:8px;padding:1px 8px;font-size:.6875rem;font-weight:600}.units-view-toggle{background:#fff;border:1px solid #dde5ec;border-radius:8px;display:flex;overflow:hidden}.units-view-btn{color:#54657a;background:#fff;border:none;padding:8px 16px;font-size:13.5px}.units-view-btn+.units-view-btn{border-left:1px solid #dde5ec}.units-view-btn--active{color:#1668c1;background:#eaf2fc;font-weight:600}.units-empty{color:#c3cfda;text-align:center;flex-direction:column;align-items:center;gap:6px;padding:64px 24px;display:flex}.units-empty-title{color:#16202c;margin-top:4px;font-size:16px;font-weight:600}.units-empty-subtitle{color:#7b8b9c;font-size:14px}.units-groups{flex-direction:column;gap:14px;display:flex}.units-group{overflow:hidden}.units-group-header{cursor:pointer;background:#fbfcfe;border-bottom:1px solid #eef2f6;align-items:center;gap:14px;padding:15px 20px;display:flex}.units-group-header:hover{background:#f5f9fd}.units-group-chevron{color:#7b8b9c;flex-shrink:0;transition:transform .15s}.units-group-chevron--closed{transform:rotate(-90deg)}.units-group-icon{color:#1668c1;background:#e9f1fb;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.units-group-name{flex:1}.units-group-street{color:#16202c;font-size:15.5px;font-weight:600}.units-group-city{color:#8b9aa9;font-size:12.5px}.units-group-count{color:#54657a;font-size:12.5px;font-family:var(--units-mono);white-space:nowrap}.units-group-row{border-bottom:1px solid #f4f7f9;grid-template-columns:140px 1fr 1.2fr 1fr 96px 120px;align-items:center;gap:16px;padding:13px 20px;font-size:14.5px;display:grid}.units-group-row:last-child{border-bottom:none}.units-group-row:hover{background:#f8fbfe}.units-group-apt{font-family:var(--units-mono);color:#16202c;overflow-wrap:anywhere;font-weight:600}.units-group-model{color:#54657a;align-items:center;gap:6px;display:flex}.units-group-serial{color:#54657a;font-family:var(--units-mono);font-size:13px}.units-list{overflow:hidden}.units-list-header,.units-list-row{grid-template-columns:2.2fr .7fr 1fr 1.2fr 1.1fr .9fr 120px;align-items:center;gap:16px;padding:15px 20px;display:grid}.units-list-header{letter-spacing:.11em;color:#7b8b9c;border-bottom:1px solid #eef2f6;padding:13px 20px;font-size:10.5px;font-weight:600}.units-list-row{cursor:pointer;border-bottom:1px solid #f2f5f8;font-size:14.5px}.units-list-row:last-child{border-bottom:none}.units-list-row:hover{background:#f8fbfe}.units-list-street{color:#16202c;font-weight:500}.units-list-city{color:#8b9aa9;font-size:12.5px;font-weight:400}.units-list-mono{font-family:var(--units-mono);color:#16202c}.units-list-muted{color:#54657a}.units-list-model{color:#16202c;align-items:center;gap:6px;display:flex}.units-list-actions{justify-content:flex-end;gap:6px;display:flex}.units-icon-btn{color:#7b8b9c;background:#fff;border:1px solid #e2e9ef;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.units-page .badge{letter-spacing:.04em;border-radius:5px;padding:4px 9px;font-size:11px;font-weight:700}.units-page .badge--ready{color:#1a7f47;background:#e4f5ea}.units-page .badge--offline{color:#b23b3b;background:#fdeaea}.units-status-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.units-serial-indoor{color:var(--muted);font-size:12px}.units-glyphs{justify-content:flex-end;align-items:center;gap:26px;display:flex}.units-glyph{width:28px;height:28px;-webkit-mask:var(--glyph) no-repeat center / contain;-webkit-mask:var(--glyph) no-repeat center / contain;mask:var(--glyph) no-repeat center / contain;background-color:#6b7c8d}.units-glyph--carpenter{--glyph:url(/assets/carpenter-DoOTTfj0.svg)}.units-glyph--ac{--glyph:url(/assets/air-conditioning-TjHGTam2.svg)}.units-glyph-btn{cursor:pointer;background:0 0;border:none;padding:0;display:inline-flex}.units-glyph-btn:hover .units-glyph{background-color:#1868c4}.log-page{--log-row-border:#eaf0f5;--log-chip-grey-bg:#eef2f6;--log-chip-grey-text:#4a5a72;--log-system-avatar-bg:#e6ecf2;--log-system-avatar-text:#4a5a72}.log-header{gap:20px}.log-header h1{letter-spacing:-.01em;font:700 1.6875rem/1.15 Inter,Helvetica Neue,Arial,sans-serif}.log-tabs{background:var(--bg);border-radius:8px;flex:none;gap:2px;padding:3px;display:inline-flex}.log-tab{height:32px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:6px;align-items:center;padding:0 12px;font:500 13.5px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-tab--active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 2px #1736531f}.log-header-actions{align-items:center;gap:18px;margin-left:auto;display:flex}.log-live-toggle{align-items:center;gap:10px;display:inline-flex}.log-live-label{color:var(--text);white-space:nowrap;align-items:center;gap:8px;font:500 14px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-live-sub{color:var(--muted);font-weight:400}.log-live-switch{background:#7d91a6;border:0;border-radius:11px;flex:none;width:40px;height:22px;padding:0;display:inline-block;position:relative}.log-live-switch[aria-checked=true]{background:var(--green)}.log-live-switch--reconnecting[aria-checked=true]{background:#7b8b9c}.log-live-switch-thumb{background:#fff;border-radius:50%;width:18px;height:18px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0b1f3a40}.log-live-switch[aria-checked=true] .log-live-switch-thumb{left:20px}.log-export-btn{background:var(--surface);height:38px;color:var(--text);white-space:nowrap;border:1px solid #c9d6e2;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font:600 13.5px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-export-btn:disabled{opacity:.6;cursor:default}.log-tab-panel{text-align:center;padding:56px 20px}.log-placeholder{color:var(--muted);font:400 14px/1.4 Inter,Helvetica Neue,Arial,sans-serif}.log-toolbar{flex-wrap:wrap;align-items:center;gap:10px;padding:12px 4px 8px;display:flex}.log-period{background:var(--bg);border-radius:8px;flex:none;gap:2px;padding:3px;display:inline-flex}.log-period button{height:32px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:6px;align-items:center;padding:0 10px;font:500 13px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-period button[aria-pressed=true]{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 2px #1736531f}.log-search{flex:220px;min-width:180px;position:relative}.log-search input{border:1px solid var(--line);background:var(--surface);width:100%;height:38px;color:var(--text);border-radius:8px;outline:none;padding:0 12px 0 36px;font:400 13.5px/1 Inter,Helvetica Neue,Arial,sans-serif}.log-search svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.log-filter-btn{border:1px solid var(--line);background:var(--surface);height:38px;color:var(--text);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:0 8px 0 12px;font:500 13.5px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-chip{border:1px solid var(--line);background:var(--surface);height:30px;color:var(--text);white-space:nowrap;border-radius:15px;align-items:center;padding:0 13px;font:500 13px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-chip--active{border-color:var(--accent);background:var(--surface-blue);color:var(--accent-strong);font-weight:600}.log-active-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.log-count{color:var(--muted);font:400 13px/1.3 Inter,Helvetica Neue,Arial,sans-serif}.log-table{border-collapse:collapse;width:100%}.log-cols{grid-template-columns:20px 88px 190px 154px minmax(0,1fr);align-items:center;column-gap:12px;display:grid}.log-day-heading{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--bg);margin:0;padding:10px 20px 6px;font:600 11px/1 IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.log-row{border:0;border-bottom:1px solid var(--log-row-border);text-align:left;cursor:pointer;background:0 0;align-items:center;column-gap:12px;min-height:54px;padding:8px 20px;display:grid;position:relative}.log-row:last-child{border-bottom:0}.log-row:hover{background:var(--bg)}.log-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.log-row--selected,.log-row--selected:hover{background:var(--surface-blue);box-shadow:inset 3px 0 0 var(--accent)}.log-row--new:not(.log-row--selected){box-shadow:inset 3px 0 0 var(--green);background:#effaf4}.log-row--people,.log-colheads.log-row--people{grid-template-columns:20px 88px 190px 154px minmax(0,1fr)}.log-row--gateways,.log-colheads.log-row--gateways{grid-template-columns:20px 88px 190px 150px 150px minmax(0,1fr)}@media (width>=1280px){.log-layout:not(.log-layout--drawer) .log-row--people,.log-layout:not(.log-layout--drawer) .log-colheads.log-row--people{grid-template-columns:22px 100px 190px 188px minmax(0,1fr) 170px 108px}}.log-type{background:var(--log-chip-grey-bg);height:24px;color:var(--log-chip-grey-text);white-space:nowrap;border-radius:12px;align-items:center;gap:6px;padding:0 10px 0 8px;font:600 12px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-type:before{content:"";background:currentColor;border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.log-type--ok{background:var(--green-bg);color:var(--green)}.log-type--info{background:var(--log-chip-grey-bg);color:var(--log-chip-grey-text)}.log-type--warn{background:var(--orange-bg);color:var(--orange)}.log-type--error{background:var(--red-bg);color:var(--red)}.log-avatar{letter-spacing:.02em;border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font:700 11px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-avatar--0{color:#1d4ed8;background:#dbeafe}.log-avatar--1{color:#5b21b6;background:#ede9fe}.log-avatar--2{color:#0e6a82;background:#cffafe}.log-avatar--3{color:#3f6212;background:#ecfccb}.log-avatar--4{color:#9d174d;background:#fce7f3}.log-avatar--5{background:var(--orange-bg);color:var(--orange)}.log-system-avatar{background:var(--log-system-avatar-bg);width:28px;height:28px;color:var(--log-system-avatar-text);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.log-mono{color:var(--text);white-space:nowrap;font:400 12.5px/1 IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.log-drawer{background:var(--surface);border-radius:12px;flex:none;align-self:flex-start;width:420px;max-height:calc(100vh - 32px);animation:.18s log-drawer-in;position:sticky;top:16px;overflow-y:auto;box-shadow:0 14px 36px #1736531c,0 2px 6px #1736530f}@keyframes log-drawer-in{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:translate(0)}}@media (width<=1180px){.log-drawer{z-index:20;border-radius:0;max-width:100vw;max-height:none;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 28px #17365329}}.log-drawer-backdrop{display:none}@media (width<=1024px){.log-drawer-backdrop{z-index:19;background:#0a142373;display:block;position:fixed;inset:0}.log-drawer{width:min(92vw,520px);left:auto}}@media (width<=600px){.log-drawer{width:100vw;left:0}}@keyframes log-skeleton-shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}.log-skeleton{background:linear-gradient(90deg, #e9eff5 25%, var(--bg) 50%, #e9eff5 75%);background-size:400px 100%;border-radius:6px;animation:1.2s ease-in-out infinite log-skeleton-shimmer;display:block}.log-empty{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;font:400 13.5px/1.4 Inter,Helvetica Neue,Arial,sans-serif;display:flex}.log-error-banner{background:var(--red-bg);color:var(--red);border-radius:10px;align-items:center;gap:10px;padding:12px 16px;font:500 13.5px/1.3 Inter,Helvetica Neue,Arial,sans-serif;display:flex}@keyframes log-live-pulse{0%{box-shadow:0 0 #147d5877}70%{box-shadow:0 0 0 7px #147d5800}to{box-shadow:0 0 #147d5800}}.log-live-dot{background:var(--green);border-radius:50%;flex:none;width:8px;height:8px;animation:1.6s ease-out infinite log-live-pulse;display:inline-block}.log-live-dot--reconnecting{background:#7b8b9c;animation:none}.log-new-pill-wrap{justify-content:center;margin-bottom:12px;display:flex}.log-new-pill{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:16px;align-items:center;gap:6px;height:32px;padding:0 14px;font:600 13px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex;box-shadow:0 4px 12px #0878b94d}.log-link-btn{height:30px;color:var(--accent-strong);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:0 8px;font:600 12.5px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-link-btn:hover{background:var(--surface-blue)}.log-primary-btn{border:1px solid var(--accent);background:var(--accent);color:#fff;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:8px;height:36px;padding:0 14px;font:600 13.5px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-primary-btn:disabled{opacity:.5}.log-soft-btn{color:#1d5fd1;white-space:nowrap;background:#e3ecfb;border:1px solid #c9dbf5;border-radius:8px;justify-content:center;align-items:center;gap:8px;height:32px;padding:0 14px;font:600 13px/1 Inter,Helvetica Neue,Arial,sans-serif;text-decoration:none;display:inline-flex}.log-soft-btn:disabled{opacity:.55}.log-inline-link{color:var(--accent-strong);font-weight:600;text-decoration:none}.log-dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.log-dot--ok{background:var(--green)}.log-dot--info{background:#7b8b9c}.log-dot--warn{background:var(--orange)}.log-dot--error{background:var(--red)}@keyframes log-spin{to{transform:rotate(360deg)}}.log-spin{animation:.9s linear infinite log-spin}.log-toolbar-card{padding:0;overflow:visible}.log-toolbar{padding:14px 16px}.log-period button{gap:6px}.log-search input{background:var(--bg);padding-right:36px}.log-search-clear{width:24px;height:24px;color:var(--muted);background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.log-filter{flex:none;position:relative}.log-filter-btn--active{border-color:var(--accent);background:var(--surface-blue);color:var(--accent-strong)}.log-filter-btn--open{box-shadow:0 0 0 3px #0878b926}.log-popover{z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px;position:absolute;top:44px;right:0;box-shadow:0 18px 50px #17365329,0 2px 6px #1736530f}.log-popover-search{align-items:center;margin-bottom:6px;display:flex;position:relative}.log-popover-search svg{color:var(--muted);position:absolute;left:11px}.log-popover-search input{border:1px solid var(--line);background:var(--surface);width:100%;height:36px;color:var(--text);border-radius:8px;outline:none;padding:0 12px 0 34px;font:400 13.5px/1 Inter,Helvetica Neue,Arial,sans-serif}.log-popover-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0878b926}.log-popover-list{flex-direction:column;gap:1px;max-height:320px;display:flex;overflow-y:auto}.log-popover-none{color:var(--muted);padding:10px;font:400 13px/1.3 Inter,Helvetica Neue,Arial,sans-serif}.log-option{cursor:pointer;border-radius:7px;align-items:center;gap:10px;height:36px;padding:0 10px;display:flex;position:relative}.log-option:hover{background:#f1f6fa}.log-option input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.log-option-box{background:var(--surface);border:1.5px solid #9fb3c6;border-radius:5px;flex:none;width:18px;height:18px;display:inline-flex}.log-option--on .log-option-box{background:var(--accent);border-color:var(--accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:14px 14px}.log-option-dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.log-option-dot--ok{background:var(--green)}.log-option-dot--info{background:#7b8b9c}.log-option-dot--warn{background:var(--orange)}.log-option-dot--error{background:var(--red)}.log-option-label{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font:500 13.5px/1.2 Inter,Helvetica Neue,Arial,sans-serif;overflow:hidden}.log-option--on .log-option-label{font-weight:600}.log-option-count{color:var(--muted);font:400 12px/1 IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.log-popover-foot{border-top:1px solid var(--log-row-border);color:var(--muted);justify-content:space-between;align-items:center;margin-top:6px;padding:8px 6px 0 10px;font:400 12.5px/1 Inter,Helvetica Neue,Arial,sans-serif;display:flex}.log-custom-wrap{display:inline-flex;position:relative}.log-custom{flex-direction:column;gap:12px;width:340px;padding:16px;display:flex}.log-custom label{flex-direction:column;gap:6px;display:flex}.log-custom label>span:first-child{color:var(--muted);font:500 12px/1 Inter,Helvetica Neue,Arial,sans-serif}.log-custom-field{align-items:center;display:flex;position:relative}.log-custom-field svg{color:var(--muted);position:absolute;left:12px}.log-custom-field input{border:1px solid var(--line);background:var(--surface);width:100%;height:38px;color:var(--text);border-radius:8px;outline:none;padding:0 12px 0 36px;font:400 13.5px/1 Inter,Helvetica Neue,Arial,sans-serif}.log-custom-note{color:var(--muted);font:400 12px/1.3 Inter,Helvetica Neue,Arial,sans-serif}.log-custom-actions{justify-content:flex-end;gap:8px;display:flex}.log-reset{height:38px;font-size:13.5px}.log-quick-chips{border-top:1px solid var(--log-row-border);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px 14px;display:flex}.log-chip--on{border-color:var(--accent);background:var(--accent);color:#fff}.log-active-chips{padding:0 16px 14px}.log-active-chip{background:var(--surface-blue);height:28px;color:var(--accent-strong);white-space:nowrap;border-radius:14px;align-items:center;gap:5px;padding:0 4px 0 12px;font:500 13px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-active-chip-prefix{color:#4b6a86}.log-active-chip-value{text-overflow:ellipsis;max-width:220px;font-weight:600;overflow:hidden}.log-active-chip button{width:20px;height:20px;color:var(--accent-strong);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.log-active-chip button:hover{background:#d4e9f8}.log-count-line{justify-content:space-between;align-items:center;gap:16px;min-height:28px;margin-top:12px;padding:0 4px;display:flex}.log-count{align-items:center;gap:6px;display:inline-flex}.log-count b{color:var(--text);font-weight:600}.log-layout{align-items:flex-start;gap:16px;margin-top:4px;display:flex}.log-list{flex-direction:column;flex:1 1 0;min-width:0;display:flex}.log-colheads{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;column-gap:12px;padding:0 20px 2px;font:500 11px/1 IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:grid}.log-day-heading{z-index:2;background:var(--bg);align-items:center;gap:12px;margin:0;padding:12px 4px 8px;display:flex;position:sticky;top:0}.log-day-rule{background:var(--line);flex:1;height:1px}.log-list-card{padding:0;overflow:hidden}.log-chevron{z-index:2;color:#33475e;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;width:22px;height:22px;padding:0;display:inline-flex;position:relative}.log-chevron--on{background:#e4edf4}.log-time{font-size:12.5px}.log-type-cell{align-items:center;gap:6px;min-width:0;display:flex}.log-count-badge{background:var(--red);color:#fff;white-space:nowrap;border-radius:10px;align-items:center;height:20px;padding:0 7px;font:700 11.5px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-who{align-items:center;gap:9px;min-width:0;display:flex}.log-who-text{flex-direction:column;gap:3px;min-width:0;display:flex}.log-who-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font:500 13.5px/1.25 Inter,Helvetica Neue,Arial,sans-serif;overflow:hidden}.log-who-role{letter-spacing:.06em;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font:500 10.5px/1.2 Inter,Helvetica Neue,Arial,sans-serif;overflow:hidden}.log-who-arrow{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font:400 11.5px/1.2 Inter,Helvetica Neue,Arial,sans-serif;overflow:hidden}.log-avatar--unknown{background:0 0;border:1.5px dashed #9fb3c6}.log-title-cell{min-width:0;font:400 13px/1.38 Inter,Helvetica Neue,Arial,sans-serif}.log-title-main{color:var(--text)}.log-title-muted{color:var(--muted)}.log-gateway-cell{flex-direction:column;gap:3px;min-width:0;display:flex}.log-unit-cell{align-items:center;min-width:0;display:flex}.log-unit-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font:500 13px/1.25 Inter,Helvetica Neue,Arial,sans-serif;overflow:hidden}.log-unreg-chip{background:var(--log-chip-grey-bg);height:22px;color:var(--log-chip-grey-text);white-space:nowrap;border-radius:11px;align-items:center;padding:0 10px;font:600 11.5px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-source-cell{color:#33475e;align-items:center;gap:7px;min-width:0;font:400 13px/1.3 Inter,Helvetica Neue,Arial,sans-serif;display:flex}.log-source-cell svg{color:var(--muted);flex:none}.log-source-cell span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.log-ip-cell{color:var(--muted);font-size:12px}.log-subrow{cursor:pointer;background:#f9fbfd;min-height:38px;padding:5px 20px}.log-subrow:hover{background:#f1f6fa}.log-subrow-tee{background:#cdd9e5;width:1px;position:absolute;top:0;bottom:0;left:30px}.log-subrow-tee:after{content:"";background:#cdd9e5;width:12px;height:1px;position:absolute;top:50%;left:0}.log-subrow-type{color:var(--log-chip-grey-text);align-items:center;gap:7px;font:500 12px/1 Inter,Helvetica Neue,Arial,sans-serif;display:flex}.log-subrow-title{color:#33475e;min-width:0;font:400 12.5px/1.3 Inter,Helvetica Neue,Arial,sans-serif}.log-skeleton-row{border-bottom:1px solid var(--log-row-border);grid-template-columns:74px 166px 28px minmax(0,1fr);align-items:center;column-gap:12px;height:48px;padding:0 16px;display:grid}.log-skeleton-row:last-child{border-bottom:0}.log-skeleton-lines{flex-direction:column;gap:6px;display:flex}.log-empty-card{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:84px 24px 88px;display:flex}.log-empty-icon{color:#c3cfda;display:flex}.log-empty-title{color:var(--text);font:600 16px/1.3 Inter,Helvetica Neue,Arial,sans-serif}.log-error-banner{color:#7f2620;border:1px solid #f0c4bf;margin:10px 0 2px;padding:11px 12px 11px 16px}.log-error-banner svg{color:var(--red);flex:none}.log-error-banner span{flex:1}.log-error-banner button{background:var(--surface);color:#a2302a;white-space:nowrap;border:1px solid #efc5c1;border-radius:8px;height:32px;padding:0 14px;font:600 13px/1 Inter,Helvetica Neue,Arial,sans-serif}.log-load-more{flex-direction:column;align-items:center;gap:10px;padding:18px 0 4px;display:flex}.log-load-more .log-soft-btn{background:var(--surface);height:38px;color:var(--text);border-color:#c9d6e2}.log-drawer-head{flex-direction:column;gap:12px;padding:18px 20px;display:flex}.log-drawer-chips{align-items:center;gap:8px;display:flex}.log-drawer-nav{align-items:center;gap:6px;margin-left:auto;display:flex}.log-drawer-nav button{border:1px solid var(--line);background:var(--surface);color:#33475e;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:inline-flex}.log-drawer-nav button:hover{background:var(--bg)}.log-drawer-head h2{color:var(--text);text-wrap:balance;margin:0;font:700 20px/1.25 Inter,Helvetica Neue,Arial,sans-serif}.log-drawer-date{color:var(--muted);flex-direction:column;gap:3px;font:400 13.5px/1.4 Inter,Helvetica Neue,Arial,sans-serif;display:flex}.log-drawer-date-main{color:#33475e}.log-drawer-date .log-mono{font-size:13px}.log-drawer-section{border-top:1px solid var(--log-row-border);padding:16px 20px 18px}.log-drawer-section h3{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font:600 11px/1 Inter,Helvetica Neue,Arial,sans-serif}.log-drawer-group{flex-direction:column;gap:16px;display:flex}.log-subblock-label{color:var(--muted);margin:0 0 8px;font:500 12px/1 Inter,Helvetica Neue,Arial,sans-serif}.log-subblock{margin-top:14px}.log-card-stack{flex-direction:column;gap:8px;display:flex}.log-card{border:1px solid var(--log-row-border);border-radius:10px;align-items:center;gap:12px;padding:12px;display:flex}.log-card-avatar{letter-spacing:.02em;border-radius:50%;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font:700 13px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-card-avatar--system{background:var(--log-system-avatar-bg);color:var(--log-system-avatar-text)}.log-card-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.log-card-title{color:var(--text);font:600 14px/1.25 Inter,Helvetica Neue,Arial,sans-serif}.log-card-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font:400 12.5px/1.2 Inter,Helvetica Neue,Arial,sans-serif;overflow:hidden}.log-card-sub.log-mono{font-size:12px}.log-card-tag{letter-spacing:.06em;color:var(--muted);align-items:center;gap:8px;font:500 10.5px/1.2 Inter,Helvetica Neue,Arial,sans-serif;display:flex}.log-drawer-source{color:var(--text);align-items:center;gap:10px;font:500 13.5px/1.3 Inter,Helvetica Neue,Arial,sans-serif;display:flex}.log-drawer-source svg{color:var(--muted);flex:none}.log-drawer-ip{justify-content:space-between;align-items:center;gap:10px;margin-top:10px;display:flex}.log-drawer-ip .log-mono{font-size:13px}.log-drawer-note{color:var(--muted);margin-top:8px;font:400 12.5px/1.4 Inter,Helvetica Neue,Arial,sans-serif}.log-kv{grid-template-columns:140px minmax(0,1fr);gap:11px 12px;display:grid}.log-kv-key{color:var(--muted);font:400 13px/1.3 Inter,Helvetica Neue,Arial,sans-serif}.log-kv-value{color:var(--text);overflow-wrap:anywhere;min-width:0;font:500 13.5px/1.3 Inter,Helvetica Neue,Arial,sans-serif}.log-kv-value--mono{font:400 13px/1.35 IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.log-kv-none{color:var(--muted);font:400 13px/1.4 Inter,Helvetica Neue,Arial,sans-serif}.log-badge{white-space:nowrap;border-radius:11px;align-items:center;gap:6px;height:22px;padding:0 10px 0 8px;font:600 11.5px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-badge:before{content:"";background:currentColor;border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.log-badge--ok{background:var(--green-bg);color:var(--green)}.log-badge--error{background:var(--red-bg);color:var(--red)}.log-badge--info{background:var(--log-chip-grey-bg);color:var(--log-chip-grey-text)}.log-error-box{background:var(--red-bg);color:#7f2620;overflow-wrap:anywhere;border:1px solid #f3cbc6;border-radius:8px;padding:9px 11px;font:400 12px/1.5 IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:block}.log-stack{margin-top:14px}.log-stack-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.log-stack-toggle{height:28px;color:var(--text);background:0 0;border:0;align-items:center;gap:6px;padding:0;font:600 13px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-stack-box,.log-json{color:#e8eefb;white-space:pre-wrap;overflow-wrap:anywhere;background:#07132a;border:1px solid #16294d;border-radius:10px;margin:0;padding:12px 14px;font:400 12px/18px IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.log-json{max-height:320px;margin:0 20px 16px;overflow:auto}.log-device-list{border:1px solid var(--log-row-border);border-radius:10px}.log-device-row{border-top:1px solid var(--log-row-border);align-items:center;gap:10px;padding:10px 12px;display:flex}.log-device-row:first-child{border-top:0}.log-device-row svg{color:var(--muted);flex:none}.log-device-name{min-width:0;color:var(--text);flex:1;font:500 13px/1.25 Inter,Helvetica Neue,Arial,sans-serif}.log-change-table{border:1px solid var(--log-row-border);background:#fbfdfe;border-radius:10px;padding-top:10px}.log-change-head,.log-change-row{grid-template-columns:64px minmax(0,1fr) 16px minmax(0,1fr);align-items:center;column-gap:8px;display:grid}.log-change-head{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0 12px 9px;font:600 10.5px/1 Inter,Helvetica Neue,Arial,sans-serif}.log-change-row{border-top:1px solid var(--log-row-border);padding:10px 12px}.log-change-row:first-of-type{border-top:0}.log-change-was{letter-spacing:.06em;color:var(--muted);overflow-wrap:anywhere;font:600 11.5px/1.3 Inter,Helvetica Neue,Arial,sans-serif;-webkit-text-decoration:line-through #9aaabb;text-decoration:line-through #9aaabb}.log-change-arrow{color:var(--muted);font:500 14px/1 Inter,Helvetica Neue,Arial,sans-serif}.log-change-now{letter-spacing:.06em;color:var(--text);overflow-wrap:anywhere;font:600 11.5px/1.3 Inter,Helvetica Neue,Arial,sans-serif}.log-nearby{flex-direction:column;gap:2px;margin:0 -10px;display:flex}.log-nearby-row{min-height:36px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:86px minmax(0,1fr);align-items:center;column-gap:8px;padding:0 10px;display:grid}.log-nearby-row:hover{background:var(--bg)}.log-nearby-row--current{background:var(--surface-blue)}.log-nearby-row .log-mono{color:var(--muted);font-size:12px}.log-nearby-row--current .log-mono{color:var(--text)}.log-nearby-text{align-items:center;gap:8px;min-width:0;display:flex}.log-nearby-label{white-space:nowrap;font:500 13px/1.2 Inter,Helvetica Neue,Arial,sans-serif}.log-nearby-row--current .log-nearby-label{font-weight:600}.log-nearby-muted{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font:400 12px/1.2 Inter,Helvetica Neue,Arial,sans-serif;overflow:hidden}.log-drawer-dev{border-top:1px solid var(--log-row-border);justify-content:space-between;align-items:center;gap:8px;padding:10px 14px 10px 12px;display:flex}.log-dev-toggle{height:32px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;background:0 0;border:0;align-items:center;gap:6px;padding:0 6px 0 2px;font:600 11px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-drawer-foot{border-top:1px solid var(--log-row-border);color:var(--muted);background:#fafcfd;align-items:center;gap:10px;padding:11px 20px;font:400 12px/1 Inter,Helvetica Neue,Arial,sans-serif;display:flex}.log-drawer-foot kbd{background:var(--surface);min-width:20px;height:20px;color:var(--log-chip-grey-text);border:1px solid #cfdce8;border-radius:5px;justify-content:center;align-items:center;padding:0 5px;font:500 11px/1 IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:inline-flex}.log-foot-sep{background:var(--line);width:1px;height:12px}.log-errors-card{padding:0;overflow:visible}.log-error-grid{grid-template-columns:22px minmax(0,1fr) 92px 64px 164px 108px 114px 122px;align-items:center;column-gap:12px;display:grid}.log-error-colheads{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:10px 20px 6px;font:500 11px/1 IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.log-sort-btn{height:22px;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;white-space:nowrap;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.log-sort-btn:hover{color:var(--text)}.log-error-group{border-bottom:1px solid var(--log-row-border)}.log-error-group:last-child{border-bottom:0}.log-error-group--hidden .log-error-row{opacity:.55}.log-error-row{cursor:pointer;min-height:72px;padding:12px 20px}.log-error-title-cell{align-items:flex-start;gap:10px;min-width:0;display:flex}.log-error-sev-dot{flex:none;width:10px;height:10px;margin-top:5px}.log-error-title-text{flex-direction:column;gap:4px;min-width:0;display:flex}.log-error-title{-webkit-line-clamp:2;color:var(--text);overflow-wrap:anywhere;-webkit-box-orient:vertical;font:600 14px/1.3 Inter,Helvetica Neue,Arial,sans-serif;display:-webkit-box;overflow:hidden}.log-error-location{color:var(--muted);font:400 12px/1.2 IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.log-error-where{display:flex}.log-error-count{color:var(--text);letter-spacing:-.01em;font:700 24px/1 Inter,Helvetica Neue,Arial,sans-serif}.log-sparkline{display:block;position:relative}.log-sparkline-tip{z-index:5;background:var(--surface);border:1px solid var(--line);color:var(--text);white-space:nowrap;pointer-events:none;border-radius:8px;padding:7px 11px;font:500 12.5px/1.3 Inter,Helvetica Neue,Arial,sans-serif;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 10px 28px #17365326}.log-error-seen{flex-direction:column;gap:3px;min-width:0;display:flex}.log-error-seen-main{color:var(--text);white-space:nowrap;font:400 13px/1.2 Inter,Helvetica Neue,Arial,sans-serif}.log-error-seen-ago{color:var(--muted);white-space:nowrap;font:400 12px/1.2 Inter,Helvetica Neue,Arial,sans-serif}.log-error-affected{color:var(--text);font:400 13px/1.3 Inter,Helvetica Neue,Arial,sans-serif}.log-error-panel{border-top:1px solid var(--log-row-border);background:#fafcfd}.log-error-panel-head{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px 10px 16px;font:400 13px/1.3 Inter,Helvetica Neue,Arial,sans-serif;display:flex}.log-error-panel-actions{align-items:center;gap:8px;display:flex}.log-error-action-btn{background:var(--surface);height:32px;color:var(--text);white-space:nowrap;border:1px solid #c9d6e2;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font:600 13px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-error-action-btn:disabled{opacity:.55}.log-error-occ-grid{grid-template-columns:150px 210px minmax(0,1fr) 84px 20px;align-items:center;column-gap:12px;display:grid}.log-error-occ-head{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:10px 16px 6px;font:500 11px/1 IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.log-error-occ-row{cursor:pointer;min-height:40px;padding:4px 16px}.log-error-occ-row:hover{background:var(--bg)}.log-error-occ-date{white-space:nowrap;align-items:baseline;gap:10px;display:flex}.log-error-occ-date .log-mono:first-child{color:var(--muted)}.log-error-occ-request{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.log-error-occ-version{white-space:nowrap}.log-error-occ-arrow{color:#9fb0c1}.log-switch{color:var(--text);white-space:nowrap;align-items:center;gap:10px;font:500 13.5px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-cell--wide{display:none}@media (width>=1280px){.log-layout:not(.log-layout--drawer) .log-cell--wide{display:flex}}.log-admin-badge{background:var(--log-chip-grey-bg);height:30px;color:var(--log-chip-grey-text);white-space:nowrap;border-radius:15px;align-items:center;gap:7px;padding:0 12px;font:600 12px/1 Inter,Helvetica Neue,Arial,sans-serif;display:inline-flex}.log-term-search{flex:200px;min-width:180px}.log-term-search input{padding-right:48px}.log-term-regex-btn{border:1px solid var(--line);background:var(--surface);height:26px;color:var(--muted);border-radius:6px;padding:0 8px;font:500 12px/1 IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.log-term-regex-btn--on{border-color:var(--accent);background:var(--surface-blue);color:var(--accent-strong)}.log-term-regex-error{color:var(--red);white-space:nowrap;font:500 12.5px/1.3 Inter,Helvetica Neue,Arial,sans-serif}.log-term-level{flex:none;align-items:center;gap:8px;display:inline-flex}.log-term-level-label{color:var(--muted);font:400 13px/1 Inter,Helvetica Neue,Arial,sans-serif}.log-term-lines-select{border:1px solid var(--line);background:var(--surface);height:38px;color:var(--text);white-space:nowrap;border-radius:8px;flex:none;padding:0 10px;font:500 13.5px/1 Inter,Helvetica Neue,Arial,sans-serif}.log-live-switch--accent[aria-checked=true]{background:var(--accent)}.log-live-switch:disabled{opacity:.55;cursor:not-allowed}.log-term{background:#07132a;border:1px solid #16294d;border-radius:12px;margin-top:4px;overflow:hidden;box-shadow:0 8px 24px #0b1f3a24}.log-term-scroll{max-height:560px;position:relative;overflow:hidden auto}.log-term--nowrap .log-term-scroll{overflow-x:auto}.log-term-body{padding:12px 0}.log-term--nowrap .log-term-body{min-width:100%;display:inline-block}.log-term-row{grid-template-columns:76px minmax(0,1fr);column-gap:16px;display:grid}.log-term-body--search .log-term-row{grid-template-columns:76px minmax(0,1fr) 40px}.log-term--nowrap .log-term-row{width:max-content;min-width:100%;display:flex}.log-term--nowrap .log-term-row>.log-term-gutter{flex:none;width:76px}.log-term--nowrap .log-term-row>.log-term-text{white-space:pre;flex:none}.log-term--nowrap .log-term-row>.log-term-expand{flex:none}.log-term-gutter{text-align:right;color:#8396b6;white-space:nowrap;-webkit-user-select:none;user-select:none;background:#061024;border-right:1px solid #16294d;padding-right:14px;font:400 12px/20px IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.log-term-text{text-indent:-2ch;color:#e8eefb;white-space:pre-wrap;overflow-wrap:anywhere;padding:0 20px 0 2ch;font:400 13px/20px IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.log-term-row--warn{background:#f2c14e12}.log-term-row--warn .log-term-text{color:#f2c14e}.log-term-row--error{background:#ff8a8014}.log-term-row--error .log-term-text{color:#ff8a80}.log-term-row--context{opacity:.72}.log-term-row--context .log-term-text{color:#8fa2c2}.log-term-context-note{font-style:italic;color:#6f84a8!important}.log-term-mark{color:#fff;background:#1f6fb5;border-radius:3px;padding:0 2px}.log-term-expand{color:#6f84a8;background:0 0;border:0;justify-content:center;align-items:flex-start;padding-top:3px;display:flex}.log-term--empty{color:#9db0d3;text-align:center;flex-direction:column;align-items:center;gap:12px;padding:64px 24px;font:400 13.5px/1.4 Inter,Helvetica Neue,Arial,sans-serif;display:flex}.log-term--empty svg{color:#4a6694}.log-term--empty div:first-of-type{color:#e8eefb;font:600 15px/1.3 Inter,Helvetica Neue,Arial,sans-serif}.log-term--empty p{margin:0}.log-term-empty-inline{color:#9db0d3;flex-direction:column;align-items:center;gap:10px;padding:48px 24px;font:400 13.5px/1.4 Inter,Helvetica Neue,Arial,sans-serif;display:flex}.log-term-skel-row{align-items:center;gap:16px;height:20px;padding:4px 20px;display:flex}.log-term-skel{background:linear-gradient(90deg,#0d1f3f 25%,#16294d 50%,#0d1f3f 75%) 0 0/400px 100%;border-radius:4px;height:11px;animation:1.2s ease-in-out infinite log-skeleton-shimmer;display:block}.log-term-skel--gutter{width:44px}.log-term-skel--n1{width:34%}.log-term-skel--n2{width:44%}.log-term-skel--n3{width:54%}.log-term-skel--n4{width:64%}.log-term-skel--n5{width:74%}.log-term-skel--n6{width:84%}.log-term-newpill{z-index:3;width:max-content;margin:8px auto 0;position:sticky;bottom:8px;left:50%;transform:translate(-50%)}.log-term-status{color:#9db0d3;background:#0b1a33;border-top:1px solid #16294d;flex-wrap:wrap;align-items:center;gap:16px;padding:10px 16px;font:400 12.5px/1.3 Inter,Helvetica Neue,Arial,sans-serif;display:flex}.log-term-file-picker{color:#9db0d3;align-items:center;gap:6px;display:inline-flex}.log-term-file-picker select{color:#e8eefb;background:#0d1f3f;border:1px solid #2a4170;border-radius:6px;height:28px;padding:0 6px;font:500 12.5px/1 IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.log-term-meta{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.log-term-dot{color:#3b5385}.log-term-truncated{color:#f2c14e}.log-term-following{color:#7ee0ae;align-items:center;gap:8px;margin-left:auto;font-weight:500;display:inline-flex}.log-term-dot--idle{background:#7d91a6;animation:none}.log-term-xref-banner{color:#065f93;background:#eaf5fd;border-radius:10px;align-items:center;gap:10px;margin-top:4px;padding:11px 16px;font:500 13.5px/1.3 Inter,Helvetica Neue,Arial,sans-serif;display:flex}.log-term-xref-banner svg{flex:none}.log-term-xref-link{color:#065f93;white-space:nowrap;align-items:center;gap:6px;margin-left:auto;font-weight:700;text-decoration:none;display:inline-flex}.log-term-xref-link:hover{text-decoration:underline}.log-filters-toggle{border:1px solid var(--line);background:var(--surface);height:36px;color:var(--text);white-space:nowrap;border-radius:8px;align-items:center;gap:8px;padding:0 14px;font:600 13.5px/1 Inter,Helvetica Neue,Arial,sans-serif;display:none}.log-filters-group{display:contents}@media (width<=1024px){.log-filters-toggle{display:inline-flex}.log-filters-group:not(.log-filters-group--open){display:none}.log-filters-group--open{z-index:40;padding:16px;padding-top:calc(16px + env(safe-area-inset-top,0px));background:var(--surface);flex-direction:column;gap:10px;display:flex;position:fixed;inset:0;overflow-y:auto}.log-filters-sheet-head{border-bottom:1px solid var(--log-row-border);color:var(--text);justify-content:space-between;align-items:center;padding-bottom:10px;font:700 16px/1 Inter,Helvetica Neue,Arial,sans-serif;display:flex}.log-filters-sheet-head button{color:var(--muted);background:0 0;border:0;padding:4px}.log-filters-group--open>*,.log-filters-group--open .log-filter{width:100%}.log-filters-group--open .log-popover{width:100%;box-shadow:none;border:1px solid var(--line);margin-top:6px;position:static}}.visits-shell{max-width:1280px}.visits-card{padding:0}.visits-toolbar{flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;display:flex}.visits-search{flex:260px;min-width:220px;position:relative}.visits-search-icon{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.visits-search input{border:1px solid var(--line);background:var(--bg);width:100%;height:38px;font:inherit;color:var(--text);border-radius:8px;padding:0 12px 0 36px;font-size:.875rem}.visits-search input:focus{border-color:var(--accent);background:var(--surface);outline:none}.visits-seg{background:#eef2f6;border-radius:8px;gap:2px;padding:3px;display:inline-flex}.visits-seg-btn{height:32px;color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:0 12px;font-size:.8125rem;font-weight:500}.visits-seg-btn:hover{color:var(--text)}.visits-seg-btn--active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 2px #1736531f}.visits-scope,.visits-range{border:1px solid var(--line);background:var(--surface);height:38px;font:inherit;color:var(--text);border-radius:8px;font-size:.875rem}.visits-scope{cursor:pointer;padding:0 10px}.visits-range{color:var(--muted);background:#f7f9fb;align-items:center;gap:8px;padding:0 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875rem;display:inline-flex}.visits-range-icon{color:var(--muted);flex-shrink:0}.visits-range-field{color:var(--text);position:relative}.visits-range-field--empty{color:var(--muted)}.visits-range-field input[type=date]{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.visits-range-field input[type=date]::-webkit-calendar-picker-indicator{display:none}.visits-range-sep{color:var(--muted)}.visits-range-clear{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:1rem;line-height:1}.visits-range-clear:hover{color:var(--text)}.visits-list{margin-top:18px}.visits-cols,.visits-row{grid-template-columns:minmax(200px,1.5fr) 100px 1.1fr 1.3fr 1.3fr 130px 130px 144px;align-items:center;gap:16px;display:grid}.visits-cols{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0 24px 0 44px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.6875rem}.visits-day{margin-top:14px}.visits-day-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:16px;margin:0 0 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;font-weight:500;display:flex}.visits-day-heading:after{content:"";background:var(--line);flex:1;height:1px}.visits-row{background:var(--surface);cursor:pointer;border-radius:12px;outline:none;margin-bottom:12px;padding:18px 24px 18px 44px;font-size:.9375rem;position:relative;box-shadow:0 1px 2px #1736530f,0 4px 14px #1736530d}.visits-row:hover,.visits-row:focus-visible{box-shadow:0 1px 2px #17365314,0 6px 18px #1736531a}.visits-row:before{content:"";background:#1d4ed8;border-radius:4px;width:4px;position:absolute;top:18px;bottom:18px;left:20px}.visits-row--completed:before{background:var(--green)}.visits-row--rescheduled:before{background:var(--orange)}.visits-row--cancelled:before{background:var(--red)}.visits-cell{overflow-wrap:anywhere;min-width:0}.visits-building{font-size:1.0625rem;font-weight:500}.visits-unit{margin-top:2px;font-size:1.0625rem;font-weight:500}.visits-time{font-variant-numeric:tabular-nums;color:var(--muted);margin-top:2px;font-size:.8125rem}.visits-techs>div+div{margin-top:2px}.visits-none{color:var(--muted)}.visits-billing-amount{white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700}.visits-billing-state{margin-top:2px;font-size:.8125rem}.visits-billing-state--invoiced{color:var(--orange)}.visits-billing-state--paid{color:var(--green)}.visits-actions{justify-content:flex-end;gap:8px;display:flex}.visits-btn{border-radius:8px;width:40px;height:40px}.visits-btn-complete{background:var(--green-bg);color:var(--green);border-color:#b7e1c9}.visits-btn-complete:hover{border-color:var(--green);color:var(--green)}.visits-empty{text-align:center;color:var(--muted);margin:24px 0}.visits-count{color:var(--muted);margin:4px 0 0;padding:0 4px;font-size:.75rem}.visits-count-truncated{color:var(--orange)}.visit-report-shell{max-width:900px}.visit-report-actions{align-items:center;gap:8px;display:flex}.visit-report-actions .icon-btn{width:38px;height:38px;color:var(--text)}.visit-report-actions-sep{background:var(--line);width:1px;height:28px;margin:0 6px}.visit-report-card{flex-direction:column;display:flex}.visit-report-head{justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;display:flex}.visit-report-address{font-size:1.125rem;font-weight:700}.visit-report-unit{color:var(--muted);margin-top:6px;font-size:.9375rem}.visit-report-unit strong{color:var(--text)}.visit-report-dot{vertical-align:middle;margin:0 10px;font-size:.6rem}.visit-report-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.6875rem}.visit-report-grid{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.visit-report-cell{border-left:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 24px}.visit-report-cell:nth-child(3n+1){border-left:none}.visit-report-cell dt{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.6875rem}.visit-report-cell dd{margin:4px 0 0;font-size:.9375rem}.visit-report-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.visit-report-billing{border-bottom:1px solid var(--line);background:#f7f9fb;align-items:center;gap:14px;padding:14px 24px;display:flex}.visit-report-amount{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.125rem;font-weight:700}.visit-report-invoice{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875rem}.visit-report-body{flex-direction:column;gap:22px;padding:20px 24px 26px;display:flex}.visit-report-notes{white-space:pre-wrap;margin:8px 0 0;font-size:.9375rem;line-height:1.6}.visit-report-none{color:var(--muted);margin:8px 0 0;font-size:.875rem}.visit-report-media{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.visit-report-media .visit-photo-strip .visit-photo-thumb{width:96px;height:96px}.visit-report-owner .visit-report-cell{border-bottom:none}@media (width<=640px){.visit-report-grid{grid-template-columns:1fr}.visit-report-cell{border-left:none}.visit-report-media{grid-template-columns:1fr}}.rcp{margin-bottom:14px}.rcp-label{color:var(--muted);margin-bottom:4px;font-size:.75rem;font-weight:600;display:block}.rcp-box{border:1px solid var(--line);background:var(--surface);cursor:text;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;min-height:38px;padding:4px 8px;display:flex}.rcp-box--focus{border-color:var(--accent)}.rcp-box input{min-width:120px;height:28px;font:inherit;color:var(--text);background:0 0;border:none;flex:140px;font-size:.875rem}.rcp-box input:focus{outline:none}.rcp-chip{background:var(--surface-blue);height:28px;color:var(--accent-strong);white-space:nowrap;border-radius:14px;align-items:center;gap:6px;padding:0 6px 0 10px;font-size:.8125rem;font-weight:600;display:inline-flex}.rcp-chip-email{color:var(--muted);font-weight:400}.rcp-chip-email:empty{display:none}.rcp-chip button{width:18px;height:18px;color:var(--accent-strong);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.rcp-chip button:hover{background:#0878b926}.rcp-bad{color:var(--red);margin:6px 0 0;font-size:.75rem}.rcp-menu{border:1px solid var(--line);background:var(--surface);border-radius:8px;margin:6px 0 0;padding:4px;list-style:none;box-shadow:0 6px 18px #1736531a}.rcp-item{cursor:pointer;border-radius:6px;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 10px;font-size:.875rem;display:flex}.rcp-item--active{background:var(--bg)}.rcp-item-name{font-weight:600}.rcp-item-email{color:var(--muted);font-size:.8125rem}.send-report-attach{gap:20px;font-size:.875rem;display:flex}.send-report-attach label{align-items:center;gap:6px;display:inline-flex}.send-report-note{color:var(--muted);margin:12px 0 0;font-size:.8125rem}@media print{.admin-sidebar,.visit-report-actions,.unit-detail-back{display:none!important}.admin-main{margin-left:0!important;padding:0!important}.visit-report-shell{max-width:none}.page-card{box-shadow:none;border:1px solid #ccc}}.vreport-shell{max-width:900px}.vreport-filters{color:var(--muted);margin:6px 0 0;font-size:.875rem}.vreport-truncated{margin-bottom:16px}.vreport-building{margin-top:28px}.vreport-building-head{border-bottom:2px solid var(--text);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:8px;display:flex}.vreport-building-head h2{margin:0;font-size:1.125rem}.vreport-totals{color:var(--muted);white-space:nowrap;gap:14px;font-size:.8125rem;display:flex}.vreport-totals strong{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.vreport-unit{margin-top:18px}.vreport-unit-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:10px;display:flex}.vreport-unit-head h3{margin:0;font-size:1rem}.vreport-owner{color:var(--muted);gap:14px;font-size:.8125rem;display:flex}.vreport-visit{margin-bottom:12px}.vreport-link{color:var(--accent,#2563eb);text-decoration:none}.vreport-body{padding-bottom:12px}.vreport-media{color:var(--muted);margin:0;font-size:.8125rem}@media print{.vreport-shell{max-width:none}.vreport-building{break-before:page}.vreport-building:first-of-type{break-before:auto}.vreport-visit{break-inside:avoid}.vreport-link{display:none}}.vreport-truncated{color:#7a4b00;background:#fff7e6;border:1px solid #f0c36d;border-radius:8px;padding:10px 14px}.settings-sections{flex-direction:column;gap:20px;display:flex}.settings-section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.settings-empty{color:var(--muted);margin:0;padding:18px}.settings-section-title{color:var(--text);margin:0;padding:0;font-size:1rem;font-weight:600}.role-name-cell{flex-direction:column;gap:2px;display:flex}.role-name-key{color:var(--muted);font-family:ui-monospace,monospace;font-size:.75rem}.form-hint{color:var(--muted);margin:2px 0 0;font-size:.78rem}.role-permission-group{border:1px solid var(--line);border-radius:6px;margin:0 0 10px;padding:10px 12px 12px}.role-permission-group:last-of-type{margin-bottom:0}.role-permission-group legend{color:var(--muted);letter-spacing:.03em;text-transform:uppercase;padding:0 4px;font-size:.75rem;font-weight:600}.role-permission-group:disabled{opacity:.55}.role-permission{color:var(--text);cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:.875rem;display:flex}.role-flag{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:.875rem;display:flex}.role-permission-warning{background:var(--orange-bg);color:var(--orange);border-radius:6px;margin:0 0 8px;padding:8px 10px;line-height:1.45}.fault-alerts-card{padding:16px 20px 20px}.fault-alerts-card h2{color:var(--text);margin:0 0 10px;font-size:1rem;font-weight:600}.settings-section-note{color:var(--muted);max-width:720px;margin:0 0 14px;font-size:.85rem;line-height:1.5}.fault-alert-list{margin:0 0 14px;padding:0;list-style:none}.fault-alert-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:8px 0;font-size:.9rem;display:flex}.fault-alert-remove{padding:4px 8px}.fault-alert-add{gap:8px;max-width:420px;display:flex}.fault-alert-add input{border:1px solid var(--line);border-radius:8px;flex:1;padding:8px 10px;font-size:.9rem}.settings-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.settings-card{color:inherit;background:#fff;border:1px solid #e4eaf0;border-radius:12px;align-items:flex-start;gap:14px;padding:20px;text-decoration:none;transition:border-color .12s,box-shadow .12s;display:flex}.settings-card:hover{border-color:#b9cbdd;box-shadow:0 4px 16px #10203012}.settings-card-icon{color:#1868c4;background:#eef3f9;border-radius:10px;padding:10px;display:inline-flex}.settings-card-body{flex-direction:column;gap:4px;min-width:0;display:flex}.settings-card-title{color:#16202c;font-size:1rem;font-weight:600}.settings-card-desc{color:#5d6b7a;font-size:.85rem}.settings-card-count{color:#1868c4;margin-top:6px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.8rem}.settings-card-count--warn{color:#b3550e}.settings-card-chevron{color:#8b9aa9;flex-shrink:0;align-self:center;margin-left:auto}.param-naming-controls{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:18px;display:flex}.param-naming-search{border:1px solid var(--line);border-radius:8px;flex:1;min-width:220px;max-width:360px;padding:8px 12px;font-size:.9rem}.param-naming-tab h3{color:var(--text);margin:20px 0 8px;font-size:.9rem;font-weight:600}.param-naming-table{border-collapse:collapse;width:100%;font-size:.875rem}.param-naming-table th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 10px;font-size:.72rem}.param-naming-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:6px 10px}.param-naming-etalon{width:45%;color:var(--muted)}.param-naming-custom{width:45%}.param-naming-reset{text-align:right;width:10%}.param-naming-row--renamed .param-naming-custom{color:#1868c4;font-weight:600}.param-naming-row--hidden .param-naming-etalon,.param-naming-row--hidden .param-naming-custom{opacity:.45;text-decoration:line-through}.engine-value{color:#1868c4;font-family:IBM Plex Mono,ui-monospace,monospace;font-weight:600}.engine-label{align-items:center;gap:7px;display:inline-flex}.engine-info{color:#9fb0c0;cursor:help;display:inline-flex}.engine-info:hover{color:#1868c4}.fault-alert-subhead{margin:22px 0 8px;font-size:1rem}.fault-alert-building{color:var(--muted)}.fault-alert-muted{opacity:.6}.fault-alert-muted-tag{background:var(--orange-bg,#fdf1e2);color:#b3550e;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;margin-left:8px;padding:2px 7px;font-size:.7rem;font-weight:600}.service-months-unit{color:var(--muted);align-self:center;font-size:.85rem}.fault-alert-delivery-row{flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;display:flex}.fault-alert-delivery-hint{color:var(--muted);font-size:.8rem}.fault-alert-quiet-range{color:var(--text);align-items:center;gap:6px;display:inline-flex}.fault-alert-quiet-range select{border:1px solid var(--line);border-radius:6px;padding:4px 6px;font-size:.85rem}.repair-item-tabs{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.repair-item-tab{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:5px 13px;font-size:13px}.repair-item-tab:hover{color:var(--text)}.repair-item-tab--active{background:var(--accent);border-color:var(--accent);color:#fff}.repair-item-tab-count{opacity:.65;margin-left:3px}.engine-video-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;margin:14px 0 16px;display:grid}.engine-video-field{color:var(--muted);flex-direction:column;gap:6px;font-size:.8125rem;display:flex}.engine-video-field--wide{grid-column:1/-1}.engine-video-field input,.engine-video-field select{border:1px solid var(--line);background:var(--bg);height:38px;font:inherit;color:var(--text);border-radius:8px;padding:0 10px;font-size:.875rem}@media (width<=560px){.engine-video-grid{grid-template-columns:1fr}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f8fb;--surface:#fff;--surface-blue:#eaf5fd;--text:#10253b;--muted:#617188;--line:#d8e5ef;--accent:#0878b9;--accent-strong:#065f93;--green:#147d58;--green-bg:#dff5ec;--orange:#a95410;--orange-bg:#fff1dd;--red:#b33b33;--red-bg:#fff0ee;--shadow:0 18px 50px #1736531f;--sidebar-width:220px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);min-width:320px;margin:0}img{max-width:100%}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}a{color:var(--accent);text-decoration:none}.page-status{text-align:center;opacity:.6;padding:2rem}.page-status--error{color:var(--red);opacity:1}.technician-checklist{flex-direction:column;gap:8px;max-height:160px;padding:8px 0;display:flex;overflow-y:auto}.technician-checklist__item{cursor:pointer;align-items:center;gap:8px;font-size:.9rem;display:flex}.technician-checklist__empty{color:var(--muted);margin:0;font-size:.85rem}.visit-item-search{width:100%;color:var(--text);background:0 0;border:1px solid #64748b66;border-radius:6px;margin-bottom:6px;padding:6px 10px;font-size:.85rem}.unit-form-section{letter-spacing:.08em;color:var(--muted);margin:14px 0 8px;font-size:.72rem;font-weight:700}.unit-form-section:first-child{margin-top:0}.unit-form-grid{grid-template-columns:1fr 1fr;column-gap:16px;display:grid}@media (width<=640px){.unit-form-grid{grid-template-columns:1fr}}.visit-billing{align-items:center;gap:12px;display:flex}.visit-when{gap:8px;display:flex}.visit-when input[type=date]{flex:1 1 0;min-width:0}.visit-when input[type=time]{flex:none}.visit-billing-cost{flex:1 1 0;min-width:0;position:relative}.visit-billing-cost input{width:100%;padding-left:26px}.visit-billing-currency{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.visit-billing-invoice{flex:1 1 0;min-width:0;position:relative}.visit-billing-sep{background:var(--line);flex-shrink:0;width:1px;height:28px}.visit-billing-invoice input{width:100%;padding-left:26px}.visit-billing-hash{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.visit-billing-check{white-space:nowrap;white-space:nowrap;cursor:pointer;flex-shrink:0;align-items:center;gap:8px;display:flex}.visit-billing-check input{cursor:pointer}
