@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-latin-400-normal-Dhut76fR.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-400-normal-BDKaGhyp.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-latin-500-normal-Bf-nb4oT.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-500-normal-DYtqi0QS.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/plus-jakarta-sans-latin-700-normal-CfpNZvy6.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-700-normal-DqEcQeE5.woff)format("woff")}*{box-sizing:border-box}html{background:var(--ground);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;color:var(--ink);font-family:var(--sans);background-color:var(--ground);background-image:radial-gradient(ellipse 90% 40% at 50% 105%, var(--ground-glow) 0%, #1a122000 100%);background-attachment:fixed;margin:0;font-size:14px;line-height:21px}a{color:var(--brand)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.mono{font-family:var(--mono)}.muted{color:var(--ink-muted)}.small{font-size:12px;line-height:18px}.flush{margin:0}.stack{flex-direction:column;display:flex}.push{margin-left:auto}.warn-text{color:var(--warn)}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.topbar{z-index:20;padding:10px max(24px, env(safe-area-inset-right,0px)) 10px max(24px, env(safe-area-inset-left,0px));background:var(--surface-inset);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:sticky;top:0}.gradient-text{display:block;overflow:visible}.gradient-text text{font:inherit;letter-spacing:0}.gradient-text .from{stop-color:var(--brand)}.gradient-text .to{stop-color:var(--title)}.wordmark{color:var(--brand);font-family:var(--mono);letter-spacing:.14em;align-items:center;gap:8px;margin-right:16px;font-size:20px;font-weight:700;line-height:24px;text-decoration:none;display:flex}.wordmark svg{flex:none}.navpills{flex-wrap:wrap;gap:8px;display:flex}.tabbar-wrap{display:none}.navpill{border:1px solid var(--line);min-height:36px;color:var(--ink);border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:500;text-decoration:none;display:flex;position:relative}.navpill[aria-current=page]{border-color:var(--brand);background:var(--brand-tint);color:var(--brand)}.band{pointer-events:none;width:calc(100% + 2px);height:calc(100% + 2px);position:absolute;inset:-1px;overflow:visible}.band rect{x:1px;y:1px;rx:18px;fill:none;stroke-width:2px;stroke-dasharray:1 1;stroke-dashoffset:1px;opacity:0;width:calc(100% - 2px);height:calc(100% - 2px);transition:stroke-dashoffset .45s cubic-bezier(.65,0,.35,1),opacity 0s .45s}.band .band-start{stop-color:var(--brand)}.band .band-end{stop-color:var(--title)}.btn{position:relative}.btn .band rect{rx:7px}.filters .btn .band rect{rx:15px}@media (hover:hover){.navpill:hover .band rect,.btn:hover:not(:disabled) .band rect{stroke-dashoffset:0;opacity:1;transition:stroke-dashoffset .45s cubic-bezier(.65,0,.35,1),opacity}}@media (prefers-reduced-motion:reduce){.band rect{transition:none}}.count{background:var(--title);min-width:20px;color:var(--ground);text-align:center;border-radius:999px;padding:0 6px;font-size:11px;font-weight:700;line-height:18px}.count.alert{background:var(--bad)}.clock-wrap{flex-direction:column;align-items:flex-end;margin-left:auto;display:flex}.clock{font-family:var(--mono);letter-spacing:.06em;font-size:22px;font-weight:600;line-height:24px}.date{font-family:var(--mono);font-size:12px;line-height:14px}@media (width>=721px) and (width<=1500px){.topbar{flex-wrap:nowrap}.wordmark{margin-right:8px}.navpills{flex-wrap:nowrap;flex:1;justify-content:center;gap:6px}.navpill{padding:0 10px}.navpill:not([aria-current=page]) .nav-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (width>=721px) and (width<=1199px){.wordmark .gradient-text{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.page{max-width:1392px;padding:20px max(24px, env(safe-area-inset-right,0px)) 48px max(24px, env(safe-area-inset-left,0px));flex-direction:column;gap:16px;margin:0 auto;display:flex}.page-head{flex-wrap:wrap;align-items:baseline;gap:8px 16px;display:flex}.page-head h1{color:var(--title);text-wrap:balance;margin:0;font-size:24px;font-weight:700;line-height:30px}.page-head .summary{font-family:var(--mono);color:var(--ink-muted);font-size:12px}.page-head .pills{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.back{color:var(--brand);cursor:pointer;font-family:var(--mono);background:0 0;border:0;align-self:flex-start;padding:0;font-size:12px}.row{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.main-col{flex-direction:column;flex:999 620px;gap:16px;min-width:0;display:flex}.side-col{flex-direction:column;flex:320px;gap:16px;min-width:0;display:flex}.device-list{flex:300px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:12px;min-width:0;padding:16px;display:flex}.panel-head{flex-wrap:wrap;align-items:center;gap:6px 10px;min-height:24px;display:flex}.panel-head .end{align-items:center;gap:8px;margin-left:auto;display:flex}.panel-head .end .switch{margin-block:-4px}.label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--label);margin:0;font-size:11px;font-weight:600;line-height:16px}.hint{color:var(--ink-muted);font-size:12px}.inset{background:var(--surface-inset);border:1px solid var(--line);border-radius:8px}.error-bar{border:1px solid var(--bad);color:var(--bad);z-index:30;background:#2d1420;border-radius:8px;margin:0;padding:10px 14px;font-size:13px;position:fixed;bottom:16px;left:16px;right:16px}.loading{color:var(--ink-muted);font-family:var(--mono);padding:24px 0;font-size:12px;line-height:18px}@media (width<=720px){.topbar{padding-top:max(8px, env(safe-area-inset-top,0px));gap:6px;padding-bottom:8px}.wordmark{margin-right:auto;font-size:17px}.clock-wrap{margin-left:0}.clock{font-size:18px}.navpills{display:none}.tabbar-wrap{display:block}.tabbar{z-index:43;padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);background:var(--surface-inset);border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab{min-width:0;min-height:56px;color:var(--ink-muted);font:500 10px/12px var(--sans);white-space:nowrap;touch-action:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0 2px;text-decoration:none;display:flex;position:relative}.tab[aria-current=page],.tab[aria-expanded=true]{color:var(--brand)}.tab svg{width:20px;height:20px}.count{min-width:16px;padding:0 4px;font-size:9px;line-height:15px;position:absolute;top:5px;left:calc(50% + 6px)}.sheet{left:0;right:0;bottom:calc(56px + env(safe-area-inset-bottom,0px));z-index:42;background:var(--surface);border:1px solid var(--line);visibility:hidden;touch-action:none;border-bottom:0;border-radius:16px 16px 0 0;padding:8px 16px 12px;transition:transform .22s cubic-bezier(.2,.8,.2,1),visibility 0s .22s;position:fixed;transform:translateY(100%)}.sheet.open,.sheet.dragging{visibility:visible;transition:transform .22s cubic-bezier(.2,.8,.2,1);transform:translateY(0)}.sheet.dragging{transition:none}.sheet .handle{background:var(--line-hover);border-radius:999px;width:40px;height:5px;margin:0 auto 8px;display:block}.sheet ul{margin:0;padding:0;list-style:none}.sheet a{min-height:52px;color:var(--ink);border-radius:8px;align-items:center;gap:12px;padding:0 8px;font-size:15px;text-decoration:none;display:flex;position:relative}.sheet a[aria-current=page]{color:var(--brand);background:var(--brand-tint)}.sheet a .count{margin-left:auto;font-size:11px;line-height:18px;position:static}.sheet-backdrop{z-index:41;background:#00000073;border:0;padding:0;position:fixed;inset:0}.topbar,.page{padding-left:max(12px, env(safe-area-inset-left,0px));padding-right:max(12px, env(safe-area-inset-right,0px))}.page{padding-top:16px;padding-bottom:calc(56px + 88px + env(safe-area-inset-bottom,0px));gap:12px}.row,.main-col,.side-col{gap:12px}.panel{padding:12px}.page-head .pills{margin-left:0}.error-bar{bottom:calc(56px + 8px + env(safe-area-inset-bottom,0px))}}.terminal-page{flex-direction:column;display:flex}.terminal-page .terminal-box{border:1px solid var(--line);background:var(--screen);border-radius:8px;height:calc(100vh - 220px);min-height:320px;padding:8px;overflow:hidden}@media (width<=720px){.terminal-page .terminal-box{height:calc(100dvh - 230px)}}@media (pointer:coarse){.btn,input.search,select.search{min-height:44px}input,select,textarea,input.search,select.search{font-size:16px}input.icon,select.icon,textarea.icon,input.search.icon,select.search.icon{width:44px}.filters .btn{min-height:40px}.navpill{min-height:44px}.switch{width:52px;height:30px}.switch .knob{width:22px;height:22px}.switch[aria-checked=true] .knob{transform:translate(22px)}.home-page .swatch{width:32px;height:32px}.home-page .level{height:28px}.home-page .remote-pad{grid-template-columns:repeat(3,56px)}}@media (prefers-reduced-motion:reduce){.sheet{transition:none}}.pill{font-family:var(--mono);white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:12px;line-height:20px;display:inline-flex}.pill.ok{color:var(--ok)}.pill.warn{color:var(--warn)}.pill.bad{color:var(--bad)}.pill.info{color:var(--info)}.pill.plain{color:var(--ink-muted)}.chip{background:var(--surface-inset);border:1px solid var(--line);font-family:var(--mono);color:var(--ink);white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;line-height:18px}.chips{flex-wrap:wrap;gap:6px;display:flex}.dot{background:var(--ok);border-radius:50%;flex:none;width:8px;height:8px}.dot.warn{background:var(--warn)}.dot.bad{background:var(--bad)}.dot.info{background:var(--info)}.dot.off{background:var(--bad)}.btn{border:1px solid var(--line);background:var(--surface-inset);min-height:36px;color:var(--ink);font:500 13px/1 var(--sans);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 12px;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--line-hover)}.btn.primary{background:var(--brand-strong);border-color:var(--brand-strong);color:var(--on-brand)}.btn.icon{width:36px;padding:0}.btn.danger{border-color:var(--bad);color:var(--bad)}.btn:disabled{opacity:.4;cursor:default}.btn[aria-pressed=true],.btn[aria-current]{border-color:var(--brand);color:var(--brand);background:var(--brand-tint)}.btns{flex-wrap:wrap;gap:8px;display:flex}.filters{border:0;flex-wrap:wrap;gap:6px;min-width:0;margin:0;padding:0;display:flex}.filters .btn{border-radius:999px;min-height:30px;font-size:12px}input.search,select.search{border:1px solid var(--line);background:var(--surface-inset);min-height:36px;color:var(--ink);font:13px var(--sans);border-radius:8px;min-width:0;padding:0 10px}select.search{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23ab98b5' stroke-width='1.6'/></svg>");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}select.search:hover{border-color:var(--line-hover)}select.search:disabled{opacity:.4;cursor:default}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.stats.four{grid-template-columns:repeat(4,minmax(0,1fr))}.stats.two{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{flex-direction:column;gap:2px;padding:10px;display:flex}.stat .k{color:var(--ink-muted);font-size:12px}.stat .v{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:24px;font-weight:600;line-height:30px}.stat .u{font-family:var(--mono);color:var(--ink-muted);font-size:11px}@media (width<=720px){.stats.four{grid-template-columns:repeat(2,minmax(0,1fr))}.stat .v{font-size:20px;line-height:26px}}.switch{border:1px solid var(--line);background:var(--surface-inset);cursor:pointer;border-radius:999px;flex:none;width:44px;height:24px;padding:0;transition:background .15s,border-color .15s;position:relative}.switch .knob{background:var(--ink-muted);border-radius:50%;width:16px;height:16px;transition:transform .15s,background .15s;position:absolute;top:3px;left:3px}.switch:hover{border-color:var(--line-hover)}.switch[aria-checked=true]{background:var(--brand-strong);border-color:var(--brand-strong)}.switch[aria-checked=true] .knob{background:var(--on-brand);transform:translate(20px)}.switch:disabled{opacity:.4;cursor:default}@media (prefers-reduced-motion:reduce){.switch,.switch .knob{transition:none}}.cams{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:12px;display:grid}.cam{background:var(--surface-inset);border:1px solid var(--line);border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.screen{aspect-ratio:4/3;background:var(--screen);max-width:100%;position:relative}.screen video,.screen img.still{object-fit:contain;background:var(--screen);width:100%;height:100%;position:absolute;inset:0}.overlay{gap:6px;display:flex;position:absolute;top:10px;left:10px}.tag{font-family:var(--mono);color:var(--ink);background:#120c17d9;border-radius:999px;align-items:center;gap:6px;padding:1px 8px;font-size:11px;line-height:18px;display:flex}.tag.live{border:1px solid var(--info);color:var(--info);letter-spacing:.1em;font-weight:600}.tag.live .dot{background:var(--info);width:6px;height:6px}.tag.connecting{color:var(--ink-muted)}.lens{aspect-ratio:4/3;border:1px solid var(--line);background:var(--surface);border-radius:4px;width:26%;min-width:96px;position:absolute;bottom:10px;right:10px;overflow:hidden}.lens video,.lens img.still{object-fit:cover}.cam-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.cam-text{min-width:0}.cam-name{color:var(--ink);font-weight:700;text-decoration:none}.cam-detail{font-family:var(--mono);color:var(--ink-muted);font-size:12px;line-height:18px}.cam:fullscreen{background:#000;border:0;border-radius:0;width:100vw;height:100vh}.cam:fullscreen .screen{background:#000;flex:auto;min-height:0;aspect-ratio:auto!important}.cam:fullscreen .screen video{background:#000}.cam:fullscreen .overlay{top:20px;left:20px}.cam:fullscreen .tag{padding:2px 12px;font-size:14px;line-height:22px}.cam:fullscreen .lens{width:22%;max-width:420px;bottom:20px;right:20px}.cam:fullscreen .cam-foot{background:var(--surface);border-top:1px solid var(--line)}.thumbs{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;display:grid}.thumb{color:var(--ink);flex-direction:column;gap:6px;text-decoration:none;display:flex}.thumb img{aspect-ratio:16/10;object-fit:cover;border:1px solid var(--line);background:var(--screen);border-radius:8px;width:100%}.thumb:hover img{border-color:var(--brand)}.thumb .t{font-family:var(--mono);color:var(--ink-muted);font-size:12px}.media{border:1px solid var(--line);background:var(--screen);border-radius:8px;width:100%;max-width:100%;display:block}@media (width<=720px){.cams{grid-template-columns:1fr}}.bars{border-bottom:1px solid var(--line);align-items:flex-end;gap:4px;height:76px;display:flex}.bar-col{cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1 1 0;justify-content:flex-end;align-items:center;gap:3px;min-width:0;height:100%;padding:0;text-decoration:none;display:flex}.bar-col span{font-family:var(--mono);color:var(--ink);font-size:11px}.bar{background:var(--warn);border-radius:4px 4px 0 0;width:100%;max-width:20px}.bar.none{background:var(--ok);opacity:.5;height:3px}.bar.unknown{background:repeating-linear-gradient(90deg, var(--line) 0 3px, transparent 3px 6px);height:3px}.bar-days{gap:4px;display:flex}.bar-days span{text-align:center;min-width:0;font-family:var(--mono);color:var(--ink-muted);flex:1 1 0;font-size:10px;overflow:hidden}.list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.list>li{border-top:1px solid var(--line)}.list>li:first-child{border-top:0}.ev{color:var(--ink);border-radius:4px;gap:10px;padding:10px 4px;text-decoration:none;display:flex}.ev:hover{background:var(--surface-inset)}.ev time{width:72px;font-family:var(--mono);color:var(--ink-muted);flex:none;font-size:12px}.ev .dot{margin-top:6px}.ev .body{flex-direction:column;flex:1;min-width:0;display:flex}.ev .detail{font-family:var(--mono);color:var(--ink-muted);overflow-wrap:anywhere;font-size:12px;line-height:18px}.ev .go{color:var(--ink-muted);align-self:center}.ev.current{background:var(--brand-tint)}.empty{color:var(--ink-muted);margin:0;padding:4px}.devrow{color:var(--ink);border-radius:4px;grid-template-columns:8px minmax(0,1fr) auto 110px;align-items:center;gap:4px 12px;padding:10px 4px;text-decoration:none;display:grid}.devrow:hover{background:var(--surface-inset)}.devrow .name{flex-direction:column;min-width:0;display:flex}.devrow .name b{font-weight:700}.devrow .ip{font-family:var(--mono);color:var(--ink-muted);font-size:12px;line-height:18px}.devrow .extra{text-align:right;width:110px;font-family:var(--mono);color:var(--ink-muted);font-size:12px}.devrow[aria-current=true]{background:var(--brand-tint)}.nodes{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;display:grid}.node{flex-direction:column;gap:8px;padding:12px;display:flex}.node-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.table-wrap{overflow-x:auto}.table-wrap th,.table-wrap td{white-space:nowrap}.table-wrap td.wrap{white-space:normal;min-width:10em}.table-wrap .filters{flex-wrap:nowrap}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--label);border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 8px;font-size:11px;font-weight:600}th button{all:unset;cursor:pointer}th button:focus-visible{outline:2px solid var(--brand)}td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px}td.mono{font-family:var(--mono);font-size:12px}td a{color:var(--ink)}td.num,th.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:0}tr.down td{color:var(--ink-muted)}.chart{width:100%;height:auto;display:block}.chart .grid{stroke:var(--line);stroke-width:1px}.chart .axis{fill:var(--ink-muted);font-family:var(--mono);font-size:10px}.chart .down{fill:none;stroke:var(--brand);stroke-width:2px}.chart .up{fill:none;stroke:var(--info);stroke-width:2px}.chart .area{fill:var(--brand-tint)}.chart .pt{fill:var(--brand)}.legend{font-family:var(--mono);color:var(--ink-muted);gap:16px;font-size:12px;display:flex}.swatch{vertical-align:middle;border-radius:2px;width:12px;height:3px;margin-right:6px;display:inline-block}.swatch.brand{background:var(--brand)}.swatch.info{background:var(--info)}.event-hero{flex-direction:column;gap:8px;display:flex}.facts{grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;display:grid}.facts dt{font-family:var(--mono);color:var(--ink-muted);font-size:12px}.facts dd{overflow-wrap:anywhere;margin:0}.timeline{background:var(--surface-inset);border:1px solid var(--line);border-radius:4px;height:34px;position:relative;overflow:hidden}.timeline .down{border-left:2px solid var(--bad);border-right:2px solid var(--ok);background:#fb718540;position:absolute;top:0;bottom:0}.timeline .mark{background:var(--info);width:2px;height:20px;position:absolute;top:6px}.codebox{align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.codebox pre{min-width:0;font-family:var(--mono);color:var(--brand);white-space:pre-wrap;overflow-wrap:anywhere;flex:1;margin:0;font-size:12px;line-height:18px}@media (width<=720px){.devrow{grid-template-columns:8px minmax(0,1fr) auto}.devrow .extra{text-align:left;grid-column:2/-1}.devrow .extra:empty{display:none}th{padding:6px}td{padding:8px 6px}}.line-track{background:var(--surface-inset);border-radius:4px;height:28px;position:relative;overflow:hidden}.line-stretch{cursor:pointer;background:repeating-linear-gradient(135deg, var(--line) 0 4px, transparent 4px 8px);border:0;margin:0;padding:0;position:absolute;top:0;bottom:0}.line-stretch.ok{background:var(--ok)}.line-stretch.degraded{background:var(--warn)}.line-stretch.down{background:var(--bad)}.line-stretch.ok{opacity:.55}.line-stretch.degraded,.line-stretch.down{z-index:1;min-width:3px}.line-stretch:hover,.line-stretch[aria-pressed=true]{opacity:1}.line-stretch:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;z-index:3}.line-marks{height:4px;margin-top:-10px;position:relative}.line-pick{background:var(--ink);border-radius:2px;min-width:6px;height:3px;position:absolute;top:0}.line-pick.ok{background:var(--ok)}.line-pick.degraded{background:var(--warn)}.line-pick.down{background:var(--bad)}.line-ticks{height:14px;font-family:var(--mono);color:var(--ink-muted);font-size:10px;line-height:14px;position:relative}.line-ticks span{white-space:nowrap;position:absolute;transform:translate(-50%)}.line-detail{font-family:var(--mono);color:var(--ink-muted);margin:0;font-size:13px}.line-detail.degraded{color:var(--warn)}.line-detail.down{color:var(--bad)}.line-detail.ok{color:var(--ink-muted)}.swatch.line-ok{background:var(--ok)}.swatch.line-degraded{background:var(--warn)}.swatch.line-down{background:var(--bad)}.swatch.line-ok,.swatch.line-degraded,.swatch.line-down,.swatch.line-unknown{width:10px;height:10px}.swatch.line-unknown{background:repeating-linear-gradient(135deg, var(--line) 0 2px, transparent 2px 4px)}.line-panel .legend{flex-wrap:wrap;gap:6px 16px}.line-panel .legend span{white-space:nowrap}@media (width<=720px){.line-ticks .minor{display:none}}.space-bar{background:var(--surface-inset);border:1px solid var(--line);border-radius:4px;height:18px;display:flex;overflow:hidden}.space-bar .seg{height:100%}.space-bar .seg.hq,.swatch.hq{background:var(--brand)}.space-bar .seg.lq,.swatch.lq{background:var(--info)}.space-bar .seg.timelapse,.swatch.timelapse{background:var(--title)}.space-bar .seg.persistent,.swatch.persistent{background:var(--ok)}.space-bar .seg.reserved,.swatch.reserved{background:var(--ink-muted)}.space-bar .seg.unused,.swatch.unused{background:var(--line)}.legend.wrap{flex-wrap:wrap;gap:8px 16px}.retention{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.retention label{align-items:center;gap:8px;display:flex}.retention .days{width:72px}.confirm{border-color:var(--warn);z-index:10;position:sticky;top:64px}li.warning{align-items:baseline;gap:10px;padding:10px 4px;display:flex}.map-panel{flex-direction:column;display:flex}.people-map{border:1px solid var(--line);background:var(--screen);border-radius:8px;height:560px}@media (width<=720px){.people-map{height:380px}}.leaflet-container{font-family:var(--sans)}.leaflet-container .leaflet-control-attribution{color:var(--ink-muted);background:#120c17bf}.leaflet-container .leaflet-control-attribution a{color:var(--ink-muted)}.leaflet-container .leaflet-bar a{background:var(--surface);color:var(--ink);border-color:var(--line)}.leaflet-container .leaflet-bar a:hover{background:var(--surface-inset)}.leaflet-container .leaflet-tooltip{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.person-pin span{box-sizing:border-box;border:2px solid var(--ink);width:32px;height:32px;color:var(--on-brand);font-family:var(--sans);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #00000080}.person-pin span img{object-fit:cover;border-radius:50%;width:100%;height:100%;position:absolute;inset:0}.person-pin.stale span{opacity:.55;border-style:dashed}.person-pin.together span.disc{position:absolute;top:0}.person-pin.together span.disc[data-n="0"]{z-index:3;left:0}.person-pin.together span.disc[data-n="1"]{z-index:2;left:18px}.person-pin.together span.disc[data-n="2"]{z-index:1;left:36px}.person-pin.together .count{z-index:4;box-sizing:border-box;background:var(--brand);min-width:18px;height:18px;color:var(--on-brand);font-family:var(--mono);text-align:center;border-radius:9px;padding:0 4px;font-size:11px;line-height:18px;position:absolute;top:-6px;right:-6px;box-shadow:0 1px 4px #00000080}.together-popup .leaflet-popup-content-wrapper,.together-popup .leaflet-popup-tip{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.together-popup .leaflet-popup-content{margin:8px}.together-popup a.leaflet-popup-close-button{color:var(--ink-muted)}.together-list{margin:0;padding:0;list-style:none}.together-list button{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:6px 12px;display:block}.together-list button:hover,.together-list button:focus-visible{background:var(--brand-tint)}.avatar{width:36px;height:36px;color:var(--on-brand);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex;position:relative;overflow:hidden}.avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%;position:absolute;inset:0}.people-list{gap:8px}.people-list>li{border-top:0}.person-main{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:12px;padding:6px 4px;text-decoration:none;display:flex}.person-main:hover{background:var(--surface-inset)}.person-main .stack{flex:1;min-width:0}.person{flex-direction:column;gap:8px;padding:8px 12px;display:flex}.person.picked{border-color:var(--brand)}.person-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.person-foot .btn{white-space:nowrap;flex:none}.setup ol{flex-direction:column;gap:12px;margin:0;padding-left:20px;display:flex}.setup pre{background:var(--surface-inset);border:1px solid var(--line);white-space:pre-wrap;border-radius:4px;margin:8px 0 0;padding:8px 12px}.person-circles{color:var(--ink-muted);flex-direction:column;gap:4px;margin:0 0 8px;padding:0 4px;font-size:13px;list-style:none;display:flex}.person-circles li{align-items:center;gap:8px;min-width:0;display:flex}.person-circles li>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.person-foot .btn.icon.spinning svg:not(.band){animation:.9s linear infinite person-asking}@media (prefers-reduced-motion:reduce){.person-foot .btn.icon.spinning svg:not(.band){animation:none}}@keyframes person-asking{to{transform:rotate(360deg)}}.home-page .rooms{columns:300px;column-gap:16px;display:block}.home-page .room{break-inside:avoid;margin:0 0 16px}.home-page .lights li{flex-direction:column;gap:8px;padding:6px 0;display:flex}.home-page .lights .light-head{align-items:center;gap:8px;display:flex}.home-page .lights .light-head b{flex:1;font-weight:500}.home-page .lights .glow{border:1px solid var(--line);background:var(--surface-inset);border-radius:50%;flex:none;width:12px;height:12px}.home-page .lights .light.on .glow{border-color:#0000;box-shadow:0 0 8px #ffffff59}.home-page .lights .light.gone b{color:var(--ink-muted)}.home-page .level{width:100%;accent-color:var(--brand)}.home-page .swatches{flex-wrap:wrap;gap:6px;display:flex}.home-page .swatch{border:1px solid var(--line);cursor:pointer;border-radius:50%;width:24px;height:24px;padding:0}.home-page .swatch:hover{border-color:var(--ink)}.home-page .swatch:disabled{opacity:.4;cursor:default}.home-page .heating .target .btns{gap:6px;margin-top:4px}.home-page .heating .boost{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.home-page .inks li{grid-template-columns:64px 1fr 40px;align-items:center;gap:8px;padding:4px 0;display:grid}.home-page .inks .ink-name{text-transform:capitalize}.home-page .inks .ink-bar{background:var(--surface-inset);border:1px solid var(--line);border-radius:999px;height:10px;overflow:hidden}.home-page .inks .ink-fill{background:var(--ink-muted);height:100%;display:block}.home-page .inks .ink-fill.black{background:#8a8290}.home-page .inks .ink-fill.cyan{background:#22c3e6}.home-page .inks .ink-fill.magenta{background:#e6309a}.home-page .inks .ink-fill.yellow{background:#f7d33c}.home-page .together{flex-direction:column;gap:8px;padding:12px;display:flex}.home-page .together .filters{margin:0}.home-page .together-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.home-page .together-head .k{color:var(--ink-muted);font-size:12px}.home-page .together-head .sync{align-items:center;gap:8px;font-size:13px;display:flex}.home-page .look-dot{border:1px solid var(--line);border-radius:50%;width:10px;height:10px}.home-page .player{flex-direction:column;gap:8px;display:flex}.home-page .player select{width:100%}.home-page .volume{align-items:center;gap:8px;display:flex}.home-page .volume .level{flex:1}.home-page .appliance{flex-direction:column;gap:8px;display:flex}.home-page .appliance .btns select{flex:1}.home-page .progress{background:var(--surface-inset);border:1px solid var(--line);border-radius:999px;height:10px;display:block;overflow:hidden}.home-page .progress span{background:var(--info);height:100%;display:block}@media (width<=720px){.home-page .side-col{order:-1}}.home-page .remote-pad{border:0;grid-template-columns:repeat(3,44px);grid-template-areas:".up.""left ok right"".down.""back.home";justify-content:center;gap:6px;min-width:0;margin:0;padding:0;display:grid}.home-page .remote-pad .up{grid-area:up}.home-page .remote-pad .left{grid-area:left}.home-page .remote-pad .ok{grid-area:ok}.home-page .remote-pad .right{grid-area:right}.home-page .remote-pad .down{grid-area:down}.home-page .remote-pad .back{grid-area:back}.home-page .remote-pad .home{grid-area:home}.home-page .remote-pad .btn{min-width:44px;padding:0 6px}.notifications{flex-direction:column;gap:8px;display:flex}.home-page .energy{flex-direction:column;gap:12px;display:flex}.home-page .energy .fuel{flex-direction:column;gap:8px;display:flex}.home-page .energy .fuel-head{justify-content:space-between;align-items:center;display:flex}.fab{right:max(24px, env(safe-area-inset-right,0px));bottom:max(24px, env(safe-area-inset-bottom,0px));z-index:40;background:linear-gradient(135deg, var(--brand), var(--title));width:56px;height:56px;color:var(--ground);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;border-radius:50%;place-items:center;transition:transform .15s,box-shadow .15s;display:grid;position:fixed;box-shadow:0 6px 24px #f0449a59}.fab:hover{transform:translateY(-2px);box-shadow:0 10px 28px #f0449a73}.chat{right:max(24px, env(safe-area-inset-right,0px));z-index:40;background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;width:400px;max-width:calc(100vw - 48px);height:min(640px,100vh - 140px);display:flex;position:fixed;bottom:92px;overflow:hidden;box-shadow:0 16px 48px #00000080}.chat-head{border-bottom:1px solid var(--line);background:var(--surface-inset);align-items:center;gap:8px;padding:10px 12px 10px 16px;display:flex}.chat-head h2{background:linear-gradient(90deg, var(--brand), var(--title));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 auto 0 0;font-size:16px;font-weight:700}.chat-head .btn:disabled{opacity:.4;cursor:default}.chat-log{overscroll-behavior:contain;flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.chat-msg{overflow-wrap:anywhere;max-width:88%;font-size:14px;line-height:21px}.chat-msg p,.chat-msg ul{margin:0 0 8px}.chat-msg p:last-child,.chat-msg ul:last-child{margin-bottom:0}.chat-msg ul{padding-left:18px}.chat-msg strong{color:var(--title)}.chat-msg.user{border:1px solid var(--brand);background:var(--brand-tint);white-space:pre-wrap;border-radius:12px 12px 4px;align-self:flex-end;padding:8px 12px}.chat-msg.assistant{align-self:flex-start}.chat-activity{color:var(--ink-muted);font-family:var(--mono);align-items:center;gap:8px;font-size:12px;line-height:18px;display:flex}.chat-dots{background:radial-gradient(circle closest-side, var(--brand) 90%, transparent) 0 50%/6px 6px no-repeat, radial-gradient(circle closest-side, var(--brand) 90%, transparent) 50% 50%/6px 6px no-repeat, radial-gradient(circle closest-side, var(--brand) 90%, transparent) 100% 50%/6px 6px no-repeat;width:18px;height:6px;animation:1s ease-in-out infinite chat-pulse}.chat-error{color:var(--bad)}.chat-note{border:1px solid var(--warn);color:var(--warn);border-radius:8px;margin:0;padding:10px 12px;font-size:13px}.chat-empty{flex-direction:column;gap:12px;margin:auto 0;display:flex}.chat-empty p{margin:0}.chat-suggestions{flex-wrap:wrap;gap:8px;display:flex}.chat-suggestions .chip{font-family:var(--sans);white-space:normal;text-align:left;cursor:pointer;padding:6px 10px;font-size:13px}.chat-suggestions .chip:hover{border-color:var(--brand)}.chat-suggestions .chip:disabled{opacity:.5;cursor:default}.chat-form{border-top:1px solid var(--line);background:var(--surface-inset);align-items:flex-end;gap:8px;padding:12px;display:flex}.chat-form textarea{resize:none;field-sizing:content;border:1px solid var(--line);background:var(--ground);min-height:36px;max-height:120px;color:var(--ink);font:16px/20px var(--sans);border-radius:8px;flex:1;padding:8px 10px}.chat-form textarea:focus{border-color:var(--brand);outline:none}.chat-form .btn:disabled{opacity:.4;cursor:default}@media (prefers-reduced-motion:reduce){.fab{transition:none}.chat-dots{animation:none}}@media (width<=720px){.fab{bottom:calc(56px + 16px + env(safe-area-inset-bottom,0px))}.fab[aria-expanded=true]{display:none}.chat{width:auto;max-width:none;height:auto;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);border:0;border-radius:0;inset:0}}@keyframes chat-pulse{50%{opacity:.35}}.udm-panel .udm-stage{background:radial-gradient(ellipse at 50% 40%, var(--ground-glow), var(--screen) 70%);cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;border-radius:8px;margin:8px 0;position:relative;overflow:hidden;container-type:inline-size}.udm-panel .udm-stage:active{cursor:grabbing}.udm-panel .udm-stage:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.udm-panel .udm-view{--mm:calc(100cqi / 600);height:calc(var(--mm) * 220);perspective:calc(var(--mm) * 2200);place-items:center;display:grid}.udm-panel .udm-3d{z-index:1;opacity:0;transition:opacity .4s ease-out;position:absolute;inset:0}.udm-panel .udm-3d.ready{opacity:1}.udm-panel .udm-3d canvas{width:100%;height:100%;display:block}.udm-panel .hotspot{cursor:pointer;background:0 0;border:0;border-radius:2px;padding:0;position:absolute}.udm-panel .hotspot:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.udm-panel .udm-view.loading .udm{visibility:hidden}.udm-panel .udm,.udm-panel .udm-body,.udm-panel .block,.udm-panel .block .face,.udm-panel .socket{transform-style:preserve-3d}.udm-panel .udm{width:calc(var(--mm) * 442.4);height:calc(var(--mm) * 43.7);transition:transform .25s ease-out;position:relative}.udm-panel .udm-stage:active .udm{transition:none}.udm-panel .udm-body{position:absolute;inset:0}.udm-panel .block{position:absolute;top:0;left:0}.udm-panel .block .face{position:absolute;inset:0}.udm-panel .block .side{backface-visibility:hidden;position:absolute;top:0;left:0}.udm-panel .block .side.top,.udm-panel .block .side.bottom{transform-origin:top}.udm-panel .block .side.top{transform:rotateX(90deg)}.udm-panel .block .side.bottom{transform:rotateX(90deg)rotateY(180deg)}.udm-panel .block .side.left,.udm-panel .block .side.right{transform-origin:0}.udm-panel .block .side.left{transform:rotateY(-90deg)}.udm-panel .block .side.right{transform:rotateY(-90deg)rotateX(180deg)}.udm-panel .case>.face{background:linear-gradient(#e3e5e9,#cdd0d6 60%,#c3c6cc);border-radius:2px;box-shadow:inset 0 0 0 1px #ffffff80}.udm-panel .case>.side.top{background:linear-gradient(#cdd0d6,#e3e5e9)}.udm-panel .case>.side.bottom{background:#6e727a}.udm-panel .case>.side.left,.udm-panel .case>.side.right{background:linear-gradient(90deg,#a6aab2,#8e939b)}.udm-panel .vent{top:calc(var(--mm) * 2.5);height:calc(var(--mm) * 1.2);background:#3b3f46;border-radius:1px;position:absolute}.udm-panel .lcd{box-shadow:0 0 calc(var(--mm) * 6) #3c82ff73, inset 0 0 0 1px #0a1022;background:radial-gradient(circle at 50% 40%,#1d4fa8,#0b1a3c 75%);border-radius:2px;place-items:center;display:grid;position:absolute}.udm-panel .lcd-ring{aspect-ratio:1;border:calc(var(--mm) * 1.2) solid #a0cdffe6;width:55%;box-shadow:0 0 calc(var(--mm) * 3) #78b4ffcc;border-radius:50%}.udm-panel .lcd-text{font-family:var(--mono);font-size:calc(var(--mm) * 2.6);color:#cfe2ff;position:absolute;bottom:6%}.udm-panel .badge{font-size:calc(var(--mm) * 2.4);color:#6b7079;white-space:nowrap;position:absolute}.udm-panel .bay{box-shadow:inset 0 0 0 calc(var(--mm) * .6) #9da1a9;background:linear-gradient(#d7dade,#c6c9cf);border-radius:2px;position:absolute}.udm-panel .bay-led{width:calc(var(--mm) * 1.2);height:calc(var(--mm) * 1.2);box-shadow:0 0 calc(var(--mm) * 2) #fff;background:#fff;border-radius:50%;position:absolute;top:45%;right:8%}.udm-panel .reset{background:#16181c;border-radius:50%;position:absolute}.udm-panel .ear{width:calc(var(--mm) * 28);background:radial-gradient(circle at 30% 25%, #555a62 0 calc(var(--mm) * 1.6), transparent calc(var(--mm) * 1.7)), radial-gradient(circle at 30% 75%, #555a62 0 calc(var(--mm) * 1.6), transparent calc(var(--mm) * 1.7));border-left:1px solid #a6aab2;position:absolute;top:0;bottom:0}.udm-panel .socket{cursor:pointer;background:0 0;border:0;border-radius:1px;padding:0;position:absolute}.udm-panel .socket .hole{box-shadow:inset 0 calc(var(--mm) * 1.5) calc(var(--mm) * 2) #000;background:linear-gradient(#050607,#16181c 70%,#2a2d33);border-radius:1px;position:absolute;inset:0}.udm-panel .socket.sfp .hole{box-shadow:inset 0 0 0 calc(var(--mm) * 1) #8d929a, inset 0 calc(var(--mm) * 2) calc(var(--mm) * 2) #000}.udm-panel .socket .led{top:calc(var(--mm) * 1);right:calc(var(--mm) * 1);width:calc(var(--mm) * 2);height:calc(var(--mm) * 1.4);background:#3a3d44;border-radius:1px;position:absolute}.udm-panel .socket .led.speed{right:auto;left:calc(var(--mm) * 1)}.udm-panel .socket.sfp .led{top:auto;bottom:calc(var(--mm) * -2.2);right:40%}.udm-panel .socket .number{font-family:var(--mono);font-size:calc(var(--mm) * 2.3);color:#5d626b;text-align:center;line-height:1;position:absolute;left:0;right:0}.udm-panel .socket .number.above{bottom:102%}.udm-panel .socket .number.below{top:102%}.udm-panel .socket.sfp .number{inset:35% 104% auto auto}.udm-panel .socket.slow .led{background:var(--warn);box-shadow:0 0 calc(var(--mm) * 2.5) var(--warn)}.udm-panel .socket.gig .led{background:var(--ok);box-shadow:0 0 calc(var(--mm) * 2.5) var(--ok)}.udm-panel .socket.fast .led{background:var(--info);box-shadow:0 0 calc(var(--mm) * 2.5) var(--info)}.udm-panel .socket.poe:not(.down) .led.speed{background:var(--brand);box-shadow:0 0 calc(var(--mm) * 2.5) var(--brand)}.udm-panel .socket.errors .hole{outline:calc(var(--mm) * .8) solid var(--bad)}.udm-panel .socket:focus-visible,.udm-panel .socket.chosen,.udm-panel .socket:hover{outline:none}.udm-panel .socket:focus-visible .hole,.udm-panel .socket.chosen .hole,.udm-panel .socket:hover .hole{box-shadow:inset 0 0 0 calc(var(--mm) * .8) var(--brand), inset 0 calc(var(--mm) * 1.5) calc(var(--mm) * 2) #000}.udm-panel .socket:focus-visible .number,.udm-panel .socket.chosen .number,.udm-panel .socket:hover .number{color:var(--brand-strong)}.udm-panel .plug>.face,.udm-panel .plug>.side{background:#e1e8f08c;box-shadow:inset 0 0 0 1px #ffffff80}.udm-panel .plug.slow .boot>.face{background:var(--warn)}.udm-panel .plug.slow .boot>.side{background:linear-gradient(#0000004d, #0000004d), var(--warn)}.udm-panel .plug.gig .boot>.face{background:var(--ok)}.udm-panel .plug.gig .boot>.side{background:linear-gradient(#0000004d, #0000004d), var(--ok)}.udm-panel .plug.fast .boot>.face{background:var(--info)}.udm-panel .plug.fast .boot>.side{background:linear-gradient(#0000004d, #0000004d), var(--info)}.udm-panel .cable>.face,.udm-panel .cable>.side{background:#2e3440}.udm-panel .cable>.side.top{background:#4a5263}.udm-panel .module>.face{background:linear-gradient(#dfe3e8,#b7bcc4)}.udm-panel .module>.side{background:#9ba0a8}.udm-panel .socket:not(.down) .led:not(.speed){animation:1.6s ease-in-out infinite udm-blink}.udm-panel .socket[data-port="2"] .led,.udm-panel .socket[data-port="5"] .led,.udm-panel .socket[data-port="8"] .led{animation-delay:.5s}.udm-panel .socket[data-port="3"] .led,.udm-panel .socket[data-port="6"] .led,.udm-panel .socket[data-port="9"] .led{animation-delay:1.1s}.udm-panel .udm-detail{font-family:var(--mono);color:var(--ink);min-height:18px;margin:8px 0;font-size:12px;line-height:18px}.udm-panel .udm-legend{font-family:var(--mono);color:var(--ink-muted);flex-wrap:wrap;gap:8px 16px;margin:0;padding:0;font-size:12px;line-height:18px;list-style:none;display:flex}.udm-panel .udm-legend li{align-items:center;gap:6px;display:flex}.udm-panel .legend-dot{background:#3a3d44;border-radius:2px;width:10px;height:7px}.udm-panel .legend-dot.slow{background:var(--warn);box-shadow:0 0 6px var(--warn)}.udm-panel .legend-dot.gig{background:var(--ok);box-shadow:0 0 6px var(--ok)}.udm-panel .legend-dot.fast{background:var(--info);box-shadow:0 0 6px var(--info)}.udm-panel .legend-dot.poe{background:var(--brand);box-shadow:0 0 6px var(--brand)}.udm-panel .legend-dot.errors{outline:2px solid var(--bad);background:0 0}@media (prefers-reduced-motion:reduce){.udm-panel .udm{transition:none}.udm-panel .socket .led{animation:none!important}}@keyframes udm-blink{0%,to{opacity:1}50%{opacity:.55}}.authenticator code{font-family:var(--mono);color:var(--label);background:var(--surface-inset);overflow-wrap:anywhere;border-radius:4px;padding:1px 5px;font-size:12px}.authenticator .side-text{color:var(--ink-muted)}.authenticator .side-text b{color:var(--ink)}.authenticator .note{border:1px solid var(--line);background:var(--surface-inset);border-radius:8px;margin:0;padding:8px 10px;font-size:13px}.authenticator .note.ok{border-color:var(--ok);color:var(--ok)}.authenticator .note.bad{border-color:var(--bad);color:var(--bad)}.authenticator .bad-text{color:var(--bad)}.authenticator .grow{flex:1}.authenticator .btns.end{justify-content:flex-end}.authenticator .auth-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.authenticator .auth-form .wide{grid-column:1/-1}.authenticator .auth-form.edit{border-top:1px solid var(--line);grid-column:1/-1;padding-top:12px}.authenticator .field{flex-direction:column;gap:4px;min-width:0;display:flex}.authenticator .field-label{color:var(--ink-muted);font-size:12px}.authenticator .text-input{border:1px solid var(--line);background:var(--surface-inset);min-height:36px;color:var(--ink);font:13px var(--sans);border-radius:8px;min-width:0;padding:0 10px}.authenticator .text-input.mono{font-family:var(--mono)}.authenticator .text-input:focus{border-color:var(--brand);outline:none}.authenticator .text-input[type=file]{padding:6px 10px}.authenticator .three{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-top:8px;display:grid}.authenticator details summary{cursor:pointer;color:var(--ink-muted);font-size:13px}.authenticator .found{align-items:center;gap:8px;display:flex}.authenticator .drop{text-align:center;border-style:dashed;flex-direction:column;align-items:center;gap:12px;padding:24px 16px;display:flex}.authenticator .drop.over{border-color:var(--brand);background:var(--brand-tint)}.authenticator input.search{align-self:stretch}.authenticator .accounts{margin:0;padding:0;list-style:none}.authenticator .account{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px 12px;padding:12px 0;display:grid}.authenticator .account:first-child{border-top:0;padding-top:0}.authenticator .account .name{flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}.authenticator .account .sites{font-family:var(--mono);color:var(--ink-muted);overflow-wrap:anywhere;font-size:12px;line-height:18px}.authenticator .code{border:1px solid var(--line);background:var(--surface-inset);min-height:40px;color:var(--ink);font:600 20px/1 var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.04em;cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:0 12px;transition:border-color .2s,color .2s;display:inline-flex}.authenticator .code span{text-align:left;min-width:7.5ch}.authenticator .code:hover{border-color:var(--line-hover)}.authenticator .code.low{color:var(--warn)}.authenticator .code.copied{color:var(--ok);border-color:var(--ok)}.authenticator .code .ring{width:20px;height:20px;transform:rotate(-90deg)}.authenticator .code .ring circle{fill:none;stroke-width:2.5px}.authenticator .code .ring .track{stroke:var(--line)}.authenticator .code .ring .left{stroke:var(--info);stroke-linecap:round;transition:stroke-dashoffset 1s linear}.authenticator .code.low .ring .left{stroke:var(--warn)}@media (prefers-reduced-motion:reduce){.authenticator .code .ring .left{transition:none}}.authenticator .command{align-items:center;gap:8px;margin-top:4px;display:flex}.authenticator .command code{word-break:break-all;flex:1;padding:6px 8px}.authenticator .steps{flex-direction:column;gap:8px;margin:0;padding-left:20px;display:flex}.authenticator .backup-form{flex-direction:column;gap:12px;display:flex}.authenticator .folder-pick{gap:8px;display:flex}.authenticator .folder-pick .text-input{flex:1}.authenticator .picker{flex-direction:column;gap:8px;padding:8px;display:flex}.authenticator .picker-bar{align-items:center;gap:8px;display:flex}.authenticator .picker-path{white-space:nowrap;text-align:left;flex:1;overflow-x:auto}.authenticator .picker-list{flex-direction:column;max-height:220px;display:flex;overflow-y:auto}.authenticator .picker-row{color:var(--ink);font:13px var(--sans);text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:8px;margin:0;padding:6px 8px;display:flex}.authenticator button.picker-row{cursor:pointer}.authenticator button.picker-row:hover{background:var(--brand-tint)}@media (width<=720px){.authenticator .auth-form,.authenticator .three{grid-template-columns:minmax(0,1fr)}.authenticator .account{grid-template-columns:minmax(0,1fr) auto}.authenticator .account .who{grid-column:1/-1}}.authenticator .phone .qr{border-radius:8px;width:100%;max-width:260px;margin:0 auto;display:block}:root{--ground:#1a1220;--ground-glow:#3a1535;--surface:#241a2c;--surface-inset:#1b1322;--screen:#120c17;--line:#3b2d46;--line-hover:#5a4566;--ink:#f3eaf5;--ink-muted:#ab98b5;--brand:#f0449a;--brand-strong:#d6267e;--on-brand:#fff;--brand-tint:#f0449a1f;--title:#f7c948;--label:#f2885a;--ok:#4ade80;--warn:#eab308;--bad:#fb7185;--info:#2dd4bf;--sans:"Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{overscroll-behavior:none}.auth-bar{min-height:56px;padding-top:max(8px, env(safe-area-inset-top,0px));padding-left:max(12px, env(safe-area-inset-left,0px));padding-right:max(12px, env(safe-area-inset-right,0px));flex-wrap:nowrap}.auth-bar .wordmark{gap:10px;margin-right:auto;font-size:16px}.auth-bar .back{min-height:44px;margin-right:auto;font-size:15px}.auth-bar .bar-btns{gap:8px;display:flex}.auth-page{max-width:560px;padding:16px max(12px, env(safe-area-inset-right,0px)) calc(32px + env(safe-area-inset-bottom,0px)) max(12px, env(safe-area-inset-left,0px));gap:12px}.auth-page .title{color:var(--title);margin:0;font-size:22px;line-height:28px}.form{flex-direction:column;gap:12px;display:flex}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field input.search,.field select.search{width:100%}.field input[type=file]{font:14px var(--sans);color:var(--ink-muted)}.field-label{color:var(--ink-muted);font-size:12px}.three{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px;display:grid}details summary{cursor:pointer;color:var(--ink-muted);font-size:13px}.note{margin:0}.grow{flex:1}.codes{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.code-row{align-items:stretch;gap:8px;display:flex}.code-row .btn.icon{align-self:center}.code-row .code{border:1px solid var(--line);background:var(--surface);min-width:0;color:var(--ink);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px;flex:1;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who ring""digits ring";align-items:center;gap:2px 12px;padding:12px;transition:border-color .2s;display:grid}.code-row .code:active{border-color:var(--line-hover)}.code-row .code .who{white-space:nowrap;grid-area:who;align-items:baseline;gap:8px;min-width:0;display:flex;overflow:hidden}.code-row .code .issuer{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--label);font-size:11px;font-weight:600}.code-row .code .name{text-overflow:ellipsis;color:var(--ink-muted);font-size:13px;overflow:hidden}.code-row .code .digits{font:600 30px/36px var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.06em;grid-area:digits}.code-row .code.low .digits{color:var(--warn)}.code-row .code.copied{border-color:var(--ok)}.code-row .code.copied .digits{color:var(--ok)}.code-row .code .ring{grid-area:ring;width:28px;height:28px;transform:rotate(-90deg)}.code-row .code .ring circle{fill:none;stroke-width:2.5px}.code-row .code .ring .track{stroke:var(--line)}.code-row .code .ring .left{stroke:var(--info);stroke-linecap:round;transition:stroke-dashoffset 1s linear}.code-row .code.low .ring .left{stroke:var(--warn)}@media (prefers-reduced-motion:reduce){.code-row .code .ring .left{transition:none}}.empty-state{align-items:flex-start}.add{flex-direction:column;gap:12px;display:flex}.camera{aspect-ratio:3/4;border:1px solid var(--line);background:var(--screen);border-radius:8px;place-items:center;max-height:60vh;display:grid;position:relative;overflow:hidden}.camera video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.camera .aim{aspect-ratio:1;border:2px solid #ffffffd9;border-radius:16px;width:62%;position:relative;box-shadow:0 0 0 999px #00000059}.camera .hint{text-align:center;color:var(--ink);position:absolute;bottom:12px;left:0;right:0}.camera .note{padding:16px}.file-btn{cursor:pointer}.file-btn input{opacity:0;width:1px;height:1px;position:absolute}.unlock{flex-direction:column;align-items:stretch;gap:16px;padding-top:12vh;display:flex}.unlock .lock-mark{color:var(--brand);align-self:center}.unlock .btn.big{min-height:52px;font-size:15px}.settings{flex-direction:column;gap:12px;display:flex}.toast{left:max(12px, env(safe-area-inset-left,0px));right:max(12px, env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:30;background:var(--surface);border:1px solid var(--ok);max-width:536px;color:var(--ink);border-radius:8px;margin:0 auto;padding:12px 14px;font-size:14px;position:fixed}
