@font-face{font-family:Saira;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/saira-vietnamese-500-normal-DnkVjnpC.woff2)format("woff2"),url(/assets/saira-vietnamese-500-normal-CGZ3WEl0.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Saira;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/saira-latin-ext-500-normal-C-BKQ_B5.woff2)format("woff2"),url(/assets/saira-latin-ext-500-normal-DNhYPXNS.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Saira;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/saira-latin-500-normal-BUkaYXVh.woff2)format("woff2"),url(/assets/saira-latin-500-normal-DeI90g98.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Saira;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/saira-vietnamese-600-normal-D5gszP3k.woff2)format("woff2"),url(/assets/saira-vietnamese-600-normal-BXtbQ9YO.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Saira;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/saira-latin-ext-600-normal-BDLPjVgT.woff2)format("woff2"),url(/assets/saira-latin-ext-600-normal-DVm3eXEL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Saira;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/saira-latin-600-normal-DYxBFP1f.woff2)format("woff2"),url(/assets/saira-latin-600-normal-DF-o6wW3.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Saira;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/saira-vietnamese-700-normal-ChF51jJ6.woff2)format("woff2"),url(/assets/saira-vietnamese-700-normal-rQjWTXlX.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Saira;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/saira-latin-ext-700-normal-kJsnFdG-.woff2)format("woff2"),url(/assets/saira-latin-ext-700-normal-CrEf6OXZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Saira;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/saira-latin-700-normal-CObqxJsW.woff2)format("woff2"),url(/assets/saira-latin-700-normal-CWqLIJDh.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-vietnamese-400-normal-TxZB8OSn.woff2)format("woff2"),url(/assets/public-sans-vietnamese-400-normal-BO1meqcx.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-ext-400-normal-mk90oQqJ.woff2)format("woff2"),url(/assets/public-sans-latin-ext-400-normal-B02wwOdZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-400-normal-8Rpg0ruU.woff2)format("woff2"),url(/assets/public-sans-latin-400-normal-SBbinRkI.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-vietnamese-500-normal-DjztbcKe.woff2)format("woff2"),url(/assets/public-sans-vietnamese-500-normal-CXYe29CY.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-ext-500-normal-DC-z7ASZ.woff2)format("woff2"),url(/assets/public-sans-latin-ext-500-normal-BHCCp-na.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-500-normal-NlrCPXnF.woff2)format("woff2"),url(/assets/public-sans-latin-500-normal-vCxiVFAq.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-vietnamese-600-normal-P4BtCUdw.woff2)format("woff2"),url(/assets/public-sans-vietnamese-600-normal-CcnAzmUX.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-ext-600-normal-DchWdWJ_.woff2)format("woff2"),url(/assets/public-sans-latin-ext-600-normal-DfkbVac2.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-600-normal-Fru-LXNs.woff2)format("woff2"),url(/assets/public-sans-latin-600-normal-BR59oU-I.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-vietnamese-700-normal-D97ShjGS.woff2)format("woff2"),url(/assets/public-sans-vietnamese-700-normal-Dq5VrXjD.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-ext-700-normal-CgolUQuG.woff2)format("woff2"),url(/assets/public-sans-latin-ext-700-normal-jWHjnMgZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-700-normal-BqJmxWdE.woff2)format("woff2"),url(/assets/public-sans-latin-700-normal-Dm-oTPSL.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--brand-ink:#23285c;--brand-ink-2:#353b7a;--brand-signal:#e0262c;--brand-signal-soft:#fde8e8;--bg:#eef1f7;--bg-grad-a:#e6ebf5;--bg-grad-b:#f5f6fa;--surface:#ffffffa3;--surface-strong:#ffffffdb;--surface-solid:#fff;--surface-sunken:#23285c0a;--surface-hover:#23285c0e;--surface-active:#23285c17;--glass-border:#ffffffbf;--glass-blur:18px;--text:#1a1e45;--text-2:#4a4f78;--text-3:#7c809f;--text-inverse:#fff;--line:#23285c1a;--line-strong:#23285c2e;--ok:#12946a;--ok-soft:#e1f5ee;--warn:#c98a12;--warn-soft:#fbf1dc;--danger:#e0262c;--danger-soft:#fde8e8;--info:#2f6fd6;--info-soft:#e4edfb;--neutral:#7c809f;--neutral-soft:#eceef4;--sync:#6b4fd8;--sync-soft:#ece8fb;--focus:0 0 0 3px #2f6fd659;--font-display:"Saira", "Segoe UI", system-ui, sans-serif;--font-body:"Public Sans", "Segoe UI", system-ui, sans-serif;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-md:.875rem;--fs-lg:1rem;--fs-xl:1.25rem;--fs-2xl:1.625rem;--fs-3xl:2.25rem;--r-xs:6px;--r-sm:9px;--r-md:13px;--r-lg:20px;--r-xl:28px;--r-pill:999px;--shadow-1:0 1px 2px #1a1e450d;--shadow-2:0 6px 24px -10px #1a1e452e;--shadow-3:0 24px 60px -20px #1a1e4552;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sidebar-w:248px;--sidebar-w-collapsed:72px;--topbar-h:64px;--ease:cubic-bezier(.2, .7, .2, 1);--dur:.18s}:root[data-theme=dark]{--bg:#0f1230;--bg-grad-a:#13173b;--bg-grad-b:#0c0f28;--surface:#1e23508c;--surface-strong:#222758d9;--surface-solid:#1a1e45;--surface-sunken:#ffffff0a;--surface-hover:#ffffff0f;--surface-active:#ffffff1a;--glass-border:#ffffff14;--text:#eef0fb;--text-2:#b6b9d6;--text-3:#8286ab;--line:#ffffff17;--line-strong:#ffffff29;--brand-ink:#8f97ff;--brand-ink-2:#a6acff;--ok-soft:#12946a2e;--warn-soft:#c98a122e;--danger-soft:#e0262c2e;--info-soft:#2f6fd633;--neutral-soft:#ffffff14;--sync-soft:#6b4fd838}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);font-size:var(--fs-md);color:var(--text);background:radial-gradient(1200px 600px at 85% -10%, #e0262c12, transparent 60%), radial-gradient(900px 700px at -10% 110%, #23285c1a, transparent 60%), linear-gradient(160deg, var(--bg-grad-a), var(--bg-grad-b));-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;background-attachment:fixed;margin:0;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);color:var(--text);letter-spacing:-.01em;margin:0}h1{font-size:var(--fs-2xl);font-weight:650;line-height:1.15}h2{font-size:var(--fs-xl);font-weight:620;line-height:1.25}h3{font-size:var(--fs-lg);font-weight:600;line-height:1.3}h4{font-size:var(--fs-md);font-weight:600}p{margin:0}a{color:var(--brand-ink);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{box-shadow:var(--focus);border-radius:var(--r-xs);outline:none}::selection{background:#23285c29}code,.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.92em}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.small{font-size:var(--fs-sm)}.xs{font-size:var(--fs-xs)}.strong{font-weight:600}.nowrap{white-space:nowrap}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row{align-items:center;gap:var(--sp-2);display:flex}.row-3{align-items:center;gap:var(--sp-3);display:flex}.col{gap:var(--sp-2);flex-direction:column;display:flex}.stack{gap:var(--sp-4);flex-direction:column;display:flex}.stack-lg{gap:var(--sp-6);flex-direction:column;display:flex}.spacer{flex:1}.wrap{flex-wrap:wrap}.grid-2{gap:var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-3{gap:var(--sp-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.grid-4{gap:var(--sp-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (width<=1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.glass{background:var(--surface);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border:1px solid var(--glass-border);box-shadow:var(--shadow-1), var(--shadow-2)}.card{background:var(--surface);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border:1px solid var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--shadow-1), var(--shadow-2);min-width:0}.card--flat{box-shadow:none;background:var(--surface-sunken);-webkit-backdrop-filter:none;backdrop-filter:none;border-color:#0000}.card__head{align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5) 0;min-height:52px;display:flex}.card__title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:600}.card__sub{color:var(--text-3);font-size:var(--fs-sm)}.card__body{padding:var(--sp-4) var(--sp-5) var(--sp-5)}.card__body--flush{padding:var(--sp-2) 0 var(--sp-2)}.btn{--btn-bg:var(--surface-strong);--btn-fg:var(--text);--btn-bd:var(--line-strong);border-radius:var(--r-sm);border:1px solid var(--btn-bd);background:var(--btn-bg);height:36px;color:var(--btn-fg);font-weight:560;font-size:var(--fs-md);cursor:pointer;white-space:nowrap;transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), transform 80ms;justify-content:center;align-items:center;gap:7px;padding:0 14px;display:inline-flex}.btn:hover{background:var(--surface-solid);border-color:var(--brand-ink)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn svg{flex:none;width:16px;height:16px}.btn--primary{--btn-bg:var(--brand-ink);--btn-fg:#fff;--btn-bd:var(--brand-ink)}.btn--primary:hover{background:var(--brand-ink-2);border-color:var(--brand-ink-2)}.btn--danger{--btn-bg:var(--danger);--btn-fg:#fff;--btn-bd:var(--danger)}.btn--danger:hover{background:#c81e24;border-color:#c81e24}.btn--ghost{--btn-bg:transparent;--btn-bd:transparent}.btn--ghost:hover{background:var(--surface-hover);border-color:#0000}.btn--sm{height:30px;font-size:var(--fs-sm);border-radius:var(--r-xs);padding:0 10px}.btn--lg{height:44px;font-size:var(--fs-lg);border-radius:var(--r-md);padding:0 20px}.btn--block{width:100%}.icon-btn{border-radius:var(--r-sm);width:36px;height:36px;color:var(--text-2);cursor:pointer;transition:background var(--dur) var(--ease);background:0 0;border:1px solid #0000;flex:none;place-items:center;display:inline-grid;position:relative}.icon-btn:hover{background:var(--surface-hover);color:var(--text)}.icon-btn--sm{width:28px;height:28px}.icon-btn svg{width:18px;height:18px}.icon-btn--sm svg{width:15px;height:15px}.icon-btn__dot{background:var(--danger);width:8px;height:8px;box-shadow:0 0 0 2px var(--surface-solid);border-radius:50%;position:absolute;top:7px;right:7px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field__label{font-size:var(--fs-sm);color:var(--text-2);font-weight:560}.field__hint{font-size:var(--fs-xs);color:var(--text-3)}.field__error{font-size:var(--fs-xs);color:var(--danger)}.input,.select,.textarea{border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--surface-strong);width:100%;height:38px;transition:border-color var(--dur), box-shadow var(--dur);min-width:0;padding:0 12px}.textarea{resize:vertical;height:auto;min-height:88px;padding:10px 12px}.input:hover,.select:hover,.textarea:hover{border-color:var(--text-3)}.input:focus,.select:focus,.textarea:focus{border-color:var(--info);box-shadow:var(--focus);outline:none}.input[aria-invalid=true]{border-color:var(--danger)}.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237c809f' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;padding-right:32px}.input-wrap{align-items:center;display:flex;position:relative}.input-wrap>svg{width:16px;height:16px;color:var(--text-3);pointer-events:none;position:absolute;left:11px}.input-wrap>.input{padding-left:34px}.input-wrap__kbd{position:absolute;right:8px}.kbd{border:1px solid var(--line-strong);background:var(--surface-solid);color:var(--text-3);font-size:11px;font-family:var(--font-body);border-radius:5px;align-items:center;padding:1px 6px;display:inline-flex}.check{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex}.check input{width:16px;height:16px;accent-color:var(--brand-ink);cursor:pointer}.switch{cursor:pointer;align-items:center;gap:10px;display:inline-flex;position:relative}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch__track{background:var(--line-strong);width:36px;height:20px;transition:background var(--dur);border-radius:999px;flex:none;position:relative}.switch__track:after{content:"";width:16px;height:16px;transition:transform var(--dur) var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.switch input:checked+.switch__track{background:var(--brand-ink)}.switch input:checked+.switch__track:after{transform:translate(16px)}.switch input:focus-visible+.switch__track{box-shadow:var(--focus)}.segmented{border-radius:var(--r-sm);background:var(--surface-sunken);border:1px solid var(--line);gap:2px;padding:3px;display:inline-flex}.segmented button{height:28px;font-size:var(--fs-sm);color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:0 12px;font-weight:560}.segmented button[aria-pressed=true]{background:var(--surface-solid);color:var(--text);box-shadow:var(--shadow-1), 0 1px 4px #1a1e4514}.badge{--b-fg:var(--text-2);--b-bg:var(--neutral-soft);border-radius:var(--r-pill);background:var(--b-bg);height:22px;color:var(--b-fg);font-size:var(--fs-xs);white-space:nowrap;align-items:center;gap:5px;padding:0 8px;font-weight:600;line-height:1;display:inline-flex}.badge svg{width:12px;height:12px}.badge--ok{--b-fg:var(--ok);--b-bg:var(--ok-soft)}.badge--warn{--b-fg:#9a6700;--b-bg:var(--warn-soft)}.badge--danger{--b-fg:var(--danger);--b-bg:var(--danger-soft)}.badge--info{--b-fg:var(--info);--b-bg:var(--info-soft)}.badge--sync{--b-fg:var(--sync);--b-bg:var(--sync-soft)}.badge--ink{--b-fg:#fff;--b-bg:var(--brand-ink)}.badge--outline{box-shadow:inset 0 0 0 1px var(--line-strong);background:0 0}.dot{background:var(--neutral);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.dot--ok{background:var(--ok)}.dot--warn{background:var(--warn)}.dot--danger{background:var(--danger)}.dot--info{background:var(--info)}.dot--sync{background:var(--sync)}.dot--live{position:relative}.dot--live:after{content:"";color:inherit;opacity:0;animation:ping 1.8s var(--ease) infinite;border:2px solid;border-radius:50%;position:absolute;inset:-3px}.dot--ok.dot--live:after{color:var(--ok)}.dot--danger.dot--live:after{color:var(--danger)}@keyframes ping{0%{opacity:.8;transform:scale(.6)}to{opacity:0;transform:scale(1.8)}}.avatar{--av:32px;width:var(--av);height:var(--av);font-family:var(--font-display);font-weight:600;font-size:calc(var(--av) * .38);color:#fff;letter-spacing:.02em;border-radius:50%;flex:none;place-items:center;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar--sm{--av:26px}.avatar--lg{--av:48px}.avatar--xl{--av:72px}.table-wrap{overflow-x:auto}.table{border-collapse:separate;border-spacing:0;width:100%}.table th{text-align:left;font-weight:560;font-size:var(--fs-xs);color:var(--text-3);border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface-strong);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1;padding:10px 14px;position:sticky;top:0}.table th button{all:unset;cursor:pointer;align-items:center;gap:4px;display:inline-flex}.table th button:focus-visible{box-shadow:var(--focus);border-radius:4px}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 14px}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background var(--dur)}.table tbody tr:hover{background:var(--surface-hover)}.table tbody tr.is-clickable{cursor:pointer}.table tbody tr.is-selected{background:var(--info-soft)}.table td.num,.table th.num{text-align:right}.table--compact td{padding:8px 14px}.pager{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--line);color:var(--text-3);font-size:var(--fs-sm);display:flex}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:2px;display:flex;overflow-x:auto}.tabs button{color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:10px 14px;font-weight:560;display:inline-flex;position:relative}.tabs button:hover,.tabs button[aria-selected=true]{color:var(--text)}.tabs button[aria-selected=true]:after{content:"";background:var(--brand-ink);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:10px;right:10px}.tabs__count{background:var(--surface-active);color:var(--text-2);border-radius:999px;padding:1px 6px;font-size:11px}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;animation:fade-in .16s var(--ease);background:#14173747;position:fixed;inset:0}.modal{z-index:101;border-radius:var(--r-xl);background:var(--surface-strong);-webkit-backdrop-filter:blur(24px)saturate(1.5);backdrop-filter:blur(24px)saturate(1.5);border:1px solid var(--glass-border);width:min(560px,100vw - 32px);max-height:calc(100vh - 48px);box-shadow:var(--shadow-3);animation:pop-in .2s var(--ease);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.modal--lg{width:min(820px,100vw - 32px)}.modal__head{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-6) var(--sp-6) var(--sp-2);display:flex}.modal__body{padding:var(--sp-4) var(--sp-6);overflow-y:auto}.modal__foot{justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-4) var(--sp-6) var(--sp-6);display:flex}.drawer{z-index:101;border-radius:var(--r-xl);background:var(--surface-strong);-webkit-backdrop-filter:blur(24px)saturate(1.5);backdrop-filter:blur(24px)saturate(1.5);border:1px solid var(--glass-border);width:min(520px,100vw - 24px);box-shadow:var(--shadow-3);animation:slide-in .24s var(--ease);flex-direction:column;display:flex;position:fixed;top:12px;bottom:12px;right:12px}.drawer--wide{width:min(760px,100vw - 24px)}.drawer__head{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--line);display:flex}.drawer__body{padding:var(--sp-5) var(--sp-6);flex:1;overflow-y:auto}.drawer__foot{justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-4) var(--sp-6);border-top:1px solid var(--line);display:flex}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translate(-50%,-48%)scale(.98)}}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}}.dropdown{display:inline-flex;position:relative}.menu{z-index:60;border-radius:var(--r-md);background:var(--surface-strong);-webkit-backdrop-filter:blur(24px)saturate(1.5);backdrop-filter:blur(24px)saturate(1.5);border:1px solid var(--glass-border);min-width:200px;box-shadow:var(--shadow-3);padding:6px;animation:.12s fade-in;position:absolute;top:calc(100% + 6px);right:0}.menu--left{left:0;right:auto}.menu__item{text-align:left;cursor:pointer;width:100%;color:var(--text);font-size:var(--fs-md);background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.menu__item:hover,.menu__item:focus-visible{background:var(--surface-hover);box-shadow:none}.menu__item svg{width:16px;height:16px;color:var(--text-3)}.menu__item--danger,.menu__item--danger svg{color:var(--danger)}.menu__sep{background:var(--line);height:1px;margin:6px 4px}.menu__label{font-size:var(--fs-xs);color:var(--text-3);padding:6px 10px 4px}.tip{display:inline-flex;position:relative}.tip__bubble{background:var(--text);color:#fff;font-size:var(--fs-xs);white-space:nowrap;pointer-events:none;opacity:0;z-index:80;border-radius:7px;padding:5px 9px;transition:opacity .12s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tip:hover .tip__bubble,.tip:focus-within .tip__bubble{opacity:1}.table-wrap .tip:not(.tip--right) .tip__bubble{left:auto;right:auto;inset-inline-end:0;transform:none}.tip--right .tip__bubble{top:50%;bottom:auto;left:calc(100% + 10px);transform:translateY(-50%)}.toasts{z-index:200;flex-direction:column;gap:8px;width:min(380px,100vw - 40px);display:flex;position:fixed;bottom:20px;right:20px}.toast{border-radius:var(--r-md);background:var(--surface-strong);-webkit-backdrop-filter:blur(20px)saturate(1.5);backdrop-filter:blur(20px)saturate(1.5);border:1px solid var(--glass-border);box-shadow:var(--shadow-3);animation:toast-in .24s var(--ease);align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.toast svg{flex:none;width:18px;height:18px;margin-top:1px}.toast--ok svg{color:var(--ok)}.toast--danger svg{color:var(--danger)}.toast--warn svg{color:var(--warn)}.toast--info svg{color:var(--info)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}.state{text-align:center;color:var(--text-2);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:48px 24px;display:flex}.state__icon{background:var(--surface-sunken);width:52px;height:52px;color:var(--text-3);border-radius:16px;place-items:center;display:grid}.state__icon svg{width:24px;height:24px}.state--error .state__icon{background:var(--danger-soft);color:var(--danger)}.state h3{color:var(--text)}.state p{max-width:44ch;font-size:var(--fs-sm)}.skeleton{background:linear-gradient(90deg, var(--surface-sunken) 0%, var(--surface-active) 50%, var(--surface-sunken) 100%);background-size:200% 100%;border-radius:8px;animation:1.3s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.spinner{border:2px solid var(--line-strong);border-top-color:var(--brand-ink);border-radius:50%;flex:none;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.stat{padding:var(--sp-4) var(--sp-5);flex-direction:column;gap:4px;min-width:0;display:flex}.stat__label{color:var(--text-2);font-size:var(--fs-sm);align-items:center;gap:8px;display:flex}.stat__label svg{width:16px;height:16px;color:var(--text-3)}.stat__value{font-family:var(--font-display);font-size:var(--fs-3xl);letter-spacing:-.02em;font-weight:600;line-height:1.1}.stat__meta{font-size:var(--fs-xs);color:var(--text-3)}.meter{background:var(--surface-active);border-radius:999px;height:6px;overflow:hidden}.meter>span{border-radius:inherit;background:var(--brand-ink);height:100%;transition:width .4s var(--ease);display:block}.meter--ok>span{background:var(--ok)}.meter--warn>span{background:var(--warn)}.meter--danger>span{background:var(--danger)}.timeline{margin:0;padding:0;list-style:none;position:relative}.timeline li{gap:12px;padding:0 0 16px;display:flex;position:relative}.timeline li:before{content:"";background:var(--line);width:2px;position:absolute;top:28px;bottom:0;left:13px}.timeline li:last-child:before{display:none}.timeline__icon{background:var(--neutral-soft);width:28px;height:28px;color:var(--text-2);border-radius:50%;flex:none;place-items:center;display:grid}.timeline__icon svg{width:14px;height:14px}.timeline__icon--ok{background:var(--ok-soft);color:var(--ok)}.timeline__icon--danger{background:var(--danger-soft);color:var(--danger)}.timeline__icon--warn{background:var(--warn-soft);color:var(--warn)}.timeline__icon--info{background:var(--info-soft);color:var(--info)}.timeline__icon--sync{background:var(--sync-soft);color:var(--sync)}.kv{grid-template-columns:minmax(120px,max-content) 1fr;gap:10px 20px;margin:0;display:grid}.kv dt{color:var(--text-3);font-size:var(--fs-sm)}.kv dd{min-width:0;margin:0}.section-title{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.section-title h3{font-size:var(--fs-md)}.filters{align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.filters .input-wrap{flex:240px;max-width:360px}.filters .select{width:auto;min-width:140px}.chip{border:1px solid var(--line-strong);background:var(--surface-strong);height:28px;font-size:var(--fs-sm);cursor:pointer;color:var(--text-2);border-radius:999px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.chip[aria-pressed=true]{background:var(--brand-ink);border-color:var(--brand-ink);color:#fff}.chip svg{width:14px;height:14px}.cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.cal__dow{font-size:var(--fs-xs);color:var(--text-3);text-align:center;padding:4px 0}.cal__day{aspect-ratio:1;background:var(--surface-sunken);min-height:34px;font-size:var(--fs-sm);cursor:pointer;border:1px solid #0000;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:2px;display:flex;position:relative}.cal__day:hover{border-color:var(--line-strong)}.cal__day.is-out{opacity:.35}.cal__day.is-today{border-color:var(--brand-ink);font-weight:700}.cal__day.is-selected{background:var(--brand-ink);color:#fff}.cal__mark{border-radius:2px;width:70%;height:3px}@media (width<=720px){.input,.select,.textarea{font-size:16px}:is(.grid-4:has(>.stat),.grid-3:has(>.stat)){grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:var(--sp-3) var(--sp-4)}.stat__value{font-size:var(--fs-2xl)}.filters{padding:var(--sp-3) var(--sp-4)}.filters .input-wrap{flex:100%;max-width:none}.filters .select{flex:1 1 calc(50% - var(--sp-2));min-width:0}.filters .spacer{display:none}.table th,.table td{padding-inline:10px}.modal{max-height:calc(100dvh - 32px)}.drawer{top:8px;bottom:8px}.modal__head,.modal__body,.modal__foot,.drawer__head,.drawer__body,.drawer__foot{padding-inline:var(--sp-4)}.modal__foot,.drawer__foot{flex-wrap:wrap}.tip__bubble{max-width:calc(100vw - 32px)}.main{overflow-x:clip}}.shell{min-height:100vh;display:flex}.sidebar{height:100vh;width:var(--sidebar-w);z-index:40;transition:width .22s var(--ease);-webkit-backdrop-filter:blur(22px)saturate(1.5);border-right:1px solid var(--glass-border);background:#ffffff80;flex-direction:column;flex:none;gap:6px;padding:14px 12px;display:flex;position:sticky;top:0}.sidebar.is-collapsed{width:var(--sidebar-w-collapsed)}.sidebar__brand{align-items:center;height:56px;margin-bottom:6px;padding:0 4px;display:flex}.sidebar__logo{object-fit:contain;object-position:left center;width:auto;max-width:100%;height:52px;display:block}.sidebar__emblem{width:38px;height:44px;margin:0 auto;display:block;overflow:hidden}.sidebar__emblem img{width:auto;max-width:none;height:44px;display:block}.sidebar__nav{scrollbar-width:thin;flex-direction:column;flex:1;gap:2px;padding-right:2px;display:flex;overflow:hidden auto}.sidebar__group{font-size:var(--fs-xs);color:var(--text-3);white-space:nowrap;padding:14px 12px 4px;font-weight:560}.is-collapsed .sidebar__group{background:var(--line);color:#0000;height:1px;margin:10px 14px;padding:0;overflow:hidden}.nav-link{border-radius:var(--r-sm);height:38px;color:var(--text-2);white-space:nowrap;transition:background var(--dur), color var(--dur);align-items:center;gap:12px;padding:0 12px;font-weight:540;text-decoration:none;display:flex;position:relative}.nav-link:hover{background:var(--surface-hover);color:var(--text);text-decoration:none}.nav-link svg{flex:none;width:18px;height:18px}.nav-link.active{background:var(--surface-solid);color:var(--brand-ink);box-shadow:var(--shadow-1), 0 2px 10px -4px #1a1e4533}.nav-link.active:before{content:"";background:var(--brand-signal);border-radius:0 3px 3px 0;width:3px;position:absolute;top:9px;bottom:9px;left:-12px}.nav-link__count{background:var(--danger);color:#fff;border-radius:999px;place-items:center;min-width:20px;height:18px;margin-left:auto;padding:0 6px;font-size:11px;font-weight:700;display:grid}.is-collapsed .nav-link{justify-content:center;padding:0}.is-collapsed .nav-link__label,.is-collapsed .nav-link__count{display:none}.sidebar__foot{border-top:1px solid var(--line);flex-direction:column;gap:2px;padding-top:8px;display:flex}.cc-tag{color:#fff;background:var(--brand-signal);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:30;height:var(--topbar-h);align-items:center;gap:var(--sp-4);padding:0 var(--sp-6);-webkit-backdrop-filter:blur(18px)saturate(1.4);border-bottom:1px solid var(--line);background:#eef1f7b8;grid-template-columns:minmax(max-content,1fr) minmax(220px,520px) minmax(max-content,1fr);display:grid;position:sticky;top:0}.topbar__start,.topbar__end{align-items:center;gap:var(--sp-3);min-width:0;display:flex}.topbar__end{justify-content:flex-end}.lang-btn svg{width:16px;height:16px}.topbar__search{border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--surface-strong);width:100%;height:38px;color:var(--text-3);cursor:text;text-align:left;align-items:center;gap:10px;padding:0 10px 0 12px;display:flex}.topbar__search svg{width:16px;height:16px}.topbar__search:hover{border-color:var(--text-3)}.topbar__search svg{flex:none}.topbar__search-text{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.topbar__search .kbd{flex:none}.topbar__scope{align-items:center;gap:8px;display:flex}.topbar__user{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:10px;padding:4px 8px 4px 4px;display:flex}.topbar__user:hover{background:var(--surface-hover)}.topbar__user-name{font-weight:600;font-size:var(--fs-sm);text-align:left;line-height:1.2}.topbar__user-role{font-size:var(--fs-xs);color:var(--text-3);text-align:left;line-height:1.2}.conn{font-size:var(--fs-xs);color:var(--text-2);background:var(--surface-strong);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:4px 10px;display:inline-flex}.support-banner{padding:8px var(--sp-6);background:var(--warn-soft);color:#7a5200;font-size:var(--fs-sm);border-bottom:1px solid #c98a124d;align-items:center;gap:10px;display:flex}.support-banner svg{width:16px;height:16px}.page{padding:var(--sp-6) var(--sp-6) var(--sp-10);gap:var(--sp-5);flex-direction:column;width:100%;max-width:1480px;margin:0 auto;display:flex}.page-head{align-items:flex-end;gap:var(--sp-4);flex-wrap:wrap;display:flex}.page-head__text{flex:320px;min-width:0}.page-head__text p{color:var(--text-2);max-width:72ch;margin-top:4px}.page-head__actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.crumbs{font-size:var(--fs-sm);color:var(--text-3);align-items:center;gap:6px;margin-bottom:6px;display:flex}.crumbs a{color:var(--text-3)}.crumbs svg{width:13px;height:13px}.palette{z-index:150;border-radius:var(--r-xl);background:var(--surface-strong);-webkit-backdrop-filter:blur(28px)saturate(1.6);backdrop-filter:blur(28px)saturate(1.6);border:1px solid var(--glass-border);width:min(640px,100vw - 32px);box-shadow:var(--shadow-3);animation:.14s fade-in;position:fixed;top:12vh;left:50%;overflow:hidden;transform:translate(-50%)}.palette__input{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:16px 20px;display:flex}.palette__input input{font-size:var(--fs-lg);background:0 0;border:0;outline:none;flex:1}.palette__input svg{width:20px;height:20px;color:var(--text-3)}.palette__list{max-height:52vh;padding:8px;overflow-y:auto}.palette__group{font-size:var(--fs-xs);color:var(--text-3);padding:8px 12px 4px}.palette__item{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;width:100%;padding:9px 12px;display:flex}.palette__item.is-active{background:var(--surface-active)}.palette__item svg{width:16px;height:16px;color:var(--text-3);flex:none}.mobile-nav-btn{display:none}@media (width<=960px){.sidebar{transition:transform .24s var(--ease);background:var(--surface-strong);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);width:var(--sidebar-w)!important}.sidebar.is-open{box-shadow:var(--shadow-3);transform:none}.sidebar.is-collapsed .nav-link__label,.sidebar.is-collapsed .nav-link__count{display:inline}.mobile-nav-btn{display:inline-grid}.sidebar__collapse{display:none!important}.topbar{padding:0 var(--sp-4)}.page{padding:var(--sp-4) var(--sp-4) var(--sp-8)}.topbar__search .kbd,.topbar__user-text,.conn__label{display:none}.topbar{gap:var(--sp-2);grid-template-columns:auto minmax(0,1fr) auto}}@media (width<=720px){.topbar{grid-template-columns:auto 38px minmax(0,1fr)}.topbar__search{justify-content:center;width:38px;padding:0}.topbar__search-text{display:none}.topbar__end{gap:var(--sp-2)}}:root[dir=rtl]{--font-body:"Segoe UI", "Noto Sans Arabic", Tahoma, system-ui, sans-serif;--font-display:"Segoe UI", "Noto Sans Arabic", Tahoma, system-ui, sans-serif}[dir=rtl] .sidebar{border-right:0;border-left:1px solid var(--glass-border)}[dir=rtl] .nav-link.active:before{border-radius:3px 0 0 3px;left:auto;right:-12px}[dir=rtl] .nav-link__count{margin-left:0;margin-right:auto}[dir=rtl] .drawer{left:12px;right:auto}[dir=rtl] .toasts{left:20px;right:auto}[dir=rtl] .menu{left:0;right:auto}[dir=rtl] .menu--left{left:auto;right:0}[dir=rtl] .menu__item,[dir=rtl] .palette__item,[dir=rtl] .table th,[dir=rtl] .topbar__user-name,[dir=rtl] .topbar__user-role{text-align:right}[dir=rtl] .input-wrap>svg{left:auto;right:11px}[dir=rtl] .input-wrap>.input{padding-left:12px;padding-right:34px}[dir=rtl] .input-wrap__kbd{left:8px;right:auto}[dir=rtl] .select{background-position:11px;padding-left:32px;padding-right:12px}[dir=rtl] .crumbs svg,[dir=rtl] .sidebar__collapse svg{transform:scaleX(-1)}@media (width<=960px){[dir=rtl] .sidebar{left:auto;right:0;transform:translate(100%)}[dir=rtl] .sidebar.is-open{transform:none}}.infra-alert{box-shadow:inset 0 0 0 1px}.infra-cmdbar{gap:var(--sp-2);flex-wrap:wrap;display:flex}.door-hero{align-items:center;gap:var(--sp-5);padding:var(--sp-5);flex-wrap:wrap;display:flex}.door-hero__state{color:#fff;border-radius:22px;flex:none;place-items:center;width:72px;height:72px;display:grid;position:relative}.door-hero__state svg{width:30px;height:30px}.door-hero__state.is-alert:after{content:"";animation:ping 1.8s var(--ease) infinite;border:2px solid;border-radius:26px;position:absolute;inset:-6px}.door-hero__label{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:650;line-height:1.1}.hour-strip{background:var(--surface-sunken);border-radius:6px;height:22px;display:flex;position:relative;overflow:hidden}.hour-strip>span{height:100%}.hour-strip__now{background:var(--text);border-radius:2px;width:2px;position:absolute;top:-3px;bottom:-3px}.hour-scale{color:var(--text-3);justify-content:space-between;margin-top:4px;font-size:11px;display:flex}.legend{font-size:var(--fs-xs);color:var(--text-2);flex-wrap:wrap;gap:6px 14px;display:flex}.legend>span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:3px;width:10px;height:10px;display:inline-block}.map-layout{gap:var(--sp-4);grid-template-columns:minmax(0,1fr) 340px;align-items:start;display:grid}@media (width<=1100px){.map-layout{grid-template-columns:minmax(0,1fr)}}.map-canvas{aspect-ratio:16/10;border-radius:var(--r-lg);background:linear-gradient(var(--line) 1px, transparent 1px) 0 0 / 5% 8%, linear-gradient(90deg, var(--line) 1px, transparent 1px) 0 0 / 5% 8%, #ffffff80;width:100%;position:relative;overflow:hidden}.map-canvas svg{width:100%;height:100%;position:absolute;inset:0}.map-zone rect{transition:fill var(--dur)}.map-zone:hover rect{fill-opacity:.2}.map-door{cursor:pointer;color:#fff;width:28px;height:28px;transition:transform .14s var(--ease);border:3px solid #fff;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 4px 14px -4px #1a1e4573}.map-door svg{width:13px;height:13px}.map-door:hover,.map-door:focus-visible{border-radius:50%;transform:translate(-50%,-50%)scale(1.18)}.map-door.is-selected{transform:translate(-50%,-50%)scale(1.18);box-shadow:0 0 0 4px #23285c40,0 4px 14px -4px #1a1e4573}.map-door.is-alert:before{content:"";animation:ping 1.6s var(--ease) infinite;border:2px solid;border-radius:50%;position:absolute;inset:-9px}.map-door__tag{white-space:nowrap;color:var(--text);background:var(--surface-strong);pointer-events:none;opacity:0;border-radius:5px;padding:1px 6px;font-size:11px;font-weight:600;transition:opacity .12s;position:absolute;top:calc(100% + 5px);left:50%;transform:translate(-50%)}.map-door:hover .map-door__tag,.map-door:focus-visible .map-door__tag,.map-door.is-selected .map-door__tag,.map-door.is-alert .map-door__tag{opacity:1}.map-zone-label{pointer-events:none;flex-direction:column;gap:2px;padding:8px 10px;display:flex;position:absolute}.map-zone-label strong{font-family:var(--font-display);font-size:var(--fs-sm);color:var(--text);font-weight:600}.map-zone-label span{color:var(--text-2);font-size:11px}@media (width<=720px){.map-zone-label span{display:none}.map-door{border-width:2px;width:22px;height:22px}}.discover-row{border-radius:var(--r-md);background:var(--surface-sunken);align-items:center;gap:12px;padding:10px 12px;display:flex}.form-grid{gap:var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-grid .span-2{grid-column:1/-1}@media (width<=560px){.form-grid{grid-template-columns:minmax(0,1fr)}}.edge-card-grid{gap:var(--sp-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (width<=900px){.edge-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.edge-metric{flex-direction:column;gap:6px;display:flex}.edge-metric__v{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:600}.list-plain{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.list-plain>li{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:9px 0;display:flex}.list-plain>li:last-child{border-bottom:0}.kact{border:1px solid var(--line);background:var(--surface-solid);min-width:88px;height:48px;color:var(--text);font:inherit;white-space:nowrap;cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;font-weight:650;transition:background-color .15s,border-color .15s,transform .1s;display:inline-flex}.kact:hover{border-color:var(--line-strong);background:var(--surface-hover)}.kact:active{transform:scale(.96)}.kact:disabled{opacity:.4;cursor:default;transform:none}.kact svg{width:16px;height:16px}.kact--ok{border-color:color-mix(in srgb, var(--ok) 40%, transparent);color:var(--ok)}.kact--ok:hover{background:var(--ok-soft)}.kact.is-armed{border-color:var(--brand-ink);background:var(--brand-ink);color:#fff;animation:.9s ease-in-out infinite kact-armed}.kact--ok.is-armed{border-color:var(--ok);background:var(--ok)}@keyframes kact-armed{50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--brand-ink) 18%, transparent)}}.kact__spin{animation:.9s linear infinite spin}.desk-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));align-content:start;gap:12px;min-height:0;display:grid}.desk{border:1px solid var(--line);background:var(--surface-solid);box-shadow:var(--shadow-1);border-radius:18px;flex-direction:column;gap:8px;padding:12px;display:flex}.desk--forced,.desk--offline{border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.desk--held_open{border-color:color-mix(in srgb, var(--warn) 40%, transparent)}.desk--override{border-color:color-mix(in srgb, var(--sync) 40%, transparent)}.desk__head{align-items:center;gap:8px;min-width:0;display:flex}.desk__head strong{min-width:0;font-size:var(--fs-md);flex:1}.desk__stage{background:radial-gradient(ellipse at 50% 100%, color-mix(in srgb, var(--brand-ink) 7%, transparent), transparent 70%), var(--surface-sunken);border-radius:12px}.desk-svg{width:100%;height:auto;display:block}.desk-svg.is-offline{opacity:.45;filter:grayscale()}.desk__info{min-width:0;color:var(--text-3);justify-content:space-between;gap:8px;font-size:12px;display:flex}.desk__ok{color:var(--ok)}.desk__no{color:var(--danger)}.desk__acts{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.desk__acts .kact{min-width:0;height:40px;padding:0 8px;font-size:12px}.kact--danger{border-color:color-mix(in srgb, var(--danger) 35%, transparent);color:var(--danger)}.kact--danger:hover{background:var(--danger-soft)}.kact--danger.is-armed{border-color:var(--danger);background:var(--danger)}.desk-floor{stroke:var(--line-strong);stroke-width:2px}.desk-body{fill:var(--surface-solid);stroke:color-mix(in srgb, var(--brand-ink) 35%, transparent);stroke-width:1.5px}.desk-cap{fill:var(--brand-ink)}.desk-hub{fill:#9aa0b8;stroke:#6b7089;stroke-width:1px}.desk-guide{fill:color-mix(in srgb, var(--brand-ink) 18%, var(--surface-solid))}.desk-lamp{stroke:#fff;stroke-width:1.5px}.desk-lamp--blink{animation:1.2s ease-in-out infinite desk-blink}.desk-frame{fill:none;stroke:var(--brand-ink);stroke-width:4px}.desk-opening{fill:color-mix(in srgb, var(--info) 10%, var(--surface-sunken))}.desk-leaf__panel{fill:color-mix(in srgb, var(--brand-ink) 10%, var(--surface-solid));stroke:color-mix(in srgb, var(--brand-ink) 35%, transparent);stroke-width:1.5px}.desk-leaf__glass{fill:color-mix(in srgb, var(--info) 18%, transparent)}.desk-screen__glass{fill:#1a1e45}.desk-screen__go{fill:none;stroke:#34d399;stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.desk-screen__no{stroke:#f87171;stroke-width:2.6px;stroke-linecap:round}.desk-screen__idle{fill:#7c809f}.desk-screen--pass .desk-screen__glass{animation:1.6s both desk-flash-ok}.desk-screen--deny .desk-screen__glass{animation:1.6s both desk-flash-no}@keyframes desk-flash-ok{20%,60%{fill:#065f46}}@keyframes desk-flash-no{15%,45%,75%{fill:#991b1b}}.desk-arm{stroke:#b3b8cc;stroke-width:6px;stroke-linecap:round;vector-effect:non-scaling-stroke}.desk-arms{transform-box:fill-box;transform-origin:50%;transition:transform .7s cubic-bezier(.3,.7,.2,1)}.desk-arms--open{transform:rotate(60deg)}.desk-arms.is-passing{animation:1.1s cubic-bezier(.45,0,.2,1) .15s both desk-turn}.desk-arms.is-refusing,.desk-boom.is-refusing{animation:.5s 2 desk-refuse}@keyframes desk-turn{to{transform:rotate(120deg)}}@keyframes desk-refuse{25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.desk-boom{transform-box:view-box;transform-origin:40px 80.5px;transition:transform 1s cubic-bezier(.3,.7,.2,1)}.desk-boom__bar{fill:#fff;stroke:#c3c7d6;stroke-width:1px}.desk-boom__stripe{fill:var(--danger)}.desk-boom--open{transform:rotate(-80deg)}.desk-boom.is-passing{animation:3s cubic-bezier(.45,0,.2,1) .15s both desk-lift}@keyframes desk-lift{25%,70%{transform:rotate(-80deg)}}.desk-leaf{transform-box:view-box;transform-origin:62px 80px;transition:transform .9s cubic-bezier(.3,.7,.2,1)}.desk-leaf--open{transform:scaleX(.28)skewY(-10deg)}.desk-leaf.is-passing{animation:2.6s cubic-bezier(.45,0,.2,1) .15s both desk-swing}@keyframes desk-swing{25%,65%{transform:scaleX(.28)skewY(-10deg)}}.desk-slide__left,.desk-slide__right{transition:transform .9s cubic-bezier(.3,.7,.2,1)}.desk-slide--open .desk-slide__left{transform:translate(-48px)}.desk-slide--open .desk-slide__right{transform:translate(48px)}.desk-slide.is-passing .desk-slide__left{animation:2.6s cubic-bezier(.45,0,.2,1) .15s both desk-part-l}.desk-slide.is-passing .desk-slide__right{animation:2.6s cubic-bezier(.45,0,.2,1) .15s both desk-part-r}@keyframes desk-part-l{25%,65%{transform:translate(-48px)}}@keyframes desk-part-r{25%,65%{transform:translate(48px)}}@media (prefers-reduced-motion:reduce){.desk-arms,.desk-boom,.desk-leaf,.desk-slide__left,.desk-slide__right{transition:none}.desk-arms.is-passing,.desk-arms.is-refusing,.desk-boom.is-passing,.desk-boom.is-refusing,.desk-leaf.is-passing,.desk-slide.is-passing .desk-slide__left,.desk-slide.is-passing .desk-slide__right,.desk-lamp--blink{animation:none}}.desk__doing{color:var(--brand-ink);font-weight:600}.desk-free__lane{fill:color-mix(in srgb, var(--ok) 28%, transparent)}.desk-free__arrow{fill:none;stroke:var(--ok);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;opacity:.8}.desk-free__flow{animation:.9s linear infinite desk-flow}@keyframes desk-flow{0%{transform:translate(0)}to{transform:translate(16px)}}.desk-padlock{animation:.6s cubic-bezier(.3,1.5,.5,1) .35s both desk-padlock}.desk-padlock__disc{fill:var(--sync);stroke:#fff;stroke-width:2.5px;filter:drop-shadow(0 2px 3px #1a1e4559)}.desk-padlock__shackle{fill:none;stroke:#fff;stroke-width:2.2px}.desk-padlock__body{fill:#fff}@keyframes desk-padlock{0%{opacity:0;transform:translateY(-26px)scale(.6)}}.desk--override .desk__stage{background:repeating-linear-gradient(-45deg, color-mix(in srgb, var(--sync) 7%, transparent) 0 8px, transparent 8px 16px), var(--surface-sunken)}@media (prefers-reduced-motion:reduce){.desk-free__flow,.desk-padlock{animation:none}}@keyframes desk-blink{50%{opacity:.35}}.shell--kiosk{flex-direction:column;min-height:100vh;display:flex}.shell--kiosk .main{flex-direction:column;flex:1;min-width:0;display:flex}.kiosk-bar{z-index:30;height:64px;padding:0 var(--sp-5);align-items:stretch;gap:var(--sp-4);background:var(--surface-solid);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0;box-shadow:0 1px #1a1e4508}.kiosk-bar__logo{flex:none;align-items:center;padding-inline-end:var(--sp-4);display:flex}.kiosk-bar__logo img{width:auto;height:42px;display:block}.kiosk-tabs{scrollbar-width:none;flex:1;align-items:stretch;min-width:0;display:flex;overflow-x:auto}.kiosk-tabs::-webkit-scrollbar{display:none}.kiosk-tab{color:var(--text-2);font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;border-inline-end:1px solid var(--line);flex:none;align-items:center;gap:8px;padding:0 18px;font-weight:650;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex;position:relative}.kiosk-tab:first-child{border-inline-start:1px solid var(--line)}.kiosk-tab:hover{color:var(--text);background:var(--surface-hover);text-decoration:none}.kiosk-tab.active{color:var(--brand-signal);background:color-mix(in srgb, var(--brand-signal) 7%, transparent)}.kiosk-tab.active:after{content:"";background:var(--brand-signal);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:0;left:18px;right:18px}.kiosk-tab__close{width:20px;height:20px;color:var(--text-3);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;margin-inline-start:2px;padding:0;display:grid}.kiosk-tab__close:hover{background:var(--surface-active);color:var(--text)}.kiosk-tab__close svg{width:13px;height:13px}.kiosk-bar__end{align-items:center;gap:var(--sp-2);border-inline-start:1px solid var(--line);flex:none;padding-inline-start:var(--sp-4);display:flex}.kiosk-bar__clock{font-size:var(--fs-sm);color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:baseline;gap:8px;padding-inline-end:var(--sp-3);display:flex}.kiosk-bar__clock strong{color:var(--text);font-weight:600}.kiosk-btn{border-radius:var(--r-pill);min-width:40px;height:40px;color:var(--text-2);font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.kiosk-btn:hover{background:var(--surface-hover);color:var(--text);text-decoration:none}.kiosk-btn--lang{border-color:var(--line)}.kiosk-badge{background:var(--danger);color:#fff;border-radius:999px;place-items:center;min-width:20px;height:18px;padding:0 5px;font-size:10.5px;font-weight:700;display:grid;position:absolute;top:2px;right:0}.kiosk-bar__user{font-size:var(--fs-sm);color:var(--text-2);align-items:center;gap:8px;max-width:220px;padding:0 6px;display:inline-flex}.kiosk-bar__user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kiosk-home{gap:var(--sp-5);height:calc(100vh - 64px);padding:var(--sp-5);box-sizing:border-box;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);animation:.45s cubic-bezier(.2,.7,.2,1) both kiosk-in;display:grid}.kiosk-home:has(>.kiosk-apps:only-child){grid-template-columns:minmax(0,1fr)}.kiosk-map{border:1px solid var(--line);background:var(--surface-solid);min-height:0;box-shadow:var(--shadow-1);border-radius:26px;flex-direction:column;display:flex;overflow:hidden}.kiosk-map__head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:16px 20px;display:flex}.kiosk-map__head>svg{width:20px;height:20px;color:var(--brand-signal)}.kiosk-map__head strong{font-family:var(--font-display);font-size:var(--fs-lg)}.kiosk-map__meta{font-size:var(--fs-sm);color:var(--text-3)}.kiosk-map__down{color:var(--danger);font-weight:600}.kiosk-map__open{border-radius:var(--r-pill);background:var(--surface-sunken);color:var(--text);font-size:var(--fs-sm);padding:8px 14px;font-weight:600;text-decoration:none}.kiosk-map__open:hover{background:var(--surface-active);text-decoration:none}.kiosk-map__canvas{background:radial-gradient(circle at 20% 15%, color-mix(in srgb, var(--brand-signal) 6%, transparent), transparent 55%), var(--surface-sunken);flex:1;place-items:center;min-height:0;padding:16px;display:grid}.kiosk-map__canvas svg{width:100%;height:100%}.kiosk-map__floor{fill:var(--surface-solid);stroke:var(--line-strong);stroke-width:.4px}.kiosk-map__room{fill:color-mix(in srgb, var(--brand-ink) 3%, var(--surface-solid));stroke:var(--line-strong);stroke-width:.35px}.kiosk-map__room-name{fill:var(--text-3);font-size:2.6px;font-family:var(--font-body)}.kiosk-map__pin{cursor:pointer}.kiosk-map__pin:hover circle{r:3.4}.kiosk-map__pin--bad{animation:1.4s ease-in-out infinite kiosk-pin}@keyframes kiosk-pin{50%{opacity:.35}}.kiosk-map__plans{border-top:1px solid var(--line);gap:8px;padding:12px 16px;display:flex;overflow-x:auto}.kiosk-chip{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-solid);color:var(--text-2);font:inherit;font-size:var(--fs-sm);cursor:pointer;flex:none;padding:8px 14px}.kiosk-chip[aria-pressed=true]{border-color:var(--brand-signal);color:var(--brand-signal);background:color-mix(in srgb, var(--brand-signal) 8%, transparent);font-weight:600}.kiosk-apps{grid-template-columns:repeat(var(--cols,3), minmax(0, 1fr));gap:var(--sp-4);min-height:0;padding:var(--sp-4);border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 70%, transparent);border-radius:26px;grid-auto-rows:minmax(0,1fr);display:grid}.kiosk-app{min-height:0;color:inherit;animation:.42s cubic-bezier(.3,1.4,.5,1) both kiosk-pop;animation-delay:calc(var(--i) * 35ms + .12s);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:8px;text-decoration:none;display:flex}.kiosk-app:hover,.kiosk-app:focus-visible{background:var(--surface-hover);text-decoration:none}.kiosk-app:active .kiosk-app__icon{transform:scale(.92)}.kiosk-app__icon{aspect-ratio:1;color:#fff;background:linear-gradient(145deg, color-mix(in srgb, var(--k) 78%, #fff), var(--k));width:clamp(56px,8.5vh,92px);box-shadow:0 8px 18px -8px color-mix(in srgb, var(--k) 70%, transparent);border-radius:28%;place-items:center;transition:transform .15s;display:grid;position:relative}.kiosk-app__icon svg{stroke-width:1.9px;width:46%;height:46%}.kiosk-app__badge{border:2px solid var(--surface-solid);background:var(--danger);color:#fff;border-radius:999px;place-items:center;min-width:24px;height:24px;padding:0 6px;font-size:11px;font-weight:700;display:grid;position:absolute;top:-6px;right:-6px}.kiosk-app__label{max-width:100%;font-size:var(--fs-sm);color:var(--text);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:1.25;overflow:hidden}@keyframes kiosk-in{0%{opacity:0;transform:translateY(10px)}}@keyframes kiosk-pop{0%{opacity:0;transform:scale(.7)}}.kiosk-toggle.is-on{color:var(--brand-signal)}@media (width<=900px){.kiosk-bar__clock,.kiosk-bar__user-name{display:none}.kiosk-home{grid-template-columns:minmax(0,1fr);height:auto}.kiosk-map{height:46vh}.kiosk-apps{grid-auto-rows:120px}}@media (prefers-reduced-motion:reduce){.kiosk-home,.kiosk-app,.kiosk-map__pin--bad{animation:none}}::view-transition-old(root){animation:.32s cubic-bezier(.4,0,1,1) both kiosk-vt-out}::view-transition-new(root){animation:.45s cubic-bezier(.2,.7,.2,1) both kiosk-vt-in}@keyframes kiosk-vt-out{to{opacity:0;filter:blur(4px);transform:scale(.96)}}@keyframes kiosk-vt-in{0%{opacity:0;transform:scale(1.04)}}@media (prefers-reduced-motion:reduce){::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}}.kiosk-app__icon{color:var(--text-2);background:var(--surface-solid);border:1px solid var(--line);box-shadow:var(--shadow-1)}.kiosk-app__icon svg{stroke-width:1.75px}.kiosk-app:hover .kiosk-app__icon,.kiosk-app:focus-visible .kiosk-app__icon{color:var(--brand-ink);border-color:var(--line-strong)}.kiosk-bar{height:52px;padding:0 var(--sp-4);gap:var(--sp-3)}.kiosk-bar__logo{padding-inline-end:var(--sp-2)}.kiosk-bar__logo img{height:32px}.kiosk-tab{letter-spacing:.05em;gap:7px;padding:0 14px;font-size:12.5px}.kiosk-tab svg{width:16px;height:16px}.kiosk-tab.active:after{left:14px;right:14px}.kiosk-tab--icon{padding:0 12px}.kiosk-tab--icon>span,.kiosk-tab--icon .kiosk-tab__close{display:none}.kiosk-bar__end{gap:4px;padding-inline-start:var(--sp-3)}.kiosk-bar__clock{flex-direction:column;align-items:flex-end;gap:0;padding-inline-end:var(--sp-2);font-size:11px;line-height:1.15}.kiosk-bar__clock strong{font-size:var(--fs-sm);order:-1}.kiosk-btn{min-width:34px;height:34px;padding:0 8px}.kiosk-btn svg{width:17px;height:17px}.kiosk-avatar{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;margin-inline-start:4px;padding:2px;display:grid}.kiosk-avatar:hover,.kiosk-avatar[aria-expanded=true]{box-shadow:0 0 0 2px color-mix(in srgb, var(--brand-signal) 35%, transparent)}.kiosk-home{height:calc(100vh - 52px)}.kiosk-map__live{border-radius:var(--r-pill);background:var(--danger-soft);color:var(--danger);align-items:center;gap:5px;padding:2px 9px;font-size:11px;font-weight:700;display:inline-flex}.kiosk-map__live-dot{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite kiosk-pin}.kiosk-map__ripple{fill:none;stroke-width:.9px;transform-box:fill-box;transform-origin:50%;pointer-events:none;animation:1.6s cubic-bezier(.2,.7,.3,1) 3 both kiosk-ripple}.kiosk-map__ripple--event{stroke:var(--brand-signal)}.kiosk-map__ripple--alarm{stroke:var(--danger);stroke-width:1.2px;animation-iteration-count:6}@keyframes kiosk-ripple{0%{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(4.2)}}.kiosk-map__alarm-ring{fill:color-mix(in srgb, var(--danger) 14%, transparent);stroke:var(--danger);stroke-width:.6px;stroke-dasharray:1.6 1.2;transform-box:fill-box;transform-origin:50%;animation:6s linear infinite kiosk-spin}@keyframes kiosk-spin{to{transform:rotate(360deg)}}.kiosk-map__bubble{pointer-events:none;animation:.35s cubic-bezier(.3,1.4,.5,1) both kiosk-bubble}@keyframes kiosk-bubble{0%{opacity:0;transform:translateY(2px)scale(.8)}}.kiosk-map__bubble-bg{fill:var(--brand-ink);filter:drop-shadow(0 .6px 1.2px #00000040)}.kiosk-map__bubble-bg--alarm{fill:var(--danger)}.kiosk-map__bubble-text{fill:#fff;font-size:3.1px;font-weight:600;font-family:var(--font-body)}.kiosk-map__feed{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0;padding:8px 12px;list-style:none;display:grid}.kiosk-map__feed-empty{font-size:var(--fs-sm);color:var(--text-3);grid-column:1/-1;padding:6px 4px}.kiosk-map__feed-row{min-width:0;animation:.35s cubic-bezier(.2,.7,.2,1) both kiosk-in}.kiosk-map__feed-row button{border:1px solid var(--line);background:var(--surface-solid);width:100%;color:inherit;font:inherit;font-size:var(--fs-sm);text-align:start;cursor:pointer;border-radius:12px;grid-template-columns:18px minmax(0,auto) minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 10px;display:grid}.kiosk-map__feed-row button:hover{border-color:var(--line-strong)}.kiosk-map__feed-row svg{width:16px;height:16px;color:var(--brand-signal)}.kiosk-map__feed-row--alarm button{border-color:color-mix(in srgb, var(--danger) 35%, transparent);background:color-mix(in srgb, var(--danger) 6%, var(--surface-solid))}.kiosk-map__feed-row--alarm svg{color:var(--danger)}.kiosk-map__feed-row time{font-variant-numeric:tabular-nums;font-size:11px}.kiosk-chip{align-items:center;gap:6px;display:inline-flex}.kiosk-chip__badge{background:var(--brand-signal);color:#fff;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10.5px;font-weight:700;display:grid}@media (prefers-reduced-motion:reduce){.kiosk-map__ripple,.kiosk-map__alarm-ring,.kiosk-map__bubble,.kiosk-map__feed-row{animation:none}}.kiosk-side{gap:var(--sp-4);flex-direction:column;min-height:0;display:flex}.kiosk-side>.kiosk-apps{flex:1}.kiosk-clock{border:1px solid var(--line);background:var(--surface-solid);box-shadow:var(--shadow-1);border-radius:26px;align-items:center;gap:18px;padding:14px 22px;animation:.45s cubic-bezier(.2,.7,.2,1) both kiosk-in;display:flex}.kiosk-clock__time{font-family:var(--font-display);letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--text);font-size:clamp(34px,5.2vh,52px);font-weight:700;line-height:1}.kiosk-clock__date{border-inline-start:1px solid var(--line);flex-direction:column;gap:2px;padding-inline-start:18px;line-height:1.25;display:flex}.kiosk-clock__date strong{font-size:var(--fs-md,15px);text-transform:capitalize;color:var(--text)}.kiosk-clock__date span{font-size:var(--fs-sm);color:var(--text-3)}.kiosk-home:has(>.kiosk-side:only-child){grid-template-columns:minmax(0,1fr)}.kiosk-map{position:relative}.kiosk-map__pin.is-selected circle:last-of-type{stroke:var(--brand-signal);stroke-width:1.2px}.kiosk-widget{z-index:5;border:1px solid var(--line);background:var(--surface-solid);transform-origin:100% 100%;border-radius:20px;flex-direction:column;width:min(440px,100% - 32px);animation:.32s cubic-bezier(.3,1.3,.5,1) both kiosk-widget-in;display:flex;position:absolute;bottom:16px;right:16px;overflow:hidden;box-shadow:0 18px 48px -12px #1a1e4559}.kiosk-widget--alarm{border-color:color-mix(in srgb, var(--danger) 45%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 16%, transparent), 0 18px 48px -12px #1a1e4559}@keyframes kiosk-widget-in{0%{opacity:0;transform:translateY(14px)scale(.92)}}.kiosk-widget__head{align-items:center;gap:8px;min-width:0;padding:10px 10px 10px 14px;display:flex}.kiosk-widget__head strong{font-size:var(--fs-sm);min-width:0}.kiosk-widget__dot{background:var(--ok);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 20%, transparent);border-radius:50%;flex:none}.kiosk-widget__dot.is-down{background:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 20%, transparent)}.kiosk-widget__event{border-radius:var(--r-pill);background:color-mix(in srgb, var(--brand-signal) 10%, transparent);min-width:0;max-width:55%;color:var(--brand-signal);align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.kiosk-widget__event--alarm{background:var(--danger-soft);color:var(--danger)}.kiosk-widget__event svg{flex:none;width:13px;height:13px}.kiosk-widget__x{background:var(--surface-sunken);width:30px;height:30px;color:var(--text-2);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.kiosk-widget__x:hover{background:var(--surface-active);color:var(--text)}.kiosk-widget__x svg{width:16px;height:16px}.kiosk-widget__actions{flex-wrap:wrap;gap:8px;padding:10px;display:flex}.kiosk-widget__btn{border:1px solid var(--line);background:var(--surface-solid);min-height:40px;color:var(--text);font:inherit;font-size:var(--fs-sm);white-space:nowrap;cursor:pointer;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-weight:600;display:inline-flex}.kiosk-widget__btn:hover{border-color:var(--line-strong);background:var(--surface-hover)}.kiosk-widget__btn svg{width:16px;height:16px}.kiosk-widget__btn--primary{background:var(--brand-ink);color:#fff;border-color:#0000}.kiosk-widget__btn--primary:hover{background:var(--brand-ink);filter:brightness(1.15)}@media (prefers-reduced-motion:reduce){.kiosk-widget{animation:none}}.kiosk-widget__head{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.kiosk-widget.is-dragging .kiosk-widget__head{cursor:grabbing}.kiosk-widget.is-dragging{transition:none;box-shadow:0 26px 60px -14px #1a1e4573}.kiosk-widget__grip{width:16px;height:16px;color:var(--text-3);flex:none;margin-inline-start:-6px}.kiosk-map__pin,.kiosk-map__pin:focus{outline:none}.kiosk-map__pin:focus-visible circle:last-of-type{stroke:var(--brand-signal);stroke-width:1.2px}.kstack{flex-direction:column;gap:10px;min-height:0;display:flex}.kstack__track{scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;border-radius:26px;flex:1;min-height:0;display:flex;overflow:auto hidden}.kstack__track::-webkit-scrollbar{display:none}.kstack__slide{scroll-snap-align:start;scroll-snap-stop:always;flex:0 0 100%;min-width:0;min-height:0;display:flex}.kstack__slide>*{flex:1;min-width:0}.kstack-card{border:1px solid var(--line);background:var(--surface-solid);min-height:0;box-shadow:var(--shadow-1);border-radius:26px;flex-direction:column;display:flex;overflow:hidden}.kstack-card .kiosk-map__head>svg{width:20px;height:20px;color:var(--brand-signal)}.kstack-card__body{flex:1;min-height:0;padding:14px;overflow:hidden}button.kiosk-map__open{font:inherit;font-size:var(--fs-sm);cursor:pointer;border:0;font-weight:600}.kstack-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.kstack-row{border:1px solid var(--line);background:var(--surface-solid);width:100%;min-height:48px;color:inherit;font:inherit;font-size:var(--fs-sm);text-align:start;cursor:pointer;border-radius:14px;grid-template-columns:auto minmax(0,1fr) minmax(0,auto) auto;align-items:center;gap:10px;padding:8px 14px;animation:.3s both kiosk-in;display:grid}.kstack-row:hover{border-color:var(--line-strong);background:var(--surface-hover)}.kstack-row--critical,.kstack-row--high{border-color:color-mix(in srgb, var(--danger) 35%, transparent);background:color-mix(in srgb, var(--danger) 5%, var(--surface-solid))}.kstack-row__icon{width:17px;height:17px;color:var(--brand-signal)}.kstack-row__icon--alarm{color:var(--danger)}.kstack-row time{white-space:nowrap;font-size:11.5px}.kstack-empty{height:100%;color:var(--text-3);font-size:var(--fs-md,15px);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.kstack-empty svg{width:34px;height:34px;color:var(--ok)}.kstack-meter{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto;align-items:center;gap:12px;padding:10px 4px;display:grid}.kstack__bar{flex:none;justify-content:center;align-items:center;gap:8px;display:flex}.kstack__nav{border:1px solid var(--line);background:var(--surface-solid);width:34px;height:34px;color:var(--text-2);cursor:pointer;border-radius:50%;place-items:center;display:grid}.kstack__nav:disabled{opacity:.35;cursor:default}.kstack__nav svg{width:17px;height:17px}.kstack__dots{align-items:center;gap:6px;padding:0 4px;display:flex}.kstack__dot{background:var(--line-strong);cursor:pointer;border:0;border-radius:999px;min-width:8px;height:8px;padding:0;transition:min-width .25s cubic-bezier(.2,.7,.2,1),background-color .2s}.kstack__dot.is-on{background:var(--brand-ink);color:#fff;min-width:0;height:28px;font:inherit;white-space:nowrap;align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex}.kstack__dot.is-on svg{width:14px;height:14px}.kstack__edit{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-solid);height:34px;color:var(--text-2);font:inherit;font-size:var(--fs-sm);cursor:pointer;align-items:center;gap:6px;margin-inline-start:auto;padding:0 14px;font-weight:600;display:inline-flex}.kstack__edit svg{width:15px;height:15px}.kstack__bar .kstack__nav:first-child{margin-inline-start:auto}.kstack--edit{border:1px solid var(--line);background:var(--surface-solid);box-shadow:var(--shadow-1);border-radius:26px;gap:0;overflow:hidden}.kstack-done{flex:none}.kstack-edit{flex-direction:column;gap:8px;margin:0;padding:14px;list-style:none;display:flex;overflow-y:auto}.kstack-edit__row{border:1px dashed var(--line-strong);min-height:56px;color:var(--text-3);border-radius:16px;align-items:center;gap:12px;padding:8px 12px;display:flex}.kstack-edit__row.is-on{border-style:solid;border-color:var(--line);background:var(--surface-solid);color:var(--text);box-shadow:var(--shadow-1)}.kstack-edit__icon{background:var(--surface-sunken);width:38px;height:38px;color:var(--text-2);border-radius:12px;place-items:center;display:grid}.kstack-edit__icon svg{width:19px;height:19px}.kstack-edit__btn{border:1px solid var(--line);background:var(--surface-solid);width:34px;height:34px;color:var(--text-2);cursor:pointer;border-radius:10px;place-items:center;display:grid}.kstack-edit__btn:disabled{opacity:.35;cursor:default}.kstack-edit__btn svg{width:16px;height:16px}.kstack-edit__toggle{border:1px solid var(--brand-ink);border-radius:var(--r-pill);background:var(--surface-solid);min-width:112px;height:34px;color:var(--brand-ink);font:inherit;font-size:var(--fs-sm);cursor:pointer;padding:0 14px;font-weight:600}.kstack-edit__toggle.is-on{background:var(--brand-ink);color:#fff}.kstack__slide>.kiosk-map{border-radius:26px}@media (prefers-reduced-motion:reduce){.kstack-row{animation:none}}.kstack-card__body{position:relative}.kiosk-map__ripple--ok{stroke:var(--ok)}.kiosk-map__ripple--denied{stroke:var(--danger)}.kiosk-map__ripple--warn{stroke:var(--warn)}.kiosk-map__ripple--info{stroke:var(--brand-ink)}.kiosk-map__bubble-bg--ok{fill:var(--ok)}.kiosk-map__bubble-bg--denied{fill:var(--danger)}.kiosk-map__bubble-bg--warn{fill:var(--warn)}.kiosk-map__feed-row--ok svg{color:var(--ok)}.kiosk-map__feed-row--denied svg{color:var(--danger)}.kiosk-map__feed-row--warn svg{color:var(--warn)}.kiosk-map__feed-row--info svg{color:var(--brand-ink)}.kiosk-widget__event--ok{background:var(--ok-soft);color:var(--ok)}.kiosk-widget__event--denied{background:var(--danger-soft);color:var(--danger)}.kiosk-widget__event--warn{background:var(--warn-soft);color:var(--warn)}.kiosk-widget__event--info{background:var(--neutral-soft);color:var(--brand-ink)}.kiosk-widget__info{flex-direction:column;gap:10px;padding:2px 14px 4px;display:flex}.kiosk-widget__state{align-items:center;gap:10px;min-width:0;display:flex}.kiosk-widget__kv{background:var(--surface-sunken);font-size:var(--fs-sm);border-radius:12px;grid-template-columns:auto minmax(0,1fr);gap:6px 14px;margin:0;padding:10px 12px;display:grid}.kiosk-widget__kv dt{color:var(--text-3)}.kiosk-widget__kv dd{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.kiosk-widget__btn:disabled{opacity:.5;cursor:default}.kiosk-app__badge--info{background:var(--info)}.kstack-list--scroll{max-height:100%;overflow-y:auto}.kstack-item{align-items:center;gap:6px;display:flex}.kstack-item>.kstack-row{flex:1;min-width:0}.kstack-side{border:1px solid var(--line);background:var(--surface-solid);width:40px;height:48px;color:var(--text-2);cursor:pointer;border-radius:14px;flex:none;place-items:center;display:grid}.kstack-side:hover{border-color:var(--line-strong);color:var(--text)}.kstack-side svg{width:17px;height:17px}.kstack-res{border-radius:50%;place-items:center;width:26px;height:26px;display:grid}.kstack-res svg{width:15px;height:15px}.kstack-res--ok{background:var(--ok-soft);color:var(--ok)}.kstack-res--danger{background:var(--danger-soft);color:var(--danger)}.kstack-res--warn{background:var(--warn-soft);color:var(--warn)}.kstack-row--denied{border-color:color-mix(in srgb, var(--danger) 30%, transparent)}.kstack-door{background:var(--ok);border-radius:50%;width:12px;height:12px}.kstack-door--held{background:var(--warn)}.kstack-door--forced{background:var(--danger)}.kstack-door--offline{background:var(--danger);animation:1.4s ease-in-out infinite kiosk-pin}.kstack-group{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;padding:6px 4px 0;font-size:11px;font-weight:600}.kstack-big{font-family:var(--font-display);color:var(--text);font-size:3rem;line-height:1}@media (prefers-reduced-motion:reduce){.kstack-door--offline{animation:none}}.kstack-card__body{flex-direction:column;gap:12px;display:flex}.kstack-card__body>.kstack-list--scroll,.kstack-card__body>.kstack-empty,.kstack-card__body>.kstack-split{flex:1;min-height:0}.kstack-figs{flex:none;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;display:grid}.kstack-fig{border:1px solid var(--line);background:var(--surface-sunken);color:inherit;font:inherit;text-align:start;border-radius:14px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;display:flex}button.kstack-fig{cursor:pointer}button.kstack-fig:hover{border-color:var(--line-strong)}.kstack-fig.is-on{border-color:var(--brand-ink);background:var(--surface-solid);box-shadow:var(--shadow-1)}.kstack-fig strong{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--text);font-size:1.6rem;line-height:1.1}.kstack-fig span{color:var(--text-3);font-size:12px}.kstack-fig--ok strong{color:var(--ok)}.kstack-fig--danger strong{color:var(--danger)}.kstack-fig--warn strong{color:var(--warn)}.kstack-fig--info strong{color:var(--info)}.kstack-two{flex-direction:column;gap:1px;min-width:0;display:flex}.kstack-two>.faint{font-size:12px}.kstack-when{flex-direction:column;align-items:flex-end;line-height:1.2;display:flex}.kstack-when small{font-size:10.5px}.kstack-item.is-new>.kstack-row{animation:1.6s both kstack-flash}@keyframes kstack-flash{0%{background:color-mix(in srgb, var(--info) 14%, var(--surface-solid));border-color:color-mix(in srgb, var(--info) 45%, transparent)}}.kstack-row--compact{min-height:40px;padding:6px 12px}.kstack-tag{border-radius:var(--r-pill);background:var(--warn-soft);color:var(--warn);vertical-align:1px;margin-inline-start:8px;padding:1px 7px;font-size:10.5px;font-weight:700}.kstack-split{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:14px;display:grid}.kstack-split:has(>:only-child){grid-template-columns:minmax(0,1fr)}.kstack-acts{flex:none;gap:6px;display:flex}@media (prefers-reduced-motion:reduce){.kact.is-armed,.kstack-item.is-new>.kstack-row{animation:none}}.kstack__slide{contain:layout paint style;backface-visibility:hidden;transform:translateZ(0)}.kstack__track{-webkit-overflow-scrolling:touch}.kiosk-map__canvas{container-type:size}.kiosk-map__plan{aspect-ratio:160/100;width:min(100cqw,160cqh);position:relative;container-type:size}.kiosk-map__plan>svg{position:absolute;inset:0}.kiosk-fx{pointer-events:none;position:absolute;inset:0}.kiosk-fx>span{position:absolute}.kiosk-fx__ring{border:.6cqh dashed var(--danger);background:color-mix(in srgb, var(--danger) 14%, transparent);will-change:transform;border-radius:50%;width:10cqh;height:10cqh;margin:-5cqh 0 0 -5cqh;animation:6s linear infinite kiosk-spin}.kiosk-fx__ripple{border:.9cqh solid var(--brand-signal);will-change:transform, opacity;border-radius:50%;width:6cqh;height:6cqh;margin:-3cqh 0 0 -3cqh;animation:1.6s cubic-bezier(.2,.7,.3,1) 3 both kiosk-ripple}.kiosk-fx__ripple--ok{border-color:var(--ok)}.kiosk-fx__ripple--denied,.kiosk-fx__ripple--alarm{border-color:var(--danger)}.kiosk-fx__ripple--warn{border-color:var(--warn)}.kiosk-fx__ripple--info{border-color:var(--brand-ink)}.kiosk-fx__ripple--alarm{animation-iteration-count:6}.kiosk-fx__bad{background:var(--danger);will-change:opacity;border:.8cqh solid #fff;border-radius:50%;width:6cqh;height:6cqh;margin:-3cqh 0 0 -3cqh;animation:1.4s ease-in-out infinite kiosk-pin}.kiosk-fx__bad--reader{border-width:.5cqh;border-radius:.7cqh;width:3.1cqh;height:3.1cqh;margin:-1.55cqh 0 0 -1.55cqh}.kiosk-fx__bubble{background:var(--brand-ink);color:#fff;max-width:35cqw;height:6.4cqh;font:600 3.1cqh/6.4cqh var(--font-body);white-space:nowrap;text-overflow:ellipsis;transform-origin:0 100%;will-change:transform, opacity;border-radius:3.2cqh;padding:0 3cqh;animation:.35s cubic-bezier(.3,1.4,.5,1) both kiosk-bubble;overflow:hidden;box-shadow:0 .6cqh 1.2cqh #00000040}.kiosk-fx__bubble--ok{background:var(--ok)}.kiosk-fx__bubble--denied,.kiosk-fx__bubble--alarm{background:var(--danger)}.kiosk-fx__bubble--warn{background:var(--warn)}.kiosk-map__live-dot,.kstack-door--offline{will-change:opacity}@media (prefers-reduced-motion:reduce){.kiosk-fx__ring,.kiosk-fx__ripple,.kiosk-fx__bad,.kiosk-fx__bubble{animation:none}}.kiosk-views{border-radius:var(--r-pill);background:var(--surface-sunken);flex:none;gap:2px;padding:3px;display:inline-flex}.kiosk-views button{border-radius:var(--r-pill);height:32px;color:var(--text-2);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 14px;font-size:12.5px;font-weight:600;display:inline-flex}.kiosk-views button:hover{color:var(--text)}.kiosk-views button[aria-selected=true],.kiosk-views button[aria-pressed=true]{background:var(--surface-solid);color:var(--text);box-shadow:var(--shadow-1)}.kiosk-views button[aria-selected=true] svg{color:var(--brand-signal)}.kiosk-views svg{width:15px;height:15px}.kiosk-views--small button{height:28px;padding:0 11px;font-size:12px}.login{place-items:center;min-height:100vh;padding:24px 16px;display:grid;position:relative;overflow:hidden}.login__art{pointer-events:none;position:fixed;inset:0}.login__arcs{width:140vmin;height:140vmin;position:absolute;bottom:-40vmin;left:-40vmin;transform:scaleX(-1)}.login__panel{border-radius:var(--r-xl);background:var(--surface-strong);width:min(440px,100%);padding:32px 32px 24px;position:relative}.login__logo{width:auto;height:64px;margin:-6px 0 18px -6px;display:block}.login__sso{font-size:var(--fs-xs);color:var(--text-3);justify-content:center;align-items:center;gap:6px;display:flex}.login__demo{border-top:1px solid var(--line);flex-direction:column;gap:4px;margin-top:24px;padding-top:18px;display:flex}.login__account{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex}.login__account:hover{background:var(--surface-hover);border-color:var(--line)}.login__space{color:var(--text-3);white-space:nowrap;align-items:center;gap:5px;font-size:11px;display:inline-flex}
