:root{--bg:#f7f8fa;--card-bg:#ffffff;--text:#2e2e2e;--text-light:#6b6b6b;--primary:#2d6cdf;--success:#4caf50;--danger:#e53935;--radius:12px;--shadow:0 2px 8px rgba(0,0,0,0.06);--nav-height:56px;--sidebar-width:240px;}body{margin:0;background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:var(--text);}h1,h2,h3{margin:0;font-weight:600;}img{user-select:none;}.menu-item{display:flex;align-items:center;gap:8px;line-height:20px;}.menu-item[hidden]{display:none;}.menu-item .menu-icon{width:20px;height:20px;flex-shrink:0;}.device-info{display:grid;grid-template-columns:max-content 1fr;column-gap:8px;row-gap:6px;font-size:13px;}.device-info .key{color:#444;font-weight:500;white-space:nowrap;}.device-info .value{color:#777;font-weight:400;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.app{display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:var(--nav-height) 1fr;height:100vh;overflow:hidden;}.navbar{grid-column:1 / 3;display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:var(--card-bg);border-bottom:1px solid #e2e8f0;box-shadow:none;}.nav-left{display:flex;align-items:center;gap:12px;min-width:0;}.macos-webview .nav-left{margin-left:64px;}.nav-brand-mark{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(148,163,184,0.24);border-radius:8px;background:#fff;box-shadow:0 4px 12px rgba(15,23,42,0.04);}.nav-brand-mark img{width:30px;height:30px;object-fit:contain;}.nav-brand-copy{display:grid;gap:1px;min-width:0;}.nav-brand-copy strong{color:#0f2f57;font-size:18px;line-height:21px;font-weight:800;}.nav-brand-copy small{color:#64748b;font-size:11px;line-height:14px;font-weight:400;}.nav-right{display:flex;align-items:center;gap:12px;}.nav-right img{width:20px;height:20px;}.nav-icon-btn{width:36px;height:36px;display:grid;place-items:center;border:1px solid #e2e8f0;border-radius:18px;background:#fff;cursor:pointer;}.nav-icon-btn:hover{background:#f8fafc;}.user-menu{position:relative;}.user-trigger{height:36px;display:flex;align-items:center;gap:8px;border:1px solid #e5e7eb;border-radius:18px;background:#fff;padding:0 10px 0 6px;cursor:pointer;color:var(--text);font-size:13px;max-width:220px;}.user-trigger .user-trigger-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover;background:#f3f4f6;}.avatar-stack{position:relative;display:inline-block;overflow:hidden;flex:none;}.avatar-stack .avatar-image{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit;background:#f3f4f6;}.avatar-stack .fallback-avatar{width:100%;height:100%;display:none;border-radius:inherit;}.avatar-stack.show-fallback .avatar-image{display:none;}.avatar-stack.show-fallback .fallback-avatar{display:inline-grid;}.fallback-avatar{display:inline-grid;place-items:center;flex:none;background:linear-gradient(135deg,#2d6cdf,#14b8a6);color:#fff;font-weight:800;letter-spacing:0;}.user-trigger .fallback-avatar{font-size:11px;}.user-trigger-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.user-trigger-caret{color:var(--text-light);font-size:11px;transition:transform 140ms ease;}.user-trigger[aria-expanded="true"] .user-trigger-caret{transform:rotate(180deg);}.user-dropdown{position:absolute;top:44px;right:0;width:300px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 12px 28px rgba(0,0,0,0.12);padding:10px;z-index:20;}.user-profile-card{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;padding:4px 4px 12px;margin-bottom:6px;border-bottom:1px solid #eef2f7;}.user-profile-card > div{min-width:0;}.user-profile-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#f3f4f6;}.user-profile-avatar.fallback-avatar{font-size:15px;}.user-profile-avatar .fallback-avatar{font-size:15px;}.user-profile-name{font-size:14px;font-weight:700;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.user-profile-email{margin-top:2px;font-size:12px;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.user-menu-action{width:100%;min-height:40px;display:grid;gap:2px;align-content:center;border:0;border-radius:6px;background:#fff;color:#111827;cursor:pointer;font-size:14px;padding:0 10px;text-align:left;}.user-menu-action span{font-size:13px;font-weight:650;}.user-menu-action em{color:#64748b;font-size:11px;font-style:normal;}.user-menu-action:hover{background:#f3f6fb;}.user-menu-action:focus-visible,.user-trigger:focus-visible{outline:2px solid rgba(25,110,180,0.38);outline-offset:2px;}.user-menu-action.danger{color:#dc2626;}.user-menu-group,.user-menu-danger-zone{display:grid;gap:2px;}.user-menu-danger-zone{margin-top:8px;padding-top:8px;border-top:1px solid #fee2e2;}.user-device-summary{width:100%;display:grid;gap:3px;border:0;border-radius:8px;background:#f8fafc;padding:10px;cursor:pointer;text-align:left;}.user-device-summary span{color:#64748b;font-size:12px;font-weight:700;}.user-device-summary strong{color:#0f172a;font-size:14px;}.user-device-summary em{color:#64748b;font-size:12px;font-style:normal;}.user-menu-separator{height:1px;margin:8px 0;background:#eef2f7;}.user-field{display:grid;grid-template-columns:70px 1fr;gap:8px;font-size:13px;line-height:22px;}.user-field .key{color:#4b5563;}.user-field .value{color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.account-dialog-panel{width:min(420px,calc(100vw - 36px));}.account-settings-page{display:grid;gap:16px;color:#0f172a;}.account-settings-hero{min-height:34px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;}.account-settings-hero h1{margin:0;font-size:24px;line-height:32px;font-weight:760;}.account-settings-hero > span{color:#64748b;font-size:13px;}.account-settings-panel{overflow:hidden;border:1px solid #e2e8f0;border-radius:8px;background:#fff;}.account-settings-panel-head{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 18px;border-bottom:1px solid #edf2f7;}.account-settings-panel-head h2{margin:0;font-size:15px;font-weight:720;}.account-settings-panel-head span{color:#64748b;font-size:12px;}.account-settings-form{display:grid;padding:0 18px 16px;}.account-settings-form > label{min-height:54px;display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:center;border-bottom:1px solid #edf2f7;color:#374151;font-size:14px;font-weight:650;}.account-avatar-row{min-height:82px;display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:center;border-bottom:1px solid #edf2f7;}.account-avatar-label{color:#374151;font-size:14px;font-weight:650;}.account-avatar-control{min-width:0;display:flex;align-items:center;gap:14px;}.account-avatar-preview{width:48px;height:48px;flex:0 0 auto;border-radius:50%;}.account-avatar-action{min-width:0;display:flex;align-items:center;gap:12px;}.account-avatar-action span{color:#64748b;font-size:12px;}.account-settings-form input,.account-settings-form select{width:100%;min-width:0;height:36px;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;padding:0 10px;font:inherit;font-size:14px;}.account-settings-form select{appearance:auto;cursor:pointer;}.account-settings-form input:focus-visible,.account-settings-form select:focus-visible,.account-settings-form button:focus-visible,.account-settings-state button:focus-visible{outline:2px solid rgba(25,110,180,0.38);outline-offset:2px;}.account-secret-field{position:relative;min-width:0;}.account-secret-field input{padding-right:44px;}.account-secret-field button{position:absolute;top:50%;right:5px;width:32px;height:32px;display:grid;place-items:center;transform:translateY(-50%);border:0;border-radius:6px;background:transparent;padding:0;cursor:pointer;}.account-secret-field button:hover{background:#eff6ff;}.account-secret-field button img{width:20px;height:20px;}.account-settings-actions{min-height:48px;display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:12px;}.account-settings-actions span{color:#64748b;font-size:12px;}.account-settings-actions button,.account-secondary-btn,.account-settings-state button{height:34px;border:1px solid #196eb4;border-radius:8px;background:#196eb4;color:#fff;padding:0 14px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;}.account-secondary-btn{border-color:#dbe3ec;background:#fff;color:#334155;}.account-settings-actions button:disabled,.account-secondary-btn:disabled{cursor:not-allowed;opacity:0.55;}.account-email-code-row{min-height:64px;display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:center;border-bottom:1px solid #edf2f7;}.account-email-code-row[hidden],.account-email-submit-row[hidden]{display:none;}.account-email-address-control{min-width:0;display:flex;align-items:center;gap:10px;}.account-email-address-control input{flex:1 1 auto;}.account-email-address-control button{flex:0 0 auto;}.account-email-initial-message{min-height:0;color:#64748b;font-size:12px;text-align:right;}.account-email-initial-message:not(:empty){min-height:36px;padding-top:12px;}.account-email-code-label{color:#374151;font-size:14px;font-weight:650;}.account-email-code-control{min-width:0;display:flex;align-items:center;gap:10px;}.account-email-code-row .auth-code-field{width:max-content;grid-template-columns:repeat(6,42px);gap:8px;}.account-email-code-row .auth-code-field input{width:42px;height:42px;box-sizing:border-box;}.account-settings-state{min-height:240px;display:grid;place-items:center;gap:8px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#64748b;text-align:center;}.account-settings-state.error strong{color:#b91c1c;}@media (prefers-reduced-motion:reduce){.user-trigger-caret{transition:none;}}@media (max-width:640px){.user-trigger-name{display:none;}.user-dropdown{position:fixed;top:calc(var(--nav-height) - 4px);right:12px;width:min(300px,calc(100vw - 24px));}.account-settings-hero,.account-settings-panel-head,.account-settings-actions{align-items:flex-start;flex-direction:column;}.account-settings-form > label{grid-template-columns:1fr;gap:7px;padding:12px 0;}.account-avatar-row{grid-template-columns:1fr;gap:9px;padding:12px 0;}.account-avatar-action{align-items:flex-start;flex-direction:column;gap:7px;}.account-email-code-row{grid-template-columns:1fr;gap:7px;padding:12px 0;}.account-email-code-control{align-items:center;}.account-settings-actions button{width:100%;}.account-email-address-control{align-items:stretch;flex-direction:column;}.account-email-address-control button{width:100%;}.account-email-code-row .auth-code-field{grid-template-columns:repeat(6,minmax(0,40px));gap:6px;}.account-email-code-row .auth-code-field input{width:40px;height:40px;}}.account-dialog-form{display:flex;flex-direction:column;gap:12px;}.account-dialog-field{display:flex;flex-direction:column;gap:6px;color:#374151;font-size:13px;font-weight:600;}.account-dialog-field input{height:40px;border:1px solid #d1d5db;border-radius:6px;padding:0 10px;font-size:14px;outline:none;}.account-dialog-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(45,108,223,0.12);}.account-dialog-error{display:none;color:#dc2626;font-size:13px;line-height:18px;}.unbind-btn{width:100%;height:34px;border:0;border-radius:6px;background:var(--danger);color:#fff;cursor:pointer;margin-top:12px;}.sidebar{background:#fff;padding:18px 14px;display:flex;flex-direction:column;border-right:1px solid #e2e8f0;}.menu-item{width:100%;height:42px;display:flex;align-items:center;gap:10px;padding:0 12px;border:0;background:transparent;cursor:pointer;color:#64748b;border-radius:8px;font-size:14px;font-weight:600;font-family:inherit;text-align:left;}.menu-item.active{color:var(--primary);background:rgba(45,108,223,0.08);}.menu-item:hover{background:#f8fafc;}.menu-item:focus-visible{outline:2px solid rgba(25,110,180,0.38);outline-offset:2px;}.menu-icon{width:20px;height:20px;opacity:0.72;}.device-info{margin-top:auto;display:block;}.sidebar-device-card{position:relative;padding:12px;padding-right:42px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;}.sidebar-device-settings{position:absolute;top:8px;right:8px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:7px;background:transparent;cursor:pointer;padding:0;touch-action:manipulation;}.sidebar-device-settings img{width:18px;height:18px;opacity:0.68;}.sidebar-device-settings:hover{border-color:#dbeafe;background:#eef6ff;}.sidebar-device-settings:focus-visible{outline:2px solid rgba(25,110,180,0.45);outline-offset:2px;}.sidebar-device-name{margin-top:7px;color:#0f172a;font-size:15px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.sidebar-device-meta,.sidebar-device-id{margin-top:4px;color:#64748b;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.sidebar-device-status{display:inline-flex;align-items:center;gap:6px;color:#166534;font-size:12px;font-weight:700;}.sidebar-device-status span{width:7px;height:7px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,0.1);}.sidebar-device-tags{display:flex;gap:6px;margin-top:10px;}.sidebar-device-tags span{min-width:0;padding:3px 6px;border-radius:999px;background:#fff;color:#64748b;font-size:11px;font-weight:700;}.device-dialog-list{display:grid;gap:8px;padding:4px 0 6px;}.content{padding:24px;overflow-y:auto;background:#f7fbff;}.auth-request-backdrop{align-items:flex-start;justify-content:flex-end;padding:76px 24px 24px;box-sizing:border-box;pointer-events:none;}.auth-request-panel{width:min(520px,calc(100vw - 48px));border-radius:8px;pointer-events:auto;}.auth-popup-list{display:flex;flex-direction:column;gap:10px;max-height:min(480px,calc(100vh - 160px));overflow-y:auto;}.auth-popup-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #e5e7eb;border-radius:8px;padding:12px;}.auth-popup-title{font-size:15px;font-weight:600;color:#111827;}.auth-popup-meta{margin-top:4px;font-size:12px;color:#6b7280;word-break:break-all;}.auth-popup-actions,.auth-row-actions{display:flex;align-items:center;gap:8px;}.auth-btn{height:32px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;padding:0 12px;cursor:pointer;white-space:nowrap;}.auth-btn:disabled{opacity:0.55;cursor:default;}.auth-approve{border-color:var(--primary);background:var(--primary);color:#fff;}.auth-reject,.auth-delete{border-color:#fecaca;color:var(--danger);}body.auth-active{background:#edf6ff;}body.auth-pending .app,body.auth-active .app{display:none;}.auth-page{position:relative;min-height:100vh;display:grid;place-items:center;padding:28px;box-sizing:border-box;background:linear-gradient(135deg,rgba(237,247,255,0.96),rgba(247,251,255,0.92)),#edf6ff;}.auth-language-control{position:absolute;top:24px;right:28px;z-index:3;display:flex;align-items:center;gap:9px;color:#52677b;font-size:13px;font-weight:650;}.auth-language-control select{height:34px;border:1px solid #cdd9e5;border-radius:8px;background:rgba(255,255,255,0.92);color:#243b53;padding:0 30px 0 10px;font:inherit;cursor:pointer;}.auth-language-control select:hover{border-color:#9db9d2;}.auth-language-control select:focus-visible{outline:2px solid rgba(25,110,180,0.38);outline-offset:2px;}.auth-shell{width:min(1000px,100%);min-height:620px;display:grid;grid-template-columns:minmax(0,1fr) 440px;overflow:hidden;background:linear-gradient(90deg,transparent 0%,transparent 48%,rgba(255,255,255,0.78) 56%,#fff 64%),#fff;border:1px solid #dfe5ec;border-radius:8px;box-shadow:0 20px 48px rgba(30,41,59,0.13);}.auth-showcase{position:relative;display:flex;flex-direction:column;justify-content:center;padding:42px;color:#0f172a;background:linear-gradient(145deg,rgba(224,242,254,0.96) 0%,rgba(242,247,255,0.98) 48%,rgba(231,248,246,0.9) 100%),#f7fbff;}.auth-showcase::after{content:"";position:absolute;top:0;right:-88px;width:176px;height:100%;pointer-events:none;background:linear-gradient(90deg,rgba(247,251,255,0),rgba(255,255,255,0.9));}.auth-logo{position:absolute;top:58px;left:42px;display:flex;align-items:center;gap:14px;color:#0f2f57;z-index:1;}.auth-logo-type{display:grid;gap:4px;}.auth-logo-type b{color:#0f2f57;font-size:34px;line-height:38px;font-weight:800;letter-spacing:0;}.auth-logo-type small{color:#486581;font-size:17px;line-height:22px;font-weight:400;letter-spacing:0;}.auth-logo-mark{width:56px;height:56px;display:grid;place-items:center;background:#fff;border:1px solid rgba(148,163,184,0.24);border-radius:8px;box-shadow:0 6px 16px rgba(15,23,42,0.06);}.auth-logo-mark img{width:45px;height:45px;object-fit:contain;}.auth-showcase-content{width:100%;display:grid;gap:44px;align-content:center;justify-items:center;transform:translateY(26px);z-index:1;}.auth-showcase-copy{width:min(380px,100%);}.auth-showcase-copy h2{margin:0;color:#24415d;font-size:24px;line-height:30px;font-weight:650;}.auth-showcase-copy p{margin:8px 0 0;color:#627d98;font-size:15px;line-height:22px;}.auth-device{width:min(420px,100%);align-self:center;padding:18px;background:#24415d;border:1px solid rgba(44,85,118,0.6);border-radius:8px;box-shadow:0 18px 36px rgba(15,50,82,0.18);}.auth-device-top{display:flex;justify-content:space-between;margin-bottom:12px;}.auth-device-top span{width:58px;height:6px;background:rgba(190,220,240,0.58);border-radius:999px;}.auth-device-preview{position:relative;overflow:hidden;height:268px;display:grid;place-items:center;background:linear-gradient(180deg,rgba(98,164,221,0.28),rgba(63,179,153,0.16)),#19334b;border:1px solid rgba(175,210,235,0.18);border-radius:6px;}.auth-device-preview::before{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:rgba(125,211,252,0.13);filter:blur(16px);}.auth-video-dashboard{position:relative;z-index:2;width:292px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:136px 76px 48px;gap:10px;filter:drop-shadow(0 0 20px rgba(125,211,252,0.14));}.auth-video-cell{position:relative;overflow:hidden;border:1px solid rgba(191,219,254,0.16);border-radius:6px;background:linear-gradient(135deg,rgba(148,163,184,0.18),rgba(15,23,42,0.08)),#172638;}.auth-video-cell::before{content:"";position:absolute;inset:12px;border:1px solid rgba(186,230,253,0.16);border-radius:5px;}.auth-video-cell::after{content:"";position:absolute;inset:auto 12px 12px;height:1px;background:linear-gradient(90deg,rgba(125,211,252,0),rgba(125,211,252,0.5),rgba(125,211,252,0));}.camera-main{grid-column:1 / 3;background:linear-gradient(140deg,rgba(45,108,223,0.22),rgba(20,184,166,0.12)),#142234;}.camera-main::before{inset:18px 42px 20px 24px;}.camera-small{background:linear-gradient(145deg,rgba(56,189,248,0.12),rgba(15,23,42,0.08)),#172638;}.auth-camera-label{position:absolute;top:9px;left:10px;z-index:1;color:rgba(239,246,255,0.74);font-size:11px;font-weight:650;}.auth-detection{position:absolute;z-index:2;height:22px;display:inline-flex;align-items:center;padding:0 7px;border-radius:5px;background:rgba(14,165,233,0.16);color:rgba(239,246,255,0.9);font-size:10px;font-weight:650;}.auth-detection strong{margin-left:6px;color:#bae6fd;font-weight:800;}.auth-detection::before{content:"";width:6px;height:6px;margin-right:6px;border-radius:50%;background:#7dd3fc;}.auth-detection.vehicle{right:18px;bottom:18px;background:rgba(20,184,166,0.12);color:rgba(239,246,255,0.72);}.auth-live-badge{position:absolute;top:11px;right:12px;z-index:2;height:20px;display:inline-flex;align-items:center;gap:6px;padding:0 7px;border-radius:5px;background:rgba(15,23,42,0.36);color:rgba(255,255,255,0.88);font-size:10px;font-weight:750;}.auth-live-badge b{width:6px;height:6px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,0.16);animation:authLivePulse 1.8s ease-in-out infinite;}.auth-ai-box{position:absolute;left:56px;top:55px;z-index:2;width:96px;height:54px;border:1px solid rgba(125,211,252,0.8);border-radius:4px;box-shadow:0 0 0 1px rgba(125,211,252,0.08),0 0 12px rgba(125,211,252,0.12);animation:authDetectBreath 2.8s ease-in-out infinite;}@keyframes authLivePulse{50%{opacity:0.45;box-shadow:0 0 0 5px rgba(239,68,68,0.1);}}@keyframes authDetectBreath{50%{transform:scale(1.025);border-color:rgba(186,230,253,0.92);}}.auth-ai-box span{position:absolute;left:-1px;top:-23px;height:22px;display:inline-flex;align-items:center;padding:0 7px;border-radius:5px 5px 5px 0;background:rgba(14,165,233,0.2);color:rgba(239,246,255,0.9);font-size:10px;font-weight:700;white-space:nowrap;}.auth-ai-box strong{margin-left:6px;color:#bae6fd;font-weight:800;}.auth-box-outline{position:absolute;right:16px;bottom:14px;width:38px;height:28px;border:1px solid rgba(125,211,252,0.72);border-radius:4px;box-shadow:0 0 0 1px rgba(125,211,252,0.08),0 0 14px rgba(125,211,252,0.14);}.auth-camera-status{position:absolute;right:10px;top:9px;z-index:2;height:18px;display:inline-flex;align-items:center;padding:0 6px;border-radius:5px;font-size:10px;font-weight:700;}.auth-camera-status.live{background:rgba(20,184,166,0.14);color:rgba(204,251,241,0.9);}.auth-camera-status.quiet{background:rgba(148,163,184,0.12);color:rgba(226,232,240,0.74);}.auth-event-card{grid-column:1 / 3;height:48px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:0 14px;border:1px solid rgba(191,219,254,0.16);border-radius:6px;background:rgba(255,255,255,0.09);box-sizing:border-box;}.auth-event-card strong{color:rgba(239,246,255,0.9);font-size:12px;}.auth-event-card em{color:rgba(203,213,225,0.82);font-size:12px;font-style:normal;}.auth-device-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px;}.auth-device-grid span{height:58px;display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:center;justify-content:center;padding:0 10px;box-sizing:border-box;background:rgba(255,255,255,0.1);border:1px solid rgba(190,220,240,0.18);border-radius:6px;}.auth-device-grid img{width:20px;height:20px;filter:invert(1);opacity:0.86;}.auth-device-grid em{color:rgba(239,246,255,0.86);font-size:12px;font-style:normal;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.auth-panel{display:flex;flex-direction:column;justify-content:center;padding:74px 42px 34px;box-sizing:border-box;background:#fff;z-index:2;}.auth-panel.qr-mode .auth-tabs{width:100%;align-self:stretch;}.auth-panel-head{margin-bottom:22px;}.auth-panel-head h1{font-size:30px;line-height:36px;color:#111827;}.auth-panel-head p{margin:6px 0 0;color:#6b7280;font-size:14px;}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:3px;margin-bottom:14px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;}.auth-tabs button{height:38px;border:0;border-radius:6px;background:transparent;color:#64748b;cursor:pointer;font-size:14px;font-weight:600;}.auth-tabs button.active{background:#fff;color:#111827;box-shadow:0 1px 6px rgba(15,23,42,0.1);}.auth-message{min-height:0;max-height:0;overflow:hidden;color:#334155;background:#f8fafc;border:0 solid #e2e8f0;border-radius:6px;font-size:13px;line-height:18px;transition:max-height 160ms ease,padding 160ms ease,border-width 160ms ease;}.auth-message.show{max-height:34px;padding:6px 10px;margin-bottom:14px;border-width:1px;}.auth-message.error{color:#b91c1c;background:#fef2f2;border-color:#fecaca;}.auth-message.success{color:#166534;background:#f0fdf4;border-color:#bbf7d0;}.auth-message.info{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe;}.auth-form{display:flex;flex-direction:column;gap:14px;animation:authFormIn 180ms ease;}@keyframes authFormIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}.auth-field{display:flex;flex-direction:column;gap:7px;color:#374151;font-size:13px;font-weight:600;}.auth-field input{width:100%;height:44px;border:1px solid #cbd5e1;border-radius:6px;padding:0 13px;box-sizing:border-box;background:#fff;color:#111827;font-size:15px;outline:none;transition:border-color 140ms ease,box-shadow 140ms ease;}.auth-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(45,108,223,0.14);}.auth-claim-key-wrap{position:relative;}.auth-claim-key-wrap input{padding-right:48px;background:#f8fafc;}.auth-claim-refresh{position:absolute;top:50%;right:8px;transform:translateY(-50%);width:32px;height:32px;display:grid;place-items:center;padding:0;border:0;border-radius:6px;background:transparent;color:#64748b;cursor:pointer;}.auth-claim-refresh:hover{color:#174ea6;}.auth-claim-refresh:focus-visible{outline:2px solid var(--primary);outline-offset:1px;}.auth-claim-refresh:disabled{color:#94a3b8;cursor:default;}.auth-claim-refresh-icon{width:20px;height:20px;background:currentColor;-webkit-mask:url("assets/icons/refresh_26dp_1F1F1F.svg") center / contain no-repeat;mask:url("assets/icons/refresh_26dp_1F1F1F.svg") center / contain no-repeat;}.auth-claim-refresh.loading .auth-claim-refresh-icon{animation:authClaimRefreshSpin 700ms linear infinite;}@keyframes authClaimRefreshSpin{to{transform:rotate(360deg);}}.auth-password-wrap{position:relative;}.auth-password-wrap input{padding-right:48px;}.auth-password-wrap input::-ms-reveal,.auth-password-wrap input::-ms-clear{display:none;}.auth-password-toggle{position:absolute;top:50%;right:10px;transform:translateY(-50%);width:30px;height:30px;display:grid;place-items:center;border:0;background:transparent;color:#64748b;cursor:pointer;padding:0;}.auth-eye-svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}.auth-eye-slash{opacity:0;}.auth-password-toggle.visible .auth-eye-slash{opacity:1;}.auth-password-toggle:hover,.auth-text-button:hover{color:#174ea6;}.auth-form-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:-2px;}.auth-check{display:flex;align-items:center;gap:7px;color:#64748b;font-size:13px;user-select:none;}.auth-check input{width:15px;height:15px;accent-color:var(--primary);}.auth-primary,.auth-secondary{width:100%;height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:6px;cursor:pointer;font-size:15px;font-weight:700;}.auth-primary{border:0;background:var(--primary);color:#fff;box-shadow:0 4px 12px rgba(45,108,223,0.16);transition:background 140ms ease,box-shadow 140ms ease,transform 80ms ease;}.auth-primary:hover{background:#245dc5;box-shadow:0 7px 16px rgba(45,108,223,0.2);}.auth-primary:active{transform:translateY(1px);box-shadow:0 3px 8px rgba(45,108,223,0.16);}.auth-primary:disabled,.auth-secondary:disabled{cursor:default;opacity:0.65;box-shadow:none;transform:none;}.auth-primary:disabled{background:#cbd5e1;color:#fff;}.auth-primary.loading:disabled{background:var(--primary);opacity:0.86;}.auth-primary.loading::before{content:"";width:15px;height:15px;border:2px solid rgba(255,255,255,0.38);border-top-color:#fff;border-radius:50%;animation:authSpin 760ms linear infinite;}@keyframes authSpin{to{transform:rotate(360deg);}}.auth-secondary{border:1px solid #cbd5e1;background:#fff;color:#334155;}.auth-secondary:hover{background:#f8fafc;}.auth-back-link{width:auto;height:auto;justify-content:flex-start;align-self:flex-start;padding:4px 0;border:0;background:transparent;color:#64748b;font-size:14px;font-weight:600;}.auth-back-link:hover{background:transparent;color:#174ea6;}.auth-switch{display:flex;justify-content:center;align-items:center;gap:6px;color:#64748b;font-size:14px;padding-top:4px;}.auth-switch button,.auth-text-button{border:0;background:transparent;color:var(--primary);cursor:pointer;font-size:14px;font-weight:600;padding:4px 0;}.auth-stepper{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:4px;}.auth-stepper span{height:34px;display:flex;align-items:center;justify-content:center;gap:6px;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;font-weight:600;transition:color 160ms ease,background 160ms ease,border-color 160ms ease;}.auth-stepper b{width:18px;height:18px;display:grid;place-items:center;color:#64748b;background:#e2e8f0;border-radius:50%;font-size:11px;transition:color 160ms ease,background 160ms ease,transform 160ms ease;}.auth-stepper span.active{color:#0f172a;border-color:rgba(45,108,223,0.38);background:rgba(45,108,223,0.08);}.auth-stepper span.active b,.auth-stepper span.done b{color:#fff;background:var(--primary);}.auth-stepper span.done{color:#14532d;background:rgba(22,163,74,0.16);border-color:rgba(22,163,74,0.34);}.auth-stepper span.done b{background:#16a34a;transform:scale(1.04);}.auth-hint{min-height:20px;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:10px 12px;font-size:13px;line-height:18px;word-break:break-all;}.auth-field-error{min-height:18px;margin-top:-8px;color:#b91c1c;font-size:12px;line-height:18px;}.auth-code-hint{display:grid;gap:4px;}.auth-code-hint span{color:#64748b;font-size:12px;line-height:16px;}.auth-code-hint strong{color:#0f172a;font-size:14px;line-height:18px;font-weight:700;}.auth-code-field{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;}.auth-code-field input{width:100%;height:48px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#0f172a;text-align:center;font-size:22px;font-weight:700;outline:none;}.auth-code-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(45,108,223,0.14);}.auth-code-field.loading input{color:#64748b;background:#f8fafc;}.auth-code-actions{display:flex;justify-content:flex-end;margin-top:-8px;}.auth-code-actions .auth-text-button:disabled{color:#94a3b8;cursor:default;}.auth-password-rules{display:grid;gap:6px;margin-top:-5px;}.auth-password-rules span{display:flex;align-items:center;gap:7px;color:#64748b;font-size:12px;line-height:17px;transition:color 140ms ease;}.auth-password-rules b{width:14px;color:#94a3b8;font-size:12px;text-align:center;}.auth-password-rules span.done{color:#166534;}.auth-password-rules span.done b{color:#16a34a;}.auth-success-panel{min-height:238px;display:grid;align-content:center;justify-items:center;gap:10px;animation:authFormIn 180ms ease;}.auth-success-check{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:rgba(22,163,74,0.12);color:#16a34a;font-size:28px;font-weight:800;}.auth-success-panel strong{color:#0f172a;font-size:18px;}.auth-success-panel span{color:#64748b;font-size:13px;}.auth-claim-card{display:grid;gap:5px;padding:14px 16px;border:1px solid #dbeafe;border-radius:8px;background:#eff6ff;color:#475569;font-size:13px;}.auth-claim-card strong{color:#0f172a;font-size:16px;font-weight:750;}.auth-claim-card small{color:#64748b;font-size:12px;line-height:18px;}.auth-qr{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;}.auth-qr-card{width:100%;display:grid;justify-items:center;gap:8px;padding:16px 14px 14px;box-sizing:border-box;background:#fff;border:1px solid #dbe3ec;border-radius:8px;box-shadow:0 8px 20px rgba(15,23,42,0.08);}.auth-qr-code{width:216px;height:216px;display:grid;place-items:center;border:0;border-radius:4px;background:#fff;color:#64748b;font-size:13px;text-align:center;word-break:break-all;padding:6px;box-sizing:border-box;transition:opacity 160ms ease,filter 160ms ease;}.auth-qr-code.expired,.auth-qr-code.success{opacity:0.42;filter:grayscale(1);}.auth-qr-code img,.auth-qr-code canvas{width:204px;height:204px;}.auth-qr-timer-row{min-height:22px;display:inline-flex;align-items:center;justify-content:center;gap:14px;}.auth-qr-countdown{min-width:42px;color:#475569;font-size:13px;line-height:20px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-align:center;}.auth-user-code-row{min-height:22px;display:flex;align-items:center;justify-content:center;gap:7px;color:#64748b;font-size:13px;}.auth-user-code{min-height:22px;display:inline-flex;align-items:center;padding:0 2px;border-radius:4px;background:transparent;color:#334155;font-size:13px;font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:0.8px;}.auth-copy-code{position:relative;width:20px;height:20px;border:0;background:transparent;color:#64748b;cursor:pointer;padding:0;}.auth-copy-code span,.auth-copy-code span::after{position:absolute;width:11px;height:13px;border:1.6px solid currentColor;border-radius:3px;box-sizing:border-box;}.auth-copy-code span{left:7px;top:4px;}.auth-copy-code span::after{content:"";left:-5px;top:4px;opacity:0.55;}.auth-copy-code.copied::before{content:"已复制";position:absolute;right:20px;top:50%;transform:translateY(-50%);color:#166534;font-size:12px;white-space:nowrap;}.auth-qr-status{min-height:22px;display:inline-flex;align-items:center;justify-content:center;gap:8px;color:#1d4ed8;font-size:16px;font-weight:650;line-height:22px;}.auth-qr-status.hidden{display:none;}.auth-qr-status-icon{width:8px;height:8px;border-radius:50%;border:1.5px solid #94a3b8;box-sizing:border-box;}.auth-qr-status-icon::before{content:none;}.auth-qr-status.loading .auth-qr-status-icon,.auth-qr-status.waiting .auth-qr-status-icon,.auth-qr-status.confirm .auth-qr-status-icon{width:13px;height:13px;border:2px solid rgba(45,108,223,0.22);border-top-color:var(--primary);animation:authSpin 860ms linear infinite;}.auth-qr-status.success{color:#166534;}.auth-qr-status.success .auth-qr-status-icon,.auth-qr-status.expired .auth-qr-status-icon{width:14px;height:14px;display:grid;place-items:center;border:0;}.auth-qr-status.success .auth-qr-status-icon::before{content:"✓";color:#16a34a;font-size:14px;font-weight:800;}.auth-qr-status.expired{color:#b45309;}.auth-qr-status.expired .auth-qr-status-icon::before{content:"!";color:#b45309;font-size:13px;font-weight:800;}.auth-refresh-qr{width:22px;height:22px;display:grid;place-items:center;margin:0;padding:0;color:#2d6cdf;font-size:16px;line-height:1;}.auth-refresh-qr:disabled{color:#94a3b8;cursor:default;}.auth-refresh-icon{width:auto;height:auto;border:0;border-radius:0;}.auth-refresh-icon::before{content:"↻";}.logout-btn{width:100%;height:34px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;cursor:pointer;margin-top:8px;}@media (max-width:820px){.auth-page{padding:0;align-items:stretch;}.auth-language-control{top:18px;right:20px;}.auth-language-control label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}.auth-shell{min-height:100vh;grid-template-columns:1fr;border:0;border-radius:0;}.auth-showcase{justify-content:center;min-height:132px;padding:22px 24px;border-right:0;border-bottom:1px solid #e5e7eb;}.auth-device{display:none;}.auth-logo{position:static;}.auth-panel{justify-content:flex-start;padding:30px 24px 36px;}.auth-panel-head h1{font-size:28px;}}@media (max-width:420px){.auth-language-control{top:16px;right:16px;}.auth-language-control select{max-width:132px;}.auth-panel{padding:26px 18px 32px;}.auth-switch,.auth-form-meta{flex-direction:column;align-items:stretch;gap:4px;}.auth-stepper{gap:6px;}.auth-stepper span{font-size:12px;}.auth-code-field{gap:6px;}.auth-code-field input{height:44px;font-size:20px;}}.dashboard-page{display:flex;flex-direction:column;gap:16px;}.dashboard-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:2px 0;}.dashboard-hero h1{margin:0;color:#0f172a;font-size:24px;line-height:32px;font-weight:760;}.dashboard-time{color:#64748b;font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap;}.stats-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}.stat-card{min-width:0;min-height:100px;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:14px;padding:16px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 4px 14px rgba(15,23,42,0.035);}.stat-card.primary{border-color:rgba(25,110,180,0.24);background:#f8fbff;}.stat-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:8px;background:rgba(45,108,223,0.1);color:var(--primary);font-size:13px;font-weight:800;}.stat-icon.camera{color:#0f766e;background:rgba(20,184,166,0.11);}.stat-icon.alert{color:#b45309;background:rgba(245,158,11,0.13);font-size:20px;}.stat-copy{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:3px 10px;}.stat-copy span{color:#64748b;font-size:13px;font-weight:650;}.stat-number{grid-row:1 / span 2;grid-column:2;color:#0f172a;font-size:36px;line-height:40px;font-weight:780;font-variant-numeric:tabular-nums;}.stat-copy em{color:#64748b;font-size:12px;font-style:normal;white-space:nowrap;}.stat-copy b{color:#0f766e;}.dashboard-grid{display:grid;grid-template-columns:minmax(360px,0.9fr) minmax(480px,1.1fr);gap:14px;align-items:stretch;}.dashboard-panel{min-width:0;border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 6px 18px rgba(15,23,42,0.04);}.recent-events-panel{display:flex;flex-direction:column;}.panel-header{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px 8px;}.panel-header h2{margin:0;color:#0f172a;font-size:16px;line-height:22px;font-weight:720;text-wrap:balance;}.recent-events,.camera-status-list{display:grid;gap:8px;padding:0 18px 18px;}.recent-events{flex:1;align-content:start;}.recent-event{min-height:74px;display:grid;grid-template-columns:82px 1fr;gap:12px;align-items:center;padding:8px;border:1px solid #edf2f7;border-radius:8px;background:#fff;}.recent-thumb{height:58px;display:grid;place-items:center;overflow:hidden;border-radius:6px;background:linear-gradient(135deg,rgba(45,108,223,0.2),rgba(20,184,166,0.12)),#172638;}.recent-thumb-img{width:100%;height:100%;display:block;object-fit:cover;}.recent-thumb span{min-width:34px;height:22px;display:grid;place-items:center;border:1px solid rgba(125,211,252,0.72);border-radius:4px;color:#e0f2fe;font-size:11px;font-weight:800;}.recent-thumb .recent-thumb-img + span{display:none;}.recent-thumb.missing .recent-thumb-img + span,.recent-thumb.missing span{display:grid;}.recent-thumb.vehicle{background:linear-gradient(135deg,rgba(20,184,166,0.22),rgba(15,23,42,0.08)),#172638;}.recent-thumb.motion{background:linear-gradient(135deg,rgba(245,158,11,0.24),rgba(15,23,42,0.08)),#172638;}.recent-thumb.face{background:linear-gradient(135deg,rgba(244,63,94,0.22),rgba(15,23,42,0.08)),#172638;}.recent-thumb.pet{background:linear-gradient(135deg,rgba(168,85,247,0.22),rgba(15,23,42,0.08)),#172638;}.recent-event-main{min-width:0;display:grid;gap:5px;}.recent-event-main strong{color:#0f172a;font-size:14px;line-height:18px;font-weight:700;}.recent-event-main span{color:#64748b;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.chart-box{height:282px;padding:0 18px 18px;box-sizing:border-box;}.chart-empty{height:100%;display:grid;align-content:center;justify-items:center;gap:8px;color:#64748b;text-align:center;}.chart-empty div{font-size:28px;}.chart-empty strong{color:#0f172a;font-size:15px;}.chart-empty span{max-width:260px;font-size:13px;line-height:20px;}.chart-legend{display:flex;align-items:center;gap:12px;color:#64748b;font-size:12px;}.chart-legend span{display:inline-flex;align-items:center;gap:5px;}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;}.legend-dot.person{background:var(--primary);}.legend-dot.vehicle{background:#14b8a6;}.device-status-card{padding:0 18px 18px;}.device-status-head{display:block;padding:2px 0 14px;}.device-status-dot{width:10px;height:10px;border-radius:50%;background:#cbd5e1;}.device-status-dot.online{background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,0.1);}.device-status-head strong{display:block;color:#0f172a;font-size:18px;line-height:24px;font-weight:800;}.device-status-head em{color:#64748b;font-size:12px;font-style:normal;font-weight:600;}.device-facts{display:grid;grid-template-columns:1fr;gap:8px;padding:12px;border-radius:8px;background:#f8fafc;}.device-facts div{display:grid;gap:3px;min-width:0;}.device-facts span{color:#64748b;font-size:12px;}.device-facts strong{color:#0f172a;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.device-camera-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;}.device-camera-metrics div{padding:10px 8px;border:1px solid #edf2f7;border-radius:8px;text-align:center;}.device-camera-metrics strong{display:block;color:#0f172a;font-size:22px;line-height:26px;}.device-camera-metrics span{display:block;margin-top:2px;color:#64748b;font-size:12px;}.device-manage-btn{width:100%;height:34px;margin-top:12px;border:0;border-radius:6px;background:rgba(45,108,223,0.08);color:var(--primary);cursor:pointer;font-size:13px;font-weight:700;}.dashboard-empty{display:grid;gap:5px;padding:18px;color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;font-size:13px;text-align:center;}.dashboard-empty strong{color:#0f172a;font-size:14px;}.dashboard-empty span{color:#64748b;line-height:20px;}.device-settings-page{display:grid;gap:16px;}.device-settings-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:2px 0;}.device-settings-hero h1{margin:0;color:#0f172a;font-size:24px;line-height:32px;font-weight:760;}.device-settings-id{color:#64748b;font-size:13px;font-weight:650;white-space:nowrap;}.device-settings-panel{border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 5px 16px rgba(15,23,42,0.035);}.device-settings-state{min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#64748b;font-size:13px;text-align:center;}.device-settings-state strong{color:#0f172a;font-size:15px;}.device-settings-state.error strong{color:#b91c1c;}.device-settings-state button{height:34px;margin-top:7px;border:1px solid #dbe3ec;border-radius:8px;background:#fff;color:#334155;padding:0 13px;font:inherit;cursor:pointer;}.device-settings-state button:focus-visible{outline:2px solid rgba(25,110,180,0.38);outline-offset:2px;}.panel-header.compact{min-height:58px;padding:15px 18px 9px;}.device-settings-card{display:grid;gap:0;padding:0 18px 18px;}.device-settings-row,.device-settings-field{min-width:0;min-height:54px;display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:center;border-top:1px solid #edf2f7;}.device-settings-row > span,.device-settings-field > span{color:#374151;font-size:14px;font-weight:650;}.device-settings-field input,.device-settings-field select{min-width:0;width:100%;box-sizing:border-box;height:36px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;font:inherit;font-size:14px;padding:0 10px;outline:none;}.device-secret-field{position:relative;min-width:0;}.device-secret-field input{padding-right:44px;}.device-secret-field button{position:absolute;top:50%;right:5px;width:32px;height:32px;display:grid;place-items:center;transform:translateY(-50%);border:0;border-radius:6px;background:transparent;padding:0;cursor:pointer;}.device-secret-field button:hover{background:#eff6ff;}.device-secret-field button img{width:20px;height:20px;}.device-secret-field button:focus-visible{outline:2px solid rgba(25,110,180,0.34);outline-offset:2px;}.device-settings-field input:focus,.device-settings-field select:focus{border-color:#196eb4;box-shadow:0 0 0 3px rgba(25,110,180,0.12);}.device-settings-field input:focus-visible,.device-settings-field select:focus-visible{outline:2px solid rgba(25,110,180,0.34);outline-offset:2px;}.device-settings-row .camera-switch{justify-self:end;}.device-settings-actions{min-height:46px;display:flex;align-items:center;justify-content:flex-end;gap:12px;border-top:1px solid #edf2f7;padding-top:12px;}.device-settings-actions span{color:#64748b;font-size:12px;}.device-settings-actions button{height:34px;border:0;border-radius:8px;background:#196eb4;color:#fff;cursor:pointer;font-size:13px;font-weight:700;padding:0 14px;touch-action:manipulation;}.device-settings-actions button:disabled{cursor:not-allowed;opacity:0.56;}.device-settings-actions button:focus-visible{outline:2px solid rgba(25,110,180,0.45);outline-offset:2px;}@media (max-width:1080px){.stats-row,.dashboard-grid{grid-template-columns:1fr;}.activity-panel{grid-row:auto;}}@media (max-width:640px){.dashboard-hero{align-items:flex-start;flex-direction:column;gap:4px;}.chart-legend{gap:8px;}.device-settings-hero{align-items:flex-start;flex-direction:column;gap:4px;}.device-settings-row,.device-settings-field{grid-template-columns:1fr;gap:7px;padding:12px 0;}.device-settings-row .camera-switch{justify-self:start;}.device-settings-actions{align-items:stretch;flex-direction:column;}.device-settings-actions button{width:100%;}}@media (prefers-reduced-motion:reduce){.recent-event{scroll-behavior:auto;}}.camera-page{color:#111827;}.camera-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}.camera-toolbar-title{margin:0;font-size:24px;line-height:32px;font-weight:760;color:#0f172a;}.camera-toolbar-actions{display:flex;gap:10px;}.toolbar-btn{min-height:34px;padding:6px 14px;border:1px solid #dbe3ec;background:#f3f4f6;border-radius:999px;cursor:pointer;font:inherit;font-size:14px;color:#111;}.toolbar-btn:hover{background:#e5e7eb;}.toolbar-btn:focus-visible,.camera-add-dropdown button:focus-visible,.camera-card:focus-visible{outline:2px solid rgba(25,110,180,0.38);outline-offset:2px;}.toolbar-btn.primary{border-color:#196eb4;background:#196eb4;color:#fff;}.toolbar-btn.primary:hover{background:#155c97;}.camera-add-menu{position:relative;}.camera-add-trigger{height:34px;}.camera-add-dropdown{position:absolute;right:0;top:calc(100% + 8px);width:230px;display:none;padding:6px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;box-shadow:0 12px 28px rgba(15,23,42,0.12);z-index:20;}.camera-add-menu.open .camera-add-dropdown{display:grid;gap:4px;}.camera-add-dropdown button{display:grid;gap:3px;border:0;border-radius:8px;background:transparent;padding:10px;text-align:left;cursor:pointer;}.camera-add-dropdown button:hover{background:#f3f6fb;}.camera-add-dropdown strong{color:#111827;font-size:14px;}.camera-add-dropdown span{color:#64748b;font-size:12px;}.camera-page-state{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#64748b;text-align:center;}.camera-page-state strong{color:#0f172a;font-size:15px;font-weight:700;}.camera-page-state span{font-size:13px;line-height:20px;}.camera-page-state .toolbar-btn{margin-top:8px;}.camera-page-state.error strong{color:#b91c1c;}.camera-loading-indicator{width:20px;height:20px;box-sizing:border-box;border:2px solid #dbeafe;border-top-color:#196eb4;border-radius:50%;animation:camera-loading-spin 0.8s linear infinite;}@keyframes camera-loading-spin{to{transform:rotate(360deg);}}.camera-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;}.camera-source-sections{display:grid;gap:28px;}.camera-source-section{min-width:0;}.camera-section-heading{min-height:42px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px;}.camera-section-heading > div{min-width:0;display:grid;gap:2px;}.camera-section-heading h2{margin:0;color:#0f172a;font-size:16px;line-height:22px;}.camera-section-heading span,.camera-section-heading > strong{color:#64748b;font-size:12px;font-weight:500;line-height:18px;}.camera-section-empty{min-height:86px;display:grid;place-items:center;border:1px dashed #cbd5e1;border-radius:8px;color:#64748b;font-size:13px;}.camera-channel-empty{min-height:196px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:4px;border:1px dashed #b9c7d8;border-radius:10px;background:#f8fafc;color:#64748b;cursor:pointer;padding:18px;text-align:left;transition:border-color 0.16s ease,background 0.16s ease;}.camera-channel-empty:hover{border-color:#196eb4;background:#f1f7fd;}.camera-channel-empty:focus-visible{outline:2px solid rgba(25,110,180,0.42);outline-offset:2px;}.camera-channel-empty strong{color:#1e293b;font-size:15px;}.camera-channel-number{margin-bottom:auto;color:#196eb4;font-size:12px;font-weight:700;}.camera-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:10px;box-shadow:0 1px 2px rgba(15,23,42,0.05);display:flex;flex-direction:column;gap:0;cursor:pointer;transition:border-color 0.16s ease,box-shadow 0.16s ease,transform 0.16s ease;}.camera-card:hover{border-color:#d1d5db;box-shadow:0 10px 26px rgba(15,23,42,0.11);transform:translateY(-1px);}@media (prefers-reduced-motion:reduce){.camera-card,.camera-thumb,.camera-big-play{transition:none;}.camera-card:hover,.camera-card:hover .camera-big-play:not(.disabled){transform:none;}.camera-loading-indicator{animation:none;border-color:#93c5fd;}}.camera-video-wrapper{position:relative;width:100%;border-radius:12px;overflow:hidden;background:#000;}.camera-thumb{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;transition:transform 0.22s ease,opacity 0.22s ease;}.camera-card:hover .camera-thumb{transform:scale(1.025);opacity:0.82;}.camera-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,rgba(25,110,180,0.16),rgba(20,184,166,0.14)),#0f172a;color:#e0f2fe;font-size:13px;font-weight:700;letter-spacing:0;}.camera-player{position:absolute;left:0;top:0;width:100%;height:100%;display:none;background:#000;object-fit:cover;}.camera-info-row{min-height:54px;display:flex;align-items:center;padding:12px 16px 10px;}.camera-identity{min-width:0;display:grid;gap:6px;width:100%;}.camera-info-primary,.camera-info-secondary{min-width:0;display:flex;align-items:baseline;}.camera-info-primary{justify-content:space-between;gap:12px;}.camera-info-secondary{justify-content:flex-start;gap:12px;}.camera-name{min-width:0;color:#111827;font-size:16px;font-weight:600;line-height:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.camera-inline-status{flex:0 0 auto;display:inline-flex;align-items:baseline;gap:6px;color:#16a34a;font-size:13px;font-weight:500;line-height:18px;}.camera-inline-status span{width:6px;height:6px;align-self:center;border-radius:50%;background:#22c55e;}.camera-inline-status.offline{color:#6b7280;}.camera-inline-status.offline span{background:#9ca3af;}.camera-model-badge{flex:0 0 auto;height:20px;display:inline-flex;align-items:center;border:1px solid #e2e8f0;border-radius:999px;background:#eef2f7;color:#475569;font-size:11px;font-weight:500;line-height:18px;padding:0 8px;}.camera-ip-line{min-width:0;color:#64748b;font-size:12px;font-weight:400;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.camera-detection-row{border-top:1px solid #f1f3f5;padding:12px 14px;}@media (max-width:640px){.camera-section-heading{align-items:flex-end;}.camera-channel-empty{min-height:150px;}}.camera-detection-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;row-gap:8px;}.camera-detection-item{min-width:0;height:24px;display:inline-flex;align-items:center;gap:8px;border:1px solid transparent;border-radius:6px;background:transparent;color:#374151;cursor:pointer;justify-content:flex-start;appearance:none;font-family:inherit;padding:0 6px;text-align:left;transition:background 0.16s ease,border-color 0.16s ease,color 0.16s ease;}.camera-detection-item-icon{flex:0 0 auto;width:18px;height:18px;overflow:hidden;background:#9ca3af;color:transparent;font-size:0;line-height:0;-webkit-mask:var(--detection-icon) center / contain no-repeat;mask:var(--detection-icon) center / contain no-repeat;}.camera-detection-item-text{min-width:0;color:inherit;font-size:12px;font-weight:500;line-height:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.camera-detection-item.enabled{color:#374151;}.camera-detection-item.enabled .camera-detection-item-icon{background:#196eb4;}.camera-detection-item.disabled{color:#64748b;}.camera-detection-item.disabled .camera-detection-item-icon{background:#94a3b8;}.camera-detection-item.alarm{color:#dc2626;}.camera-detection-item.alarm .camera-detection-item-icon{background:#dc2626;}.camera-detection-item:hover{border-color:#d6e4ff;background:#f5f8ff;}.camera-detection-item:focus-visible{outline:2px solid rgba(25,110,180,0.42);outline-offset:2px;}.camera-detection-item.active{border-color:rgba(25,110,180,0.34);background:rgba(25,110,180,0.12);color:#196eb4;}.sd-bar{width:6px;height:22px;background:#e5e7eb;border-radius:3px;overflow:hidden;}.sd-bar-fill{width:100%;background:#4A90E2;border-radius:3px;}.camera-big-play{position:absolute;left:50%;top:50%;z-index:5;transform:translate(-50%,-50%) scale(1);width:52px;height:52px;border-radius:50%;background:rgba(0,0,0,0.55);color:#fff;border:none;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity 0.16s ease,background 0.16s ease,transform 0.16s ease;}.camera-big-play.disabled{cursor:not-allowed;}.camera-card:hover .camera-big-play:not(.disabled){background:rgba(25,110,180,0.88);opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1.08);}.camera-live{position:absolute;left:8px;top:8px;padding:2px 6px;border-radius:999px;background:rgba(220,38,38,0.9);color:#fff;font-size:11px;font-weight:500;display:none;z-index:4;}.camera-rec-icon{position:absolute;top:8px;right:8px;display:none;z-index:3;}.camera-rec-icon img{height:18px;}.camera-icon-btn.hidden{display:none;}.camera-settings-panel{position:fixed;top:0;right:0;z-index:9999;width:min(440px,100vw);height:100vh;display:flex;flex-direction:column;background:#fff;box-shadow:-10px 0 30px rgba(15,23,42,0.14);overscroll-behavior:contain;}.camera-settings-header{min-height:64px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #f1f3f5;padding:0 18px;}.camera-settings-device{min-width:0;}.camera-settings-header strong{display:block;color:#111827;font-size:18px;line-height:22px;}.camera-settings-header span{display:block;color:#64748b;font-size:12px;margin-top:2px;}.camera-header-meta{display:flex !important;align-items:center;gap:6px;}.camera-header-submeta{display:flex !important;align-items:center;gap:6px;}.camera-header-meta em,.camera-header-submeta em{display:inline-flex;align-items:center;gap:5px;color:#64748b;font-style:normal;}.camera-header-meta i,.camera-header-submeta i{width:7px;height:7px;border-radius:50%;background:#94a3b8;}.camera-header-meta em.online i,.camera-header-submeta em.online i{background:#22c55e;}.camera-settings-close{width:34px;height:34px;border:0;border-radius:8px;background:#f3f4f6;color:#111827;cursor:pointer;font-size:18px;}.camera-settings-body{display:grid;gap:24px;padding:22px 20px 28px;overflow-y:auto;}.camera-settings-section{display:grid;gap:9px;padding:0;background:transparent;}.camera-settings-section-title,.camera-settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;}.camera-settings-row{min-height:46px;padding:0 22px 0 16px;border-bottom:1px solid #edf1f5;}.camera-settings-section-title strong{color:#5f6368;font-size:13px;font-weight:650;letter-spacing:0;}.camera-settings-card{overflow:hidden;border:1px solid #e5e7eb;border-radius:8px;background:#fff;}.camera-settings-field{display:grid;gap:7px;padding:12px 22px 13px 16px;border-bottom:1px solid #edf1f5;}.camera-settings-field input{box-sizing:border-box;width:100%;min-width:0;height:36px;border:1px solid #dbe3ec;border-radius:8px;background:#fff;color:#111827;font:inherit;font-size:13px;padding:0 10px;outline:none;}.camera-settings-field input:focus{border-color:#196eb4;box-shadow:0 0 0 3px rgba(25,110,180,0.12);}.camera-settings-readonly input{background:#f8fafc;color:#334155;cursor:default;}.camera-settings-readonly input:focus{border-color:#dbe3ec;box-shadow:none;}.camera-secret-field{position:relative;min-width:0;}.camera-secret-field input{padding-right:44px;}.camera-secret-field button{position:absolute;top:50%;right:5px;width:32px;height:32px;display:grid;place-items:center;transform:translateY(-50%);border:0;border-radius:6px;background:transparent;padding:0;cursor:pointer;}.camera-secret-field button:hover{background:#eff6ff;}.camera-secret-field button:focus-visible{outline:2px solid rgba(25,110,180,0.38);outline-offset:2px;}.camera-secret-field button img{width:20px;height:20px;}.camera-connection-actions{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 22px 0 16px;}.camera-connection-actions span{min-width:0;color:#64748b;font-size:12px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.camera-connection-actions button{flex:0 0 auto;height:32px;border:0;border-radius:8px;background:#196eb4;color:#fff;cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;padding:0 12px;}.camera-connection-actions button:disabled{cursor:not-allowed;opacity:0.55;}.camera-property-row{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 22px 0 16px;border-bottom:1px solid #edf1f5;}.camera-name-edit-row{width:100%;min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:0;border-right:0;border-left:0;border-bottom:1px solid #edf1f5;background:transparent;cursor:pointer;appearance:none;font-family:inherit;padding:0 22px 0 16px;text-align:left;}.camera-name-edit-row:hover{background:#f8fafc;}.camera-name-edit-row strong{flex:0 1 auto;display:inline-flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0;}.camera-name-edit-row .camera-setting-label{flex:0 0 auto;}.camera-name-edit-row img{width:15px;height:15px;opacity:0.55;}.camera-settings-card >:last-child{border-bottom:0;}.camera-setting-label{flex:1 1 auto;color:#374151;font-family:inherit;font-size:14px;font-weight:600;line-height:20px;}.camera-property-row strong{min-width:0;color:#334155;font-size:13px;font-weight:650;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.camera-property-row strong.ok{color:#15803d;}.camera-property-row strong.error{color:#dc2626;}.camera-property-row strong.formatting{color:#196eb4;}.camera-property-row strong.muted{color:#64748b;}.camera-settings-note{color:#64748b;font-size:12px;line-height:18px;padding:0 22px 12px 16px;}.camera-action-row{width:100%;min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-bottom:1px solid #edf1f5;border-radius:0;background:transparent;color:#1f2937;cursor:pointer;appearance:none;font-family:inherit;font-size:0;font-weight:400;line-height:normal;padding:0 22px 0 16px;text-align:left;}.camera-action-row:hover{background:#f8fafc;color:#196eb4;}.camera-action-row em{flex:0 0 auto;color:#94a3b8;font-size:18px;font-style:normal;}.camera-action-value{flex:0 0 auto;color:#64748b;font-size:13px;font-weight:650;line-height:20px;}.camera-action-row.danger{color:#dc2626;min-height:46px;padding-top:0;padding-bottom:0;}.camera-action-row.danger .camera-setting-label{color:#dc2626;}.camera-action-row.danger:hover{color:#b91c1c;}.camera-action-row:disabled{cursor:not-allowed;opacity:0.55;}.camera-inline-editor{display:grid;gap:9px;padding:12px 22px 14px 16px;border-bottom:1px solid #edf1f5;}.camera-inline-editor[hidden]{display:none;}.camera-inline-editor p{margin:0;color:#64748b;font-size:12px;line-height:18px;}.camera-inline-editor input{height:36px;border:1px solid #cbd5e1;border-radius:8px;padding:0 10px;color:#111827;font-size:14px;outline:none;}.camera-inline-editor input:focus{border-color:#196eb4;box-shadow:0 0 0 3px rgba(25,110,180,0.12);}.detection-mode-row{align-items:center;}.detection-segmented{flex:0 0 auto;display:inline-flex;padding:2px;border:1px solid #dbe3ec;border-radius:8px;background:#f8fafc;}.detection-segmented button{height:28px;min-width:58px;border:0;border-radius:6px;background:transparent;color:#64748b;cursor:pointer;font-family:inherit;font-size:12px;font-weight:650;touch-action:manipulation;}.detection-segmented button.active{background:#fff;color:#196eb4;box-shadow:0 1px 3px rgba(15,23,42,0.12);}.detection-segmented button:focus-visible,.detection-check-item:focus-within,.detection-number-field input:focus-visible{outline:2px solid rgba(25,110,180,0.45);outline-offset:2px;}.detection-option-block{display:grid;gap:10px;padding:12px 22px 14px 16px;border-bottom:1px solid #edf1f5;}.detection-option-block[hidden]{display:none;}.detection-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}.detection-check-item{min-width:0;height:34px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid #e5e7eb;border-radius:8px;color:#475569;cursor:pointer;font-size:12px;font-weight:600;}.detection-check-item input{width:14px;height:14px;accent-color:#196eb4;}.detection-number-field{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;color:#64748b;font-size:12px;font-weight:650;}.detection-number-field input{width:74px;height:32px;border:1px solid #cbd5e1;border-radius:8px;color:#111827;font-size:13px;outline:none;padding:0 8px;text-align:right;}.detection-schedule-mode{display:grid;grid-template-columns:1fr 1.45fr;gap:8px;padding:12px 16px;border-bottom:1px solid #edf1f5;}.detection-schedule-mode button{min-width:0;height:34px;border:1px solid #dbe3ec;border-radius:8px;background:#fff;color:#475569;cursor:pointer;font-family:inherit;font-size:12px;font-weight:650;overflow:hidden;padding:0 10px;text-overflow:ellipsis;touch-action:manipulation;white-space:nowrap;}.detection-schedule-mode button.active{border-color:rgba(25,110,180,0.32);background:rgba(25,110,180,0.1);color:#196eb4;}.detection-schedule-mode button:hover,.detection-weekday:hover{border-color:#d6e4ff;background:#f5f8ff;}.detection-schedule-fields{display:grid;gap:12px;padding:12px 16px 14px;}.detection-schedule-fields[hidden]{display:none;}.detection-period-list{display:grid;gap:10px;}.detection-period-card{display:grid;gap:10px;padding:10px;border:1px solid #e5e7eb;border-radius:8px;background:#fbfdff;}.detection-period-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}.detection-period-head span{color:#334155;font-size:12px;font-weight:700;}.detection-period-head button{border:0;border-radius:6px;background:transparent;color:#dc2626;cursor:pointer;font-family:inherit;font-size:12px;font-weight:700;padding:4px 6px;touch-action:manipulation;}.detection-period-head button:hover{background:#fef2f2;}.detection-period-head button[hidden]{display:none;}.detection-time-field{min-width:0;display:grid;grid-template-columns:116px minmax(0,1fr);gap:12px;align-items:center;}.detection-time-field span,.detection-repeat-field > .camera-setting-label{color:#374151;font-size:14px;font-weight:600;line-height:20px;}.detection-time-field input{width:100%;height:34px;border:1px solid #cbd5e1;border-radius:8px;color:#111827;font-size:13px;outline:none;padding:0 10px;}.detection-repeat-field{display:grid;gap:10px;}.detection-weekday-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}.detection-weekday{min-width:0;height:32px;display:flex;align-items:center;gap:8px;border:1px solid #e5e7eb;border-radius:8px;color:#64748b;cursor:pointer;font-size:12px;font-weight:600;padding:0 10px;}.detection-weekday.active{border-color:rgba(25,110,180,0.3);background:rgba(25,110,180,0.08);color:#196eb4;}.detection-weekday input{width:13px;height:13px;accent-color:#196eb4;}.detection-schedule-mode button:focus-visible,.detection-period-head button:focus-visible,.detection-time-field input:focus-visible,.detection-weekday:focus-within{outline:2px solid rgba(25,110,180,0.45);outline-offset:2px;}.detection-add-period{width:100%;height:34px;border:1px dashed #cbd5e1;border-radius:8px;background:#fff;color:#196eb4;cursor:pointer;font-family:inherit;font-size:12px;font-weight:700;touch-action:manipulation;}.detection-add-period:hover{border-color:#93c5fd;background:#f5f8ff;}.detection-add-period:focus-visible{outline:2px solid rgba(25,110,180,0.45);outline-offset:2px;}.detection-savebar{position:sticky;bottom:-28px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 -20px -28px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #edf1f5;background:rgba(255,255,255,0.96);}.detection-savebar span{min-width:0;color:#64748b;font-size:12px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.detection-savebar button{flex:0 0 auto;height:34px;border:0;border-radius:8px;background:#196eb4;color:#fff;cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;padding:0 14px;touch-action:manipulation;}.detection-savebar button:disabled{cursor:not-allowed;opacity:0.5;}.detection-savebar button:not(:disabled):hover{background:#145f9f;}.detection-savebar button:focus-visible{outline:2px solid rgba(25,110,180,0.45);outline-offset:2px;}.camera-inline-actions{display:flex;justify-content:flex-end;gap:8px;}.camera-inline-actions button{height:32px;border:0;border-radius:8px;background:transparent;color:#475569;cursor:pointer;font-size:13px;font-weight:700;padding:0 10px;}.camera-inline-actions button:last-child{background:#196eb4;color:#fff;}.camera-inline-actions button:disabled{cursor:not-allowed;opacity:0.56;}.camera-switch{position:relative;width:42px;height:24px;display:inline-block;}.camera-switch input{opacity:0;width:0;height:0;}.camera-switch span{position:absolute;inset:0;border-radius:999px;background:#cbd5e1;cursor:pointer;transition:background 0.16s ease;}.camera-switch span::before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;transition:transform 0.16s ease;}.camera-switch input:checked + span{background:#196eb4;}.camera-switch input:checked + span::before{transform:translateX(18px);}.camera-switch input:disabled + span{cursor:not-allowed;opacity:0.58;}.camera-toolbar-floating{position:absolute;left:0;right:0;bottom:0;padding:6px 10px;display:flex;gap:8px;align-items:center;background:linear-gradient(to top,rgba(0,0,0,0.6),transparent);opacity:0;pointer-events:none;transition:opacity 0.2s;}.camera-card:not(.playing) .camera-toolbar-floating{opacity:0 !important;pointer-events:none !important;}.camera-video-wrapper:hover .camera-toolbar-floating{opacity:1;pointer-events:auto;}.camera-card.playing .camera-video-wrapper:hover .camera-toolbar-floating{opacity:1;pointer-events:auto;}.camera-icon-btn{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,0.9);display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;}.camera-icon-btn img{width:18px;height:18px;}.camera-video-wrapper{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:12px;overflow:hidden;background:#000;cursor:pointer;}.camera-card.playing .camera-video-wrapper{cursor:default;}.camera-stream-tag{padding:2px 6px;border-radius:999px;background:rgba(15,23,42,0.7);color:#e5e7eb;font-size:11px;font-weight:500;display:none;}.dialog-backdrop{position:fixed;left:0;top:0;right:0;bottom:0;background:rgba(0,0,0,0.35);display:flex;align-items:center;justify-content:center;z-index:9999;}.dialog{width:320px;background:#fff;border-radius:14px;padding:20px;box-shadow:0 6px 20px rgba(0,0,0,0.15);animation:dialog-pop 0.18s ease-out;}@keyframes dialog-pop{from{transform:scale(0.92);opacity:0;}to{transform:scale(1);opacity:1;}}.dialog-title{font-size:18px;font-weight:600;margin-bottom:16px;color:#111;}.dialog-field{position:relative;margin-bottom:20px;}.dialog-field input{width:100%;box-sizing:border-box;padding:14px 12px 6px;font-size:15px;border:1px solid #ccc;border-radius:8px;outline:none;background:#fff;}.dialog-field input:focus{border-color:#4A90E2;}.dialog-field label{position:absolute;left:14px;top:14px;font-size:14px;color:#666;transition:0.15s;pointer-events:none;background:#fff;padding:0 4px;}.dialog-field input:focus + label,.dialog-field input:not(:placeholder-shown) + label{top:-6px;left:10px;font-size:12px;color:#4A90E2;}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;}.dialog-btn{padding:6px 14px;border-radius:8px;border:none;cursor:pointer;font-size:14px;}.dialog-btn.cancel{background:#f3f4f6;}.dialog-btn.confirm{background:#4A90E2;color:#fff;}.add-camera-panel{position:fixed;top:0;right:0;width:min(480px,100vw);height:100%;background:#fff;box-shadow:-4px 0 12px rgba(0,0,0,0.1);display:flex;flex-direction:column;z-index:9999;pointer-events:auto;overscroll-behavior:contain;}.add-camera-header{height:56px;display:flex;align-items:center;padding:0 16px;border-bottom:1px solid #eee;font-size:18px;font-weight:600;}.add-camera-header strong{font-size:18px;}.add-camera-back{width:36px;height:36px;flex:0 0 auto;border:0;border-radius:8px;background:transparent;color:#334155;cursor:pointer;font-size:20px;padding:0;margin-right:8px;display:inline-flex;align-items:center;justify-content:center;user-select:none;}.add-camera-back:hover{background:#f1f5f9;}.add-camera-back:focus-visible,.bind-wifi-fields input:focus-visible,.bind-generate-btn:focus-visible,.switch input:focus-visible + .slider{outline:2px solid rgba(25,110,180,0.38);outline-offset:2px;}.add-camera-body{padding:16px;overflow-y:auto;}.ip-camera-form{display:grid;gap:14px;}.ip-camera-form label{display:grid;gap:6px;color:#374151;font-size:13px;font-weight:600;}.ip-camera-form input{height:42px;border:1px solid #d1d5db;border-radius:8px;padding:0 11px;font-size:14px;outline:none;}.ip-camera-form select{width:100%;height:42px;border:1px solid #d1d5db;border-radius:8px;background:#fff;padding:0 36px 0 11px;color:#111827;font-size:14px;outline:none;}.ip-camera-form input:focus-visible,.ip-camera-form select:focus-visible{border-color:#196eb4;box-shadow:0 0 0 3px rgba(25,110,180,0.12);}.ip-camera-secret-field{position:relative;min-width:0;}.ip-camera-secret-field input{width:100%;box-sizing:border-box;padding-right:44px;}.ip-camera-secret-field button{position:absolute;top:50%;right:5px;width:32px;height:32px;display:grid;place-items:center;transform:translateY(-50%);border:0;border-radius:6px;background:transparent;padding:0;cursor:pointer;}.ip-camera-secret-field button:hover{background:#eff6ff;}.ip-camera-secret-field button:focus-visible{outline:2px solid rgba(25,110,180,0.38);outline-offset:2px;}.ip-camera-secret-field button img{width:20px;height:20px;}.ip-camera-id-hint{display:grid;gap:4px;border:1px solid #e5e7eb;border-radius:10px;background:#f8fafc;padding:12px;}.ip-camera-id-hint span{color:#64748b;font-size:12px;}.ip-camera-id-hint strong{color:#0f172a;font-size:14px;}.ip-camera-two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px;}.ip-camera-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px;}.ip-camera-message{min-height:18px;color:#64748b;font-size:13px;}.ip-camera-message:empty{min-height:0;}.ip-camera-message.success{color:#15803d;}.ip-camera-message.error{color:#dc2626;}.onvif-add-header h2{min-width:0;margin:0;overflow:hidden;font-size:18px;font-weight:600;text-overflow:ellipsis;text-wrap:balance;white-space:nowrap;}.onvif-rescan{margin-left:auto;}.onvif-rescan:disabled,.onvif-read-streams:disabled,#onvif-save:disabled{opacity:0.55;cursor:not-allowed;}.onvif-add-body{flex:1;padding-bottom:max(16px,env(safe-area-inset-bottom));overflow-x:hidden;}.onvif-search-status{min-height:44px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #e5e7eb;color:#64748b;font-size:13px;}.onvif-search-status.searching{color:#334155;}.onvif-search-status.error{color:#dc2626;}.onvif-device-list{display:grid;}.onvif-device-row{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;border:0;border-bottom:1px solid #e5e7eb;background:transparent;padding:14px 2px;color:#0f172a;text-align:left;touch-action:manipulation;cursor:pointer;}.onvif-device-row:hover{background:#f8fafc;}.onvif-device-row:focus-visible,.onvif-change-device:focus-visible,.onvif-rescan:focus-visible,.onvif-read-streams:focus-visible{outline:2px solid rgba(25,110,180,0.38);outline-offset:2px;}.onvif-device-main{min-width:0;display:grid;gap:4px;}.onvif-device-main strong,.onvif-device-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.onvif-device-main strong{font-size:14px;font-weight:650;}.onvif-device-main span,.onvif-device-host{color:#64748b;font-size:12px;}.onvif-device-host{white-space:nowrap;}.onvif-connect{display:grid;gap:14px;}.onvif-connect[hidden]{display:none;}.onvif-change-device{width:fit-content;border:0;background:transparent;padding:0;color:#196eb4;font-size:13px;touch-action:manipulation;cursor:pointer;}.onvif-change-device:hover{text-decoration:underline;}.onvif-selected-device{min-width:0;display:grid;gap:4px;border-bottom:1px solid #e5e7eb;padding-bottom:14px;}.onvif-selected-device strong{overflow:hidden;color:#0f172a;font-size:16px;text-overflow:ellipsis;white-space:nowrap;}.onvif-selected-device span{overflow:hidden;color:#64748b;font-size:12px;text-overflow:ellipsis;white-space:nowrap;}.onvif-read-streams{width:fit-content;}.onvif-binding-fields{display:grid;gap:14px;}.onvif-binding-fields[hidden]{display:none;}.ip-camera-form #onvif-stream-field[hidden]{display:none;}@media (max-width:520px){.ip-camera-two-col{grid-template-columns:1fr;}.onvif-device-row{grid-template-columns:minmax(0,1fr);gap:5px;}.onvif-device-host{white-space:normal;}}.section-title{font-size:16px;font-weight:600;margin:0px 0 8px;}.qr-box,.radar-box{background:#fafafa;border-radius:12px;padding:16px;text-align:center;margin-bottom:20px;}.qr-img{width:fit-content;max-width:100%;max-width:180px;margin:0 auto;background:#ffffff;border:1px solid #d1d5db;border-radius:12px;padding:12px;box-sizing:border-box;}.qr-img img,.qr-img canvas{display:block;width:auto;max-width:100%;height:auto;margin:0 auto;}#bind-qr-panel .qr-img{width:min(320px,100%);max-width:320px;}#bind-qr-panel{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:12px;padding:12px;box-sizing:border-box;}.radar-img{width:200px;height:200px;}.radar{position:relative;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle at center,#1e88e5 0,#0d47a1 60%,#002b5c 100%);margin:0 auto;overflow:hidden;}.radar-circle{position:absolute;border:1px solid rgba(255,255,255,0.25);border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);}.radar-circle{width:90px;height:90px;}.radar-circle-2{width:130px;height:130px;}.radar-circle-3{width:170px;height:170px;}.radar-sweep{position:absolute;width:100%;height:100%;background:conic-gradient( rgba(0,255,0,0.6),rgba(0,255,0,0.0) );transform-origin:50% 50%;animation:radar-rotate 2s linear infinite;}@keyframes radar-rotate{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}.bind-success-item{background:#fafafa;border-radius:12px;padding:12px 16px;margin-bottom:12px;display:flex;align-items:center;gap:12px;border:1px solid #eee;}.bind-success-icon{width:40px;height:40px;background:#e3f2fd;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:22px;color:#1976d2;}.bind-success-info{flex:1;}.bind-success-title{font-size:15px;font-weight:600;}.bind-success-sub{font-size:13px;color:#666;}.bind-protection-warning{display:flex;align-items:center;gap:8px;margin-top:6px;color:#b45309;font-size:12px;}.bind-protection-retry{border:0;background:transparent;color:var(--primary);padding:0;font:inherit;cursor:pointer;}.bind-protection-retry:hover{text-decoration:underline;}.bind-protection-retry:focus-visible{outline:2px solid rgba(45,108,223,.35);outline-offset:2px;}.bind-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;}.bind-col{flex:1;min-width:0;}.bind-card{box-sizing:border-box;border:1px solid #e5e7eb;border-radius:8px;padding:16px;background:#fff;display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-bottom:16px;}.bind-card-title{align-self:flex-start;font-size:15px;font-weight:600;color:#111;margin-bottom:6px;}.bind-scan-title{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;}.bind-wifi-fields{width:100%;display:grid;gap:8px;margin-bottom:4px;}.bind-wifi-fields input{width:100%;height:40px;box-sizing:border-box;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#111827;padding:0 10px;font:inherit;font-size:14px;outline:none;}.bind-wifi-fields input:focus{border-color:#196eb4;box-shadow:0 0 0 3px rgba(25,110,180,0.12);}.bind-secret-field{position:relative;min-width:0;}.bind-secret-field input{padding-right:44px;}.bind-secret-toggle{position:absolute;top:50%;right:5px;width:32px;height:32px;display:grid;place-items:center;transform:translateY(-50%);border:0;border-radius:6px;background:transparent;padding:0;cursor:pointer;}.bind-secret-toggle:hover{background:#eff6ff;}.bind-secret-toggle:focus-visible{outline:2px solid rgba(25,110,180,0.38);outline-offset:2px;}.bind-secret-toggle img{width:20px;height:20px;}.bind-generate-btn{width:100%;}.bind-tip{margin-top:8px;color:#666;font-size:13px;}.pair-box{background:#fafafa;border-radius:12px;padding:16px;text-align:center;border:1px solid #eee;margin-bottom:20px;}.bind-success-item{background:#fafafa;border-radius:12px;padding:12px 16px;margin-bottom:12px;display:flex;align-items:center;gap:12px;border:1px solid #eee;}.bind-success-icon{width:40px;height:40px;background:#e3f2fd;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:22px;color:#1976d2;}.bind-success-info{flex:1;}.bind-success-title{font-size:15px;font-weight:600;}.bind-success-sub{font-size:13px;color:#666;}.pair-wrapper{position:relative;width:min(260px,100%);height:auto;display:flex;justify-content:center;margin:0 auto;}@media (max-width:720px){.bind-row,.ip-camera-two-col{grid-template-columns:1fr;}.ip-camera-actions{align-items:stretch;flex-direction:column-reverse;}.ip-camera-actions .toolbar-btn{width:100%;}}@media (prefers-reduced-motion:reduce){.slider,.slider::before{transition:none;}}.pair-gif{width:100%;display:block;}.pair-arrow{position:absolute;top:0;left:50%;width:94%;transform:translateX(-50%);pointer-events:none;}.switch{position:relative;display:inline-block;width:42px;height:22px;vertical-align:middle;}.switch input{position:absolute;width:1px;height:1px;opacity:0;}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:22px;}.slider:before{position:absolute;content:"";height:18px;width:18px;left:2px;bottom:2px;background-color:white;transition:.4s;border-radius:50%;}input:checked + .slider{background-color:#4A90E2;}input:checked + .slider:before{transform:translateX(20px);}.ai-chat-page{height:calc(100dvh - var(--nav-height) - 48px);min-height:0;display:flex;flex-direction:column;gap:14px;color:#0f172a;}.ai-chat-header{min-height:38px;display:flex;align-items:center;}.ai-chat-header h1{margin:0;font-size:24px;line-height:32px;font-weight:760;text-wrap:balance;}.ai-chat-header p{margin:3px 0 0;color:#64748b;font-size:13px;}.ai-chat-workbench{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto auto;overflow:hidden;border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 5px 16px rgba(15,23,42,0.035);}.ai-chat-messages{min-height:0;overflow-y:auto;padding:8px 18px;}.ai-chat-empty{min-height:100%;display:grid;place-content:center;justify-items:center;gap:10px;color:#334155;padding:28px;text-align:center;}.ai-chat-empty img{width:28px;height:28px;opacity:0.72;}.ai-chat-empty strong{font-size:14px;font-weight:720;}.ai-chat-suggestions{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin-top:3px;}.ai-chat-suggestions button,.ai-chat-send-btn{border:1px solid #dbe3ec;border-radius:8px;background:#fff;color:#334155;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:rgba(25,110,180,0.12);transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease,transform 100ms ease;}.ai-chat-suggestions button{min-height:32px;padding:0 11px;font-size:12px;}.ai-chat-suggestions button:hover{border-color:#bfdbfe;background:#f8fbff;color:#196eb4;}.ai-chat-message{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;border-bottom:1px solid #edf2f7;padding:15px 0;}.ai-chat-message:last-child{border-bottom:0;}.ai-chat-message-role{width:30px;height:30px;display:grid;place-items:center;border-radius:7px;background:#f1f5f9;color:#475569;font-size:11px;font-weight:800;}.ai-chat-message.assistant .ai-chat-message-role{background:#eaf3fb;color:#196eb4;}.ai-chat-message-body{min-width:0;color:#334155;padding-top:4px;font-size:13px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;}.ai-chat-message.error .ai-chat-message-body{color:#b42318;}.ai-chat-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:end;border-top:1px solid #e2e8f0;padding:12px 14px;}.ai-chat-input{width:100%;min-height:40px;max-height:120px;resize:vertical;box-sizing:border-box;border:1px solid #dbe3ec;border-radius:8px;background:#fff;color:#0f172a;padding:9px 11px;font:inherit;font-size:13px;line-height:20px;}.ai-chat-input::placeholder{color:#94a3b8;}.ai-chat-send-btn{height:40px;border-color:#196eb4;background:#196eb4;color:#fff;padding:0 15px;font-size:12px;font-weight:720;}.ai-chat-send-btn:hover:not(:disabled){border-color:#155f9d;background:#155f9d;}.ai-chat-send-btn:disabled{cursor:not-allowed;opacity:0.5;}.ai-chat-status{min-height:22px;color:#64748b;padding:0 14px 8px;font-size:11px;}.ai-chat-input:focus-visible,.ai-chat-suggestions button:focus-visible,.ai-chat-send-btn:focus-visible{outline:2px solid rgba(25,110,180,0.34);outline-offset:2px;}@media (max-width:620px){.ai-chat-page{height:auto;min-height:calc(100dvh - var(--nav-height) - 48px);}.ai-chat-header h1{font-size:21px;line-height:28px;}.ai-chat-workbench{min-height:560px;}.ai-chat-messages{padding-right:12px;padding-left:12px;}.ai-chat-empty{padding:20px 12px;}.ai-chat-suggestions{align-items:stretch;flex-direction:column;width:100%;}.ai-chat-composer{padding-right:10px;padding-left:10px;}}@media (prefers-reduced-motion:reduce){.ai-chat-suggestions button,.ai-chat-send-btn{transition:none;}}.playback-page{--playback-border:#e2e8f0;--playback-border-strong:#cbd5e1;--playback-muted:#64748b;--playback-ink:#0f172a;--playback-primary:#196eb4;height:calc(100vh - var(--nav-height) - 48px);min-height:0;display:flex;flex-direction:column;gap:14px;overflow:hidden;color:var(--playback-ink);}.playback-page-header{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:20px;}.playback-page-title{min-width:0;display:flex;align-items:center;}.playback-page-title h1{flex:none;margin:0;color:var(--playback-ink);font-size:24px;line-height:32px;font-weight:760;text-wrap:balance;}.playback-count-badge{flex:none;display:inline-flex;align-items:center;border:1px solid #dbeafe;border-radius:999px;background:#eff6ff;color:var(--playback-primary);font-size:12px;font-weight:700;}.playback-count-badge{min-height:24px;padding:0 8px;}.playback-workspace{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:304px minmax(0,1fr);gap:14px;}.playback-sidebar,.playback-main{min-width:0;min-height:0;}.playback-sidebar{display:flex;flex-direction:column;gap:12px;overflow:hidden;}.playback-main{overflow:hidden;}.playback-panel,.playback-review-surface{border:1px solid var(--playback-border);border-radius:8px;background:#fff;box-shadow:0 5px 16px rgba(15,23,42,0.035);}.playback-panel{padding:14px;}.playback-calendar-panel{flex:0 0 auto;}.camera-panel{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;}.playback-panel-head,.playback-player-topbar,.timeline-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}.playback-panel-head{margin-bottom:11px;}.playback-panel-head > div,.playback-player-heading,.timeline-header > div:first-child{min-width:0;}.playback-panel-head h2,.playback-player-topbar h2,.timeline-header h3{margin:0;color:var(--playback-ink);font-size:15px;line-height:21px;font-weight:740;}.playback-player-topbar h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.timeline-header span,.playback-panel-head > span{color:var(--playback-muted);font-size:12px;}.calendar-nav,.timeline-zoom-controls{display:inline-flex;align-items:center;gap:5px;}.calendar-nav-btn,.timeline-zoom-btn,.playback-control-btn{height:32px;border:1px solid #dbe3ec;border-radius:8px;background:#fff;color:#334155;cursor:pointer;touch-action:manipulation;transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease,transform 100ms ease;}.calendar-nav-btn,.timeline-zoom-btn{width:32px;padding:0;font-size:18px;line-height:1;}.calendar-nav-btn:hover,.timeline-zoom-btn:hover,.playback-control-btn:hover,.playback-target-chip:hover{border-color:#bfdbfe;background:#f8fbff;color:var(--playback-primary);}.calendar-nav-btn:active,.timeline-zoom-btn:active,.playback-control-btn:active,.playback-target-chip:active{transform:translateY(1px);}.calendar-nav-btn:disabled,.timeline-zoom-btn:disabled,.playback-control-btn:disabled,.playback-speed-selector:disabled{cursor:not-allowed;opacity:0.46;}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;}.calendar-weekdays{margin-bottom:5px;}.calendar-weekday{padding:3px 0;color:#94a3b8;text-align:center;font-size:10px;font-weight:700;}.calendar-day{position:relative;width:100%;aspect-ratio:1;display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:#334155;padding:0;font:inherit;font-size:12px;cursor:pointer;touch-action:manipulation;}.calendar-day:hover{background:#f1f5f9;}.calendar-day.other-month{color:#cbd5e1;cursor:default;}.calendar-day.selected{background:var(--playback-primary);color:#fff;font-weight:760;}.calendar-day.has-events::after{content:"";position:absolute;bottom:4px;width:4px;height:4px;border-radius:50%;background:#ef4444;}.calendar-day.selected.has-events::after{background:#fff;}.camera-list{flex:1 1 auto;min-height:0;display:grid;align-content:start;gap:7px;overflow-y:auto;padding-right:2px;}.camera-list-item{width:100%;min-width:0;display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid #edf2f7;border-radius:8px;background:#fff;padding:9px 10px;color:inherit;text-align:left;cursor:pointer;touch-action:manipulation;transition:background-color 140ms ease,border-color 140ms ease;}.camera-list-item:hover{border-color:#bfdbfe;background:#f8fbff;}.camera-list-item.selected{border-color:#93c5fd;background:#eff6ff;box-shadow:inset 3px 0 var(--playback-primary);}.camera-list-item-status{width:8px;height:8px;border-radius:50%;background:#ef4444;}.camera-list-item-status.online{background:#22c55e;}.camera-list-item-copy{min-width:0;display:grid;gap:2px;}.camera-list-item-name,.camera-list-item-id{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.camera-list-item-name{color:var(--playback-ink);font-size:13px;font-weight:720;}.camera-list-item-id,.camera-list-item-state{color:var(--playback-muted);font-size:11px;}.camera-list-item-state{white-space:nowrap;}.playback-state-row{min-height:104px;display:grid;place-content:center;gap:4px;border:1px dashed var(--playback-border-strong);border-radius:8px;background:#f8fafc;color:var(--playback-muted);padding:16px;text-align:center;font-size:12px;}.playback-state-row strong{color:#334155;font-size:13px;}.playback-state-row.error,.playback-state-row.error strong{color:#b42318;}.playback-review-surface{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;}.playback-player-topbar{flex:0 0 auto;align-items:center;padding:10px 14px;border-bottom:1px solid #edf2f7;}.playback-target-filter{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;}.playback-target-chip{height:30px;border:1px solid #dbe3ec;border-radius:999px;background:#fff;color:#475569;padding:0 10px;font-size:12px;font-weight:700;cursor:pointer;touch-action:manipulation;transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease,transform 100ms ease;}.playback-target-chip.active{border-color:#bfdbfe;background:#eff6ff;color:var(--playback-primary);}.playback-player-wrapper{position:relative;flex:1 1 auto;min-height:248px;margin:0 14px;overflow:hidden;border-radius:8px;background:#020617;}.playback-player-video,.playback-player-canvas{width:100%;height:100%;display:block;object-fit:contain;}.playback-player-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:rgba(2,6,23,0.88);color:#cbd5e1;padding:24px;text-align:center;}.playback-overlay-title{color:#f8fafc;font-size:14px;font-weight:720;}.playback-overlay-detail{color:#94a3b8;font-size:12px;}.playback-controlbar{flex:0 0 auto;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 14px;}.playback-control-group,.playback-control-meta,.playback-speed-control{display:flex;align-items:center;}.playback-control-group,.playback-control-meta{gap:7px;}.playback-control-btn{min-width:42px;padding:0 10px;font-size:12px;font-weight:760;}.playback-control-btn.primary{width:42px;min-width:42px;border-color:var(--playback-primary);background:var(--playback-primary);color:#fff;font-size:14px;}.playback-control-btn.primary:hover:not(:disabled){border-color:#155f9d;background:#155f9d;color:#fff;}.playback-speed-control{gap:7px;color:var(--playback-muted);font-size:12px;}.playback-speed-selector{height:32px;border:1px solid #dbe3ec;border-radius:8px;background:#fff;color:#334155;padding:0 8px;font-size:12px;font-weight:700;}.playback-timeline-section{flex:0 0 auto;border-top:1px solid var(--playback-border);background:#fbfdff;padding:8px 14px 12px;}.timeline-header{align-items:center;justify-content:flex-end;margin-bottom:6px;}.timeline-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;}.timeline-zoom-controls > span{min-width:50px;color:#475569;text-align:center;font-size:11px;font-variant-numeric:tabular-nums;}.timeline-wrapper{position:relative;height:94px;overflow:hidden;border:1px solid #e6edf5;border-radius:8px;background:#f8fafc;cursor:grab;touch-action:pan-y;-webkit-tap-highlight-color:rgba(25,110,180,0.12);}.timeline-wrapper:active{cursor:grabbing;}.timeline-wrapper.dragging{user-select:none;}.timeline-canvas{display:block;}.timeline-seeker{position:absolute;left:50%;top:20px;bottom:19px;width:2px;background:#ef4444;pointer-events:none;z-index:10;transform:translateX(-50%);}.timeline-seeker::before{content:"";position:absolute;top:-7px;left:50%;width:11px;height:11px;border:2px solid #fff;border-radius:50%;background:#ef4444;box-shadow:0 2px 6px rgba(15,23,42,0.18);transform:translateX(-50%);}.timeline-track{position:absolute;inset:0;}.timeline-current-time{position:absolute;right:9px;bottom:6px;height:20px;display:inline-flex;align-items:center;border:1px solid var(--playback-border);border-radius:999px;background:#fff;color:#334155;padding:0 8px;font-size:11px;font-variant-numeric:tabular-nums;pointer-events:none;}.timeline-empty-message{position:absolute;inset:29px 70px 23px;display:grid;place-items:center;color:#94a3b8;font-size:12px;pointer-events:none;}.timeline-empty-message[hidden]{display:none;}.calendar-nav-btn:focus-visible,.calendar-day:focus-visible,.timeline-zoom-btn:focus-visible,.timeline-wrapper:focus-visible,.playback-control-btn:focus-visible,.playback-speed-selector:focus-visible,.playback-target-chip:focus-visible,.camera-list-item:focus-visible{outline:2px solid rgba(25,110,180,0.34);outline-offset:2px;}@media (max-width:1120px){.playback-page{height:auto;min-height:calc(100vh - var(--nav-height) - 48px);overflow:visible;}.playback-workspace{grid-template-columns:1fr;}.playback-sidebar{display:grid;grid-template-columns:minmax(280px,0.72fr) minmax(0,1fr);overflow:visible;}.camera-panel{min-height:292px;}.playback-review-surface{min-height:620px;}}@media (max-height:820px) and (min-width:1121px){.playback-page{gap:10px;}.playback-page-header{min-height:34px;}.playback-page-title h1{font-size:21px;line-height:28px;}.playback-panel{padding:11px;}.calendar-day{aspect-ratio:auto;height:26px;}.playback-player-topbar{padding:10px 12px 9px;}.playback-player-wrapper{min-height:210px;margin:10px 12px 0;}.playback-controlbar{min-height:46px;padding:7px 12px;}.playback-timeline-section{padding:9px 12px 11px;}.timeline-wrapper{height:80px;}}@media (max-width:760px){.playback-page-header,.playback-player-topbar,.timeline-header,.timeline-actions{align-items:flex-start;flex-direction:column;}.playback-sidebar{grid-template-columns:1fr;}.playback-target-filter,.timeline-actions{width:100%;justify-content:flex-start;}.playback-target-filter{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;}.playback-target-chip{flex:none;}.playback-review-surface{min-height:560px;}.playback-player-wrapper{flex:0 0 auto;min-height:0;aspect-ratio:16 / 9;margin:12px 12px 0;}.playback-player-topbar,.playback-timeline-section{padding-right:12px;padding-left:12px;}.playback-controlbar{overflow-x:auto;padding-right:12px;padding-left:12px;}.playback-control-group,.playback-control-meta{flex:none;}.timeline-actions{gap:8px;}.timeline-wrapper{height:88px;}}@media (max-width:420px){.playback-page-title h1{font-size:21px;}.playback-panel,.playback-player-topbar,.playback-timeline-section{padding-right:10px;padding-left:10px;}.playback-player-wrapper{margin-right:10px;margin-left:10px;}}@media (prefers-reduced-motion:reduce){.calendar-nav-btn,.timeline-zoom-btn,.playback-control-btn,.playback-target-chip,.camera-list-item{transition:none;}}.leave-page{min-height:100%;display:flex;flex-direction:column;gap:14px;color:#0f172a;}.leave-header{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:16px;}.leave-header h1{margin:0;font-size:24px;line-height:32px;font-weight:760;text-wrap:balance;}.leave-refresh-btn,.leave-audio-btn{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:rgba(25,110,180,0.12);}.leave-refresh-btn,.leave-refresh-btn{border:1px solid #dbe3ec;background:#fff;color:#334155;transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease,transform 100ms ease;}.leave-refresh-btn{height:34px;border-radius:8px;padding:0 13px;font-size:12px;font-weight:700;}.leave-refresh-btn:hover{border-color:#bfdbfe;background:#f8fbff;color:#196eb4;}.leave-refresh-btn:active{transform:translateY(1px);}.leave-refresh-btn:disabled{cursor:not-allowed;opacity:0.5;}.leave-panel{overflow:hidden;border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 5px 16px rgba(15,23,42,0.035);}.leave-toolbar{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #edf2f7;padding:9px 12px;}.leave-toolbar > strong{color:#0f172a;font-size:13px;font-weight:720;}.leave-list-meta{flex:none;color:#64748b;font-size:12px;font-variant-numeric:tabular-nums;}.leave-list{display:grid;}.leave-message-row{min-width:0;display:grid;grid-template-columns:36px minmax(0,1fr);gap:11px;align-items:start;border-bottom:1px solid #edf2f7;padding:14px;content-visibility:auto;contain-intrinsic-size:auto 78px;}.leave-message-row:last-child{border-bottom:0;}.leave-message-row:hover{background:#fbfdff;}.leave-message-row.unread{box-shadow:inset 3px 0 #196eb4;}.leave-avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#eaf3fb;color:#196eb4;font-size:13px;font-weight:800;}.leave-message-main{min-width:0;display:grid;gap:6px;}.leave-meta{min-width:0;display:flex;align-items:center;gap:8px;}.leave-sender{min-width:0;overflow:hidden;color:#0f172a;font-size:13px;font-weight:720;text-overflow:ellipsis;white-space:nowrap;}.leave-meta time{flex:none;color:#64748b;font-size:11px;font-variant-numeric:tabular-nums;}.leave-unread-dot{flex:none;color:#196eb4;font-size:10px;font-weight:720;}.leave-content{min-width:0;}.leave-content p{margin:0;color:#334155;font-size:13px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;}.leave-audio-btn{width:min(420px,100%);min-height:38px;display:grid;grid-template-columns:24px minmax(90px,1fr) auto;gap:9px;align-items:center;border:0;border-radius:7px;background:#f8fafc;color:inherit;padding:6px 9px;text-align:left;}.leave-audio-btn:hover{background:#eff6ff;}.leave-play-icon{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#196eb4;color:#fff;font-size:10px;}.leave-wave{height:18px;display:flex;align-items:center;gap:3px;overflow:hidden;}.leave-wave span{width:3px;flex:none;border-radius:999px;background:#60a5fa;}.leave-duration{color:#64748b;font-size:11px;white-space:nowrap;}.leave-duration{font-variant-numeric:tabular-nums;}.leave-empty{min-height:240px;display:grid;place-content:center;gap:5px;color:#64748b;padding:24px;text-align:center;font-size:12px;}.leave-empty strong{color:#334155;font-size:13px;}.leave-empty.error,.leave-empty.error strong{color:#b42318;}.leave-notice{min-height:18px;color:#b42318;font-size:12px;}.leave-refresh-btn:focus-visible,.leave-audio-btn:focus-visible{outline:2px solid rgba(25,110,180,0.34);outline-offset:2px;}.menu-item{position:relative;}.menu-badge{display:none;min-width:18px;height:18px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;line-height:18px;text-align:center;padding:0 5px;margin-left:auto;box-sizing:border-box;}.menu-badge.visible{display:inline-block;}@media (max-width:620px){.leave-header h1{font-size:21px;line-height:28px;}.leave-toolbar{min-height:48px;}.leave-list-meta{padding-left:3px;}.leave-message-row{padding-right:11px;padding-left:11px;}.leave-meta{align-items:flex-start;flex-wrap:wrap;gap:4px 8px;}.leave-audio-btn{grid-template-columns:24px minmax(70px,1fr) auto;}}@media (prefers-reduced-motion:reduce){.leave-refresh-btn,.leave-refresh-btn{transition:none;}}.upgrade-page{min-height:100%;display:flex;flex-direction:column;gap:14px;color:#0f172a;}.upgrade-header{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:16px;}.upgrade-header h1{margin:0;font-size:24px;line-height:32px;font-weight:760;text-wrap:balance;}.upgrade-refresh-btn,.upgrade-btn{border:1px solid #dbe3ec;background:#fff;color:#334155;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:rgba(25,110,180,0.12);transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease,transform 100ms ease;}.upgrade-refresh-btn{height:34px;border-radius:8px;padding:0 13px;font-size:12px;font-weight:700;}.upgrade-refresh-btn:hover,.upgrade-btn:hover{border-color:#bfdbfe;background:#f8fbff;color:#196eb4;}.upgrade-refresh-btn:active,.upgrade-btn:active{transform:translateY(1px);}.upgrade-refresh-btn:disabled,.upgrade-btn:disabled{cursor:not-allowed;opacity:0.5;}.upgrade-panel{overflow:hidden;border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 5px 16px rgba(15,23,42,0.035);}.upgrade-toolbar{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #edf2f7;padding:9px 12px;}.upgrade-toolbar > strong{color:#0f172a;font-size:13px;font-weight:720;}.upgrade-list-meta{flex:none;color:#64748b;font-size:12px;font-variant-numeric:tabular-nums;}.upgrade-list{display:grid;}.upgrade-model-group + .upgrade-model-group{border-top:8px solid #f7fbff;}.upgrade-model-header{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #edf2f7;padding:10px 14px;background:#fbfdff;}.upgrade-model-title{min-width:0;display:flex;align-items:baseline;gap:9px;}.upgrade-model-title h3{min-width:0;margin:0;overflow:hidden;color:#0f172a;font-size:14px;line-height:20px;font-weight:740;text-overflow:ellipsis;white-space:nowrap;}.upgrade-model-title span,.upgrade-target-version span{flex:none;color:#64748b;font-size:11px;}.upgrade-target-version{flex:none;display:flex;align-items:baseline;gap:7px;font-variant-numeric:tabular-nums;}.upgrade-target-version strong{color:#0f172a;font-size:12px;}.upgrade-model-devices{display:grid;}.upgrade-row{min-width:0;display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(150px,0.75fr) minmax(190px,1fr) auto;gap:16px;align-items:center;border-bottom:1px solid #edf2f7;padding:14px;content-visibility:auto;contain-intrinsic-size:auto 110px;}.upgrade-row:last-child{border-bottom:0;}.upgrade-row:hover{background:#fbfdff;}.upgrade-device,.upgrade-state-block{min-width:0;display:grid;gap:4px;}.upgrade-device strong,.upgrade-device span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.upgrade-device strong{color:#0f172a;font-size:13px;font-weight:720;}.upgrade-device span{color:#64748b;font-size:11px;}.upgrade-version-path{min-width:0;display:flex;align-items:center;gap:8px;color:#64748b;font-size:12px;font-variant-numeric:tabular-nums;}.upgrade-version-path span,.upgrade-version-path strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.upgrade-version-path i{flex:none;color:#94a3b8;font-style:normal;}.upgrade-version-path strong{color:#0f172a;}.upgrade-status{width:max-content;min-height:24px;display:inline-flex;align-items:center;border-radius:999px;background:#f1f5f9;color:#475569;padding:0 9px;font-size:11px;font-weight:700;white-space:nowrap;}.upgrade-status.active{background:#eff6ff;color:#196eb4;}.upgrade-status.failed{background:#fef2f2;color:#b42318;}.upgrade-status.done{background:#ecfdf5;color:#047857;}.upgrade-progress{width:min(180px,100%);height:5px;overflow:hidden;border-radius:999px;background:#e2e8f0;}.upgrade-progress-fill{height:100%;border-radius:inherit;background:#196eb4;}.upgrade-row-actions{display:flex;align-items:center;justify-content:flex-end;}.upgrade-release-notes{display:grid;grid-template-columns:90px minmax(0,1fr);gap:14px;border-bottom:1px solid #edf2f7;background:#f8fafc;padding:12px 14px;}.upgrade-release-notes > span{color:#475569;font-size:11px;font-weight:720;}.upgrade-release-notes ol{min-width:0;display:grid;gap:7px;margin:0;padding:0;list-style:none;counter-reset:release-note;}.upgrade-release-notes li{position:relative;counter-increment:release-note;color:#475569;padding-left:24px;font-size:12px;line-height:1.5;overflow-wrap:anywhere;}.upgrade-release-notes li::before{content:counter(release-note);position:absolute;top:0;left:0;width:16px;height:16px;display:grid;place-items:center;border-radius:4px;background:#e2e8f0;color:#64748b;font-size:9px;font-weight:750;line-height:16px;}.upgrade-btn{min-width:72px;height:32px;border-radius:7px;padding:0 11px;font-size:12px;font-weight:720;white-space:nowrap;}.upgrade-btn.primary{border-color:#196eb4;background:#196eb4;color:#fff;}.upgrade-btn.primary:hover{border-color:#155f9d;background:#155f9d;color:#fff;}.upgrade-btn.danger{border-color:#fecaca;color:#b42318;}.upgrade-btn.danger:hover{border-color:#fca5a5;background:#fff7f7;color:#b42318;}.upgrade-empty{min-height:240px;display:grid;place-content:center;gap:5px;color:#64748b;padding:24px;text-align:center;font-size:12px;}.upgrade-empty strong{color:#334155;font-size:13px;}.upgrade-empty.error,.upgrade-empty.error strong{color:#b42318;}.upgrade-toast{position:fixed;right:24px;top:76px;width:min(420px,calc(100vw - 48px));z-index:50;border:1px solid #dbeafe;border-radius:8px;background:#fff;box-shadow:0 12px 28px rgba(0,0,0,0.12);padding:14px;}.upgrade-toast-title{color:#111827;font-size:15px;font-weight:650;}.upgrade-toast-body{margin-top:5px;color:#4b5563;font-size:13px;line-height:1.45;}.upgrade-refresh-btn:focus-visible,.upgrade-btn:focus-visible{outline:2px solid rgba(25,110,180,0.34);outline-offset:2px;}@media (max-width:900px){.upgrade-row{grid-template-columns:minmax(0,1fr) auto;}.upgrade-version-path,.upgrade-state-block{grid-column:1;}.upgrade-row-actions{grid-column:2;grid-row:1 / span 3;}}@media (max-width:620px){.upgrade-header h1{font-size:21px;line-height:28px;}.upgrade-toolbar{min-height:48px;}.upgrade-list-meta{padding-left:3px;}.upgrade-model-header{align-items:flex-start;flex-direction:column;gap:4px;}.upgrade-target-version{width:100%;}.upgrade-row{grid-template-columns:minmax(0,1fr);gap:10px;}.upgrade-version-path,.upgrade-state-block,.upgrade-row-actions{grid-column:1;grid-row:auto;}.upgrade-row-actions{justify-content:flex-start;}.upgrade-release-notes{grid-template-columns:1fr;gap:6px;}}@media (prefers-reduced-motion:reduce){.upgrade-refresh-btn,.upgrade-btn{transition:none;}}.alarm-page{height:calc(100vh - var(--nav-height) - 48px);min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:16px;overflow:hidden;color:#111827;}.alarm-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;}.alarm-title{margin:0;color:#111827;font-size:24px;font-weight:650;line-height:1.2;text-wrap:balance;}.alarm-subtitle{margin-top:6px;color:#64748b;font-size:13px;}.alarm-actions,.alarm-batch-actions,.alarm-row-actions,.alarm-page-actions,.alarm-calendar-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}.alarm-primary-btn,.alarm-secondary-btn,.alarm-action-btn,.alarm-tab,.alarm-icon-btn,.alarm-playback-close{min-height:32px;border:1px solid #d8dee8;border-radius:8px;background:#fff;color:#334155;padding:0 12px;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;touch-action:manipulation;transition:border-color 160ms ease,background-color 160ms ease,color 160ms ease,box-shadow 160ms ease,transform 160ms ease;}.alarm-primary-btn{border-color:#2d6cdf;background:#2d6cdf;color:#fff;font-weight:650;}.alarm-primary-btn:hover{border-color:#1d4ed8;background:#1d4ed8;}.alarm-secondary-btn:hover,.alarm-action-btn:hover,.alarm-tab:hover,.alarm-icon-btn:hover,.alarm-playback-close:hover{border-color:#9db7e5;background:#f5f8ff;color:#1d4ed8;}.alarm-primary-btn:focus-visible,.alarm-secondary-btn:focus-visible,.alarm-action-btn:focus-visible,.alarm-tab:focus-visible,.alarm-icon-btn:focus-visible,.alarm-evidence:focus-visible,.alarm-day:focus-visible,.alarm-playback-close:focus-visible,.alarm-select-field select:focus-visible,.alarm-page-size select:focus-visible{outline:2px solid rgba(45,108,223,0.36);outline-offset:2px;}.alarm-action-btn.danger{border-color:#f1c6c6;color:#b42318;}.alarm-action-btn.danger:hover{border-color:#fca5a5;background:#fff7ed;}.alarm-action-btn:disabled,.alarm-secondary-btn:disabled{opacity:0.45;cursor:default;}.alarm-shell{min-height:0;display:grid;grid-template-columns:minmax(260px,300px) minmax(0,1fr);gap:16px;overflow:hidden;}.alarm-filter-panel,.alarm-workbench{min-width:0;background:#fff;border:1px solid #e5eaf2;border-radius:10px;}.alarm-filter-panel{align-self:stretch;padding:14px;overflow-y:auto;overscroll-behavior:contain;}.alarm-filter-section + .alarm-filter-section{margin-top:18px;padding-top:18px;border-top:1px solid #eef2f7;}.alarm-section-head,.alarm-workbench-head,.alarm-list-head,.alarm-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;}.alarm-section-head{margin-bottom:10px;}.alarm-section-head h2,.alarm-workbench-head h2{margin:0;color:#334155;font-size:13px;font-weight:650;}.alarm-calendar-nav{gap:6px;color:#475569;font-size:12px;font-weight:650;}.alarm-icon-btn{width:28px;min-height:28px;padding:0;font-size:18px;line-height:1;}.alarm-calendar-weekdays,.alarm-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;}.alarm-calendar-weekdays{margin-bottom:6px;color:#94a3b8;font-size:11px;text-align:center;}.alarm-day,.alarm-calendar-blank{position:relative;display:inline-flex;align-items:center;justify-content:center;height:32px;border-radius:8px;}.alarm-day{border:1px solid transparent;background:transparent;color:#475569;font-size:12px;cursor:pointer;transition:border-color 160ms ease,background-color 160ms ease,color 160ms ease,box-shadow 160ms ease;}.alarm-day:hover{border-color:#d6e4ff;background:#f5f8ff;color:#1d4ed8;}.alarm-day.today{color:#1d4ed8;font-weight:700;}.alarm-day.selected{border-color:#2d6cdf;background:#eff6ff;color:#1d4ed8;font-weight:700;}.alarm-day.has-alarm::after{content:"";position:absolute;left:50%;bottom:4px;width:4px;height:4px;border-radius:999px;background:#ef4444;transform:translateX(-50%);}.alarm-select-field{display:grid;gap:6px;}.alarm-select-field,.alarm-page-size{color:#64748b;font-size:12px;}.alarm-select-field select,.alarm-page-size select{width:100%;min-height:34px;margin-top:6px;border:1px solid #d8dee8;border-radius:8px;background:#fff;color:#111827;padding:0 10px;font-size:13px;font-variant-numeric:tabular-nums;}.alarm-select-field + .alarm-select-field{margin-top:12px;}.alarm-workbench{min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden;}.alarm-workbench-head{min-height:64px;padding:12px 16px;border-bottom:1px solid #eef2f7;}.alarm-result-meta,.alarm-selected-count,.alarm-page-info{color:#64748b;font-size:12px;}.alarm-status-strip{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid #eef2f7;background:#f8fafc;overflow-x:auto;}.alarm-tab{height:32px;flex:0 0 auto;}.alarm-tab.active{border-color:#2d6cdf;background:#eff6ff;color:#1d4ed8;font-weight:650;}.alarm-list-wrap{min-height:0;display:flex;flex-direction:column;overflow:hidden;}.alarm-list-head{min-height:44px;padding:0 16px;color:#64748b;font-size:12px;border-bottom:1px solid #eef2f7;}.alarm-check-all,.alarm-card-check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;}.alarm-list{min-height:0;flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;content-visibility:auto;}.alarm-card{display:grid;grid-template-columns:28px auto minmax(0,1fr) auto;align-items:center;gap:20px;padding:14px 16px;border-bottom:1px solid #eef2f7;background:#fff;}.alarm-card:hover{background:#fbfdff;}.alarm-evidence-strip{display:flex;align-items:center;gap:8px;min-width:0;overflow-x:auto;}.alarm-evidence{position:relative;width:112px;height:72px;border:1px solid #dbe4f0;border-radius:8px;background:#0f172a;overflow:hidden;cursor:pointer;padding:0;flex:0 0 auto;transition:border-color 160ms ease,box-shadow 160ms ease,transform 160ms ease;}.alarm-evidence:hover{border-color:#2d6cdf;box-shadow:0 8px 20px rgba(15,23,42,0.14);transform:translateY(-1px);}.alarm-evidence-img{width:100%;height:100%;display:block;}.alarm-evidence-play{position:absolute;left:8px;bottom:7px;min-height:20px;border-radius:999px;padding:2px 8px;background:rgba(15,23,42,0.74);color:#fff;font-size:11px;font-weight:600;}.alarm-evidence.missing{display:flex;align-items:center;justify-content:center;color:#94a3b8;background:#f8fafc;}.alarm-card-main{min-width:0;}.alarm-card-top{display:flex;align-items:center;gap:8px;margin-bottom:7px;}.alarm-device-title{min-width:0;color:#111827;font-size:15px;font-weight:650;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.alarm-device-sub,.alarm-time{margin-top:4px;color:#64748b;font-size:12px;line-height:1.4;overflow-wrap:anywhere;}.alarm-type{color:#111827;font-size:13px;font-weight:650;white-space:nowrap;}.alarm-status{display:inline-flex;align-items:center;height:22px;border-radius:999px;padding:0 8px;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;background:#f1f5f9;color:#475569;}.alarm-status.status-0{background:#fff1f2;color:#be123c;}.alarm-status.status-1{background:#ecfdf5;color:#047857;}.alarm-status.status-2{background:#fffbeb;color:#b45309;}.alarm-status.status-3{background:#eff6ff;color:#1d4ed8;}.alarm-pagination{min-height:54px;padding:10px 16px;border-top:1px solid #eef2f7;background:#fff;}.alarm-page-size{display:inline-flex;align-items:center;gap:8px;}.alarm-page-size select{width:74px;margin-top:0;}.alarm-empty,.alarm-error{padding:54px 24px;text-align:center;color:#64748b;}.alarm-empty-title{color:#334155;font-size:15px;font-weight:650;}.alarm-empty-sub{margin-top:6px;font-size:13px;}.alarm-error{color:#b91c1c;}.alarm-notice{position:fixed;right:24px;bottom:24px;z-index:1200;min-height:36px;max-width:320px;border-radius:8px;padding:9px 12px;background:#111827;color:#fff;font-size:13px;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity 160ms ease,transform 160ms ease;}.alarm-notice.visible{opacity:1;transform:translateY(0);}.alarm-playback-modal{position:fixed;inset:0;z-index:1400;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(15,23,42,0.62);overscroll-behavior:contain;}.alarm-playback-card{width:min(980px,100%);background:#0f172a;border-radius:10px;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,0.28);}.alarm-playback-head{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;color:#fff;border-bottom:1px solid rgba(255,255,255,0.12);}.alarm-playback-head h2{margin:0;font-size:16px;font-weight:650;}.alarm-playback-meta{margin-top:4px;color:#cbd5e1;font-size:12px;}.alarm-playback-video{width:100%;aspect-ratio:16 / 9;display:block;background:#020617;object-fit:contain;}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}@media (prefers-reduced-motion:reduce){.alarm-primary-btn,.alarm-secondary-btn,.alarm-action-btn,.alarm-tab,.alarm-icon-btn,.alarm-evidence,.alarm-day,.alarm-notice,.alarm-playback-close{transition-duration:1ms;}}@media (max-width:1120px){.alarm-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);}.alarm-filter-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;overflow:visible;}.alarm-filter-section + .alarm-filter-section{margin-top:0;padding-top:0;border-top:0;}}@media (max-width:780px){.alarm-page{height:auto;min-height:calc(100vh - var(--nav-height) - 32px);overflow:visible;}.alarm-shell,.alarm-workbench,.alarm-list-wrap,.alarm-list{overflow:visible;}.alarm-hero,.alarm-workbench-head,.alarm-pagination{align-items:flex-start;flex-direction:column;}.alarm-filter-panel{grid-template-columns:1fr;}.alarm-card{grid-template-columns:28px 1fr;}.alarm-evidence-strip,.alarm-card-main,.alarm-row-actions{grid-column:2;}}.access-page{min-height:100%;display:flex;flex-direction:column;gap:14px;color:#0f172a;}.access-page-header{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:16px;}.access-page-header h1{margin:0;font-size:24px;line-height:32px;font-weight:760;text-wrap:balance;}.access-refresh-btn,.access-filter,.access-btn,.access-icon-btn{border:1px solid #dbe3ec;background:#fff;color:#334155;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:rgba(25,110,180,0.12);transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease,transform 100ms ease;}.access-refresh-btn{height:34px;border-radius:8px;padding:0 13px;font-size:12px;font-weight:700;}.access-refresh-btn:hover,.access-filter:hover,.access-btn.secondary:hover,.access-icon-btn:hover{border-color:#bfdbfe;background:#f8fbff;color:#196eb4;}.access-refresh-btn:active,.access-filter:active,.access-btn:active,.access-icon-btn:active{transform:translateY(1px);}.access-refresh-btn:disabled,.access-btn:disabled,.access-icon-btn:disabled{cursor:not-allowed;opacity:0.5;}.access-panel{overflow:hidden;border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 5px 16px rgba(15,23,42,0.035);}.access-toolbar{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #edf2f7;padding:9px 12px;}.access-filters{display:flex;align-items:center;gap:4px;}.access-filter{height:34px;display:inline-flex;align-items:center;gap:7px;border-color:transparent;border-radius:7px;padding:0 10px;font-size:13px;font-weight:700;}.access-filter span{min-width:20px;height:20px;display:inline-grid;place-items:center;border-radius:999px;background:#f1f5f9;color:#64748b;padding:0 5px;font-size:11px;font-variant-numeric:tabular-nums;}.access-filter.active{border-color:#bfdbfe;background:#eff6ff;color:#196eb4;}.access-filter.active span{background:#fff;color:#196eb4;}.access-list-meta{flex:none;color:#64748b;font-size:12px;font-variant-numeric:tabular-nums;}.access-list{display:grid;}.access-row{min-width:0;display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:13px 14px;border-bottom:1px solid #edf2f7;content-visibility:auto;contain-intrinsic-size:auto 63px;}.access-row:last-child{border-bottom:0;}.access-row:hover{background:#fbfdff;}.access-avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#eaf3fb;color:#196eb4;font-size:13px;font-weight:800;}.access-identity{min-width:0;display:grid;gap:3px;}.access-identity strong,.access-identity span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.access-identity strong{color:#0f172a;font-size:13px;font-weight:720;}.access-identity span,.access-time{color:#64748b;font-size:12px;}.access-time{white-space:nowrap;font-variant-numeric:tabular-nums;}.access-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;}.access-btn{height:32px;border-radius:7px;padding:0 11px;font-size:12px;font-weight:720;white-space:nowrap;}.access-btn.primary{border-color:#196eb4;background:#196eb4;color:#fff;}.access-btn.primary:hover{border-color:#155f9d;background:#155f9d;}.access-btn.secondary{color:#b42318;}.access-btn.secondary:hover{border-color:#fecaca;background:#fff7f7;color:#b42318;}.access-icon-btn{width:32px;height:32px;display:grid;place-items:center;border-radius:7px;padding:0;}.access-icon-btn:hover{border-color:#fecaca;background:#fff7f7;}.access-icon-btn img{width:17px;height:17px;opacity:0.68;}.access-empty{min-height:240px;display:grid;place-content:center;gap:5px;color:#64748b;padding:24px;text-align:center;font-size:12px;}.access-empty strong{color:#334155;font-size:13px;}.access-empty.error,.access-empty.error strong{color:#b42318;}.access-refresh-btn:focus-visible,.access-filter:focus-visible,.access-btn:focus-visible,.access-icon-btn:focus-visible{outline:2px solid rgba(25,110,180,0.34);outline-offset:2px;}@media (max-width:760px){.access-page-header h1{font-size:21px;line-height:28px;}.access-toolbar{align-items:stretch;flex-direction:column;gap:7px;}.access-filters{overflow-x:auto;padding-bottom:2px;}.access-filter{flex:none;}.access-list-meta{padding-left:3px;}.access-row{grid-template-columns:36px minmax(0,1fr);}.access-time,.access-actions{grid-column:2;}.access-actions{justify-content:flex-start;}}@media (max-width:420px){.access-page-header{align-items:flex-start;}.access-row{padding-right:11px;padding-left:11px;}.access-actions{width:100%;}.access-btn{flex:1 1 auto;}}@media (prefers-reduced-motion:reduce){.access-refresh-btn,.access-filter,.access-btn,.access-icon-btn{transition:none;}}.nav-icon-btn{position:relative;}.nav-badge{display:none;position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;border:2px solid #fff;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;line-height:14px;text-align:center;padding:0 4px;box-sizing:border-box;}.nav-badge.visible{display:block;}.media-page{height:calc(100vh - var(--nav-height) - 48px);min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px;overflow:hidden;}.media-page-head,.media-panel-head,.media-modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px;}.media-page-head h1,.media-panel-head h2,.media-modal-head h2{margin:0;color:#111827;line-height:1.25;}.media-page-head h1{font-size:24px;font-weight:700;}.media-panel-head h2,.media-modal-head h2{font-size:16px;font-weight:650;}.media-page-head p,.media-panel-head span,.media-modal-head span{display:block;margin-top:4px;color:#64748b;font-size:13px;}.media-panel{min-height:0;display:flex;flex-direction:column;border:1px solid #e5e7eb;border-radius:8px;background:#fff;overflow:hidden;}.media-panel-head{padding:14px 16px;border-bottom:1px solid #eef2f7;}.media-primary-btn,.media-secondary-btn,.media-icon-btn,.media-segment button{height:34px;border:1px solid #d1d5db;border-radius:7px;background:#fff;color:#374151;padding:0 12px;font-size:13px;cursor:pointer;}.media-primary-btn{border-color:var(--primary);background:var(--primary);color:#fff;}.media-secondary-btn:disabled,.media-primary-btn:disabled{opacity:.5;cursor:default;}.media-icon-btn{width:32px;padding:0;display:grid;place-items:center;}.media-icon-btn img{width:18px;height:18px;}.media-icon-btn.danger:hover{border-color:#fecaca;background:#fef2f2;}.media-primary-btn:hover,.media-secondary-btn:hover,.media-icon-btn:hover,.media-segment button:hover{filter:brightness(.98);}.media-primary-btn:focus-visible,.media-secondary-btn:focus-visible,.media-icon-btn:focus-visible,.media-segment button:focus-visible,.photo-wall-preview:focus-visible,.tlr-task-main:focus-visible,.tlr-video-preview:focus-visible,.media-field input:focus-visible,.media-field select:focus-visible{outline:2px solid rgba(45,108,223,.35);outline-offset:2px;}.media-pagination{display:flex;align-items:center;gap:8px;}.media-empty,.media-error{min-height:220px;display:grid;place-items:center;color:#64748b;font-size:14px;}.media-error{color:#b91c1c;}.photo-wall-grid{min-height:0;flex:1 1 auto;padding:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));align-content:start;gap:12px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;}.photo-wall-card{min-width:0;}.photo-wall-media{position:relative;}.photo-wall-preview{width:100%;aspect-ratio:4 / 3;border:1px solid #e5e7eb;border-radius:8px;background:#f8fafc;overflow:hidden;padding:0;cursor:pointer;}.photo-wall-preview:hover{border-color:#bfdbfe;}.photo-wall-remove{position:absolute;top:8px;right:8px;border-color:rgba(255,255,255,0.72);background:rgba(255,255,255,0.92);opacity:0;transform:translateY(-2px);transition:opacity 140ms ease,transform 140ms ease,background-color 140ms ease;}.photo-wall-media:hover .photo-wall-remove,.photo-wall-remove:focus-visible{opacity:1;transform:translateY(0);}.photo-wall-preview img,.photo-wall-modal-img{width:100%;height:100%;display:block;}.photo-wall-row{margin-top:7px;display:block;align-items:center;color:#475569;font-size:12px;}.photo-wall-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.media-modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px;background:rgba(15,23,42,.42);overscroll-behavior:contain;}.photo-wall-modal-card,.tlr-playback-card{width:min(960px,100%);max-height:calc(100vh - 48px);display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;border-radius:8px;background:#fff;padding:14px;}.photo-wall-modal-img{min-height:360px;background:#0f172a;border-radius:8px;}.media-segment{display:inline-flex;gap:4px;padding:3px;border:1px solid #dbe3ef;border-radius:8px;background:#f8fafc;}.media-segment button{border:0;height:30px;background:transparent;}.media-segment button.active{background:#fff;color:var(--primary);box-shadow:0 1px 3px rgba(15,23,42,.08);}.timelapse-layout{height:100%;min-height:0;display:grid;grid-template-columns:minmax(360px,1fr) minmax(360px,.9fr);gap:14px;}#timelapse-body{min-height:0;overflow:hidden;}.timelapse-page > #timelapse-body > .media-panel{height:100%;}.timelapse-layout > .media-panel,.tlr-editor-panel{min-height:0;overflow:hidden;}.tlr-task-list{min-height:0;flex:1 1 auto;padding:14px;display:grid;align-content:start;gap:10px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;}.tlr-task-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;border:1px solid #e5e7eb;border-radius:8px;padding:10px;}.tlr-task-card.selected{border-color:#bfdbfe;background:#f8fbff;box-shadow:inset 3px 0 0 var(--primary);}.tlr-task-main{min-width:0;border:0;background:transparent;text-align:left;cursor:pointer;display:grid;gap:4px;}.tlr-task-name{color:#111827;font-size:14px;font-weight:650;}.tlr-task-meta,.tlr-task-time,.tlr-video-info span{color:#64748b;font-size:12px;}.tlr-task-state{height:24px;display:inline-flex;align-items:center;border-radius:999px;padding:0 9px;background:#f1f5f9;color:#64748b;font-size:12px;}.tlr-task-state.on{background:#eff6ff;color:#1d4ed8;}.tlr-editor{min-height:0;height:100%;box-sizing:border-box;padding:14px;display:grid;align-content:start;gap:12px;overflow-y:auto;overscroll-behavior:contain;}.media-field,.tlr-enable{display:grid;gap:6px;color:#475569;font-size:12px;font-weight:600;}.media-field input,.media-field select{width:100%;height:36px;border:1px solid #dbe3ef;border-radius:7px;background:#fff;color:#111827;padding:0 10px;box-sizing:border-box;}.media-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}.tlr-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;}.tlr-repeat-surface{overflow:hidden;border:1px solid #dbe3ef;border-radius:8px;background:#f8fafc;}.tlr-repeat-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:3px;}.tlr-repeat-options label{height:30px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:#475569;font-size:12px;font-weight:600;cursor:pointer;}.tlr-repeat-options label:has(input:checked){background:#fff;color:var(--primary);box-shadow:0 1px 3px rgba(15,23,42,.08);}.tlr-repeat-detail{margin:0 10px 10px;padding-top:10px;border-top:1px solid #e2e8f0;}.tlr-repeat-options input,.tlr-weekdays input,.tlr-enable input{width:auto;height:auto;}.tlr-repeat-options input{position:absolute;opacity:0;pointer-events:none;}.tlr-weekdays label,.tlr-enable{height:32px;display:flex;align-items:center;gap:6px;border:1px solid #e5e7eb;border-radius:7px;padding:0 8px;background:#fff;}.tlr-weekdays label{cursor:pointer;}.tlr-weekdays label:has(input:checked){border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8;}.tlr-editor .hidden{display:none !important;}.tlr-estimate{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;border:1px solid #dbe3ef;border-radius:8px;background:#f8fafc;color:#64748b;font-size:12px;}.tlr-estimate strong{color:#0f2f57;font-size:15px;font-variant-numeric:tabular-nums;}.tlr-editor-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;}.tlr-editor-actions span{color:#16a34a;font-size:13px;}.tlr-video-grid{min-height:0;flex:1 1 auto;padding:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));align-content:start;gap:14px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;}.tlr-video-card{border:1px solid #e5e7eb;border-radius:8px;padding:10px;}.tlr-video-preview{width:100%;aspect-ratio:16 / 9;border:0;border-radius:7px;background:#0f172a;color:#cbd5e1;overflow:hidden;padding:0;cursor:pointer;}.tlr-video-preview img,.tlr-playback-video{width:100%;height:100%;display:block;}.tlr-video-info{margin:10px 0;display:grid;gap:4px;}.tlr-video-info strong{color:#111827;font-size:14px;}.tlr-playback-card{width:min(1080px,100%);}.tlr-playback-video{aspect-ratio:16 / 9;background:#0f172a;border-radius:8px;object-fit:contain;}@media (max-width:980px){#timelapse-body{overflow:visible;}.timelapse-layout{height:auto;grid-template-columns:1fr;}.timelapse-layout > .media-panel,.tlr-editor,.tlr-task-list,.tlr-video-grid{height:auto;overflow:visible;}}@media (max-width:720px){.media-page{height:auto;min-height:calc(100vh - var(--nav-height) - 32px);overflow:visible;}.media-panel,.photo-wall-grid{overflow:visible;}.photo-wall-remove{opacity:1;transform:none;}.media-page-head,.media-panel-head,.media-modal-head,.tlr-editor-actions{align-items:stretch;flex-direction:column;}.media-field-grid{grid-template-columns:1fr;}.tlr-weekdays{grid-template-columns:repeat(2,minmax(0,1fr));}.tlr-repeat-options{grid-template-columns:1fr;}}@media (prefers-reduced-motion:reduce){.photo-wall-remove,.tlr-task-card,.tlr-video-card{transition:none;}}.smart-search-page{display:flex;flex-direction:column;gap:16px;color:#0f172a;}.smart-search-hero{padding:2px 0;}.smart-search-title{margin:0;font-size:24px;line-height:32px;font-weight:760;letter-spacing:0;}.smart-search-studio,.smart-search-results{display:grid;gap:14px;}.smart-search-query-panel{border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 6px 18px rgba(15,23,42,0.04);}.smart-search-query-panel{min-width:0;padding:18px;}.smart-search-query-box{min-height:74px;display:flex;gap:12px;align-items:center;border:1px solid #cbd5e1;border-radius:8px;background:#fff;padding:0 14px;}.smart-search-query-box:focus-within{border-color:#93c5fd;box-shadow:0 0 0 3px rgba(25,110,180,0.12);}.smart-search-query-box.image-mode{background:#f8fafc;}.smart-search-filter-bar{display:flex;align-items:center;gap:8px;margin-bottom:12px;}.smart-search-filter-pill{height:32px;display:inline-flex;align-items:center;overflow:hidden;border:1px solid #dbe3ec;border-radius:999px;background:#f8fafc;color:#64748b;padding-left:11px;font-size:12px;white-space:nowrap;}.smart-search-filter-pill > span::after{content:"·";margin-left:6px;color:#cbd5e1;}.smart-search-filter-pill select{min-width:0;max-width:180px;height:30px;border:0;background:transparent;color:#334155;padding:0 26px 0 6px;font:inherit;font-weight:650;cursor:pointer;outline:none;}.smart-search-filter-pill:hover{border-color:#bfdbfe;background:#fff;}.smart-search-inline-preview{position:relative;width:74px;height:48px;flex:0 0 auto;overflow:hidden;border:1px solid #cbd5e1;border-radius:6px;background:#0f172a;}.smart-search-inline-preview img{width:100%;height:100%;object-fit:cover;opacity:1;}.smart-search-inline-remove{position:absolute;top:3px;right:3px;width:18px;height:18px;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(15,23,42,0.72);color:#fff;padding:0;font-size:13px;line-height:1;cursor:pointer;}.smart-search-input{min-width:0;width:100%;height:54px;border:0;background:transparent;color:#0f172a;font:inherit;font-size:16px;outline:none;}.smart-search-input::placeholder{color:#94a3b8;}.smart-search-button,.smart-search-send-btn,.smart-search-secondary-btn,.smart-search-icon-action{height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:0 14px;font-size:13px;font-weight:700;cursor:pointer;}.smart-search-send-btn,.smart-search-icon-action{width:40px;flex:0 0 auto;padding:0;}.smart-search-button,.smart-search-send-btn{border:1px solid #196eb4;background:#196eb4;color:#fff;transition:background 0.16s ease,border-color 0.16s ease,opacity 0.16s ease;}.smart-search-button:hover,.smart-search-send-btn:hover{background:#155f9d;border-color:#155f9d;}.smart-search-button:disabled,.smart-search-send-btn:disabled{cursor:not-allowed;opacity:0.55;}.smart-search-secondary-btn{border:1px solid #dbe3ec;background:#fff;color:#334155;white-space:nowrap;}.smart-search-secondary-btn:hover{background:#f8fafc;}.smart-search-icon-action{border:1px solid #dbe3ec;background:#fff;}.smart-search-icon-action:hover{background:#f8fafc;border-color:#cbd5e1;}.smart-search-send-btn img,.smart-search-icon-action img{width:20px;height:20px;}.smart-search-send-btn img{filter:brightness(0) invert(1);}.smart-search-progress{display:none;margin-top:14px;border:1px solid #dbeafe;border-radius:8px;background:#f8fbff;padding:10px 12px;color:#334155;font-size:12px;line-height:18px;max-height:120px;overflow:auto;}.smart-search-progress.visible{display:block;}.smart-search-progress-stage + .smart-search-progress-stage{margin-top:10px;padding-top:10px;border-top:1px solid #e2e8f0;}.smart-search-progress-label{margin-bottom:3px;color:#64748b;font-size:11px;font-weight:600;}.smart-search-progress-content{white-space:pre-wrap;overflow-wrap:anywhere;}.smart-search-status{margin-top:12px;color:#64748b;font-size:13px;line-height:20px;}.smart-search-status:empty{display:none;}.smart-search-status.error{color:#dc2626;}.smart-search-custom-range label{min-width:0;display:grid;gap:7px;color:#64748b;font-size:12px;font-weight:700;}.smart-search-date{min-width:0;width:100%;box-sizing:border-box;height:36px;border:1px solid #dbe3ec;border-radius:8px;background:#fff;color:#334155;padding:0 10px;font:inherit;font-size:13px;}.smart-search-custom-range{display:none;width:min(380px,100%);grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 12px;}.smart-search-custom-range.visible{display:grid;}.smart-search-results{padding-top:2px;}.smart-search-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px;}.smart-search-section-title h2{margin:0;font-size:17px;line-height:23px;font-weight:740;}.smart-search-section-title p{margin:3px 0 0;color:#64748b;font-size:12px;}.smart-search-section-title span{color:#64748b;font-size:12px;white-space:nowrap;}.smart-search-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;}.smart-search-card{overflow:hidden;border:1px solid #e2e8f0;border-radius:8px;background:#fff;cursor:pointer;transition:border-color 0.16s ease,box-shadow 0.16s ease,transform 0.16s ease;}.smart-search-card:hover{border-color:#bfdbfe;box-shadow:0 10px 24px rgba(15,23,42,0.1);transform:translateY(-1px);}.smart-search-thumb{aspect-ratio:16 / 9;background:#0f172a;}.smart-search-thumb img{width:100%;height:100%;}.smart-search-card-body{padding:10px 12px 12px;}.smart-search-card-title{overflow:hidden;color:#0f172a;font-size:13px;font-weight:740;line-height:18px;text-overflow:ellipsis;white-space:nowrap;}.smart-search-card-meta{margin-top:4px;color:#64748b;font-size:12px;line-height:17px;}.smart-search-score{margin-top:8px;display:inline-flex;align-items:center;height:22px;border-radius:999px;background:#eff6ff;color:#196eb4;padding:0 8px;font-size:11px;font-weight:760;}.smart-search-empty{min-height:250px;display:flex;flex-direction:column;justify-content:center;gap:22px;border-top:1px solid #e2e8f0;color:#64748b;font-size:13px;text-align:center;}.smart-search-empty-main{color:#64748b;}.smart-search-shortcuts{width:min(760px,100%);display:grid;gap:10px;margin:0 auto;}.smart-search-shortcut-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;text-align:left;}.smart-search-shortcut-row > span{color:#94a3b8;font-size:12px;}.smart-search-shortcut-row > div{display:flex;gap:7px;overflow-x:auto;scrollbar-width:thin;}.smart-search-shortcut-row button{flex:0 0 auto;height:30px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;padding:0 10px;font:inherit;font-size:12px;cursor:pointer;}.smart-search-shortcut-row button:hover{border-color:#bfdbfe;color:#196eb4;}.smart-search-input:focus-visible,.smart-search-date:focus-visible,.smart-search-button:focus-visible,.smart-search-send-btn:focus-visible,.smart-search-icon-action:focus-visible,.smart-search-filter-pill:focus-within,.smart-search-inline-remove:focus-visible,.smart-search-shortcut-row button:focus-visible,.smart-search-card:focus-visible,.smart-search-secondary-btn:focus-visible,.smart-search-icon-btn:focus-visible{outline:2px solid rgba(25,110,180,0.28);outline-offset:2px;}.smart-search-icon-btn{width:28px;height:28px;border:1px solid transparent;border-radius:6px;background:transparent;color:#64748b;cursor:pointer;}.smart-search-icon-btn:hover{background:#f1f5f9;color:#dc2626;}.smart-crop-backdrop{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,0.5);}.smart-crop-dialog{width:min(760px,calc(100vw - 32px));border-radius:8px;background:#fff;box-shadow:0 24px 80px rgba(15,23,42,0.32);}.smart-crop-header,.smart-crop-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;}.smart-crop-header{border-bottom:1px solid #f1f5f9;}.smart-crop-header strong{font-size:15px;}.smart-crop-stage{position:relative;height:min(520px,68vh);margin:16px;overflow:hidden;border-radius:8px;background:#0f172a;}.smart-crop-stage img{width:100%;height:100%;object-fit:contain;user-select:none;}.smart-crop-box{position:absolute;border:2px solid #60a5fa;background:rgba(96,165,250,0.16);cursor:move;}.smart-crop-handle{position:absolute;right:-6px;bottom:-6px;width:12px;height:12px;border-radius:50%;background:#196eb4;cursor:nwse-resize;}.smart-crop-actions{border-top:1px solid #f1f5f9;justify-content:flex-end;}@media (max-width:1100px){.smart-search-filter-bar{overflow-x:auto;padding-bottom:2px;scrollbar-width:thin;}}@media (max-width:640px){.smart-search-hero,.smart-search-section-title{align-items:flex-start;flex-direction:column;}.smart-search-query-box{align-items:stretch;flex-direction:column;padding:12px;}.smart-search-icon-action,.smart-search-send-btn{width:100%;}.smart-search-filter-bar{margin-right:-12px;padding-right:12px;}.smart-search-custom-range{grid-template-columns:1fr;}.smart-search-shortcut-row{grid-template-columns:1fr;gap:5px;}}@media (prefers-reduced-motion:reduce){.smart-search-button,.smart-search-send-btn,.smart-search-card{transition:none;}.smart-search-card:hover{transform:none;}}.runtime-page{display:grid;gap:14px;}.runtime-head,.runtime-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;}.runtime-head h1,.runtime-panel-head h2{margin:0;color:#111827;line-height:1.25;}.runtime-head h1{font-size:24px;font-weight:700;}.runtime-head p,.runtime-panel-head span{margin:4px 0 0;color:#64748b;font-size:13px;}.runtime-tabs{display:inline-flex;gap:4px;padding:3px;border:1px solid #dbe3ef;border-radius:8px;background:#f8fafc;}.runtime-tabs button,.runtime-refresh{height:32px;border:0;border-radius:6px;background:transparent;color:#475569;padding:0 12px;font-size:13px;cursor:pointer;}.runtime-tabs button.active{background:#fff;color:var(--primary);box-shadow:0 1px 3px rgba(15,23,42,.08);}.runtime-refresh{border:1px solid #d1d5db;background:#fff;}.runtime-tabs button:focus-visible,.runtime-refresh:focus-visible{outline:2px solid rgba(45,108,223,.35);outline-offset:2px;}.runtime-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;}.runtime-stat,.runtime-panel{border:1px solid #e5e7eb;border-radius:8px;background:#fff;}.runtime-stat{padding:14px;display:grid;gap:5px;}.runtime-stat span{color:#64748b;font-size:12px;}.runtime-stat strong{color:#111827;font-size:22px;line-height:1.1;}.runtime-panel{overflow:hidden;}.runtime-panel-head{padding:14px 16px;border-bottom:1px solid #eef2f7;}.runtime-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px;}.runtime-cache-table .runtime-col-type{width:92px;}.runtime-cache-table .runtime-col-name{width:150px;}.runtime-cache-table .runtime-col-version{width:96px;}.runtime-cache-table .runtime-col-memory{width:78px;}.runtime-rule-table .runtime-col-id{width:54px;}.runtime-rule-table .runtime-col-status{width:84px;}.runtime-rule-table .runtime-col-targets{width:110px;}.runtime-rule-table .runtime-col-timing{width:18%;}.runtime-rule-table .runtime-col-trigger{width:20%;}.runtime-rule-table .runtime-col-condition{width:20%;}.runtime-rule-table .runtime-col-action{width:auto;}.runtime-device-table .runtime-col-device{width:130px;}.runtime-device-table .runtime-col-time{width:150px;}.runtime-cron-table .runtime-col-cron-name{width:220px;}.runtime-cron-table .runtime-col-cron-status{width:92px;}.runtime-cron-table .runtime-col-cron-time{width:150px;}.runtime-table th,.runtime-table td{padding:10px 12px;border-bottom:1px solid #eef2f7;text-align:left;vertical-align:top;}.runtime-table th{color:#64748b;font-size:12px;font-weight:600;background:#f8fafc;}.runtime-table td{color:#334155;min-width:0;overflow:hidden;}.runtime-code{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;}.runtime-schedule{color:#334155;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;white-space:normal;overflow-wrap:anywhere;}.runtime-long{min-width:0;width:100%;max-width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;}.runtime-long summary{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%;cursor:pointer;list-style:none;}.runtime-long summary::-webkit-details-marker{display:none;}.runtime-long summary:focus-visible{outline:2px solid rgba(45,108,223,.35);outline-offset:2px;}.runtime-long-preview{min-width:0;overflow:hidden;color:#334155;text-overflow:ellipsis;white-space:nowrap;}.runtime-long-action{width:24px;height:24px;display:grid;flex:none;place-items:center;border-radius:6px;background:#eff6ff;color:var(--primary);}.runtime-long-action img{width:16px;height:16px;}.runtime-long summary:hover .runtime-long-action{background:#dbeafe;}.runtime-long[open] summary{margin-bottom:8px;}.runtime-long[open] .runtime-long-action{background:#f1f5f9;filter:grayscale(1);}.runtime-long pre{box-sizing:border-box;width:100%;max-height:260px;margin:0;overflow:auto;border:1px solid #e5e7eb;border-radius:6px;background:#f8fafc;color:#1f2937;padding:10px;line-height:1.55;white-space:pre-wrap;word-break:break-word;}.runtime-pill{display:inline-flex;align-items:center;height:22px;border-radius:999px;padding:0 8px;background:#f1f5f9;color:#64748b;font-size:12px;}.runtime-pill.on{background:#eff6ff;color:#1d4ed8;}.runtime-pill.bad{background:#fef2f2;color:#b91c1c;}.runtime-stack{display:grid;gap:14px;}.runtime-empty{min-height:160px;display:grid;place-items:center;color:#64748b;font-size:14px;}.runtime-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}.runtime-media-panel{min-width:0;}.runtime-media-body{display:grid;gap:12px;padding:16px;}.runtime-media-field{display:grid;gap:6px;color:#475569;font-size:12px;font-weight:600;}.runtime-media-field input,.runtime-media-field select{box-sizing:border-box;width:100%;height:38px;border:1px solid #d5dce7;border-radius:7px;background:#fff;color:#1f2937;padding:0 11px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;}.runtime-media-field select{font-family:inherit;}.runtime-media-field input:hover,.runtime-media-field select:hover{border-color:#aeb9c8;}.runtime-media-field input:focus-visible,.runtime-media-field select:focus-visible{border-color:var(--primary);outline:2px solid rgba(45,108,223,.18);outline-offset:1px;}.runtime-media-actions{display:flex;flex-wrap:wrap;gap:8px;}.runtime-media-actions button{height:34px;border-radius:7px;padding:0 12px;font-size:13px;cursor:pointer;}.runtime-media-primary{border:1px solid var(--primary);background:var(--primary);color:#fff;}.runtime-media-primary:hover{filter:brightness(.96);}.runtime-media-secondary{border:1px solid #d5dce7;background:#fff;color:#475569;}.runtime-media-secondary:hover{border-color:#aeb9c8;background:#f8fafc;}.runtime-media-actions button:focus-visible{outline:2px solid rgba(45,108,223,.35);outline-offset:2px;}.runtime-media-video{display:block;width:100%;aspect-ratio:16 / 9;border-radius:7px;background:#0f172a;object-fit:contain;}.runtime-media-log{box-sizing:border-box;height:144px;overflow:auto;border:1px solid #e2e8f0;border-radius:7px;background:#f8fafc;color:#475569;padding:9px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.55;overflow-wrap:anywhere;}.runtime-media-log .warn{color:#a16207;}.runtime-media-log .error{color:#b91c1c;}@media (max-width:980px){.runtime-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.runtime-media-grid{grid-template-columns:1fr;}}@media (max-width:720px){.runtime-head,.runtime-panel-head{align-items:stretch;flex-direction:column;}.runtime-summary-grid{grid-template-columns:1fr;}.runtime-table{table-layout:auto;}}