@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff")}@font-face{font-family:IBM Plex Sans Devanagari;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-devanagari-devanagari-400-normal-Col_Varp.woff2) format("woff2"),url(/assets/ibm-plex-sans-devanagari-devanagari-400-normal-Bzh6N6Lp.woff) format("woff")}@font-face{font-family:IBM Plex Sans Devanagari;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-devanagari-devanagari-500-normal-CJwdCnIt.woff2) format("woff2"),url(/assets/ibm-plex-sans-devanagari-devanagari-500-normal-DHQsF7uC.woff) format("woff")}@font-face{font-family:IBM Plex Sans Devanagari;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-devanagari-devanagari-600-normal-zRLekuwH.woff2) format("woff2"),url(/assets/ibm-plex-sans-devanagari-devanagari-600-normal-CEZsoJju.woff) format("woff")}:root{color-scheme:light;--bg: #F2F4F7;--surface: #FFFFFF;--surface-2: #F5F7F9;--hairline: #EDEFF4;--border: #EDEFF4;--border-strong: #E2E6ED;--text: #101828;--text-muted: #5A6478;--text-faint: #98A1B2;--furniture: #C2C8D4;--accent: #2563EB;--accent-press: #1D4ED8;--brand-500: #2563EB;--brand-600: #2563EB;--brand-700: #2563EB;--brand-50: #F5F7F9;--navy-900: #101828;--navy-800: #1B2331;--navy-700: #28303F;--green-600: #0E7A54;--green-50: #E9F5F0;--amber-600: #9A5B08;--amber-50: #FBF1E2;--red-600: #B42318;--red-50: #FCEDEB;--saffron: #9A5B08;--radius: 18px;--radius-sm: 12px;--radius-lg: 18px;--radius-sheet: 26px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);--shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 10px 24px -14px rgba(16, 24, 40, .28);--shadow-lg: 0 1px 2px rgba(16, 24, 40, .05), 0 24px 48px -20px rgba(16, 24, 40, .34);--gutter: 20px;--card-pad: 18px;--card-gap: 14px;--ease: cubic-bezier(.22, .61, .36, 1);--in: .26s;--out: .18s;--font: "IBM Plex Sans", "IBM Plex Sans Devanagari", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans Devanagari", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14.5px;line-height:20px}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}h1,h2,h3,h4,h5,h6{font-weight:600}h1{font-size:27px;line-height:34px;letter-spacing:-.6px}h2{font-size:20px;line-height:27px;letter-spacing:-.35px}h3{font-size:15.5px;line-height:22px;letter-spacing:-.2px;font-weight:500}h4{font-size:15px;line-height:21.5px;font-weight:500}.t-title{font-size:27px;line-height:34px;font-weight:600;letter-spacing:-.6px}.t-figure{font-size:26px;line-height:32px;font-weight:600;letter-spacing:-.7px}.t-card{font-size:15.5px;line-height:22px;font-weight:500;letter-spacing:-.2px}.t-row{font-size:15px;line-height:21.5px;font-weight:500}.t-body{font-size:14.5px;line-height:21px;font-weight:400}.t-meta{font-size:13.5px;line-height:19px;font-weight:400;color:var(--text-muted)}.t-section{font-size:14px;line-height:20px;font-weight:500;color:var(--text-muted);text-transform:none;letter-spacing:0}.t-caption{font-size:12.5px;line-height:17.5px;font-weight:500}html[lang=hi] body,html[lang=hi] .t-body,html[lang=hi] .small{line-height:1.55}html[lang=hi] h1,html[lang=hi] h2,html[lang=hi] h3,html[lang=hi] h4,html[lang=hi] .t-title,html[lang=hi] .t-figure,html[lang=hi] .t-card,html[lang=hi] .t-row,html[lang=hi] .t-section,html[lang=hi] .t-meta,html[lang=hi] .t-caption{line-height:1.55;letter-spacing:0;text-transform:none}.stack{display:flex;flex-direction:column;gap:var(--card-gap)}.card{background:var(--surface);border:none;border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:var(--card-pad)}.inset{background:var(--surface-2);border-radius:var(--radius-sm);padding:14px}.hairline-top{border-top:1px solid var(--hairline)}.hairline-bottom{border-bottom:1px solid var(--hairline)}.card-tap{transition:box-shadow var(--out) var(--ease),transform var(--out) var(--ease)}.card-tap:hover{box-shadow:var(--shadow-lg)}.card-tap:active{transform:translateY(1px)}.card-tap:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.edge-device-card{transition:box-shadow var(--out) var(--ease)}.edge-device-card:hover{box-shadow:var(--shadow-lg)}.edge-device-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-attention{box-shadow:inset 3px 0 0 var(--amber-600),var(--shadow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 20px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text);font-size:15px;font-weight:500;line-height:1.2;white-space:nowrap;transition:background var(--out) var(--ease),opacity var(--out) var(--ease),transform var(--out) var(--ease),border-color var(--out) var(--ease)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-press)}.btn-ghost{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-ink{background:var(--text);color:#fff}.btn-ink:hover:not(:disabled){background:#1f2937}.btn-danger,.btn-danger-ghost{background:var(--surface);color:var(--red-600);border-color:var(--border-strong)}.btn-danger:hover:not(:disabled),.btn-danger-ghost:hover:not(:disabled){background:var(--red-50);border-color:var(--red-50)}.btn-light{background:var(--surface);color:var(--accent)}.btn-sm{height:38px;padding:0 14px;font-size:14.5px}@media (pointer: coarse){.btn-sm{height:44px}}.link{color:var(--accent)}.link:hover{color:var(--accent-press)}.status{display:inline-flex;align-items:center;gap:7px;color:var(--text-muted);font-size:14.5px;line-height:21px;white-space:nowrap}.dot{display:inline-block;width:7px;height:7px;border-radius:999px;flex-shrink:0;background:var(--furniture)}.dot-green{background:var(--green-600)}.dot-amber{background:var(--amber-600)}.dot-red{background:var(--red-600)}.dot-gray,.dot-blue{background:var(--furniture)}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;font-size:13.5px;font-weight:500;line-height:19px;background:var(--surface-2);color:var(--text-muted)}.badge-green{background:var(--green-50);color:var(--green-600)}.badge-red{background:var(--red-50);color:var(--red-600)}.badge-amber{background:var(--amber-50);color:var(--amber-600)}.badge-gray,.badge-blue{background:var(--surface-2);color:var(--text-muted)}table.data td .badge,.rows .badge{background:transparent;padding:0;border-radius:0;color:var(--text-muted);font-weight:400;font-size:14.5px;line-height:21px}table.data td .badge-green,table.data td .badge-amber,table.data td .badge-red,.rows .badge-green,.rows .badge-amber,.rows .badge-red{gap:7px}table.data td .badge-green:before,table.data td .badge-amber:before,table.data td .badge-red:before,.rows .badge-green:before,.rows .badge-amber:before,.rows .badge-red:before{content:"";display:inline-block;flex-shrink:0;width:7px;height:7px;border-radius:999px}table.data td .badge-green:before,.rows .badge-green:before{background:var(--green-600)}table.data td .badge-amber:before,.rows .badge-amber:before{background:var(--amber-600)}table.data td .badge-red:before,.rows .badge-red:before{background:var(--red-600)}.setting-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;min-height:44px;padding:14px 0;border-bottom:1px solid var(--hairline)}.setting-row:last-child{border-bottom:none}.setting-row>.setting-main{flex:1 1 auto;min-width:0;max-width:62ch}.setting-row>.setting-label{flex:1 1 auto;min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.setting-row .setting-text{min-width:0;max-width:62ch}.setting-row>.setting-control{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding-top:1px}.setting-row .setting-nested{flex-basis:100%;margin-top:12px}table.data td .badge.badge-emphasis,.rows .badge.badge-emphasis{padding:4px 11px;border-radius:999px;font-size:13.5px;font-weight:500;line-height:19px;background:var(--surface-2);color:var(--text-muted)}table.data td .badge.badge-emphasis:before,.rows .badge.badge-emphasis:before{content:none}table.data td .badge-green.badge-emphasis,.rows .badge-green.badge-emphasis{background:var(--green-50);color:var(--green-600)}table.data td .badge-amber.badge-emphasis,.rows .badge-amber.badge-emphasis{background:var(--amber-50);color:var(--amber-600)}table.data td .badge-red.badge-emphasis,.rows .badge-red.badge-emphasis{background:var(--red-50);color:var(--red-600)}.card-danger{box-shadow:inset 3px 0 0 var(--red-600),var(--shadow)}.banner{display:block;border-radius:var(--radius-sm);padding:11px 14px;font-size:14.5px;line-height:21px}.banner-red{background:var(--red-50);color:var(--red-600)}.banner-green{background:var(--green-50);color:var(--green-600)}.banner-amber{background:var(--amber-50);color:var(--amber-600)}.chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 13px;border-radius:999px;font-size:14px;font-weight:500;line-height:1;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);transition:background var(--out) var(--ease),color var(--out) var(--ease),border-color var(--out) var(--ease)}.chip:hover{background:var(--surface-2)}.chip.is-on{background:var(--text);color:#fff;border-color:var(--text)}.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chip-count{color:var(--text-faint);font-variant-numeric:tabular-nums}.chip.is-on .chip-count{color:#fff9}.chip .dot{margin-right:-1px}select.filter-select{height:32px;padding:0 32px 0 12px;font-size:14px;line-height:1;border-radius:999px;background-color:var(--surface);border:1px solid var(--border-strong);width:auto;min-width:190px;background-position:right 10px center;background-size:15px}select.filter-select:focus{border-color:var(--accent);background-color:var(--surface)}.chip-toggle{font:inherit;font-size:14px;font-weight:500;line-height:1;cursor:pointer;height:32px;padding:0 13px;border-radius:999px;background:var(--surface);color:var(--text);border:1px solid var(--border-strong)}.chip-toggle:hover{background:var(--surface-2)}.chip-toggle.is-on{background:var(--text);color:#fff;border-color:var(--text);font-weight:500;padding:0 13px}.seg{display:inline-flex;gap:0;padding:3px;border-radius:var(--radius-sm);background:#e8ebf1}.seg>button{border:none;background:transparent;color:var(--text-muted);font-size:14px;font-weight:500;line-height:1;padding:0 14px;height:34px;border-radius:9px;transition:background var(--out) var(--ease),color var(--out) var(--ease)}.seg>button.is-on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.seg>button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--card-gap)}.field>span,.field label{font-size:14px;line-height:20px;font-weight:500;color:var(--text-muted);text-transform:none;letter-spacing:0}.input,.select,.textarea{width:100%;height:52px;padding:0 14px;border:1.5px solid transparent;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-size:15px;line-height:21.5px;transition:background var(--out) var(--ease),border-color var(--out) var(--ease)}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.input:focus,.select:focus,.textarea:focus{outline:none;background:var(--surface);border-color:var(--accent);box-shadow:none}.input:disabled,.select:disabled,.textarea:disabled{opacity:.55;cursor:not-allowed}.textarea,textarea.input{height:auto;min-height:92px;padding:13px 14px;resize:vertical;line-height:20px}textarea[rows]{min-height:0}.row>.field{align-self:flex-start}select{width:100%;height:52px;padding:0 36px 0 14px;border:1.5px solid transparent;border-radius:var(--radius-sm);background-color:var(--surface-2);color:var(--text);font-family:inherit;font-size:15px;line-height:21.5px;transition:background-color var(--out) var(--ease),border-color var(--out) var(--ease)}select:focus{outline:none;background-color:var(--surface);border-color:var(--accent)}select:disabled{opacity:.55;cursor:not-allowed}select,select.select,select.input,.select{-webkit-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23C2C8D4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:36px}button.select{background-image:none;padding-right:14px}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:16px;height:16px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table.data{width:100%;border-collapse:collapse;font-size:15px;min-width:640px}table.data th{text-align:left;padding:13px 18px;font-size:13.5px;line-height:19px;font-weight:500;color:var(--text-muted);text-transform:none;letter-spacing:0;background:transparent;border-bottom:1px solid var(--hairline);white-space:nowrap}table.data td{padding:14px 18px;border-bottom:1px solid var(--hairline);vertical-align:middle;line-height:21px;font-weight:500}table.data tr:last-child td{border-bottom:none}table.data tbody tr{transition:background var(--out) var(--ease)}table.data tbody tr:hover{background:var(--surface-2)}table.data.schedules{min-width:1000px}table.data.schedules td:first-child .t-row{white-space:nowrap}table.data td .row-desc,table.data .col-desc{max-width:52ch}table.data.schedules td:nth-child(2) .small,table.data.schedules td:nth-child(4) .mono{white-space:nowrap}.rows>*+*{border-top:1px solid var(--hairline)}.row-item{display:flex;align-items:center;gap:12px;min-height:44px;padding:12px 18px}.scrim{position:fixed;inset:0;z-index:100;background:#10182873;display:flex;align-items:flex-end;justify-content:center;animation:scrim-in var(--in) var(--ease) both}.sheet{position:relative;width:100%;max-height:92vh;display:flex;flex-direction:column;background:var(--surface);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;box-shadow:var(--shadow-lg);animation:sheet-rise var(--in) var(--ease) both;will-change:transform}.sheet-grabber{width:38px;height:4px;border-radius:999px;background:var(--furniture);margin:10px auto 2px;flex-shrink:0}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px var(--gutter) 14px;flex-shrink:0}.sheet-body{padding:4px var(--gutter) var(--gutter);overflow-y:auto}.sheet-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px var(--gutter);flex-shrink:0;border-top:1px solid var(--hairline)}.sheet-close{width:38px;height:38px;border-radius:999px;flex-shrink:0;display:grid;place-items:center;background:var(--surface-2);border:none;color:var(--text-muted);transition:background var(--out) var(--ease),color var(--out) var(--ease)}.sheet-close:hover{background:#e8ebf1;color:var(--text)}@media (min-width: 760px){.scrim{align-items:center;padding:24px}.sheet{border-radius:var(--radius);max-height:88vh;animation:sheet-lift var(--in) var(--ease) both}.sheet-grabber{display:none}.sheet-head{padding-top:18px}}@keyframes scrim-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-rise{0%{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}@keyframes sheet-lift{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}@keyframes screen-in{0%{transform:translate(14px);opacity:0}to{transform:none;opacity:1}}.screen-in{animation:screen-in var(--in) var(--ease) backwards}@media (prefers-reduced-motion: reduce){.scrim,.sheet,.screen-in{animation:none}.btn:active:not(:disabled),.card-tap:active{transform:none}}.popover{background:var(--surface);border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:6px;animation:sheet-lift var(--out) var(--ease) both}.node-icon,.node-icon-building,.node-icon-floor,.node-icon-gate{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:transparent;color:var(--text-faint)}.node-icon,.node-icon-building{width:22px;height:22px;color:var(--text-muted)}.node-icon-floor{width:20px;height:20px}.node-icon-gate{width:18px;height:18px}.node-icon-gate.gate-icon-entry{color:var(--green-600)}.node-icon-gate.gate-icon-exit{color:var(--amber-600)}.building-toggle{display:inline-flex;align-items:center;gap:10px;background:transparent;border:none;padding:0;font:inherit;font-size:15px;line-height:21.5px;font-weight:500;color:var(--text);text-align:left;min-width:0}.building-toggle>span:not(.node-icon){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.building-toggle .chev{color:var(--furniture);transition:transform var(--out) var(--ease);flex-shrink:0}.building-toggle:hover,.building-toggle:hover .chev{color:var(--accent)}.building-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}table.data tr.gates-row>td{padding:0;background:var(--surface-2)}table.data tbody tr.gates-row:hover{background:var(--surface-2)}.gates-panel{margin:10px 18px 14px 44px;padding:12px 14px;background:var(--surface);border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.gates-list{list-style:none;margin:0;padding:0;max-width:560px}.gate-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:7px 8px;font-size:14.5px;line-height:21px;border-radius:var(--radius-sm);transition:background var(--out) var(--ease)}.gate-row:hover{background:var(--surface-2)}.gate-name{display:inline-flex;align-items:center;gap:9px;min-width:0}.gate-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gate-actions{display:inline-flex;gap:6px;flex-shrink:0}.gates-panel .btn-sm{height:34px;padding:0 11px;font-size:13.5px}.floor-group{border-radius:var(--radius-sm)}.floor-group+.floor-group{margin-top:4px}.floor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:7px 8px;font-size:14.5px;line-height:21px;border-radius:var(--radius-sm);transition:background var(--out) var(--ease)}.floor-head:hover{background:var(--surface-2)}.floor-head .building-toggle{font-weight:500;font-size:14.5px}.floor-group .gates-list{margin:2px 0 6px 31px;padding-left:14px;border-left:1px solid var(--hairline)}.orphan-list-wrap{padding:10px 18px 14px}.floor-plan{border:none;border-radius:var(--radius-sm);padding:14px;background:var(--surface-2)}.floor-plan-rows{display:grid;gap:6px}.floor-plan-row{display:grid;grid-template-columns:1fr 90px 40px;gap:8px;align-items:center}.floor-plan-head{padding:0 2px}.floor-plan-row .input{height:44px;font-size:14.5px}.dept-floor-chips{margin:6px 0 2px 26px;display:flex;flex-wrap:wrap;gap:6px}@media (max-width: 640px){.gates-panel{margin-left:20px;margin-right:8px}table.data.locations{min-width:0}table.data.locations th,table.data.locations td{padding:12px 10px}table.data.locations .btn-sm{padding:0 10px}.locations-actions{flex-wrap:wrap;justify-content:flex-end}.gate-row{padding-left:12px;padding-right:2px;gap:10px}.floor-head{flex-wrap:wrap;gap:6px}.floor-plan-row{grid-template-columns:1fr 76px 36px;gap:6px}.floor-group .gates-list{margin-left:12px;padding-left:8px}}.row{display:flex;align-items:center}.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-20{gap:20px}.gap-24{gap:24px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:14.5px;line-height:21px}.tiny{font-size:13.5px;line-height:19px}.center{text-align:center}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.brandmark{display:inline-flex;align-items:center;gap:11px}.brandmark-logo{border-radius:10px;background:var(--accent);display:grid;place-items:center;color:#fff;flex-shrink:0}.brandmark-text{display:flex;flex-direction:column;line-height:1.15}.brandmark-name{font-weight:600;font-size:18px;letter-spacing:-.35px;display:inline-flex;align-items:baseline;gap:6px}.brandmark-by{font-size:12.5px;line-height:17.5px;font-weight:500;color:var(--text-faint);letter-spacing:0}.brandmark-product{font-size:12.5px;line-height:17.5px;font-weight:500;color:var(--text-muted);letter-spacing:0;text-transform:none;margin-top:1px}html,body{max-width:100%;overflow-x:hidden}@media (max-width: 860px){.dash-charts,.detail-grid{grid-template-columns:1fr!important}}@media (max-width: 640px){.login-grid{grid-template-columns:1fr!important}.login-brand{display:none!important}body .content{padding:var(--gutter) 14px}.modal-2col{grid-template-columns:1fr!important}h1,.t-title{font-size:22px!important;line-height:29px!important}}@media (max-width: 420px){.topbar{padding:0 14px!important}.hide-xs{display:none!important}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--furniture);border-radius:10px}::-webkit-scrollbar-track{background:transparent}.pose-arrow{position:absolute;top:50%;display:flex;align-items:center;justify-content:center;padding:9px 11px;border-radius:999px;color:#fff;background:#2563ebeb;box-shadow:0 10px 28px #10182873;backdrop-filter:blur(6px);pointer-events:none;z-index:3}.pose-arrow-ok{background:#0e7a54f0}.pose-arrow-right,.pose-arrow-out-right{right:14px;animation:pose-nudge-right 1.15s ease-in-out infinite}.pose-arrow-left,.pose-arrow-out-left{left:14px;animation:pose-nudge-left 1.15s ease-in-out infinite}.pose-arrow-down{top:auto;bottom:104px;left:50%;animation:pose-nudge-down 1.15s ease-in-out infinite}@keyframes pose-nudge-right{0%{transform:translateY(-50%) translate(-14px);opacity:.5}55%{transform:translateY(-50%) translate(0);opacity:1}to{transform:translateY(-50%) translate(-14px);opacity:.5}}@keyframes pose-nudge-left{0%{transform:translateY(-50%) translate(14px);opacity:.5}55%{transform:translateY(-50%) translate(0);opacity:1}to{transform:translateY(-50%) translate(14px);opacity:.5}}@keyframes pose-nudge-down{0%{transform:translate(-50%) translateY(-14px);opacity:.5}55%{transform:translate(-50%) translateY(0);opacity:1}to{transform:translate(-50%) translateY(-14px);opacity:.5}}@media (prefers-reduced-motion: reduce){.pose-arrow-right,.pose-arrow-left,.pose-arrow-out-right,.pose-arrow-out-left{animation:none;transform:translateY(-50%);opacity:1}.pose-arrow-down{animation:none;transform:translate(-50%);opacity:1}}@media (max-width: 520px){.pose-arrow{padding:7px 9px}.pose-arrow-down{bottom:96px}}.enroll-viewport{position:relative;height:min(52vh,560px);height:min(52dvh,560px);aspect-ratio:3 / 4;width:auto;max-width:100%;margin:0 auto;border-radius:var(--radius);overflow:hidden;background:#000;border:none;box-shadow:var(--shadow);transition:box-shadow .3s}.enroll-viewport.is-frozen{box-shadow:0 0 0 2px var(--green-600),var(--shadow)}@media (max-width: 520px){.enroll-viewport{height:min(58vh,520px);height:min(58dvh,520px)}}.tip-list{list-style:none;margin:0;padding:0 4px 0 0;display:flex;flex-direction:column;gap:10px;max-height:min(46vh,400px);max-height:min(46dvh,400px);overflow-y:auto;overscroll-behavior:contain}.tip-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:none;border-radius:var(--radius-sm);background:var(--surface-2)}.tip-fig-wrap{flex:0 0 56px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.tip-fig{width:56px;height:48px;overflow:visible}.tip-fig-line{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tip-title{display:block;font-size:15px;line-height:21px;font-weight:500;color:var(--text)}.tip-body{display:block;font-size:13.5px;line-height:18px;color:var(--text-muted);margin-top:2px}.tip-second-person{animation:tip-dismiss 3.4s ease-in-out infinite}.tip-strike{fill:none;stroke:var(--red-600);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:26;animation:tip-strike 3.4s ease-in-out infinite}@keyframes tip-dismiss{0%,25%{opacity:1}55%,to{opacity:.16}}@keyframes tip-strike{0%,25%{stroke-dashoffset:26;opacity:0}50%,90%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}.tip-sweep{animation:tip-sweep 3.2s linear infinite}@keyframes tip-sweep{0%{transform:translate(0)}to{transform:translate(78px)}}.tip-glasses{animation:tip-lift 3.2s ease-in-out infinite}@keyframes tip-lift{0%,30%{transform:translateY(0);opacity:1}65%{transform:translateY(-14px);opacity:0}to{transform:translateY(-14px);opacity:0}}.tip-turn{transform-origin:26px 24px;animation:tip-turn 3s ease-in-out infinite}.tip-chevron{animation:tip-chevron 3s ease-in-out infinite}@keyframes tip-turn{0%,to{transform:rotate(0) translate(0)}50%{transform:rotate(9deg) translate(3px)}}@keyframes tip-chevron{0%,to{transform:translate(-5px);opacity:.4}50%{transform:translate(0);opacity:1}}.tip-ring{fill:none;stroke:var(--green-600);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:126;transform:rotate(-90deg);transform-origin:28px 24px;animation:tip-ring 3s ease-in-out infinite}@keyframes tip-ring{0%{stroke-dashoffset:126}70%,to{stroke-dashoffset:0}}@media (prefers-reduced-motion: reduce){.tip-second-person,.tip-strike,.tip-sweep,.tip-glasses,.tip-turn,.tip-chevron,.tip-ring{animation:none}.tip-second-person{opacity:.16}.tip-strike{stroke-dashoffset:0;opacity:1}.tip-glasses{transform:translateY(-14px);opacity:0}.tip-turn{transform:rotate(9deg) translate(3px)}.tip-ring{stroke-dashoffset:0}.tip-sweep{transform:translate(39px)}}@media (max-width: 520px){.tip-row{padding:8px 10px;gap:10px}.tip-fig-wrap{flex-basis:44px}.tip-fig{width:44px;height:38px}.tip-body{font-size:13px}}.gl-term{border-bottom:1px dotted var(--border-strong);cursor:help}.gl-term:focus-visible,.gl-anchor:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.gl-anchor{display:inline-block;cursor:help}.gl-tip{position:fixed;z-index:90;max-width:300px;transform:translate(-50%);padding:9px 11px;border-radius:10px;background:var(--text);color:#fff;font-size:12.5px;line-height:1.45;font-weight:400;text-align:left;white-space:normal;box-shadow:0 10px 28px #1018283d;pointer-events:none;animation:gl-tip-in .12s ease-out}@keyframes gl-tip-in{0%{opacity:0;transform:translate(-50%) translateY(-2px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media (prefers-reduced-motion: reduce){.gl-tip{animation:none}}.gl-list{margin:0}.gl-row{display:grid;grid-template-columns:1fr;gap:4px 16px;padding:11px 0;border-top:1px solid var(--hairline)}.gl-row:first-child{border-top:0;padding-top:2px}.gl-row dd{margin:0;color:var(--text-muted)}.gl-name{font-weight:600}@media (min-width: 620px){.gl-row{grid-template-columns:170px 1fr;align-items:baseline}}
