@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");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{--paper:#f3f5fa;--surface:#fff;--sunken:#e8ecf5;--ink:#141a2e;--ink-2:#4a5470;--ink-3:#737d99;--line:#d9dfec;--accent:#2e4bf5;--accent-ink:#fff;--accent-soft:#e3e8ff;--ok:#138a4e;--ok-soft:#dcf3e6;--warn:#a86b00;--warn-soft:#fbefd6;--bad:#c9303a;--bad-soft:#fbe2e3;--focus:#2e4bf5;--font-display:"Bricolage Grotesque Variable", "Bricolage Grotesque", system-ui, sans-serif;--font-body:"Atkinson Hyperlegible", system-ui, sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, monospace;--t-xs:.8rem;--t-sm:.9rem;--t-md:1rem;--t-lg:1.25rem;--t-xl:1.56rem;--t-2xl:1.95rem;--t-3xl:2.6rem;--r-sm:6px;--r-md:10px;--r-lg:16px;--sidebar:248px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--paper:#000;--surface:#121212;--sunken:#0a0a0a;--ink:#f2f2f2;--ink-2:#bdbdbd;--ink-3:#8c8c8c;--line:#2e2e2e;--accent:#ffd400;--accent-ink:#000;--accent-soft:#332b00;--ok:#4cd38a;--ok-soft:#10301f;--warn:#ff9f43;--warn-soft:#3a2410;--bad:#ff6b6b;--bad-soft:#3d1717;--focus:#ffd400;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--t-md);-webkit-font-smoothing:antialiased;margin:0;line-height:1.55}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:650;line-height:1.15}h1{font-size:var(--t-2xl);font-variation-settings:"wdth" 90}h2{font-size:var(--t-xl)}h3{font-size:var(--t-lg)}p{margin:0}a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}code,.mono{font-family:var(--font-mono);font-size:.92em}:focus-visible{outline:2.5px solid var(--focus);outline-offset:2px;border-radius:4px}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.small{font-size:var(--t-sm)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.shell{grid-template-columns:var(--sidebar) 1fr;min-height:100%;display:grid}.sidebar{border-right:1px solid var(--line);background:var(--surface);flex-direction:column;gap:4px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{font-family:var(--font-display);font-size:var(--t-xl);color:var(--ink);align-items:center;gap:10px;padding:4px 10px 18px;font-weight:750;text-decoration:none;display:flex}.brand-mark{background:var(--accent);color:#fff;border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.nav-link{border-radius:var(--r-md);color:var(--ink-2);align-items:center;gap:12px;padding:9px 12px;font-weight:700;text-decoration:none;display:flex}.nav-link:hover{background:var(--sunken);color:var(--ink)}.nav-link.active{background:var(--accent-soft);color:var(--accent)}.nav-group{font-size:var(--t-xs);color:var(--ink-3);margin:18px 12px 6px}.rail{flex-direction:column;gap:2px;display:flex}.rail-item{border-radius:0 var(--r-md) var(--r-md) 0;color:var(--ink);font-size:var(--t-sm);grid-template-columns:4px 1fr auto;align-items:center;gap:10px;padding:7px 10px 7px 0;text-decoration:none;display:grid}.rail-item:hover{background:var(--sunken)}.rail-item.active{background:var(--sunken);font-weight:700}.rail-bar{border-radius:0 3px 3px 0;height:22px}.rail-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-foot{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:auto;padding-top:14px;display:flex}.who{align-items:center;gap:8px;padding:6px 4px 6px 10px;display:flex}.who-text{flex:1;min-width:0}.who-text>div{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.avatar{color:#fff;width:34px;height:34px;font-family:var(--font-display);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.main{min-width:0;padding:32px clamp(16px,4vw,48px) 64px}.page{flex-direction:column;gap:28px;max-width:1120px;margin:0 auto;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-head p{color:var(--ink-2);max-width:62ch;margin-top:6px}.topbar-mobile{display:none}@media (width<=860px){.shell{grid-template-columns:1fr}.sidebar{z-index:50;width:min(86vw,300px);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-102%);box-shadow:0 0 0 100vmax #0000}.sidebar.open{transform:none;box-shadow:0 0 0 100vmax #0a0e1e73}.topbar-mobile{border-bottom:1px solid var(--line);background:var(--surface);z-index:20;justify-content:space-between;align-items:center;padding:12px 16px;display:flex;position:sticky;top:0}.main{padding-top:20px}}.btn{border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ink-3)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{filter:brightness(1.08);border-color:var(--accent)}.btn-danger{color:var(--bad)}.btn-danger-solid{background:var(--bad);border-color:var(--bad);color:#fff}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--sunken);border-color:#0000}.btn-sm{min-height:32px;font-size:var(--t-sm);padding:4px 10px}.icon-btn{border-radius:var(--r-sm);width:34px;height:34px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--sunken);color:var(--ink)}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row-end{justify-content:flex-end}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.stack{flex-direction:column;gap:16px;display:flex}.stack-sm{flex-direction:column;gap:8px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{font-weight:700;font-size:var(--t-sm)}.field .hint{font-size:var(--t-sm);color:var(--ink-3)}.field .error{font-size:var(--t-sm);color:var(--bad)}.input,select.input,textarea.input{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);width:100%;min-height:42px;color:var(--ink);font:inherit;padding:9px 12px}.input:hover{border-color:var(--ink-3)}.input:focus{outline:2.5px solid var(--focus);outline-offset:0;border-color:#0000}.input[aria-invalid=true]{border-color:var(--bad)}.input-mono{font-family:var(--font-mono)}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}@media (width<=700px){.grid-2,.grid-3{grid-template-columns:1fr}}.switch{cursor:pointer;align-items:flex-start;gap:12px;display:flex}.switch input{appearance:none;background:var(--line);cursor:pointer;border-radius:12px;flex:none;width:42px;height:24px;margin:1px 0 0;transition:background .15s;position:relative}.switch input:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px}.switch input:checked{background:var(--accent)}.switch input:checked:after{transform:translate(18px)}.switch strong{display:block}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.panel-head p{color:var(--ink-2);margin-top:4px}.section{flex-direction:column;gap:14px;display:flex}.callout{border-radius:var(--r-md);background:var(--accent-soft);color:var(--ink);gap:12px;padding:14px 16px;display:flex}.callout svg{color:var(--accent);flex:none;margin-top:2px}.callout-warn{background:var(--warn-soft)}.callout-warn svg{color:var(--warn)}.callout-bad{background:var(--bad-soft)}.callout-bad svg{color:var(--bad)}.pill{font-size:var(--t-sm);background:var(--sunken);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:3px 10px;font-weight:700;display:inline-flex}.dot{background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.pill-connected{background:var(--ok-soft);color:var(--ok)}.pill-connected .dot{animation:2.4s ease-in-out infinite pulse}.pill-connecting,.pill-reconnecting{background:var(--warn-soft);color:var(--warn)}.pill-disconnected{background:var(--bad-soft);color:var(--bad)}.pill-accent{background:var(--accent-soft);color:var(--accent)}@keyframes pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, currentColor 55%, transparent)}50%{box-shadow:0 0 0 5px #0000}}.netboard{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.netcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);flex-direction:column;gap:14px;padding:18px 18px 16px 24px;text-decoration:none;display:flex;position:relative;overflow:hidden}.netcard:before{content:"";background:var(--net);width:6px;position:absolute;inset:0 auto 0 0}.netcard:hover{border-color:var(--net)}.netcard-name{font-family:var(--font-display);font-size:var(--t-lg);font-weight:700}.netcard-facts{color:var(--ink-2);font-size:var(--t-sm);gap:18px;display:flex}.netcard-facts span{align-items:center;gap:6px;display:inline-flex}.nick{font-weight:700}.meters{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:hidden}.meter{border-right:1px solid var(--line);flex-direction:column;gap:6px;min-width:0;padding:18px 20px;display:flex}.meter:last-child{border-right:0}.meter-value{font-family:var(--font-display);font-size:var(--t-xl);font-variant-numeric:tabular-nums;font-weight:700}.meter-label{color:var(--ink-2);font-size:var(--t-sm)}.spark{width:100%;height:34px;display:block}@media (width<=900px){.meters{grid-template-columns:repeat(2,minmax(0,1fr))}.meter:nth-child(2){border-right:0}.meter:nth-child(-n+2){border-bottom:1px solid var(--line)}}.facts{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px 24px;display:grid}.fact{border-bottom:1px dashed var(--line);font-size:var(--t-sm);justify-content:space-between;gap:12px;padding:8px 0;display:flex}.fact b{font-variant-numeric:tabular-nums}.tabs{border-bottom:1px solid var(--line);gap:4px;display:flex;overflow-x:auto}.tab{color:var(--ink-2);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;padding:10px 14px;font-weight:700}.tab:hover{color:var(--ink)}.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--net,var(--accent))}.table-wrap{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--t-sm)}th{text-align:left;color:var(--ink-2);border-bottom:1px solid var(--line);background:var(--sunken);white-space:nowrap;padding:12px 16px;font-weight:700}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 16px}tr:last-child td{border-bottom:0}td.actions{text-align:right;white-space:nowrap}.backdrop{z-index:100;background:#0a0e1e80;place-items:center;padding:16px;animation:.15s fade;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--line);flex-direction:column;gap:18px;width:min(560px,100%);max-height:calc(100vh - 32px);padding:24px;animation:.18s rise;display:flex;overflow-y:auto}.modal-wide{width:min(760px,100%)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.toasts{z-index:200;flex-direction:column;gap:8px;max-width:min(420px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{border-radius:var(--r-md);background:var(--ink);color:var(--paper);align-items:flex-start;gap:10px;padding:12px 8px 12px 14px;animation:.18s rise;display:flex}.toast span{flex:1;padding-top:2px}.toast-ok svg:first-child{color:#3fcf86}.toast-error svg:first-child{color:#ff6b72}.toast .icon-btn{color:inherit;width:28px;height:28px}.empty{border:2px dashed var(--line);border-radius:var(--r-lg);flex-direction:column;align-items:flex-start;gap:14px;padding:32px;display:flex}.empty h2{font-size:var(--t-xl)}.empty p{max-width:56ch;color:var(--ink-2)}.steps{flex-wrap:wrap;gap:8px;display:flex}.step{font-size:var(--t-sm);color:var(--ink-3);align-items:center;gap:8px;font-weight:700;display:flex}.step b{background:var(--sunken);width:24px;height:24px;font-size:var(--t-xs);border-radius:50%;place-items:center;display:grid}.step.current{color:var(--ink)}.step.current b{background:var(--accent);color:var(--accent-ink)}.step.done b{background:var(--ok-soft);color:var(--ok)}.step+.step:before{content:"";background:var(--line);width:18px;height:1px;margin-right:2px}.presets{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.preset{text-align:left;border:1px solid var(--line);border-left:5px solid var(--net);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;flex-direction:column;gap:4px;padding:12px 14px 12px 16px;display:flex}.preset:hover,.preset[aria-pressed=true]{border-color:var(--net);background:color-mix(in srgb, var(--net) 8%, var(--surface))}.preset strong{font-family:var(--font-display);font-size:var(--t-md)}.preset span{font-size:var(--t-xs);color:var(--ink-2)}.cmd{border-radius:var(--r-md);background:var(--sunken);min-width:0;font-family:var(--font-mono);font-size:var(--t-sm);align-items:center;gap:8px;padding:10px 8px 10px 14px;display:flex}.cmd code{white-space:nowrap;scrollbar-width:thin;flex:1;min-width:0;overflow-x:auto}.cmd .icon-btn{flex:none}.history{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);grid-template-columns:240px 1fr;min-height:520px;display:grid;overflow:hidden}.conv-list{border-right:1px solid var(--line);max-height:640px;padding:8px;overflow-y:auto}.conv{border-radius:var(--r-sm);width:100%;color:var(--ink);font:inherit;font-size:var(--t-sm);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;gap:8px;padding:8px 10px;display:flex}.conv:hover{background:var(--sunken)}.conv[aria-pressed=true]{background:var(--accent-soft);font-weight:700}.conv small{color:var(--ink-3)}.log{flex-direction:column;min-width:0;display:flex}.log-tools{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px;padding:10px;display:flex}.log-lines{max-height:580px;font-family:var(--font-mono);flex:1;padding:8px 0;font-size:.85rem;line-height:1.6;overflow-y:auto}.log-day{background:var(--surface);color:var(--ink-3);font-family:var(--font-body);font-size:var(--t-xs);padding:6px 16px;font-weight:700;position:sticky;top:0}.log-line{grid-template-columns:52px minmax(0,120px) 1fr;gap:10px;padding:1px 16px;display:grid}.log-line:hover{background:var(--sunken)}.log-line time{color:var(--ink-3)}.log-line .who{text-align:right;text-overflow:ellipsis;white-space:nowrap;padding:0;font-weight:700;display:block;overflow:hidden}.log-line .text{white-space:pre-wrap;overflow-wrap:anywhere}.log-line.notice .text{color:var(--ink-2)}.log-line.action .text{font-style:italic}mark{background:color-mix(in srgb, var(--warn) 35%, transparent);color:inherit;border-radius:2px}@media (width<=760px){.history{grid-template-columns:1fr}.conv-list{border-right:0;border-bottom:1px solid var(--line);max-height:180px}.log-line{grid-template-columns:44px 1fr}.log-line .who{text-align:left;grid-column:2}.log-line .text{grid-column:2}}.auth{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:100%;display:grid}.auth-side{background:var(--ink);color:var(--paper);flex-direction:column;justify-content:space-between;padding:48px;display:flex;position:relative;overflow:hidden}:root[data-theme=dark] .auth-side{background:var(--sunken);color:var(--ink)}.auth-side h1{font-variation-settings:"wdth" 80;max-width:12ch;font-size:clamp(2.2rem,4.4vw,3.6rem);line-height:1.02}.auth-log{font-family:var(--font-mono);opacity:.92;font-size:.85rem;line-height:1.9}.auth-log .t{opacity:.5;margin-right:10px}.auth-main{place-items:center;padding:32px 20px;display:grid}.auth-card{flex-direction:column;gap:18px;width:min(400px,100%);display:flex}@media (width<=860px){.auth{grid-template-columns:1fr}.auth-side{gap:24px;padding:28px 24px}.auth-log{display:none}}.qr{border-radius:var(--r-md);background:#fff;width:200px;height:200px;padding:8px}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.center{place-items:center;min-height:50vh;display:grid}.savebar{z-index:10;border-radius:var(--r-lg);background:var(--ink);color:var(--paper);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 12px 12px 18px;display:flex;position:sticky;bottom:12px}.savebar .btn-ghost{color:inherit}.savebar .btn-ghost:hover{background:#ffffff1a}.log-target{color:var(--ink-3);margin-right:6px}.badge{font-size:var(--t-xs);background:var(--sunken);color:var(--ink-2);border-radius:999px;padding:1px 8px;font-weight:700;display:inline-block}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-bad{background:var(--bad-soft);color:var(--bad)}.badge-accent{background:var(--accent-soft);color:var(--accent)}.howto{color:var(--ink-2);gap:6px;max-width:70ch;margin:0;padding-left:1.4em;display:grid}.howto strong{color:var(--ink)}.module-list{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);margin:0;padding:0;list-style:none}.module+.module{border-top:1px solid var(--line)}.module-head{align-items:center;gap:14px;padding:12px 14px;display:flex}.module-title{text-align:left;min-width:0;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;flex:1;align-items:flex-start;gap:8px;padding:0;display:flex}.module-title:disabled{cursor:default}.module-title>svg{color:var(--ink-3);flex:none;margin-top:3px}.module-title>span{gap:2px;display:grid}.module.on .module-title strong{color:var(--ink)}.module:not(.on) .module-title strong{color:var(--ink-2)}.module-body{gap:14px;max-width:760px;padding:0 14px 16px 38px;display:grid}.switch-bare{flex:none}@media (width<=640px){.hide-sm{display:none}.module-body{padding-left:14px}}.seg{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);flex-wrap:wrap;width:fit-content;max-width:100%;display:inline-flex;overflow:hidden}.seg button{font:inherit;color:var(--ink-2);cursor:pointer;background:0 0;border:0;padding:8px 14px}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--accent-soft);color:var(--ink);font-weight:700}.seg button:disabled{cursor:default;opacity:.7}.auth-lang{justify-content:flex-end;gap:4px;width:min(400px,100%);margin-bottom:12px;display:flex}.auth-lang button{border-radius:var(--r-sm);font:inherit;font-size:var(--t-sm);color:var(--ink-3);cursor:pointer;background:0 0;border:0;padding:4px 8px}.auth-lang button.on{color:var(--ink);text-underline-offset:4px;font-weight:700;text-decoration:underline}.modules-table .net-col{text-align:center;white-space:nowrap;width:1%}.tick{border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);width:26px;height:26px;color:var(--accent-ink);cursor:pointer;place-items:center;display:inline-grid}.tick.on{background:var(--accent);border-color:var(--accent)}.tick:disabled{cursor:default;opacity:.6}.notes{gap:6px;margin:0;padding:0;list-style:none;display:grid}.notes li{align-items:center;gap:10px;display:flex}.notes li span{overflow-wrap:anywhere;flex:1;min-width:0}.log-line.event .text,.log-line.event .who{color:var(--ink-3);font-style:italic}.module-body{grid-template-columns:minmax(0,1fr)}.module-body>*{min-width:0}.credit{font-size:var(--t-xs,.75rem);color:var(--ink-3);margin:2px 0 0}.auth-main .credit{text-align:center;width:min(400px,100%);margin-top:14px}.import-plan{max-height:50vh;overflow-y:auto}.import-user{border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px}.import-user.is-skipped{opacity:.7;border-style:dashed}.import-net{overflow-wrap:anywhere;margin-top:4px}.plugin-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.plugin-cards .is-off{opacity:.75}.perm-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.perm-list li{border-left:3px solid var(--warn);gap:1px;padding-left:10px;display:grid}.update-notes{white-space:pre-wrap;border-radius:var(--r-md);background:var(--sunken);max-height:240px;margin:0;padding:10px 12px;font-size:.85rem;overflow:auto}.chat-page{gap:0;max-width:none;height:calc(100dvh - 96px);min-height:420px}.chat-head{align-items:center;gap:10px;min-width:0;padding-bottom:12px;display:flex}.chat-net{width:auto;max-width:160px}.chat-title{flex-direction:column;flex:1;min-width:0;display:flex}.chat-title strong{font-family:var(--font-display);font-size:var(--t-lg)}.chat-topic{color:var(--ink-3);font-size:var(--t-xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chat-back{display:none}.chat{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);flex:1;grid-template-columns:220px minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.chat.members-open{grid-template-columns:220px minmax(0,1fr) 180px}.chat-convs,.chat-members{border-right:1px solid var(--line);padding:8px;overflow-y:auto}.chat-members{border-right:0;border-left:1px solid var(--line);font-size:var(--t-sm)}.chat-group{color:var(--ink-3);font-size:var(--t-xs);padding:10px 10px 4px;font-weight:700}.chat-conv-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-badge{background:var(--sunken);min-width:20px;color:var(--ink-2);font-size:var(--t-xs);text-align:center;border-radius:999px;flex:none;padding:0 6px;font-weight:700;line-height:20px}.chat-badge.hot{background:var(--accent);color:var(--accent-ink)}.chat-main{flex-direction:column;min-width:0;min-height:0;display:flex}.chat-lines{flex:1;min-height:0;max-height:none}.chat-older{margin:4px auto 8px;display:block}.log-line.mention{background:var(--accent-soft)}.log-line a{color:var(--accent);word-break:break-all}.chat-input{border-top:1px solid var(--line);gap:8px;padding:10px;display:flex}.chat-input .input{flex:1}.chat-member{border-radius:var(--r-sm);width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;gap:2px;padding:4px 8px;display:flex}.chat-member:hover{background:var(--sunken)}@media (width<=860px){.chat-page{height:calc(100dvh - 120px)}.chat-back{display:inline-flex}.chat,.chat.members-open{grid-template-columns:minmax(0,1fr)}.chat-convs{display:none}.chat.list-open .chat-convs{display:block}.chat.list-open .chat-main,.chat.list-open .chat-members,.chat.members-open .chat-main,.chat-topic{display:none}}.mention-list{flex-direction:column;gap:8px;display:flex}.mention-item{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:inherit;grid-template-columns:auto 1fr;gap:4px 14px;padding:12px 14px;text-decoration:none;display:grid}.mention-item:hover{border-color:var(--accent)}.mention-item .where{color:var(--ink-3);font-size:var(--t-xs)}.mention-item .text{font-family:var(--font-mono);overflow-wrap:anywhere;grid-column:1/-1;font-size:.88rem}.input-sm{font-size:var(--t-sm);width:auto;padding:4px 8px}.or-divider{color:var(--ink-3);align-items:center;gap:12px;font-size:.85rem;display:flex}.or-divider:before,.or-divider:after{content:"";border-top:1px solid var(--line);flex:1}.plugin-log{border:1px solid var(--line);border-radius:var(--r-md);background:var(--sunken);max-height:320px;padding:10px 12px;font-size:.82rem;line-height:1.5;overflow:auto}.plugin-log>div{overflow-wrap:anywhere}.plugin-log .log-warn{color:var(--warn)}.plugin-log .log-error{color:var(--bad)}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.catalog-card{border:1px solid var(--line);border-radius:var(--r-md);padding:14px}.plugin-usage{border-left:3px solid var(--accent);background:var(--sunken);border-radius:var(--r-sm,6px);gap:4px;padding:10px 12px;display:grid}.net-picker{flex-wrap:wrap;gap:8px;display:flex}.net-chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;display:inline-flex}.net-chip:hover{border-color:var(--accent)}.net-chip.on{border-color:var(--accent);background:var(--accent);color:var(--accent-ink,#000);font-weight:600}.net-chip .dot,.copy-targets .dot{border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.copy-targets{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px 12px;max-height:260px;display:grid;overflow:auto}
