@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-vietnamese-400-normal-Dpl4UHAZ.woff2) format("woff2"),url(/assets/barlow-vietnamese-400-normal-BFeobeCK.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-ext-400-normal-HxX4XjxC.woff2) format("woff2"),url(/assets/barlow-latin-ext-400-normal-CvBsJvxq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-400-normal-qiz4-Cze.woff2) format("woff2"),url(/assets/barlow-latin-400-normal-fsAxiSwU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-vietnamese-500-normal-zTViEIzf.woff2) format("woff2"),url(/assets/barlow-vietnamese-500-normal-GNfB7rCE.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-ext-500-normal-DOaysfXq.woff2) format("woff2"),url(/assets/barlow-latin-ext-500-normal-CJPcKP2Q.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-500-normal-BPAOfeC8.woff2) format("woff2"),url(/assets/barlow-latin-500-normal-C1h8hMer.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-vietnamese-600-normal-DcjprdFV.woff2) format("woff2"),url(/assets/barlow-vietnamese-600-normal-CA_GiK2e.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-ext-600-normal-B8NK_A3D.woff2) format("woff2"),url(/assets/barlow-latin-ext-600-normal-DMVRjfRT.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-600-normal-DILqtrty.woff2) format("woff2"),url(/assets/barlow-latin-600-normal-CNwfPWQD.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-500-normal-CsrJDWc5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-ext-500-normal-yA5ONLQ9.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-500-normal-B1RE8WP7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2) format("woff2"),url(/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2) format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2) format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-ext-400-normal-C_uLvvQ5.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-ext-400-normal-Bh0R7Dhr.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-vietnamese-400-normal-ByoDsISC.woff2) format("woff2"),url(/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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;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");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--fog: #e7ecee;--paper: #f3f6f7;--ink: #0f2533;--ink-2: #3b5262;--ink-3: #66798a;--concrete: #c9d2d6;--concrete-2: #dbe2e5;--starboard: #1f8a5b;--port: #c23b30;--amber: #d69a12;--signal: #1d5e8e;--rail: #0f2533;--rail-ink: #d7e3ea;--rail-dim: #8aa0b0;--on-ink: #f3f6f7;--code-bg: #0f2533;--code-ink: #d7e3ea;--danger-bg: #f6dedb;--warn-bg: #f7ead0;--ok-bg: #d9eee4;--info-bg: #dbe8f2;--font: "Barlow", system-ui, sans-serif;--font-d: "Barlow Condensed", "Barlow", sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace}:root[data-theme=dark]{--fog: #0a151d;--paper: #0f1e29;--ink: #d7e3ea;--ink-2: #a7bac7;--ink-3: #7f95a5;--concrete: #223646;--concrete-2: #182a37;--rail: #07111a;--rail-ink: #d7e3ea;--rail-dim: #6f8696;--on-ink: #0a151d;--code-bg: #07111a;--starboard: #35b27e;--port: #e0675c;--amber: #e5b140;--signal: #5ea6dc;--danger-bg: #3a1c1a;--warn-bg: #382c0f;--ok-bg: #123325;--info-bg: #11293b}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--fog: #0a151d;--paper: #0f1e29;--ink: #d7e3ea;--ink-2: #a7bac7;--ink-3: #7f95a5;--concrete: #223646;--concrete-2: #182a37;--rail: #07111a;--rail-ink: #d7e3ea;--rail-dim: #6f8696;--on-ink: #0a151d;--code-bg: #07111a;--starboard: #35b27e;--port: #e0675c;--amber: #e5b140;--signal: #5ea6dc;--danger-bg: #3a1c1a;--warn-bg: #382c0f;--ok-bg: #123325;--info-bg: #11293b}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--fog);color:var(--ink);font:400 15px/1.5 var(--font);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-d);font-weight:600;letter-spacing:.005em;margin:0;line-height:1.1}h1{font-size:2.1rem;font-weight:700}h2{font-size:1.35rem}h3{font-size:1.1rem}p{margin:0 0 .6em}a{color:var(--signal);text-decoration:none}a:hover{text-decoration:underline}code,pre,.mono{font-family:var(--mono);font-size:.86em}:focus-visible{outline:2px solid var(--signal);outline-offset:2px;border-radius:2px}::selection{background:var(--signal);color:#fff}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100%}.rail{background:var(--rail);color:var(--rail-ink);padding:18px 12px;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 16px;font-family:var(--font-d);font-size:1.7rem;font-weight:700;letter-spacing:.02em;color:#f3f6f7}.brand svg{flex:none}.nav-group{margin:14px 0 2px;padding:0 10px;font-size:.82rem;color:var(--rail-dim);font-weight:500}.nav a{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:3px;color:var(--rail-ink);font-weight:500;position:relative}.nav a svg{width:17px;height:17px;opacity:.75;flex:none}.nav a:hover{background:#ffffff0f;text-decoration:none}.nav a.active{background:#ffffff1a}.nav a.active:before{content:"";position:absolute;left:-12px;top:6px;bottom:6px;width:4px;background:var(--starboard);border-radius:0 2px 2px 0}.rail-foot{margin-top:auto;padding:12px 10px 0;font-size:.85rem;color:var(--rail-dim);border-top:1px solid rgba(255,255,255,.08);display:grid;gap:6px}.rail-foot button{all:unset;cursor:pointer;color:var(--rail-ink);font-weight:500}.rail-foot button:hover{text-decoration:underline}.topbar{display:none}.main{padding:28px 36px 64px;min-width:0;max-width:1280px;width:100%}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}.page-head .sub{color:var(--ink-2);margin-top:6px;max-width:62ch}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}@media(max-width:880px){.shell{grid-template-columns:1fr}.rail{position:fixed;z-index:30;inset:0 auto 0 0;width:264px;transform:translate(-100%);transition:transform .18s ease}.rail.open{transform:none}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#050c1280;z-index:20}.topbar{display:flex;align-items:center;gap:12px;background:var(--rail);color:#f3f6f7;padding:10px 16px;position:sticky;top:0;z-index:10}.topbar .brand{padding:0;font-size:1.4rem}.main{padding:20px 16px 56px}h1{font-size:1.7rem}}.btn{font:500 .95rem/1 var(--font);border:1px solid var(--ink);background:var(--ink);color:var(--on-ink);padding:9px 14px;border-radius:3px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.btn:hover:not(:disabled){filter:brightness(1.18)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--concrete)}.btn.ghost:hover:not(:disabled){border-color:var(--ink-3);filter:none;background:var(--concrete-2)}.btn.go{background:var(--starboard);border-color:var(--starboard);color:#fff}.btn.danger{background:var(--port);border-color:var(--port);color:#fff}.btn.ghost.danger{background:transparent;color:var(--port);border-color:var(--concrete)}.btn.ghost.danger:hover:not(:disabled){border-color:var(--port);background:var(--danger-bg)}.btn.small{padding:5px 9px;font-size:.86rem}.btn svg{width:16px;height:16px}.btn.icon{padding:6px}.btn .spin,.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.field{display:grid;gap:5px;margin-bottom:14px}.field>label,.field>.label{font-weight:500;color:var(--ink);font-size:.93rem}.field .hint{color:var(--ink-3);font-size:.86rem}input[type=text],input[type=password],input[type=number],input[type=email],input[type=search],select,textarea{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--concrete);border-radius:3px;padding:8px 10px;width:100%;min-width:0}input:focus,select:focus,textarea:focus{border-color:var(--signal);outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--signal) 25%,transparent)}textarea{resize:vertical}input.mono,textarea.mono{font-family:var(--mono);font-size:.88rem}.check{display:flex;align-items:center;gap:8px;cursor:pointer}.check input{width:16px;height:16px;accent-color:var(--starboard)}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.row>.grow{flex:1;min-width:180px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}@media(max-width:600px){.grid2{grid-template-columns:1fr}}.panel{background:var(--paper);border:1px solid var(--concrete);border-radius:2px}.panel+.panel{margin-top:18px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--concrete);flex-wrap:wrap}.panel-body{padding:16px}.muted{color:var(--ink-2)}.dim{color:var(--ink-3)}.sec{margin-top:30px}.sec>h2{margin-bottom:10px}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-weight:500;color:var(--ink-3);font-size:.86rem;padding:8px 14px;border-bottom:1px solid var(--concrete);white-space:nowrap}.table td{padding:11px 14px;border-bottom:1px solid var(--concrete-2);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:color-mix(in srgb,var(--concrete-2) 55%,transparent)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .act{text-align:right;white-space:nowrap}.table-wrap{overflow-x:auto}.clickable{cursor:pointer}.pill{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:500;padding:2px 9px;border-radius:99px;background:var(--concrete-2);color:var(--ink-2)}.pill.ok{background:var(--ok-bg);color:var(--starboard)}.pill.warn{background:var(--warn-bg);color:#8a6208}:root[data-theme=dark] .pill.warn{color:var(--amber)}.pill.bad{background:var(--danger-bg);color:var(--port)}.pill.info{background:var(--info-bg);color:var(--signal)}.notice{padding:11px 14px;border-left:4px solid var(--signal);background:var(--info-bg);margin-bottom:16px}.notice.bad{border-color:var(--port);background:var(--danger-bg)}.notice.warn{border-color:var(--amber);background:var(--warn-bg)}.notice.ok{border-color:var(--starboard);background:var(--ok-bg)}.notice strong{font-weight:600}.notice pre{margin:8px 0 0;white-space:pre-wrap;word-break:break-word}.empty{padding:36px 20px;text-align:center;color:var(--ink-2)}.empty h3{color:var(--ink);margin-bottom:6px}.empty .btn{margin-top:12px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--concrete);margin-bottom:18px;overflow-x:auto}.tabs button{all:unset;cursor:pointer;padding:9px 14px;font-weight:500;color:var(--ink-2);border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap}.tabs button:hover{color:var(--ink)}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--starboard)}.tabs button:focus-visible{outline:2px solid var(--signal)}.lamp{width:12px;height:12px;border-radius:50%;display:inline-block;flex:none;background:var(--concrete);box-shadow:0 0 0 3px color-mix(in srgb,currentColor 0%,transparent)}.lamp.green{background:var(--starboard);box-shadow:0 0 0 3px color-mix(in srgb,var(--starboard) 22%,transparent)}.lamp.amber{background:var(--amber);box-shadow:0 0 0 3px color-mix(in srgb,var(--amber) 28%,transparent)}.lamp.red{background:var(--port);box-shadow:0 0 0 3px color-mix(in srgb,var(--port) 25%,transparent)}.lamp.off{background:transparent;border:2px solid var(--ink-3)}.gauge{height:6px;background:var(--concrete-2);border-radius:3px;overflow:hidden}.gauge>i{display:block;height:100%;background:var(--starboard)}.gauge.warn>i{background:var(--amber)}.gauge.bad>i{background:var(--port)}.board{border:1px solid var(--concrete);background:var(--paper)}.berth{display:grid;grid-template-columns:8px minmax(210px,1.2fr) minmax(190px,1fr) minmax(150px,.7fr) auto;align-items:center;gap:0 18px;border-bottom:1px solid var(--concrete);min-height:66px;padding-right:14px}.berth:last-child{border-bottom:0}.berth .strip{align-self:stretch;background:var(--starboard)}.berth.amber .strip{background:var(--amber)}.berth.red .strip{background:var(--port)}.berth.off .strip{background:var(--concrete)}.berth .name{padding:10px 0;min-width:0}.berth .host{font-family:var(--font-d);font-size:1.35rem;font-weight:600;line-height:1.1;overflow-wrap:anywhere}.berth .host a{color:inherit}.berth .alias{color:var(--ink-3);font-size:.86rem}.berth .target{font-size:.93rem;min-width:0}.berth .target .mono{color:var(--ink-2)}.berth .why{font-size:.86rem;color:var(--ink-2);margin-top:2px}.berth.red .why{color:var(--port);font-weight:500}.berth .tide{font-size:.86rem}.berth .tide .gauge{margin-top:5px;max-width:150px}.berth .go{display:flex;gap:6px}@media(max-width:960px){.berth{grid-template-columns:8px 1fr auto;padding:8px 12px 8px 0;gap:2px 14px}.berth .target,.berth .tide{grid-column:2;padding-bottom:4px}.berth .go{grid-column:3;grid-row:1}}.board-foot{display:flex;gap:22px;padding:10px 16px;font-size:.9rem;color:var(--ink-2);border-top:1px solid var(--concrete);background:var(--concrete-2);flex-wrap:wrap}.board-foot span{display:inline-flex;align-items:center;gap:7px}.vitals{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0;border:1px solid var(--concrete);background:var(--paper)}.vital{padding:14px 18px;border-right:1px solid var(--concrete)}.vital:last-child{border-right:0}.vital .what{color:var(--ink-3);font-size:.88rem}.vital .val{font-family:var(--font-d);font-size:1.5rem;font-weight:600;margin:2px 0 8px}.vital .val small{font-family:var(--font);font-size:.85rem;color:var(--ink-3);font-weight:400}.spark{display:block;width:100%;height:34px;margin-top:8px}.code{background:var(--code-bg);color:var(--code-ink);font-family:var(--mono);font-size:.84rem;line-height:1.55;border-radius:2px;overflow:auto}.logbox{background:var(--code-bg);color:var(--code-ink);font-family:var(--mono);font-size:.82rem;line-height:1.5;padding:12px 14px;max-height:56vh;min-height:120px;overflow:auto;white-space:pre-wrap;word-break:break-word;border-radius:2px}.logbox .s{color:#8fd0ad;font-weight:600;margin-top:8px;display:block}.logbox .s:first-child{margin-top:0}.logbox .e{color:#f0a198}.logbox .i{color:#8aa5b8}.editor{display:grid;grid-template-columns:52px 1fr;background:var(--code-bg);border-radius:2px;border:1px solid var(--concrete);min-height:320px}.editor .gutter{color:#577084;text-align:right;padding:12px 8px 12px 0;font-family:var(--mono);font-size:.84rem;line-height:1.55;-webkit-user-select:none;user-select:none;border-right:1px solid rgba(255,255,255,.07);overflow:hidden;white-space:pre}.editor textarea{background:transparent;color:var(--code-ink);border:0;border-radius:0;font-family:var(--mono);font-size:.84rem;line-height:1.55;padding:12px 14px;resize:none;white-space:pre;overflow:auto;-moz-tab-size:4;tab-size:4;box-shadow:none!important}.diff{font-family:var(--mono);font-size:.84rem;line-height:1.55;background:var(--code-bg);color:var(--code-ink);padding:8px 0;overflow:auto;max-height:50vh}.diff div{padding:0 14px;white-space:pre-wrap}.diff .add{background:#35b27e2e;color:#a9e6c9}.diff .del{background:#e0675c33;color:#f4b4ad}.diff .gap{color:#577084}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#08121a8c;z-index:100;display:grid;place-items:start center;padding:6vh 16px 16px;overflow-y:auto}.modal{background:var(--paper);border-radius:6px;width:min(640px,100%);box-shadow:0 24px 60px #050c1259;border:1px solid var(--concrete)}.modal.wide{width:min(940px,100%)}.modal-head{padding:16px 20px 0;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.modal-body{padding:14px 20px 6px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px 18px;flex-wrap:wrap}.toasts{position:fixed;right:16px;bottom:16px;z-index:200;display:grid;gap:8px;max-width:min(420px,calc(100vw - 32px))}.toast{background:var(--ink);color:var(--on-ink);padding:11px 14px;border-radius:3px;border-left:4px solid var(--starboard);box-shadow:0 8px 24px #050c124d;animation:rise .18s ease-out}.toast.bad{border-left-color:var(--port)}@keyframes rise{0%{transform:translateY(8px);opacity:0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.palette{width:min(560px,100%);background:var(--paper);border-radius:6px;border:1px solid var(--concrete);box-shadow:0 24px 60px #050c1266;overflow:hidden}.palette input{border:0;border-bottom:1px solid var(--concrete);border-radius:0;padding:14px 16px;font-size:1.05rem;background:transparent}.palette ul{list-style:none;margin:0;padding:6px;max-height:50vh;overflow-y:auto}.palette li{padding:9px 12px;border-radius:3px;cursor:pointer;display:flex;justify-content:space-between;gap:12px}.palette li[aria-selected=true]{background:var(--concrete-2)}.palette li .dim{font-size:.85rem}.gate{min-height:100%;display:grid;grid-template-columns:minmax(300px,5fr) 7fr}.gate-art{background:var(--rail);color:#f3f6f7;padding:40px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative}.gate-art .brand{padding:0;font-size:2.2rem}.gate-art p{color:var(--rail-dim);max-width:36ch;font-size:1.05rem}.gate-art .quay{position:absolute;left:0;right:0;bottom:0;height:46%}.gate-form{display:grid;place-items:center;padding:32px 20px}.gate-form form{width:min(380px,100%)}.gate-form h1{margin-bottom:6px}.gate-form .muted{margin-bottom:22px}@media(max-width:760px){.gate{grid-template-columns:1fr}.gate-art{padding:24px;min-height:180px}.gate-art .quay{display:none}}.qr{background:#fff;padding:10px;display:inline-block;border-radius:3px}.codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;font-family:var(--mono);background:var(--concrete-2);padding:12px 14px;border-radius:3px}.filelist .name{display:flex;align-items:center;gap:9px}.filelist .name svg{width:17px;height:17px;color:var(--ink-3);flex:none}.filelist .dir svg{color:var(--signal)}.crumbs{display:flex;flex-wrap:wrap;gap:2px;align-items:center;font-size:.93rem}.crumbs button{all:unset;cursor:pointer;color:var(--signal);padding:2px 4px;border-radius:2px}.crumbs button:hover{background:var(--concrete-2)}.crumbs .sep{color:var(--ink-3)}.bar{height:8px;background:var(--signal);border-radius:2px;min-width:2px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 22px;margin:0}.kv dt{color:var(--ink-3)}.kv dd{margin:0;overflow-wrap:anywhere}.steps{counter-reset:s;list-style:none;padding:0;margin:0;display:grid;gap:12px}.steps li{counter-increment:s;display:grid;grid-template-columns:28px 1fr;gap:10px}.steps li:before{content:counter(s);width:24px;height:24px;border-radius:50%;border:1.5px solid var(--ink-3);display:grid;place-items:center;font-size:.85rem;font-weight:600;color:var(--ink-2)}@media(max-width:720px){.hide-sm{display:none}}.vital{border-bottom:1px solid var(--concrete);margin-bottom:-1px}@media(max-width:600px){.vital{border-right:0}}
