/* IMEF console: a compact operational workspace. */
:root{--ink:#182c3a;--muted:#677b89;--border:#e1e8ed;--green:#00856a;--green-soft:#e6f6ef;--sidebar:#142c3a;--sidebar-width:232px;background:#f4f7fa;color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif}
body{background:#f4f7fa}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}svg{flex-shrink:0}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #61bcff;outline-offset:3px}input:focus,select:focus{outline:2px solid #008fbe;outline-offset:1px;border-color:#008fbe!important}
.sidebar{background:var(--sidebar);padding:32px 16px 0;border:0}.brand{margin:0 16px 28px;color:white}.brand>strong{font-size:40px;letter-spacing:-2.5px;font-weight:850}.brand>strong>span{color:#22ccad}.brand>span{font-size:10px;letter-spacing:3.8px;color:#acc1ce;font-weight:600}.workspace-label{margin:0 11px 27px;background:#233d4b;border:1px solid #35515e;border-radius:9px;color:#e5f0f3;padding:12px;font-size:12px;gap:9px}.workspace-dot{background:#1bcca8}.nav-group{font-size:9px;letter-spacing:1.4px;color:#7897a7;margin:23px 15px 10px}.sidebar nav a{color:#a5bdca;border-radius:9px;font-size:13px;padding:12px 14px;margin:4px 0;gap:12px;min-height:44px}.sidebar nav a svg{width:18px;height:18px}.sidebar nav a:hover{background:#24414f;color:#fff}.sidebar nav a.active{background:#087f6c;color:#fff;box-shadow:0 6px 14px #061d2533}.nav-count{background:#244856;color:#cce1e9;font-size:10px}.sidebar nav a.active .nav-count{background:#ffffff26;color:#fff}.sidebar-bottom{border-top:1px solid #35515e}.profile{margin:0 -16px;padding:20px 24px;gap:12px;color:#e6f0f5;font-size:12px}.profile small{color:#8eafbf;font-size:10px;margin-top:4px}.avatar{background:#315969;border:1px solid #507181;color:#e6f7f6;font-size:12px;width:36px;height:36px}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--border);padding:0 36px}.breadcrumb{font-size:12px;color:#8293a0}.breadcrumb strong{font-weight:600;color:#2f495b}.topbar-date{font-size:11px;color:#728897}.connection{font-size:10px;color:#718896;gap:7px}.connection.connected{color:#00866d}.connection-dot{width:6px;height:6px}.topbar-right{gap:19px}.connection-banner{font-size:12px}.footer{font-size:10px;color:#8093a2}.footer>span:last-child{display:none}main{padding:32px 36px 42px;max-width:1800px;margin:auto;min-height:calc(100vh - 136px)}
h1{font-size:28px;font-weight:720;letter-spacing:-.8px;color:#193341}.page-heading{align-items:center;margin-bottom:26px;gap:16px}.page-heading .subtitle,.page-heading .eyebrow{display:none}.heading-actions{gap:10px}.section-header{margin-bottom:15px}.section-header h2{font-size:16px;font-weight:650;letter-spacing:-.2px;color:#233f50}.button{border:1px solid #dce5ea;background:white;color:#3e5868;font-size:12px;min-height:39px;padding:9px 13px;border-radius:8px;font-weight:550;gap:7px;white-space:nowrap}.button svg{width:16px;height:16px}.button:hover{border-color:#93b8c4;background:#f1f8fa;color:#0e6b78}.button-primary{background:#07866b;border-color:#07866b;color:white;box-shadow:0 4px 10px #07866b18}.button-primary:hover{background:#066e58;border-color:#066e58;color:#fff}.button:disabled{opacity:.48}.button-quiet{background:transparent;border-color:transparent;color:#4f6b7b;box-shadow:none;padding:6px 3px;min-height:30px}.icon-button{border-radius:8px;width:36px;height:36px;color:#647e8e}.icon-button svg{width:18px;height:18px}.icon-button:hover{background:#edf4f7}.card{border:1px solid var(--border);border-radius:12px;box-shadow:0 3px 10px #19374804;overflow:hidden;background:#fff}.card-header{padding:19px 22px;border-color:#e8eef2}.card-header h2{display:flex;align-items:center;gap:9px;font-size:14px;color:#264354;font-weight:620}.card-header h2 svg{width:17px;height:17px;color:#778f9c}.card-body{padding:22px}.stack{gap:20px}.detail-grid{gap:22px}.dashboard-grid{grid-template-columns:minmax(0,1.18fr) minmax(320px,1fr);gap:24px;margin-top:29px}.empty-state{padding:43px 24px}.empty-state h3{font-size:13px;color:#6b8190;font-weight:500;margin-bottom:0}.empty-state p{display:none}.empty-icon{background:#edf4f7!important;border:0!important;color:#8ca7b6!important}.empty-state.compact{padding:36px 20px}.badge{border-radius:6px;font-size:10px;padding:4px 8px;font-weight:500;border-color:#e0e8ed;color:#718594;background:#f3f6f8}.badge.online,.badge.success{background:#e6f6ed;border-color:#cce9db;color:#21855d}.badge.error,.badge.offline{background:#fff0ef;color:#be5a57;border-color:#f5d7d4}.badge.warning{background:#fff6e9;color:#b47b22;border-color:#f2e2c7}.live-badge{font-size:9px;border-radius:5px}.live-badge.connected{background:#e9f8f3;color:#218c6a;border-color:#ccebdc}.small-dot{color:#1cb78b}.table-footer{font-size:11px;color:#8596a2;padding:14px 20px}.table-footer>span:last-child{display:none}.table-scroll{max-width:100%}table{font-size:12px}th{font-size:10px;padding:14px 18px;font-weight:550;color:#7b8f9d;background:#f8fafb;border-color:#e6edf1}td{font-size:12px;color:#4f6878;padding:17px 18px;border-color:#edf1f4}tbody tr:hover{background:#f9fbfd}.table-primary{font-size:12px;font-weight:600;color:#2b4657}.table-secondary{font-size:10px;color:#7c91a0;line-height:1.55;margin-top:4px}.worker-avatar{width:35px;height:35px;border-radius:11px;font-size:11px;background:#eef0ff;color:#7972b6}.worker-cell{gap:11px}.tile-icon{background:#edf5fa;border:0;color:#4d8daa;border-radius:9px}.row-arrow{color:#8ca1af}.search-field input{min-width:260px;padding:11px 12px 11px 38px;border-color:#dce5eb;border-radius:8px;font-size:12px;color:#304e61;min-height:40px}.search-field svg{left:13px;color:#8aa0ad;width:15px;height:15px}.search-field input::placeholder{color:#8b9ca8}.filter-select{font-size:11px;border-radius:8px;border-color:#dce5eb;padding:10px 30px 10px 12px;color:#5a7484;min-height:40px}.result-count{font-size:11px;color:#8496a3}.tabs{gap:26px;margin-bottom:26px;border-color:#dde6ec}.tab{font-size:12px;padding:13px 1px 16px;color:#7c919f;gap:8px}.tab svg{width:16px;height:16px}.tab.active{color:#007e69;font-weight:600}.tab.active:after{height:3px;background:#00896f}.tab-count{background:#e9f1f4;color:#69828f;font-size:9px}.back-link{font-size:11px;color:#6e8997;margin-bottom:18px}.detail-heading h1{font-size:26px}.detail-badges{margin-top:10px}.detail-list dt{font-size:11px;color:#8296a3}.detail-list dd{font-size:12px;color:#385668;line-height:1.6}.detail-list{gap:22px}.capability-list li{padding:15px 22px;font-size:12px;color:#537180;border-color:#ecf1f4}.capability-state{font-size:10px}.capability-state.supported{color:#248b67}.capability-state.unsupported{color:#9ca9b0}.notice{font-size:12px;border-radius:9px}.notice strong{font-size:12px}.notice p{display:none}.timeline-row{padding:18px 20px;gap:12px}.event-icon{width:32px;height:32px;background:#e4f6ed;color:#249970;border:0;border-radius:9px}.event-icon.denied{background:#fff0ee;color:#d16d60}.timeline-copy strong{font-size:12px;color:#335266;font-weight:600}.timeline-copy p{font-size:11px;color:#78919e}.timeline-time{font-size:11px;color:#557486}.timeline-date{font-size:9px;color:#9aacb6}.timeline-meta{font-size:10px;color:#92a6b2}.card-link{background:#fcfdfe;border-color:#edf2f5;color:#507e90;font-size:11px;padding:15px}.event-reason{color:#b77c66!important}.overview-hero{min-height:206px;border-radius:15px;background:#e5f2ef;display:flex;align-items:center;justify-content:space-between;padding:28px 36px;position:relative;overflow:hidden;border:1px solid #d4e9e2;margin-bottom:24px}.overview-hero h2{font-size:30px;font-weight:700;line-height:1.3;letter-spacing:-.8px;margin:13px 0;color:#194b44}.overview-hero h2 span{font-weight:450;color:#397e72}.hero-label{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:#2a8c78;display:flex;align-items:center;gap:7px;font-weight:650}.hero-label svg{width:15px;height:15px}.hero-status{display:flex;align-items:center;gap:7px;font-size:11px;color:#5a837c}.hero-divider{width:1px;height:12px;background:#b6d4cc;margin:0 7px}.hero-graphic{position:relative;width:305px;height:178px;flex-shrink:0;margin-right:14px}.hero-orbit{position:absolute;border:1px dashed #8bc8b963;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.orbit-one{width:170px;height:170px}.orbit-two{width:290px;height:290px}.hero-node{position:absolute;display:grid;place-items:center;border-radius:16px;background:#fff;color:#06866c;box-shadow:0 8px 20px #27665710;border:1px solid #d7e9e5;width:55px;height:55px}.hero-node svg{width:25px;height:25px}.node-main{left:115px;top:47px;width:81px;height:81px;background:#0a896e;color:#fff;border:8px solid #ffffff99;border-radius:23px;box-shadow:0 0 0 11px #99d8c521}.node-main svg{width:33px;height:33px}.node-camera{right:12px;top:11px;color:#4989b4;transform:rotate(5deg)}.node-worker{left:22px;top:10px;color:#8a78c8;transform:rotate(-6deg)}.node-badge{left:17px;bottom:3px;color:#c3984e;transform:rotate(5deg)}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.metric-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:23px}.metric-card{display:flex;gap:16px;align-items:center;padding:23px 20px;background:#fff;border:1px solid var(--border);border-radius:12px;min-width:0}.metric-card>svg{width:15px;height:15px;color:#a0b2be;margin-left:auto}.metric-copy{display:flex;flex-direction:column;gap:7px}.metric-copy>span{font-size:11px;color:#778e9b}.metric-copy strong{font-size:27px;font-weight:680;letter-spacing:-.8px;color:#213f50;line-height:1}.metric-icon{height:45px;width:45px;border-radius:12px;display:grid;place-items:center;flex-shrink:0}.metric-icon svg{width:22px;height:22px}.metric-icon.green{background:#e8f6ef;color:#289a76}.metric-icon.blue{background:#e9f3fe;color:#5b94cb}.metric-icon.violet{background:#f0edfc;color:#9477c7}.metric-icon.orange{background:#fff4e6;color:#d4a050}.metric-icon.red{background:#fff0ed;color:#d5786b}.site-list-mini{display:grid;gap:13px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.project-card{position:relative;overflow:hidden}.project-color-bar{height:4px;background:#8dcbc1}.project-card:nth-child(3n+2) .project-color-bar{background:#a6bde6}.project-card:nth-child(3n+3) .project-color-bar{background:#c5b6e1}.project-card-body{padding:21px 23px 18px}.project-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.project-icon{display:inline-flex;align-items:center;justify-content:center;background:#eff7f5;color:#5d9d8e;width:39px;height:39px;border-radius:10px;flex-shrink:0}.project-icon svg{width:22px;height:22px}.project-card h3{font-size:17px;font-weight:650;letter-spacing:-.35px;color:#2c4a5c;margin-bottom:7px}.project-location{font-size:11px;display:flex;align-items:center;gap:5px;color:#8b9fac;min-height:18px}.project-location svg{width:12px;height:12px}.project-counters{display:flex;gap:19px;font-size:10px;color:#8095a3;margin-top:25px}.project-counters>span{display:flex;align-items:center;gap:5px}.project-counters svg{width:13px;height:13px;color:#99aeb9}.project-counters strong{font-size:12px;color:#37596b;margin-left:3px}.project-open{padding:13px 23px;border-top:1px solid #eef2f5;color:#64899a;font-size:11px;display:flex;justify-content:space-between;align-items:center}.project-open svg{width:15px;height:15px}.compact-project .project-card-body{padding:17px 20px;display:grid;grid-template-columns:46px 1fr auto;grid-template-rows:auto auto;align-items:center;column-gap:12px}.compact-project .project-card-top{display:contents}.compact-project .project-icon{grid-row:1/3;grid-column:1}.compact-project .badge{grid-column:3;grid-row:1}.compact-project h3{grid-column:2;grid-row:1;font-size:14px;margin:0}.compact-project .project-location{grid-column:2;grid-row:2;margin-top:3px}.compact-project .project-counters{grid-column:2/4;margin:17px 0 0;border-top:1px solid #ecf2f4;padding-top:12px}.compact-project .project-open{display:none}.compact-project .project-color-bar{display:none}.device-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}.device-card-brand{display:flex;justify-content:space-between;align-items:center;padding:20px 20px 0;gap:8px}.provider-wordmark{font-size:20px;font-weight:850;letter-spacing:-1px;display:inline-flex;align-items:center}.provider-wordmark.hikvision{color:#d94b4b;font-style:italic;font-size:16px;letter-spacing:-.9px}.provider-wordmark.hikvision>span{color:#465764}.provider-wordmark.ubox{color:#3f83c0;gap:6px;font-size:20px;font-weight:700;letter-spacing:-.5px}.ubox-symbol{width:22px;height:22px;background:#468bd0;border-radius:6px;color:#fff;font-size:17px;display:inline-flex;align-items:center;justify-content:center;letter-spacing:-2px;font-weight:800;padding-right:2px}.xega-wordmark{font-size:8px;letter-spacing:1.2px;color:#9aa8b4;font-weight:650;margin-left:4px}.device-illustration{height:156px;display:flex;align-items:center;justify-content:center;margin:12px 20px;background:radial-gradient(ellipse at center,#ecf5f6 0,transparent 65%);color:#4c7b8c;position:relative}.device-illustration:after{content:"";width:78px;height:8px;background:#2b58630a;position:absolute;bottom:15px;border-radius:100%;filter:blur(3px)}.device-illustration svg{stroke-width:.85;width:90px;height:90px;filter:drop-shadow(5px 8px 0 #e6eff0)}.camera-illustration{background:radial-gradient(ellipse at center,#edf2fc 0,transparent 65%);color:#637fa4}.device-card-copy{padding:0 23px 22px}.device-card-copy h2{font-size:17px;color:#294957;letter-spacing:-.3px;line-height:1.45;margin-bottom:8px;overflow-wrap:anywhere}.device-card-copy>span{display:flex;gap:6px;font-size:11px;color:#8aa1af;align-items:center}.device-card-copy>span svg{width:13px;height:13px}.device-card-footer{padding:15px 22px;border-top:1px solid #eef2f6;display:flex;justify-content:space-between;align-items:center}.device-setup-link{padding:12px 20px;display:flex;align-items:center;justify-content:center;background:#fffaec;font-size:11px;color:#b48b41;gap:8px}.device-setup-link svg{width:13px;height:13px}.device-compact{padding:17px 22px;display:flex;align-items:center;gap:13px;border-top:1px solid #edf2f5;font-size:12px}.device-compact>strong{flex:1;font-weight:550}.device-compact>svg{width:15px;height:15px;color:#8ba0ac}.device-compact .tile-icon{width:34px;height:36px}.device-compact .tile-icon svg{width:17px;height:17px}
.segmented{display:inline-flex;padding:4px;background:#e9eff4;border-radius:9px;gap:2px}.segmented .button{border:0;background:transparent;border-radius:6px;color:#7a8e9d;box-shadow:none;min-height:31px;padding:7px 11px;font-size:11px}.segmented .button[aria-pressed="true"]{background:white;color:#245365;box-shadow:0 2px 4px #172f3910}.segmented .button svg{width:14px;height:14px}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;min-height:570px;border:1px solid #dce6ed;border-radius:13px;overflow:hidden;background:#fff}.site-map{height:570px;position:relative;z-index:1;background:#e7eff1}.small-map{height:275px;margin-top:23px;border-radius:9px}.map-site-list{overflow:auto;max-height:570px;padding:12px}.map-site-item{display:flex;align-items:center;gap:11px;padding:15px 10px;width:100%;text-align:left;border:0;border-bottom:1px solid #edf2f4;background:white;color:#36566b}.map-site-item:hover{background:#f3f8fb}.map-site-item>span:nth-child(2){flex:1}.map-site-item strong{display:block;font-size:12px;font-weight:550}.map-site-item small{font-size:10px;color:#839aa7;display:block;margin-top:4px}.map-site-item>svg{width:14px;height:14px;color:#819bab}.site-map-marker{background:#087e6b;color:#fff;border:3px solid #fff;border-radius:12px 12px 12px 1px;box-shadow:0 5px 12px #183d4a30;display:flex;align-items:center;justify-content:center;transform-origin:center}.site-map-marker svg{width:20px;height:20px}.map-empty-label{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);background:#ffffffed;box-shadow:0 3px 20px #12334420;padding:13px 18px;border-radius:8px;z-index:700;font-size:12px;color:#416577;white-space:nowrap;pointer-events:none}.leaflet-container{font-family:inherit}.leaflet-control-attribution{font-size:10px!important}.leaflet-popup-content-wrapper{border-radius:9px!important}.leaflet-popup-content a{font-size:12px;color:#007e69}.leaflet-popup-content strong{color:#294958}.leaflet-popup-content p{font-size:11px;color:#7b919e}
.access-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;margin:0 0 24px}.access-dates{display:flex;align-items:end;gap:9px}.access-dates label{display:flex;flex-direction:column;font-size:10px;gap:5px;color:#79919f}.access-dates input{padding:8px 10px;border:1px solid #d9e5eb;border-radius:7px;background:white;color:#355367;font-size:11px;min-height:35px}.access-dates .button{min-height:35px}.inline-label{display:flex;gap:10px;align-items:center;font-size:12px;color:#5b7f91}.inline-label>svg{width:18px;height:18px}.inline-label select{border:1px solid #d9e5eb;padding:10px 12px;border-radius:8px;background:#fff;color:#365367;min-width:220px}.access-chart{margin-bottom:22px}.access-bars{padding:20px 22px;max-height:330px;overflow:auto}.access-bar-row{display:flex;align-items:center;gap:18px;margin:13px 0;font-size:11px;color:#788f9d}.access-bar-row>span{width:105px;flex-shrink:0}.access-bar-row>strong{width:35px;text-align:right;font-size:11px;color:#385869}.access-bar-track{display:flex;flex:1;align-items:center;height:14px;background:#f3f6f8;overflow:hidden;border-radius:4px}.access-bar{height:100%;min-width:0}.access-bar.granted{background:#65bba6}.access-bar.denied{background:#e89b89}.access-outcome{display:inline-flex;gap:5px;align-items:center;padding:5px 8px;border-radius:6px;font-size:10px}.access-outcome svg{width:12px;height:12px}.access-outcome.granted{background:#e8f7ef;color:#278761}.access-outcome.denied{background:#fff0ed;color:#c27362}
dialog{border-radius:16px;border:1px solid #e1e8ee;box-shadow:0 30px 100px #0d263940;width:min(550px,calc(100vw - 32px));color:#2d4b5b;max-height:92vh}dialog::backdrop{background:#10293873;backdrop-filter:blur(5px)}.dialog-header{padding:24px 26px 20px;align-items:center;border-color:#e7edf2}.dialog-header h2{font-size:21px;color:#294959;font-weight:660;letter-spacing:-.5px}.dialog-body{padding:25px 26px}.dialog-footer{padding:17px 26px;background:#f9fbfc;border-color:#e6edf1}.dialog-intro{display:none}.form-grid{gap:18px}.form-grid label,.field-label,form>label{font-size:12px;color:#688492;gap:8px}.form-grid input,.form-grid select,form>label>input,.field-label>select,.field-label>input{border:1px solid #d9e4eb;border-radius:8px;padding:11px 12px;min-height:43px;color:#2d5264;background:white;font-size:13px;width:100%}.form-grid input::placeholder{color:#9aadba;font-size:12px}.form-message{font-size:12px;line-height:1.7;color:#5a8274}.form-message.error{color:#bf5f50}.field-help{font-size:11px;color:#89a0ad;line-height:1.6}.form-end{display:flex;justify-content:flex-end;margin-top:25px}.advanced-box{border-top:1px solid #e8eef2;margin-top:24px;padding-top:17px}.advanced-box summary{color:#7894a4;font-size:11px;cursor:pointer;user-select:none;padding:4px 0;display:list-item}.advanced-box summary svg{width:13px;height:13px;vertical-align:middle;margin-right:6px}.advanced-box[open] summary{margin-bottom:18px}.advanced-box .button{margin-top:10px}.checkbox-label{flex-direction:row!important;align-items:center;gap:8px!important;grid-column:1/-1}.checkbox-label input{width:16px!important;min-height:0!important}.confirmation-label{font-size:11px;line-height:1.6;color:#6f8a99;gap:10px;margin-top:23px}.confirmation-label input{width:17px;height:17px;flex-shrink:0;accent-color:#07866b}.add-device-dialog{width:min(620px,calc(100vw - 32px))}.provider-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.provider-tile{border:1px solid #dce6ed;border-radius:12px;padding:28px 22px 18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:#fff;cursor:pointer}.provider-tile:hover{border-color:#82c5b5;background:#f6fcfa;box-shadow:0 6px 20px #2b8b6e0a}.provider-tile>.provider-wordmark.hikvision{font-size:24px}.provider-tile>.provider-wordmark.ubox{font-size:28px}.provider-tile .ubox-symbol{width:31px;height:31px;font-size:24px}.provider-tile>span:last-child{font-size:11px;color:#859aa8;display:flex;align-items:center;gap:11px}.provider-tile>span:last-child svg{width:14px;height:14px}.dialog-divider{height:1px;background:#e7eef3;margin:23px 0}.discovered-device{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #edf2f6}.discovered-device:last-child{border:0}.discovered-icon{width:41px;height:41px;display:grid;place-items:center;border-radius:10px;background:#eaf7f0;color:#3d9b79}.discovered-icon svg{width:22px;height:22px}.discovered-device>div{flex:1;min-width:0}.discovered-device strong{font-size:12px;font-weight:600;display:block;color:#375968}.discovered-device small{font-size:10px;color:#8ca3af;display:block;margin-top:5px}.discovered-device .button{font-size:11px}.section-header h3{font-size:13px;font-weight:550;display:flex;align-items:center;gap:7px;color:#4d7c71}.section-header h3 svg{width:16px;height:16px}.button-count{font-size:10px;min-width:20px;height:20px;border-radius:5px;display:grid;place-items:center;background:#ffffff30;color:white;margin-left:4px}.discovery-pulse{animation:discovery-pulse 2s ease-out infinite}@keyframes discovery-pulse{0%,100%{box-shadow:0 0 0 0 #07866b33}55%{box-shadow:0 0 0 7px #07866b06;background:#069b79}}.onboarding-dialog{width:min(600px,calc(100vw - 32px))}.wizard-steps{display:flex;gap:7px;padding:0 0 29px;justify-content:space-between}.wizard-steps>span{font-size:11px;color:#a3b3bd;display:flex;align-items:center;gap:7px;background:#f3f6f8;padding:10px 12px;border-radius:7px;flex:1}.wizard-steps b{font-weight:500}.wizard-steps .active{color:#0a886d;background:#e7f5ef;font-weight:700}.wizard-steps .done{color:#6f9c8e;background:#f0f7f4}.wizard-panel{min-height:170px}.wizard-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:26px;border-top:1px solid #e7edf2;padding-top:20px}.wizard-footer>span{margin-right:auto;color:#9aacb5;font-size:10px}.wizard-footer>.button-primary{margin-left:auto}.credential-entry{display:grid;grid-template-columns:24px 1fr;gap:7px 8px;font-size:13px;color:#557b8d}.credential-entry>svg{width:21px;height:21px;color:#6d9bb0}.credential-entry>input{grid-column:1/-1;border:1px solid #cedfe9;padding:13px 14px;border-radius:8px;color:#294f66;font-size:14px;width:100%;font-variant-numeric:tabular-nums}.credential-entry>input::placeholder{font-size:11px;color:#9cafbb}.credential-entry small{grid-column:1/-1;font-size:10px;color:#95a9b5;font-weight:400}.success-text{color:#16876a!important}.face-upload{margin-top:24px;border:1px dashed #bad4df;background:#f7fbfc;border-radius:11px;overflow:hidden;text-align:center;position:relative}.face-upload-target{display:flex;flex-direction:column;align-items:center;padding:22px;gap:9px;cursor:pointer}.face-upload-target>span:first-child{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:#e9f3f8;color:#82a4b7}.face-upload-target svg{width:30px;height:30px}.face-upload-target strong{font-size:12px;font-weight:550;color:#3e7b8c}.face-upload-target>span:last-child{font-size:10px;color:#9bb0bd}.face-upload input[type="file"]{width:100%;padding:0 18px 17px;font-size:11px;color:#7294a7}.face-upload img{width:88px;height:102px;border-radius:9px;object-fit:cover}.face-upload .button{margin-bottom:13px}.wizard-person{display:flex;align-items:center;gap:15px;margin-bottom:20px}.wizard-person>img{height:67px;width:58px;border-radius:12px;object-fit:cover}.wizard-person h3{font-size:18px;font-weight:630;color:#315a6b;margin-bottom:5px}.wizard-person span{color:#7c9dab;font-size:12px}.wizard-person>.account-avatar{font-size:20px}.review-credentials{display:flex;gap:18px;font-size:11px;color:#718f9d;padding:12px 0 21px}.review-credentials>span{display:flex;align-items:center;gap:7px}.review-credentials svg{width:16px;height:16px}.wizard-access-defaults{background:#edf7f2;border:1px solid #d6eae1;padding:17px 18px;display:flex;gap:12px;border-radius:10px;color:#3d8c76}.wizard-access-defaults>svg{width:21px;height:21px}.wizard-access-defaults strong{font-size:12px;font-weight:600;display:block}.wizard-access-defaults span,.wizard-access-defaults small{display:block;font-size:11px;margin-top:5px;color:#6e9c8d}.wizard-access-defaults small{font-size:10px}.share-summary{background:#edf6f5;border-radius:9px;padding:16px 18px;font-size:12px;color:#4e847d;margin-bottom:20px}.share-privacy{font-size:11px;color:#9a8b73;line-height:1.6;margin-top:17px}.share-result{margin-top:20px}.share-actions{display:flex;gap:10px;margin-top:12px}.share-result>span{display:block;font-size:10px;color:#99a8af;margin-top:10px}.account-overview{display:flex;flex-direction:column;align-items:center;gap:13px;padding:33px}.account-avatar{width:61px;height:61px;display:grid;place-items:center;font-size:19px;background:#e7f3f0;color:#35947e;border-radius:19px;font-weight:550}.account-overview h2{font-size:19px;color:#36596c}.account-overview>span:not(.account-avatar):not(.badge){font-size:12px;color:#86a0b0}.account-overview .button{margin-top:12px}.tenant-switch-row{display:flex;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid #edf3f5}.tenant-switch-row:last-child{border:0}.tenant-switch-row>span:first-child{flex:1}.tenant-switch-row strong{font-size:13px;color:#426779;display:block}.tenant-switch-row small{font-size:11px;color:#8fa5b2;display:block;margin-top:5px}.tenant-card{padding:25px}.tenant-card h3{margin-top:18px;font-size:17px;color:#446a7c}.tenant-card>.button{margin-top:23px}.auth-dialog{width:430px;max-width:calc(100vw - 32px);padding:0;border:0}.auth-dialog::backdrop{background:#0f2b39ed;backdrop-filter:blur(14px)}.auth-brand{background:#173c49;color:#fff;padding:26px 30px;font-size:36px;font-weight:850;letter-spacing:-2px}.auth-brand>span{color:#29c5a7}.auth-brand small{font-size:9px;display:block;letter-spacing:3.6px;font-weight:450;color:#9fbbc8;margin-top:4px}.auth-dialog .dialog-body{padding:27px 30px 33px}.auth-dialog h1{font-size:25px;margin-bottom:23px}.auth-dialog .button{width:100%;justify-content:center;margin-top:25px;min-height:43px}.auth-required>.sidebar,.auth-required>.workspace{visibility:hidden}.auth-required .notification-toggle{display:none}.auth-required{background:#173642}.notification-toggle{position:relative}.notification-toggle>span:last-child:not(:first-child){position:absolute;right:-2px;top:0;border:2px solid white;background:#eb7963;border-radius:9px;color:white;font-size:8px;min-width:17px;height:17px;display:grid;place-items:center}.notification-toggle>span[hidden]{display:none!important}.notification-panel{position:fixed;right:30px;top:70px;background:#fff;border:1px solid #dce8ef;box-shadow:0 15px 55px #173d4930;border-radius:12px;z-index:70;width:400px;max-width:calc(100vw - 30px);overflow:hidden}.notification-heading{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-bottom:1px solid #eaf0f5}.notification-heading h2{font-size:14px;color:#36596a}.notification-heading .button{border:0;font-size:10px;color:#95a8b3;min-height:28px;padding:5px}.notification-panel #notification-items{max-height:460px;overflow-y:auto}.session-notification{display:flex;align-items:center;gap:12px;padding:17px 20px;border-bottom:1px solid #edf3f6}.session-notification>span{background:#e7f7ef;color:#2c9b75;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;flex-shrink:0}.session-notification.denied>span{background:#fff1ec;color:#d77865}.session-notification>span svg{width:17px;height:17px}.session-notification>div{flex:1}.session-notification strong{font-size:11px;color:#3f6478;display:block}.session-notification small{font-size:10px;color:#8fa6b3;display:block;margin-top:5px}.session-notification time{font-size:10px;color:#8ca4b2}.toast-region{z-index:200}.toast{font-size:12px;border-radius:10px;background:#1c6153;border-color:#2a7b6a;color:#fff;box-shadow:0 12px 30px #18473525;max-width:430px}.toast.error{background:#ad6153;border-color:#b97867}.camera-layout{grid-template-columns:minmax(0,1fr)}.camera-player .card-header p,.camera-stage-empty>p,.camera-player>.empty-tip{display:none}.camera-stage-empty strong{font-size:17px;color:#bed9d5}.camera-player .camera-stage{background:radial-gradient(ellipse at center,#213d44,#172b35);min-height:310px}.camera-controls{padding:16px 20px;gap:9px}.camera-metrics{background:#f7fafb;border-color:#e6eef1}.camera-metrics span{color:#95a9b5;font-size:10px}.camera-metrics strong{color:#668998;font-size:11px}.camera-feedback{font-size:12px}.camera-technical{margin-top:20px}.camera-technical>summary{font-size:12px;padding:17px 21px;background:#fff;border:1px solid #e1eaf0;border-radius:10px;color:#698a9b;cursor:pointer}.camera-technical[open]>summary{margin-bottom:15px}.technical-details>summary{padding:15px 22px;font-size:12px;color:#7d97a6;cursor:pointer;background:#f8fbfc;border-top:1px solid #e7eff4}.technical-details>.card-body{padding:22px}.worker-header h2{color:#345f72}.worker-header p{color:#87a1af}.settings-row strong{font-size:12px;color:#5c7e8f}.settings-value{font-size:12px;color:#648697}.summary-stat>span{font-size:11px;color:#8aa0ad}.summary-stat>strong{font-size:25px;color:#3a6175}.form-footer{background:#f8fbfc}.ubox-account-device{border-radius:10px;border-color:#e0e9ef;padding:16px}.ubox-device-copy>strong{color:#335b6e;font-size:13px}.ubox-device-copy small,.ubox-device-copy>.mono{font-size:10px;color:#8aa0ae}.ubox-account-summary small{display:none}.ubox-account-actions .button{font-size:11px}.ubox-account-summary strong{font-size:13px;color:#476d81}.ubox-form-actions .button-primary{min-width:120px}.ubox-account-dialog{width:650px}.initial-loading{color:#608899}.spinner{border-color:#e0ebef;border-top-color:#148e77}.form-grid input[type="checkbox"]{accent-color:#0b9677}.security-lines li{color:#7c97a7;font-size:11px}.edge-networks strong{color:#64899d}.edge-networks small{color:#93aaba}.edge-networks .mono{color:#769bad}.event-time{font-size:12px;color:#4b7084}.event-date{font-size:10px;color:#90a8b5}.event-result{font-size:11px}
@media(min-width:1600px){main{padding:38px 48px}.topbar{padding:0 48px}.metric-card{padding:25px}.overview-hero{padding:30px 40px}.device-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1200px){:root{--sidebar-width:207px}.sidebar{padding-left:12px;padding-right:12px}.sidebar nav a{font-size:12px;padding:11px 12px}.brand{margin-left:15px}.brand>strong{font-size:36px}.workspace-label{font-size:10px;margin-left:5px;margin-right:5px}.profile{margin:0 -12px;padding:18px}.metric-grid{gap:12px}.metric-card{padding:18px 14px;gap:11px}.metric-icon{width:39px;height:39px}.metric-copy strong{font-size:24px}.metric-card>svg{display:none}.project-grid,.device-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-hero{padding:26px 28px}.hero-graphic{width:250px;margin-right:0}.node-main{left:85px}.node-camera{right:0}.node-worker,.node-badge{left:0}.topbar{padding:0 27px}main{padding:28px 27px}.map-layout{grid-template-columns:minmax(0,1fr) 230px}}
@media(max-width:960px){.dashboard-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-graphic{width:225px;transform:scale(.9);transform-origin:right}.overview-hero h2{font-size:28px}.heading-actions .button{font-size:11px}.access-toolbar{align-items:flex-start}.access-dates{width:100%}.map-layout{grid-template-columns:1fr}.map-site-list{max-height:210px}.map-site-item{display:inline-flex;width:50%;vertical-align:top}.site-map{height:430px}.small-map{height:270px}.map-layout{min-height:0}.metric-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-grid.three .metric-card{display:block}.metric-grid.three .metric-icon{margin-bottom:13px}.metric-grid.three .metric-copy{gap:6px}.page-heading{gap:14px;flex-wrap:wrap}.form-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){:root{--sidebar-width:0px}.sidebar{width:232px}.topbar{height:64px;padding:0 18px}.topbar-right{gap:10px}.breadcrumb{font-size:12px}main{padding:24px 18px}.connection{font-size:9px}.notification-toggle{width:31px}.page-heading{margin-bottom:23px}.page-heading h1{font-size:25px}.heading-actions{flex-wrap:wrap}.heading-actions .button{font-size:11px;padding:9px 11px}.overview-hero{padding:23px;min-height:170px}.overview-hero h2{font-size:23px}.hero-label{font-size:9px;letter-spacing:1px}.hero-graphic{width:100px;transform:scale(.62);transform-origin:left center;flex-basis:120px;margin-right:-40px;overflow:visible}.hero-node.node-main{left:50px}.hero-node.node-worker,.hero-node.node-badge{left:-18px}.hero-node.node-camera{left:159px;right:auto}.hero-orbit{left:90px}.hero-status{font-size:9px;flex-wrap:wrap;max-width:230px}.metric-card{padding:16px 13px;gap:12px}.metric-copy>span{font-size:10px}.metric-copy strong{font-size:23px}.metric-icon{width:36px;height:36px;border-radius:10px}.metric-icon svg{width:19px;height:19px}.metric-grid{gap:11px}.metric-grid.three .metric-card{padding:14px 12px}.metric-grid.three .metric-copy>span{font-size:9px}.metric-grid.three .metric-icon{width:30px;height:30px}.project-grid,.device-grid{grid-template-columns:1fr}.device-illustration{height:135px}.device-card-copy h2{font-size:18px}.device-card-footer .button{min-height:39px}.page-toolbar{gap:15px}.search-field{width:100%}.search-field input{min-width:0;width:100%}.tabs{gap:22px}.tab{font-size:11px}.tab svg{width:15px;height:15px}.timeline-row{padding:16px 17px}.section-header h2{font-size:15px}.compact-project .project-card-body{grid-template-columns:40px 1fr auto;gap:8px}.compact-project h3{font-size:13px}.compact-project .badge{font-size:8px;padding:4px 6px}.compact-project .project-location{font-size:10px}.project-counters{font-size:10px;gap:13px}.project-counters strong{font-size:11px}.map-site-item{width:100%}.map-empty-label{font-size:10px;max-width:calc(100% - 20px);text-align:center;white-space:normal}.site-map{height:360px}.small-map{height:250px}.access-periods{width:100%;overflow:auto}.access-periods .button{flex:1;font-size:10px;padding:8px}.access-dates{flex-wrap:wrap;gap:7px}.access-dates input{width:130px;font-size:10px}.access-dates .button{font-size:10px;padding:9px}.access-bar-row>span{width:70px;font-size:9px}.dialog-header{padding:21px 21px 17px}.dialog-body{padding:22px 21px}.dialog-header h2{font-size:20px}.provider-grid{gap:11px}.provider-tile{padding:25px 12px 18px}.provider-tile>.provider-wordmark.hikvision{font-size:20px}.provider-tile>.provider-wordmark.ubox{font-size:24px}.provider-tile .xega-wordmark{display:none}.provider-tile>span:last-child{font-size:10px}.wizard-steps{gap:5px;padding-bottom:23px}.wizard-steps>span{padding:9px 8px;font-size:10px;gap:6px}.form-grid{grid-template-columns:1fr}.discovered-device{gap:9px;flex-wrap:wrap}.discovered-device .button{font-size:10px;min-height:33px;padding:7px 10px}.discovered-device strong{font-size:11px}.discovered-icon{width:32px;height:36px}.discovered-icon svg{width:18px}.discovered-device small{font-size:9px}.notification-panel{right:15px;top:61px}.notification-panel #notification-items{max-height:60vh}.notification-heading h2{font-size:13px}.notification-heading{padding:13px 17px}.session-notification{padding:15px 16px}.toast-region{bottom:17px;left:17px;right:17px}.toast{font-size:11px;padding:13px 16px}.card-header{padding:17px 19px}.card-body{padding:20px}.camera-controls{padding:14px;gap:7px;flex-wrap:wrap}.camera-controls .button{font-size:10px;padding:8px 10px}.camera-player .camera-stage{min-height:230px}.camera-stage-empty strong{font-size:14px}.details-list{gap:20px 14px}.detail-list dt{font-size:10px}.detail-list dd{font-size:11px}.auth-dialog .dialog-body{padding:24px}.auth-brand{padding:23px 25px}.footer{font-size:9px;padding:18px}.ubox-account-summary{gap:12px}.ubox-account-actions .button{font-size:10px}.ubox-account-dialog{width:calc(100vw - 32px)}}
@media(prefers-reduced-motion:reduce){.discovery-pulse{animation:none;border-color:#4edbb5;box-shadow:0 0 0 3px #80d9bc55}}
[hidden]{display:none!important}

/* Automation workspace: flow selection beside a persistent node canvas. */
.flow-workspace{display:grid;grid-template-columns:185px minmax(0,1fr);gap:18px;align-items:start}.flow-picker{padding:18px 10px;background:#fff;border:1px solid #dfe8ee;border-radius:12px}.flow-picker h2{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:#8799a5;padding:0 9px;margin:0 0 13px}.flow-picker-item{display:flex;align-items:center;gap:9px;width:100%;border:0;border-radius:8px;background:transparent;text-align:left;font-size:12px;color:#627f90;padding:12px 10px;cursor:pointer;overflow-wrap:anywhere}.flow-picker-item.selected{background:#eaf4f1;color:#217d68}.flow-picker-item:hover{background:#f2f6f8}.flow-state-dot{width:6px;height:6px;flex-shrink:0;background:#adbbc5;border-radius:50%}.flow-state-dot.enabled{background:#16a17f}.flow-picker-empty{font-size:11px;color:#96a6b1;padding:10px;line-height:1.6}.flow-node-shortcuts{border-top:1px solid #edf1f4;margin-top:18px;padding-top:20px}.flow-node-shortcuts>.button{display:flex;justify-content:flex-start;width:100%;margin-top:8px;border-color:transparent;background:#f7f9fb}.flow-workbench{min-width:0}.flow-canvas-toolbar{display:flex;align-items:center;gap:9px;padding:13px 15px;background:#fff;border:1px solid #dce7ed;border-bottom:0;border-radius:12px 12px 0 0;flex-wrap:wrap}.flow-name{flex:1;min-width:150px}.flow-name input{width:100%;border:1px solid transparent;background:transparent;border-radius:7px;padding:8px 6px;color:#355d72;font-size:15px;font-weight:600}.flow-name input:hover,.flow-name input:focus{border-color:#d5e3e9;background:#fbfdfd}.flow-save-status{font-size:10px;color:#8aa0ad}.flow-save-status.error{color:#b16a54}.flow-canvas-frame{position:relative;border:1px solid #dce7ed;border-radius:0 0 12px 12px;overflow:hidden}.flow-canvas-host{height:clamp(460px,64vh,720px);min-width:0}.flow-canvas-navigation{position:absolute;bottom:15px;left:15px;display:flex;gap:4px;padding:5px;border:1px solid #dce6ed;border-radius:9px;background:#fffffff0;box-shadow:0 3px 15px #193f5012;z-index:4}.flow-canvas-navigation>.button{border:0;min-width:34px;min-height:32px;padding:6px 9px;background:transparent}.flow-canvas-more{position:relative}.flow-canvas-more>summary{cursor:pointer;list-style:none;font-size:18px;padding:3px 10px;color:#7b94a2}.flow-canvas-more[open]{background:white}.flow-canvas-more[open]>.button{display:block;position:absolute;left:0;bottom:45px;background:#fff;box-shadow:0 3px 12px #123c4922;text-align:left}.flow-canvas-more[open]>.button:last-child{bottom:84px}.flow-canvas-caption{padding:10px 4px;color:#91a3b0;font-size:10px}.flow-workbench-details{display:grid;gap:12px;margin-top:10px}.flow-workbench-details .secondary-panel{margin:0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1100px){.flow-workspace{grid-template-columns:150px minmax(0,1fr)}.flow-save-status{order:5;width:100%}.flow-canvas-toolbar{gap:7px}}@media(max-width:760px){.flow-workspace{grid-template-columns:1fr}.flow-picker{display:flex;align-items:center;gap:5px;overflow-x:auto;padding:8px}.flow-picker>h2,.flow-node-shortcuts{display:none}.flow-picker-item{width:auto;flex-shrink:0;max-width:210px}.flow-picker-empty{padding:4px;margin:0}.flow-canvas-host{height:480px}.flow-name{width:100%;flex-basis:100%}.flow-canvas-caption{line-height:1.6}}
.notice-error p{display:block}.notice p:empty{display:none}

/* Secondary tools stay available without competing with everyday actions. */
.secondary-panel>summary{display:flex;align-items:center;gap:9px;padding:18px 22px;cursor:pointer;font-size:12px;color:#648596;list-style:none}.secondary-panel>summary::-webkit-details-marker{display:none}.secondary-panel>summary:after{content:"+";margin-left:auto;font-size:17px}.secondary-panel[open]>summary:after{content:"−"}.secondary-panel>summary svg{width:17px;height:17px}.secondary-panel[open]>summary{border-bottom:1px solid #e7eff4}.secondary-actions{display:flex;flex-wrap:wrap;gap:10px}.worker-overview{grid-template-columns:minmax(260px,1fr) minmax(0,1.5fr)}.nav-advanced{margin-top:20px}.nav-advanced>summary{padding:10px 17px;cursor:pointer;font-size:11px;color:#95abba}.nav-advanced>a{display:flex;align-items:center;gap:12px;padding:11px 15px;margin:3px 0;border-radius:7px;font-size:12px}.nav-advanced>a:hover{background:#ffffff08;color:#fff}.nav-advanced>a.active{background:#253f4e;color:#fff}.nav-advanced svg{width:17px;height:17px}@media(max-width:960px){.worker-overview{grid-template-columns:1fr}}

.site-editor-map{height:245px;margin-top:23px;border-radius:9px;border:1px solid #dce7ed;z-index:1}.local-save-option{margin-top:15px;border:1px solid #eadfc9;background:#fffaf1;border-radius:8px;padding:14px;display:flex;align-items:center;gap:12px}.local-save-option>span{font-size:10px;color:#a39173}.share-history{margin-top:22px;padding-top:18px;border-top:1px solid #e6eef3}.share-history:empty{display:none}.share-history h3{font-size:12px;color:#708d9b;margin-bottom:10px}.share-history-item{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #edf3f6}.share-history-item>span{flex:1}.share-history-item strong{font-size:11px;color:#5b7f92;display:block}.share-history-item small{font-size:10px;color:#99adb8;display:block;margin-top:5px}.share-history-item .button{font-size:10px;min-height:31px;padding:7px 10px}.camera-metric-details summary{font-size:11px;color:#8ea4b0;padding:14px 20px;border-top:1px solid #e7eff4;cursor:pointer}.camera-metrics{border-top:0}.report-limit{font-size:11px;color:#8aa0ad;padding:0 0 15px}.overview-hero{min-height:170px}.overview-hero h2{font-size:31px;margin:17px 0}.hero-graphic{height:155px}
/* RAM-only device previews. The image is always an actual captured JPEG. */
.dashboard-previews{margin-top:30px}.device-preview{position:relative;isolation:isolate;overflow:hidden;background:#eaf0f4;display:grid;place-items:center;aspect-ratio:16/9;min-width:0;color:#7898aa}.device-preview img{width:100%;height:100%;object-fit:contain;position:absolute;inset:0;background:#162a35}.preview-placeholder{display:grid;place-items:center;width:100%;height:100%;background:radial-gradient(ellipse at center,#f6fafc,#e5edf3)}.preview-placeholder svg{width:44px;height:44px;stroke-width:1.15}.preview-caption{position:absolute;bottom:0;left:0;right:0;padding:8px 12px;font-size:10px;color:#607b8b;background:#f5f9fbdb;line-height:1.4}.has-preview .preview-caption{background:#102831cc;color:#edf9fc}.is-capturing .preview-caption:before{content:"";display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:#0bb896;animation:preview-pulse 1.5s ease-in-out infinite}.is-stale .preview-caption{color:#ffe3ab}.preview-card{border-top:1px solid #ecf1f4;border-bottom:1px solid #ecf1f4}.preview-terminal{max-height:330px}.device-compact .preview-compact{width:76px;height:52px;aspect-ratio:auto;flex-shrink:0;border-radius:7px}.preview-compact .preview-caption{font-size:0;padding:3px}.preview-compact .preview-placeholder svg{width:23px;height:23px}.device-compact>strong{min-width:0;flex:1}.preview-player{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
/* The player owns its loading state; the preview beneath it only supplies the last image. */
.camera-stage video{position:absolute;z-index:3}
.camera-player .camera-stage{background:#eef3f7}
.camera-player .camera-stage-empty{position:relative;z-index:1;min-height:0;width:calc(100% - 32px);max-width:420px;padding:24px;gap:14px;color:#1e3a56;background:transparent;border-radius:12px}
.camera-player .camera-stage-empty strong{max-width:100%;font-size:16px;line-height:1.5;color:#1e3a56;overflow-wrap:anywhere}
.camera-player .camera-play-icon{flex:none;background:#dce6ee;color:#35566f}
.camera-player .camera-stage:has(.has-preview) .camera-stage-empty{background:#f5f7faf2;box-shadow:0 4px 18px #0f294026}
.camera-player .camera-stage[data-playback=idle]:has(.has-preview) .camera-stage-empty{width:auto;padding:12px}
.camera-player .camera-stage[data-playback=idle]:has(.has-preview) .camera-play-icon,.camera-player .camera-stage[data-playback=idle]:has(.has-preview) #camera-stage-title{display:none}
.camera-player .camera-stage-empty .button{max-width:100%;white-space:normal}
.camera-player>.card-header{flex-wrap:wrap}
.camera-player>.card-header h2{min-width:0;overflow-wrap:anywhere}
.camera-player .camera-controls .button{max-width:100%;white-space:normal}
.camera-player .camera-feedback{overflow-wrap:anywhere;padding-bottom:12px}
@keyframes preview-pulse{50%{opacity:.35}}
/* Flows: operational state and the exact command remain distinct. */
.flow-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:20px}.flow-card{padding:22px}.flow-card-top,.flow-card-meta,.flow-card-footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.flow-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:12px;background:#eaf1ff;color:#5e80c4}.flow-icon.http{background:#fff3df;color:#b48332}.flow-icon svg{width:22px;height:22px}.flow-card h2{font-size:18px;line-height:1.45;margin:20px 0 15px;overflow-wrap:anywhere}.flow-card-top [aria-checked=true]{background:#e5f6ed;color:#237e5e;border-color:#c2e5d2}.flow-steps{display:flex;align-items:center;gap:12px;background:#f6f9fb;border-radius:8px;padding:14px;font-size:11px;color:#5a7586}.flow-steps>span{display:flex;gap:7px;align-items:center;flex:1;flex-wrap:wrap}.flow-steps svg{width:16px;height:16px}.flow-card-meta{font-size:11px;color:#8296a3;margin-top:20px;min-height:24px}.flow-card-meta>span:first-child{display:flex;align-items:center;gap:7px}.flow-card-meta svg{width:14px;height:14px}.flow-card-footer{border-top:1px solid #edf1f4;margin-top:17px;padding-top:12px;color:#96a5af;font-size:10px}.flow-detail-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(310px,1fr);gap:22px}.flow-detail-grid>.stack{display:flex;flex-direction:column}.automation-diagram{display:flex;align-items:center;justify-content:center;gap:24px;margin:4px 0 26px;color:#8ca0ab}.automation-diagram>div{display:flex;flex-direction:column;align-items:center;gap:12px;border:1px solid #d9e8e6;background:#f0f8f5;border-radius:12px;padding:22px;flex:1;font-size:12px;text-align:center;color:#2f7165}.automation-diagram>div>svg{width:27px;height:27px}.flow-action-preview{display:flex;align-items:flex-start;gap:12px;padding:18px;background:#f3f7fa;border-radius:9px;margin:20px 0;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.flow-action-preview svg{width:20px;height:20px;color:#578b9e}.flow-action-preview small{display:block;color:#7f939f;font-size:11px;margin-top:7px}.flow-json{white-space:pre-wrap;overflow-wrap:anywhere;background:#f4f7f9;border-radius:8px;padding:14px;font-size:11px;max-height:260px;overflow:auto}.flow-disabled-note{display:flex;align-items:center;gap:9px;border:1px solid #eadcbe;background:#fff8e9;color:#947136;border-radius:9px;padding:14px;font-size:12px}.flow-disabled-note svg{width:17px;height:17px}.form-end{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.automation-dialog{width:min(620px,calc(100vw - 28px))}.automation-dialog .dialog-body{padding:26px}.automation-dialog .wizard-steps{margin-top:0}.automation-steps span{min-width:0;font-size:11px}.automation-steps b{font-weight:500}.section-spacer{margin-top:18px}.weekday-select{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0}.weekday-select label{position:relative;cursor:pointer}.weekday-select input{position:absolute;opacity:0;width:1px}.weekday-select span{display:block;padding:9px 10px;background:#f1f5f7;border:1px solid #dce6eb;border-radius:7px;font-size:11px;color:#8396a2}.weekday-select input:checked+span{background:#e5f4ed;color:#26775e;border-color:#a5d7bf}.weekday-select input:focus-visible+span{outline:2px solid #008fbe;outline-offset:2px}.automation-dialog textarea{width:100%;border:1px solid #d6e0e8;border-radius:8px;padding:12px;font:12px/1.6 ui-monospace,monospace;resize:vertical}.automation-dialog select[multiple]{min-height:128px;padding:5px}.automation-dialog select[multiple] option{padding:8px 10px;border-radius:4px;margin:2px 0}.execution-list{padding:0 22px}.execution-row{display:flex;gap:12px;border-bottom:1px solid #edf1f4;padding:18px 0;align-items:flex-start}.execution-row:last-child{border:0}.execution-icon{display:grid;place-items:center;width:29px;height:29px;border-radius:8px;background:#e9f6ef;color:#3f9570;flex-shrink:0}.execution-icon.failed{background:#fff0ec;color:#c26b59}.execution-icon svg{width:15px;height:15px}.execution-row strong{font-size:12px;color:#425c6c}.execution-row small{display:block;font-size:10px;color:#8c9eaa;margin-top:5px;line-height:1.5}.execution-row p{font-size:11px;color:#798f9d;line-height:1.5;margin:7px 0 0;overflow-wrap:anywhere}.simulation-result{display:flex;gap:11px;padding:16px;margin-top:16px;border-radius:9px;background:#f3f7fa;color:#6d8998;font-size:12px}.simulation-result.matches{background:#eef8f2;color:#3e8867}.simulation-result>svg{width:20px;height:20px}.simulation-result strong,.simulation-result span,.simulation-result small{display:block;margin-bottom:4px}.simulation-result small{font-size:11px}.session-notification.automation>span{color:#677fc4;background:#edf1ff}.session-notification.automation small{line-height:1.5}.sidebar [hidden]{display:none!important}
@media(max-width:1100px){.flow-detail-grid{grid-template-columns:1fr}.flow-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}@media(max-width:600px){.flow-card{padding:18px}.automation-dialog .dialog-body{padding:20px}.automation-diagram{gap:10px}.automation-diagram>div{padding:16px 10px}.automation-steps b{font-size:9px}.preview-caption{font-size:9px}.flow-card-top .button{font-size:11px}.device-compact .preview-compact{width:60px;height:44px}}@media(prefers-reduced-motion:reduce){.is-capturing .preview-caption:before{animation:none}}

/* Attendance records lead; period summaries follow the filtered table. */
.access-toolbar{flex-wrap:wrap;gap:10px}.access-views{flex:none}.access-views .button{min-height:34px}.access-export{display:flex;gap:12px;justify-content:flex-end;align-items:center;flex-wrap:wrap;margin:0 0 10px;font-size:11px;color:#79581b}.access-period-summary{margin-top:20px}.access-period-summary .metric-grid{margin-bottom:14px}.shift-method{font-size:11px;line-height:1.6;color:#4a647d;max-width:1080px;margin:0 0 12px}.shift-flags{display:flex;flex-wrap:wrap;gap:5px;min-width:140px}.shift-flags>span{display:inline-flex;align-items:center;gap:5px;font-size:11px;line-height:1.4}.shift-flags svg{width:14px;height:14px;flex:none}.shift-missing{font-weight:650;color:#ab302b}.shift-complete{color:#1d745b}.shift-night{display:block;margin-top:4px;color:#455c86;font-size:10px}.access-period-summary .table-scroll{border-top:1px solid #e1e7ed}@media(max-width:740px){.access-views{width:100%}.access-periods{overflow-x:auto;max-width:100%}.access-dates{flex-wrap:wrap;gap:8px}.access-export{justify-content:space-between}}

.shift-method>summary{cursor:pointer;color:#4a647d;font-size:11px}.shift-method>p{margin:6px 0 10px}

/* Attendance matrix: one employee per row, one day per column. */
.shift-matrix-card{min-width:0;max-width:100%}
.shift-matrix-scroll{max-width:100%;max-height:max(280px,calc(100dvh - 285px));overflow-x:scroll;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-color:#a9bac9 #f1f5f8;scrollbar-width:auto}
.shift-matrix-scroll:focus-visible{outline:2px solid #4a647d;outline-offset:-2px}
.shift-matrix-scroll::-webkit-scrollbar{width:12px;height:12px}
.shift-matrix-scroll::-webkit-scrollbar-track{background:#f1f5f8}
.shift-matrix-scroll::-webkit-scrollbar-thumb{border:3px solid #f1f5f8;border-radius:8px;background:#a9bac9}
.shift-matrix-scroll::-webkit-scrollbar-corner{background:#f1f5f8}
.shift-matrix{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}
.shift-matrix th,.shift-matrix td{padding:12px 13px;vertical-align:top;border-right:1px solid #e5ebf0;border-bottom:1px solid #e5ebf0;white-space:normal;overflow-wrap:anywhere}
.shift-matrix thead th{position:sticky;top:0;z-index:2;background:#f5f7fa;color:#1e3a56;vertical-align:middle;border-bottom-color:#d3dfe8;font-weight:600}
.shift-matrix .shift-person-column{position:sticky;left:0;z-index:1;width:206px;min-width:206px;max-width:206px;background:#fff;box-shadow:1px 0 0 #d3dfe8;text-align:left}
.shift-matrix thead .shift-person-column{z-index:3;background:#f5f7fa;font-size:12px}
.shift-matrix tbody .shift-person-column>strong{display:block;color:#0f2940;font-size:12px;line-height:1.5;font-weight:600;overflow-wrap:anywhere}
.shift-matrix tbody .shift-person-column>small{display:block;margin-top:4px;color:#4a647d;font-size:10px;font-weight:400}
.shift-matrix .shift-day-column,.shift-matrix .shift-day-cell{width:164px;min-width:164px;max-width:164px}
.shift-matrix .shift-day-weekday{display:block;font-size:10px;font-weight:500;color:#4a647d;margin-bottom:2px}
.shift-matrix .shift-day-column>strong{display:block;font-size:12px;line-height:1.4;font-weight:650;color:#1e3a56}
.shift-matrix .shift-day-column.is-weekend .shift-day-weekday{font-weight:650}
.shift-matrix .shift-day-column.is-today{box-shadow:inset 0 -2px 0 #1e3a56}
.shift-matrix tbody tr,.shift-matrix tbody tr:hover{background:transparent}
.shift-matrix .shift-day-cell{background:#fff;color:#1e3a56;font-variant-numeric:tabular-nums;font-size:12px;line-height:1.45}
.shift-matrix .shift-day-cell.shift-anomaly{background:#fff1ef;color:#8d332c;box-shadow:inset 3px 0 #c54c43}
.shift-cell-entry+.shift-cell-entry{margin-top:10px;padding-top:10px;border-top:1px solid #cfdae380}
.shift-cell-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.shift-cell-times>div,.shift-cell-time{min-width:0}
.shift-cell-times>div>span:first-child,.shift-cell-time>span:first-child{display:block;font-size:9px;font-weight:400;color:#4a647d;margin-bottom:2px}
.shift-cell-times time{font-size:12px;font-weight:600;line-height:1.5;white-space:nowrap;color:inherit}
.shift-cell-entry .shift-next-day{display:block;font-size:9px;font-weight:500;white-space:nowrap;margin-top:2px;color:inherit}
.shift-matrix .shift-missing{font-size:11px;font-weight:600;color:#ab302b}
.shift-matrix .shift-complete{color:inherit}
.shift-cell-meta{display:flex;flex-wrap:wrap;gap:3px 8px;margin-top:6px;font-size:10px;line-height:1.5;color:inherit}
.shift-cell-meta .shift-night{display:inline;margin:0;font-size:10px;color:inherit}
.shift-cell-issues{margin-top:7px;font-size:10px;line-height:1.6;overflow-wrap:anywhere}
.shift-cell-issues>summary{display:list-item;font-size:10px;line-height:1.5;font-weight:600;cursor:pointer;color:inherit;list-style-position:inside}
.shift-cell-issues>summary:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.shift-cell-issues[open]>summary{margin-bottom:5px}
.shift-cell-issues ul{margin:0;padding-left:15px}
.shift-cell-issues li+li{margin-top:3px}.shift-cell-issues>div+div{margin-top:4px}.shift-cell-issues small{display:block;font-size:9px;color:inherit}
.shift-matrix td.shift-no-records{display:table-cell;padding:12px 13px;color:#8296a5;font-size:15px;line-height:1.5;font-weight:400;text-align:center}
@media(max-width:740px){.shift-matrix-scroll{max-height:max(280px,calc(100dvh - 305px))}.shift-matrix th,.shift-matrix td{padding:10px 11px}.shift-matrix .shift-person-column{width:180px;min-width:180px;max-width:180px}.shift-matrix .shift-day-column,.shift-matrix .shift-day-cell{width:150px;min-width:150px;max-width:150px}.shift-matrix tbody .shift-person-column>strong{font-size:11px}}

.shift-day-year{display:block;font-size:9px;font-weight:400;color:#4a647d;margin-top:2px}.shift-cell-issues .shift-flags{min-width:0}

.tenant-settings-grid{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(380px,1.3fr);gap:22px;align-items:start}
.tenant-settings-form fieldset{border:0;padding:0;margin:0;min-width:0}.tenant-settings-form fieldset:disabled{opacity:.65}.tenant-settings-form .form-end{margin-top:22px}
.tenant-settings-help{font-size:11px;line-height:1.7;color:var(--muted,#728897);margin:8px 0 18px}.tenant-settings-form small.tenant-settings-help{margin:0}
.tenant-settings-form .tenant-check{display:flex;flex-direction:row;align-items:center;gap:9px;font-size:12px;line-height:1.5;margin-bottom:18px}.tenant-settings-form .form-grid .tenant-check{margin:0}.tenant-settings-form .tenant-check input{width:16px;height:16px;min-height:0;padding:0;flex:0 0 auto}
.tenant-logo-preview{display:flex;align-items:center;justify-content:center;min-height:150px;padding:20px;border:1px solid var(--border);border-radius:8px;background:#f4f7f9;margin-bottom:20px}.tenant-logo-preview img{max-width:100%;width:240px;height:120px;object-fit:contain}.tenant-logo-actions{justify-content:flex-start;flex-wrap:wrap}.tenant-settings-form input[type=file]{font-size:12px;max-width:100%;margin-top:6px}
.brand img{object-fit:contain}
@media(max-width:1000px){.tenant-settings-grid{grid-template-columns:1fr}}
