@font-face{font-family:OpenSans;src:url('/font.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}input[type=number]{appearance:textfield;-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}:root{font-family:OpenSans,system-ui,sans-serif;color:#244469;background:#f5f7fb;font-size:16px;--blue:#173b75;--teal:#138d93;--line:#dbe2e9;--muted:#758397;--orange:#e27b41;--header:64px;--dock-height:44px;--shell-footer-font-size:11px;--sidebar:220px;--ease:cubic-bezier(.2,.7,.2,1);--motion:.24s var(--ease);--status-neutral:#8b96a1;--status-available:#2c9862;--status-error:#c65353;--status-away:#d49b25}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer}button:disabled{opacity:1;filter:grayscale(1);cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible,input:is([type=checkbox],[type=radio]):focus-visible{outline:3px solid #51b5bf;outline-offset:3px}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:#6c9bbb}[hidden]{display:none!important}.icon{width:24px;height:24px;vertical-align:middle;flex:none}h1,h2,h3,p{margin-top:0}h2{font-size:17px;font-weight:600}h3{font-size:15px}small{font-size:12px}code{font-size:12px;overflow-wrap:anywhere}.muted,.footnote{color:var(--muted)}.footnote{font-size:12px;line-height:1.7;margin:16px 0 0}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--teal);margin-bottom:8px}.topbar{height:var(--header);background:#fff;position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;gap:16px;padding:0 18px;border-bottom:1px solid var(--line);box-shadow:0 1px 9px #173b7507}.brand{width:158px;height:52px;display:flex;align-items:center;flex:none}.brand picture{display:flex;min-width:0}.brand img{object-fit:contain;max-width:100%}.icon-button{background:none;border:0;color:var(--blue);padding:9px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px}.icon-button:hover{background:#f0f3f9}.header-status{position:absolute;top:0;left:50%;transform:translateX(-50%);display:flex;align-items:stretch;white-space:nowrap}.header-system{padding:5px 10px;background:#f2f4f7;border:1px solid #b9c3d0;border-width:0 0 1px 1px;border-radius:0 0 0 6px;color:#506b87;font-size:14px;line-height:1.4}.header-updated{display:flex;align-items:center;padding:5px 8px;background:#f1f9f6;border:1px solid #9fc5bb;border-top:0;border-radius:0 0 6px 0;color:#506b87;font-size:10px;line-height:1.4}.account{margin-left:auto;display:flex;align-items:center;gap:15px}.account>span{font-size:12px;color:#78818d}
.workspace {
  margin: var(--header) 0 0 var(--sidebar);
  padding: 6px 4px;
  min-height: calc(100dvh - var(--header));
  display: flex;
  flex-direction: column;
  row-gap: 16px;
  transition: margin-left var(--motion);
}
.page-shell {
  --page-padding-inline: 8px;
  flex: 0 0 auto;
  min-width: 0;
  margin: 0;
  background: white;
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 0 var(--page-padding-inline) 16px;
}
.page-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;min-height:72px;margin:0 calc(-1 * var(--page-padding-inline))}.page-top h1,.login-card>h1,.page-back{font-size:16px;display:flex;gap:8px;align-items:center;font-weight:400;margin:0;padding:8px 11px;background:#f2f4f7;border:1px solid #b9c3d0;border-width:0 1px 1px 0;border-radius:5px 0 5px 0}.page-top h1,.page-back{height:var(--dock-height);min-height:var(--dock-height)}.page-heading{display:flex;align-items:stretch;min-width:0}.page-heading h1{min-width:0;white-space:nowrap}.page-heading h1>span{overflow:hidden;text-overflow:ellipsis}.page-back{justify-content:center;flex:0 0 43px;min-height:43px;padding:8px;color:var(--blue);border-radius:5px 0 0 0}.page-back:hover{background:#e0e0e0;text-decoration:none}.page-back:focus-visible{outline-offset:-3px}.page-back+h1{border-radius:0 0 5px 0}.page-heading>:not(:last-child){border-bottom-right-radius:0}.menu-collapsed{--sidebar:62px}.button{display:inline-flex;justify-content:center;align-items:center;gap:7px;min-height:46px;padding:12px;font-size:15px;border:1px solid #a6b6cb;background:#fff;border-radius:4px;color:#3a587d;line-height:1.4;text-decoration:none;white-space:nowrap}.button:hover{background:#f2f6fb;text-decoration:none}.button.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.button.primary:hover{background:#244c88}.button.danger{color:#aa4b4b;border-color:#d7b0b0}.button.small{min-height:38px;padding:7px 11px;font-size:13px}.button.selected{background:#e4f3f1;border-color:#30998f;color:#126e6e}.button.full{width:100%;margin-top:12px}.button-group{display:inline-flex}.button-group .button{border-radius:0;margin-left:-1px}.button-group .button:first-child{border-radius:4px 0 0 4px;margin-left:0}.button-group .button:last-child{border-radius:0 4px 4px 0}.button-group.full{display:flex;margin:12px 0}.button-group.full .button{flex:1}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px;flex-wrap:wrap}.toolbar>div{display:flex;align-items:center;gap:10px}.inline{display:inline-flex;align-items:center;gap:8px;margin:0}.inline select{min-height:34px}.section-intro{display:flex;align-items:center;justify-content:space-between;margin:0 0 22px;gap:15px}.section-intro h2{font-size:23px;margin-bottom:8px}.section-intro p:last-child{color:var(--muted);font-size:12px;margin:0}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}.metric{padding:16px;background:#f8fafc;border:1px solid var(--line);border-radius:5px;min-width:0}.metric>span{color:var(--muted);font-size:14px}.metric strong{display:block;font-size:28px;color:var(--blue);font-weight:500;margin-top:9px;letter-spacing:-.7px}.metric strong small{margin-left:7px;color:#8795a6;font-size:14px;letter-spacing:0}.metric p{color:var(--muted);margin:8px 0 0;font-size:12px}.grid{display:grid;gap:16px;margin-bottom:16px}.main-grid{grid-template-columns:minmax(0,2fr) minmax(260px,1fr)}.three-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:#fff;border:1px solid var(--line);padding:16px;border-radius:5px;min-width:0;margin-bottom:16px}.grid .card,.device-grid .card{margin:0}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:27px;margin-bottom:16px}.card-heading h2{margin:0}.card-heading>a{font-size:12px}.card-heading .icon{width:16px;height:16px}.device-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.badge{display:inline-flex;align-items:center;font-size:10px;border:1px solid #dbe4ed;color:#6d7f94;border-radius:4px;background:#f7f9fc;padding:3px 7px;white-space:nowrap;line-height:1.2}.badge.success{background:#eff9f4;border-color:#bbddcf;color:#268268}.badge.warning{background:#fff8de;border-color:#e6d6a7;color:#9a7a21}.badge.danger{background:#fff0f0;border-color:#e8bfbf;color:#a75858}.status-list>a{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #edf0f4;font-size:15px}.status-list>a:last-child{border:0}.status-list strong{margin-left:auto;font-weight:500}.company-list>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid #edf0f4}.company-list>div span:not(.badge){margin-left:auto}.compact-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;line-height:1.5}.compact-row small{display:block;color:var(--muted);margin-top:4px}.quick-actions{display:grid;gap:10px}.quick-actions a{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #e7ebf1;border-radius:4px}.chart{width:100%;height:auto;max-height:225px;display:block;overflow:visible}.meter-value{font-size:32px;color:var(--teal)}.meter-value small{font-size:14px;color:var(--muted)}.readings{display:flex;gap:15px;justify-content:space-between;flex-wrap:wrap;margin:20px 0}.readings span{font-size:11px;color:var(--muted)}.readings strong{font-size:14px;display:block;margin-top:6px;color:var(--blue);font-weight:500}.zone-light{display:flex;align-items:center;gap:18px;color:#c79738}.zone-light>.icon{width:40px;height:40px}.zone-light strong{font-size:27px;font-weight:400;color:var(--blue)}.zone-light small{font-size:11px;color:var(--muted);display:block;margin-top:4px}.group-list>div{display:flex;gap:9px;align-items:center;flex-wrap:wrap;border-top:1px solid #edf0f4;padding:14px 0}.group-list>div>span:first-child{flex:1;font-size:12px}.group-list small{display:block;font-size:10px;color:var(--muted);margin-top:3px}label{display:block;color:#687b91;font-size:12px;margin-bottom:15px}input,select,textarea{width:100%;min-height:39px;border:1px solid #bdc7d1;border-radius:4px;background:#fdfbf8;color:#304b69;padding:8px 10px;display:block;margin-top:5px}select{background:#f4faf8}input:disabled,select:disabled,textarea:disabled{background:#f0f2f5}input[type=checkbox]{width:16px;min-height:16px;height:16px;margin:0;accent-color:#218b91}.check{display:flex;align-items:center;gap:8px;font-size:12px}.inline input,.inline select{margin:0;width:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.form-actions{display:flex;align-items:center;gap:10px;margin-top:18px}.form-detail{margin:12px 0 18px}.form-detail summary{cursor:pointer;color:#607a97;padding-bottom:10px}.search{position:relative;min-width:240px;margin:0;flex:1;max-width:380px}.search>.icon{position:absolute;left:10px;top:29px;color:#8293a5;width:18px;height:18px;pointer-events:none}.search.floating-field{margin:0}.search.floating-field>input{padding-left:37px}.large-time{font-size:19px}.empty{padding:35px 15px;text-align:center;color:var(--muted)}.empty>.icon{width:35px;height:35px;color:#a1b4c4;margin-bottom:12px}.empty p{font-size:12px;line-height:1.6}.notice{padding:12px 15px;border:1px solid #d8e6eb;border-radius:4px;background:#f1f8fa;font-size:12px;margin:12px 0 18px;line-height:1.6}.notice.error{border-color:#e7c6c6;background:#fff5f4;color:#9d5858}.kanban{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.kanban>section{background:#f5f7fa;border:1px solid var(--line);border-radius:5px;padding:14px}.kanban h2{display:flex;justify-content:space-between;font-size:14px}.kanban h2 span{color:var(--muted)}.ticket{text-align:left;width:100%;border:1px solid var(--line);border-radius:5px;background:#fff;padding:16px;margin-bottom:12px;color:#365579}.ticket strong{display:block;font-size:14px;line-height:1.6;margin:10px 0;font-weight:500}.ticket>span:not(.badge),.ticket small{display:block;font-size:11px;color:var(--muted);margin-top:8px}.ticket:hover{border-color:#9ab7d2}.definition-list{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;font-size:12px;margin:18px 0}.definition-list dt{color:var(--muted)}.definition-list dd{margin:0;overflow-wrap:anywhere}.camera-wall,.camera-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.camera-wall[data-columns="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.camera-wall[data-columns="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}.camera-tile{position:relative;border:1px solid var(--line);border-radius:5px;padding:0;overflow:hidden;background:#213448;color:#f2f6fa;width:100%;display:flex;flex-direction:column;text-align:left}.camera-tile>img{flex:none;width:100%;aspect-ratio:16/9;object-fit:contain;display:block}.camera-tile>span:not(.camera-event-badge){flex:1;padding:10px;display:flex;justify-content:space-between;align-items:center;gap:7px;font-size:11px;background:#fff;color:#3f5875}.sensor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:8px;max-height:350px;overflow:auto}.sensor-grid>a{border:1px solid var(--line);border-radius:4px;padding:10px 7px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;font-size:10px}.sensor-grid>a>.icon{color:#7693af}.sensor-grid .badge{font-size:9px}.large-camera{background:#18242d;display:flex;align-items:center;justify-content:center;min-height:260px}.large-camera img{width:100%;max-height:70dvh;object-fit:contain}.large-camera:fullscreen{width:100vw;height:100vh;background:#000}.large-camera:fullscreen img{max-height:100vh}.map-legend{display:grid;grid-template-columns:1fr 1fr;gap:13px;font-size:11px}.map-legend span{display:flex;align-items:center;gap:6px}.map-legend i{width:7px;height:7px;border-radius:50%}.view-options{margin-top:16px;border:1px solid var(--line);border-radius:5px;padding:12px;font-size:12px}.view-options>summary{display:flex;align-items:center;gap:8px;cursor:pointer}.options-row{display:flex;gap:12px;flex-wrap:wrap;padding:20px 0 5px;align-items:center}.options-row label{margin:0}.spatial-3d-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.spatial-3d-label{position:absolute;left:0;top:0;pointer-events:auto;transform:translate(-50%,-50%);font:10px OpenSans,system-ui;background:#ffffffe0;color:#466b82;border:1px solid #9baeb8;border-radius:3px;padding:4px 6px;white-space:nowrap}.spatial-3d-label:hover{background:#fff;outline:1px solid #819aad}dialog{border:1px solid #d4dfeb;border-radius:6px;padding:0;width:var(--dialog-width,min(680px,94vw));max-height:90dvh;color:#365575;box-shadow:0 20px 90px #173b7526;overflow:auto}dialog::backdrop,.operator-status-menu::backdrop{background:#142c4670;backdrop-filter:blur(2px)}dialog header{display:flex;justify-content:space-between;align-items:start;min-height:44px;padding:0;border:0;background:none}dialog header h2{display:flex;align-items:center;gap:7px;max-width:100%;height:44px;justify-self:start;padding:8px 12px;background:#ededed;border:1px solid #aab7c5;border-width:0 1px 1px 0;border-radius:5px 0 6px 0;font-size:18px;font-weight:400;color:#345879;margin:0;min-width:0;user-select:none}dialog header h2>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}dialog .dialog-body{padding:18px}dialog footer.button-group{padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:0;background:#f9fbfc}dialog footer .button{min-height:44px;padding:8px 12px}dialog dialog .form-error:empty{display:none}dialog.wide{--dialog-width:min(960px,95vw)}dialog.camera-dialog .toolbar{padding:15px;margin:0}dialog.camera-dialog .footnote{padding:0 15px 15px;margin:0}fieldset{border:1px solid var(--line);border-radius:5px;margin:5px 0 16px;padding:16px}legend{font-size:12px;color:var(--muted);padding:0 6px}.days{display:flex;flex-wrap:wrap;gap:12px}.days label{display:flex;gap:6px;align-items:center;margin:0}.brand-spinner{display:block;width:54px;height:54px;background:url('/logo.png') -3px -3px/180px 60px no-repeat;animation:spin 1.2s linear infinite;will-change:transform}.login-shell{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:#f4f7fb;padding:30px}.login-card{position:relative;width:min(390px,100%);background:#fff;border:1px solid #b9c3d0;border-radius:6px;box-shadow:0 8px 40px #173b750a;padding:54px 16px 0}.login-card>img{display:block;max-width:100%;height:auto;margin:0 0 26px}.login-card>.button{display:flex;width:max-content;min-width:112px;margin:4px -16px 0 auto;border-width:1px 0 0 1px;border-radius:5px 0 5px 0}.login-card>label{margin-bottom:10px}.login-card>h1{position:absolute;top:0;left:0;max-width:100%;font-size:13px;line-height:1.5}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1150px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.three-grid{grid-template-columns:1fr}.kanban{gap:10px}.ticket{padding:12px}.main-grid{grid-template-columns:1.6fr 1fr}.camera-wall[data-columns="4"]{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:850px){:root{--sidebar:0px}.menu-open .sidebar{transform:translateX(0)}.header-status{display:none}.topbar{gap:8px;padding:0 12px}.brand{width:125px}.account{gap:4px}.account>span{font-size:10px}.page-top{min-height:70px}.main-grid{grid-template-columns:1fr}.kanban{grid-template-columns:1fr}.camera-wall[data-columns="3"],.camera-wall[data-columns="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.brand{width:48px;justify-content:center}.brand img{width:42px;height:42px}.section-intro h2{font-size:19px}.section-intro>.button{font-size:12px}.metrics{gap:9px}.metric{padding:14px}.metric strong{font-size:23px}.device-grid{grid-template-columns:1fr}.card{padding:14px}.form-grid{grid-template-columns:1fr}.camera-wall,.camera-preview{gap:7px}.camera-tile>span:not(.camera-event-badge){padding:7px;font-size:10px;flex-wrap:wrap}.camera-tile .badge{font-size:9px}.form-actions{flex-direction:column;align-items:stretch}.toolbar .search{min-width:180px}.account #logout{padding:5px 8px}}.workspace>.shell-footer{margin:auto calc(var(--mati-footer-space,0px) - 4px) -6px -4px;max-width:calc(100% - var(--mati-footer-space,0px) + 8px);color:#606060;align-self:flex-end;font-size:var(--shell-footer-font-size)}.shell-footer__copyright{padding:3px 8px;background:#f2f4f7;border:1px solid var(--line);border-bottom:0;border-radius:5px 5px 0 0;overflow-wrap:anywhere}.list-pager{display:flex;justify-content:flex-end;margin:10px 4px 4px;user-select:none}.pager-card{--pager-line:var(--line);display:flex;flex-direction:column;border:1px solid var(--pager-line);border-radius:6px;overflow:hidden;background:var(--list-bg,#fafcf7)}.pager-info{display:flex;align-items:center;gap:4px;margin-left:5px;color:var(--muted);font-size:14px;line-height:21px}.pager-info>svg{width:14px;height:14px;flex:none}.pager-nav{display:flex;margin:4px}.pager-nav .button{min-height:36px;padding:6px 12px;border:1px solid var(--pager-line);border-radius:0;font-size:14px;background:var(--list-bg,#fafcf7)}.pager-link+.pager-link{border-left:0}.pager-nav .pager-link:first-child{border-radius:5px 0 0 5px}.pager-nav .pager-link:last-child{border-radius:0 5px 5px 0}.pager-current{color:var(--muted);background:var(--list-bg,#fafcf7)}.pager-nav button:hover{background:var(--list-hover,#f1f7e9)}.pager-link>svg{width:15px;height:15px;flex:none}.pager-prev>svg{transform:rotate(180deg)}.camera-live-preview{flex:none;width:100%;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;background:#172431;color:#c4d1db;font-size:12px;overflow:hidden;position:relative}.camera-live-preview video,.camera-live-preview img{width:100%;height:100%;object-fit:contain}.camera-live-preview video{pointer-events:none}#menu-toggle{width:48px;height:48px;padding:6px;flex:none}#menu-toggle>.icon{width:34px;height:34px;transition:transform .28s var(--ease)}#menu-toggle[aria-expanded=false]>.icon{transform:rotate(90deg)}.page-top h1{font-size:18px;min-height:43px}.page-top h1>.icon{width:25px;height:25px}.card-heading h2,h2{font-size:18px}.floating-field{position:relative;display:block;margin-bottom:15px;color:#536483;min-width:0}.floating-field>input,.floating-field>select,.floating-field>textarea{margin:0;width:100%;min-height:58px;padding:25px 12px 8px;font-size:16px;line-height:1.35;background:#fffaf3}.floating-field>input,.floating-field>select{height:58px}.floating-field>select{padding-right:30px;background:#f1fbf7}.floating-field>.field-label{position:absolute;top:7px;left:12px;right:12px;font-size:12px;line-height:1.2;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#6b7b8f}.floating-field>input:not(:placeholder-shown){background:#f1fbf7}.floating-field>input:focus,.floating-field>select:focus,.floating-field>textarea:focus{background:#eef8fd;border-color:#6c9bbb}.floating-field>input:disabled,.floating-field>select:disabled{background:#edf0f3}.floating-field.inline{display:block;min-width:145px;margin:0}.toolbar .floating-field.inline select{width:100%;min-height:58px}table{font-size:14px}th{font-size:13px}td small,.footnote{font-size:12px}@media(max-width:850px){.menu-collapsed{--sidebar:0px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.camera-control-bar{display:flex}.camera-control-menu{position:static;color:var(--ink,#365575)}.camera-control-menu>summary{list-style:none;display:flex;align-items:center;gap:8px;border:1px solid #d6dfe8;cursor:pointer}.camera-control-menu>summary::-webkit-details-marker{display:none}.camera-control-menu>summary svg{width:18px;height:18px}.camera-control-menu.is-patrolling>summary{color:#20766a}.camera-control-body{position:absolute;z-index:5;margin:0;border:1px solid #d6dfe8;border-radius:5px;background:#fff;overflow:auto}.camera-direction-pad{display:grid;grid-template-columns:repeat(3,44px);gap:4px;margin:0}.camera-direction-pad .button{padding:0;justify-content:center;font-size:23px;min-height:44px}.camera-control-status{color:var(--muted)}.camera-position-list{display:grid;gap:4px;max-height:220px;overflow:auto}.camera-position-row{display:flex;gap:0;align-items:stretch;position:relative}.camera-position-row>span{flex:1;min-width:0;padding:11px 10px;border:1px solid #d6dfe8;border-radius:4px 0 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:20px}.camera-position-form,.camera-patrol-form{display:flex;gap:0;align-items:stretch;margin:8px 0 0}.camera-position-form label,.camera-patrol-form label{flex:1;min-width:0;margin:0}.camera-position-form input,.camera-patrol-form input{width:100%;border-top-right-radius:0;border-bottom-right-radius:0}.camera-position-row>.button,.camera-position-form>.button,.camera-patrol-form>.button{padding:0;width:44px;min-width:44px;min-height:44px;flex:none;margin-left:-1px;border-radius:0;border-color:#d6dfe8}.camera-position-row>.button:last-child,.camera-position-form>.button:last-child,.camera-patrol-form>.button:last-child{border-radius:0 4px 4px 0}.camera-position-row.is-current>span,.camera-position-row.is-current>.button{background:#e5f5ed;border-color:#70b89b;color:#176b50}.camera-position-row.is-current>span{box-shadow:inset 3px 0 #279269;font-weight:500}.camera-positions-heading{display:flex;align-items:stretch;flex:none;width:max-content;gap:0;margin:0 0 -1px auto;min-height:44px;border:1px solid #d6dfe8;border-right:0;border-bottom:0;border-radius:6px 0 0 0;overflow:hidden;background:#fff;color:#788a9b;font-size:12px;z-index:1}.camera-positions-heading .camera-patrol-form{flex:none;min-width:0;margin:0}.camera-positions-heading .camera-patrol-form label{flex:none;width:84px}.camera-positions-heading .camera-patrol-form>.button{border-top:0;border-radius:0}.camera-positions-heading .camera-patrol-form input{border-top:0;border-left:0;border-radius:0;height:44px;min-height:44px;padding:20px 8px 2px;font-size:14px}.camera-positions-heading .camera-interval-display{flex:none;justify-content:center;min-width:64px;padding:0 8px;border-top:0;border-radius:0;white-space:nowrap;font-variant-numeric:tabular-nums}.camera-mode-chip{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;flex:none;min-width:64px;height:44px;min-height:44px;padding:1px 6px;border:0;border-bottom:1px solid #d6dfe8;border-radius:0;background:#eaf1f7;color:#3e6283;font-size:11px;line-height:1.2;cursor:pointer}.camera-mode-chip>span{order:-1}.camera-mode-chip .icon{width:22px;height:22px}.camera-mode-chip:hover{background:#dfeaf3}.camera-mode-chip[aria-pressed=true]{background:#e5f5ed;color:#176b50}.camera-mode-chip:focus-visible{outline:2px solid #2c5b93;outline-offset:-3px}.camera-positions-content{width:100%;min-height:0;flex:0 1 auto;padding:10px 12px 12px;border:1px solid #d6dfe8;border-right:0;border-bottom:0;border-radius:6px 0 0 0;background:#fff;overflow:auto}.camera-positions-heading .camera-patrol-form>.button,.camera-positions-heading .camera-interval-display,.camera-positions-heading .camera-patrol-form input,.camera-positions-heading .camera-mode-chip{border-bottom:0}#positions-menu[data-editing=false] [data-edit-only],#positions-menu[data-editing=true] .camera-interval-display{display:none}.camera-interval-display{display:flex;align-items:center;gap:7px;flex:1;min-width:0;padding:0 10px;border:1px solid #d6dfe8;border-radius:4px 0 0 4px;font-size:13px;color:#6c8193}#positions-menu[data-editing=false] .camera-patrol-form{min-height:44px}.camera-position-row>.camera-drag-handle{margin-left:0;border-radius:4px 0 0 4px;touch-action:none;cursor:grab}#positions-menu[data-editing=true] .camera-position-row>span{border-left:0;border-radius:0}.camera-position-list.is-dragging{user-select:none;cursor:grabbing}.camera-position-row.drop-before:before,.camera-position-row.drop-after:after{content:'';position:absolute;left:0;right:0;height:3px;background:#269d8a;pointer-events:none;z-index:2}.camera-position-row.drop-before:before{top:-3px}.camera-position-row.drop-after:after{bottom:-3px}.camera-position-form label:focus-within,.camera-patrol-form label:focus-within{z-index:1}.camera-position-row .icon,.camera-position-form .icon,.camera-patrol-form .icon{width:19px;height:19px}.camera-patrol-form>.button[aria-pressed=true]{background:#edf8f4;color:#15796e}#positions-menu .footnote:empty{display:none}#positions-menu .footnote:not(:empty){margin-top:8px}.camera-edge-hint{position:absolute;pointer-events:none;z-index:3;transform:translate(-50%,-50%);border-radius:50%;background:#0c223c99;color:#fff;width:52px;height:52px;padding:0;display:grid;place-items:center;line-height:1}.camera-edge-hint>.icon{display:block;width:28px;height:28px;transform:rotate(var(--hint-angle,0deg));transform-origin:center}dialog.camera-dialog .camera-control-body .footnote{padding:0;font-size:12px;line-height:1.6}@media(max-width:520px){.camera-control-bar{gap:7px}.camera-control-status{flex-basis:100%}}body:has(dialog[open]){overflow:hidden}dialog.camera-dialog[open]{display:flex;flex-direction:column;--dialog-width:min(1180px,96vw);height:min(820px,94dvh);max-height:calc(100dvh - 20px);overflow:hidden;min-width:0}dialog.camera-dialog>.camera-heading{position:absolute;inset:0 0 auto;z-index:4;display:grid;grid-template-columns:minmax(0,1fr) auto auto;pointer-events:none}.camera-heading>*{pointer-events:auto}.camera-title-group{display:flex;align-items:start;gap:0;min-width:0}.camera-bottom-tools{position:absolute;right:0;bottom:0;z-index:5}.camera-heading-actions{display:flex;align-items:stretch;flex:none;margin-left:auto;border-radius:0 5px 0 0;overflow:hidden}.camera-maximize-chip{display:grid;place-items:center;flex:none;width:44px;height:44px;border:0;background:#eaf1f7;color:#4c6d89;cursor:pointer;border-right:1px solid #aab7c5}.camera-maximize-chip:hover{background:#dce8f2}.camera-maximize-chip:focus-visible{outline:2px solid #204777;outline-offset:-3px}.camera-heading-actions>button{border-bottom:1px solid #aab7c5}.camera-heading-actions .modal-close{border-radius:0}.modal-close{display:grid;place-items:center;width:44px;height:44px;flex:none;border:0;border-bottom:1px solid #aab7c5;border-radius:0 5px;background:#c4555c;color:#fff;cursor:pointer}.modal-close:hover{background:#ab414a}.modal-close:focus-visible{outline:2px solid #204777;outline-offset:-3px}dialog.camera-dialog>.large-camera{position:relative;flex:1 1 0;min-height:0;max-height:none;aspect-ratio:auto;overflow:hidden;background:#111c24;width:100%}dialog.camera-dialog .large-camera>video,dialog.camera-dialog .large-camera>img,dialog.camera-dialog .large-camera>iframe{display:block;width:100%;height:100%;max-height:100%;min-height:0;object-fit:contain;aspect-ratio:auto;flex:1;border:0}dialog.camera-dialog .large-camera>img.camera-placeholder{position:absolute;inset:0;z-index:1;pointer-events:none}dialog.camera-dialog .large-camera:fullscreen{width:100vw;height:100dvh;min-height:100dvh;max-height:100dvh;flex:none}.camera-stream-status{min-width:0;padding:5px 10px;border:1px solid #aab7c5;border-width:0 1px 1px 0;border-radius:0 0 6px 0;background:#ededed;font-size:13px;color:#345879;display:flex;align-items:center;gap:7px;line-height:1.4;pointer-events:none}.camera-status-copy{min-width:0;overflow-wrap:anywhere}.camera-top-tools{display:flex;align-items:center;justify-content:flex-end;gap:0;min-width:0;min-height:44px}.camera-top-tools .camera-control-menu:not(#positions-menu){position:relative}.camera-top-tools #camera-controls:empty,.camera-top-tools #printer-telemetry:empty{display:none}.camera-top-tools .camera-control-bar{position:absolute;right:0;bottom:0;z-index:5;padding:0;gap:0;align-items:flex-end}.camera-top-tools .camera-control-menu>summary{min-height:44px;padding:7px 10px;background:#fff;border-color:#aab7c5;border-radius:0;font-size:13px}.camera-top-tools .camera-control-menu[open]>summary{background:#eef4f8;border-color:#b7c9d9}.camera-top-tools .camera-control-menu.is-patrolling>summary{border-color:#4b9f93;background:#edf8f4}.camera-top-tools .camera-control-body{left:auto;right:0;top:100%;bottom:auto;max-height:min(68dvh,500px);width:min(440px,calc(96vw - 22px));padding:14px;box-shadow:0 8px 30px #162e4433}.camera-top-tools #positions-menu>summary{width:44px;padding:0;justify-content:center;border-radius:6px 0 0 0}.camera-top-tools #positions-menu>summary svg,#camera-movement-toggle>.icon{width:26px;height:26px}.camera-top-tools #positions-menu[open]>summary{display:none}.camera-top-tools #positions-menu>.camera-control-body{position:static;display:flex;flex-direction:column;align-items:flex-end;width:max-content;max-width:calc(96vw - 2px);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;filter:drop-shadow(-3px -3px 8px #162e4420);overflow:visible}.camera-positions-main{display:flex;flex-direction:column;align-items:flex-end;width:280px;min-width:0}.camera-direction-panel{flex:none;padding:8px;border:1px solid #d6dfe8;border-width:1px 0 0 1px;border-radius:6px 0 0 0;background:#fff}.camera-top-tools .camera-control-status{position:absolute;bottom:100%;right:0;font-size:12px;min-width:0;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.camera-top-tools .camera-control-status:empty{display:none}.camera-view-tools>.camera-mode-chip{display:flex;min-height:44px;min-width:44px;padding:2px;gap:2px;font-size:10px}.camera-view-tools{display:flex;align-items:center;gap:0;flex:none}.camera-view-tools>.camera-tool,.camera-heading .camera-options>summary{border-left:0;margin-right:0}.camera-tool{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;border:1px solid #aab7c5;border-radius:0;background:#fff;color:#607c94;cursor:pointer}.camera-heading .camera-tool,.camera-heading .camera-control-menu:not(#positions-menu)>summary{border-top:0}.camera-view-tools>:nth-child(1 of :not([hidden])){border-radius:0 0 0 6px}.camera-view-tools>button:nth-child(1 of :not([hidden])){border-left:1px solid #aab7c5}.camera-view-tools>details:nth-child(1 of :not([hidden]))>summary{border-left:1px solid #aab7c5}.camera-heading:has(#printer-sensors) .camera-view-tools>:nth-child(1 of :not([hidden])){border-radius:0;border-left:0}.camera-heading:has(#printer-sensors) .camera-view-tools>details:nth-child(1 of :not([hidden]))>summary{border-left:0}.camera-tool:hover{background:#f0f5f8;border-color:#d9e4ec}.camera-tool[aria-pressed=true]{color:#15796e;background:#edf8f4}.camera-tool:focus-visible{outline:2px solid #2c5b93;outline-offset:-2px}.camera-tool>.icon{width:20px;height:20px}.camera-top-tools .camera-options>summary{border-radius:inherit;list-style:none;display:grid;place-items:center;width:44px;height:44px}.camera-source-note{margin:14px 0 0;font-size:12px;line-height:1.6;color:#7d8c99}#camera-capture-options>.button{width:100%;justify-content:center}.camera-top-tools #printer-telemetry{padding:0;display:flex;align-items:center;gap:0;min-width:0}.camera-heading #printer-sensors>summary{height:44px;border-radius:0 0 0 6px}.camera-heading:has(#printer-sensors){bottom:0;align-content:start;align-items:start}.camera-heading .camera-top-tools #printer-sensors{position:static}.camera-heading #printer-sensors>.camera-control-body{top:auto;bottom:0;right:0;width:min(440px,100%);max-height:min(65dvh,calc(100% - 56px));border-width:1px 0 0 1px;border-radius:6px 0 0 0}.camera-heading>.camera-top-tools{gap:0}#printer-light{border-left:0;border-radius:0}.camera-device-state{font-size:12px;color:#728596;border-left:1px solid #e0e7ed;padding-left:9px;margin-left:3px}.camera-device-warning{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#9f7242}.camera-temperature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 12px;padding:4px 0 16px}.camera-temperature-grid>div{min-width:0}.camera-temperature-grid span{display:block;font-size:12px;color:#788c9c;margin-bottom:5px}.camera-temperature-grid strong{display:block;font-size:21px;font-weight:500;color:#355e79;white-space:nowrap}.camera-temperature-grid small{font-size:11px;color:#8496a3;font-weight:400}.camera-sensor-flags,.camera-materials{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;padding:12px 0;border-top:1px solid #e4eaef}.camera-materials{padding-bottom:0}.camera-sensor-flags span,.camera-materials span{display:inline-flex;align-items:center;gap:6px}.camera-sensor-flags i,.camera-materials i{width:6px;height:6px;flex:none;border-radius:50%;background:#a3acb3}.camera-sensor-flags i.good,.camera-materials i.good{background:#2f9a7d}.camera-sensor-flags i.warning,.camera-materials i.warning{background:#c29246}@media(max-width:580px){dialog.camera-dialog[open]{height:100dvh}.camera-top-tools{gap:2px}.camera-stream-status{font-size:11px}.camera-top-tools .camera-control-menu>summary{font-size:12px;padding:7px;min-height:44px}.camera-top-tools .camera-control-status{display:none}.camera-heading h2{font-size:16px!important}.camera-device-state{display:none}.camera-top-tools .camera-control-body{right:0;width:calc(100vw - 24px);max-height:65dvh}.camera-temperature-grid{gap:14px 8px}.camera-direction-pad{grid-template-columns:repeat(3,36px)}.camera-direction-pad .button{min-height:36px}.camera-positions-heading .camera-interval-display{min-width:48px}.camera-mode-chip{min-width:52px}.camera-positions-heading .camera-patrol-form label{width:64px}}dialog.camera-dialog[open].is-maximized{position:fixed;inset:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:100dvh;border:0;border-radius:0}@media(max-width:760px){dialog.camera-dialog>.camera-heading{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}.camera-title-group{grid-column:1;grid-row:1}.camera-heading-actions{grid-column:2;grid-row:1}.camera-top-tools{grid-column:1 / -1;grid-row:2;flex-wrap:wrap;justify-self:end;max-width:100%;padding-bottom:4px}.camera-top-tools .camera-control-bar{justify-content:flex-end}.camera-top-tools .camera-control-status{display:none}}textarea{field-sizing:content;height:auto;max-height:none;resize:none;overflow:hidden;box-sizing:border-box}

.field-action-group{display:flex;align-items:stretch;gap:0}.field-action-group>.floating-field{flex:1;min-width:0;margin:0}.field-action-group>.floating-field>:is(input,select,textarea){border-top-right-radius:0;border-bottom-right-radius:0}.field-action-group>.button{margin-left:-1px;border-radius:0 5px 5px 0;align-self:stretch;min-width:0}.field-action-group>.floating-field:focus-within{z-index:1}

.field-action-group>.button.is-icon-only{width:44px;min-width:44px;padding:0;justify-content:center}
.nav-pending-entry{position:relative;border-radius:4px;overflow:hidden}.nav-pending-entry>.nav-pending-count{position:absolute;inset:0 0 0 auto;display:grid;place-items:center;min-width:24px;padding:0 4px;background:#d3753c;color:#fff;font-size:11px;font-weight:500;font-variant-numeric:tabular-nums;text-decoration:none}
.nav-pending-entry :focus-visible{outline-offset:-3px}
@media(max-width:767px){dialog[open]:modal:not(.is-maximized),.account .operator-status-menu,.call-window[role=dialog],.call-incoming[role=alert]{position:fixed;inset:calc(var(--header) + 4px) 4px auto;width:auto;max-width:none;max-height:calc(100dvh - var(--header) - 8px);margin:0}}
@media(max-width:520px){:root{--shell-footer-font-size:10px}}
@media(max-width:850px){.page-top h1{font-size:16px}}
.status-dot,.operator-status-dot{display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;background:var(--status-color,var(--status-neutral))}
:is(.status-dot,.operator-status-dot)[data-status=available]{background:var(--status-available)}
:is(.status-dot,.operator-status-dot):is([data-status=busy],[data-status=error]){background:var(--status-error)}
:is(.status-dot,.operator-status-dot)[data-status=away]{background:var(--status-away)}
.camera-live-state,.camera-event-badge{position:absolute;display:flex;align-items:center;gap:6px;max-width:100%;padding:3px 7px;font-size:10px;line-height:1.4;color:#fff;background:#000a;pointer-events:none}
.camera-live-state{z-index:2;inset:0 0 auto auto;border:solid #ffffff40;border-width:0 0 1px 1px;border-radius:0 0 0 5px}
[data-video-availability=error]>.camera-live-state{color:#ffd7d2;border-color:#bb7d77}
[data-video-availability=available] .camera-availability-dot{--status-color:var(--status-available);animation:camera-availability-pulse 3s ease-in-out infinite}
[data-video-availability=error] .camera-availability-dot{--status-color:var(--status-error)}
[data-video-updating=true] .camera-availability-dot{--status-color:var(--orange);animation:camera-availability-pulse 3s ease-in-out infinite}
@keyframes camera-availability-pulse{0%,100%{opacity:1}50%{opacity:.35}}
.camera-event-dot{display:inline-block;width:9px;height:9px;flex:none;border-radius:50%;background:var(--camera-event-color,var(--status-neutral));fill:var(--camera-event-color,var(--status-neutral))}
[data-camera-event=motion]{--camera-event-color:var(--status-away)}
[data-camera-event=error]{--camera-event-color:var(--status-error)}
[data-camera-event=none] .camera-event-dot,[data-camera-event=none].camera-event-badge,.camera-event-badge:not([data-camera-event]){display:none}
.camera-event-badge{top:0;left:0;z-index:3;border:solid var(--line);border-width:0 1px 1px 0;border-radius:0 0 4px 0;text-align:left;overflow-wrap:anywhere}
.camera-dialog .camera-event-badge{position:static;border-radius:4px;max-width:240px}
.spatial-camera-marker>.camera-event-dot{position:absolute;left:-5px;top:-5px;border:1.5px solid #fff;box-sizing:content-box}
.camera-event-indicator .camera-event-dot{width:auto;height:auto}
@media(prefers-reduced-motion:reduce){[data-video-availability=available] .camera-availability-dot,[data-video-updating=true] .camera-availability-dot{animation:none}}

.camera-availability-dot{fill:var(--status-color,var(--status-neutral))}
.spatial-camera-availability{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}
.spatial-camera-marker{position:absolute;display:flex;transform:translate(-50%,-50%);pointer-events:none}
.spatial-camera-marker>.camera-availability-dot{border:1.5px solid #fff;box-sizing:content-box}
