@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.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{--bg: #0d1117;--bg2: #1a1e26;--surface: #161b22;--border: #21262d;--accent: #58a6ff;--accent2: #3fb950;--warn: #d29922;--danger: #f85149;--relay: #bc8cff;--text: #e6edf3;--text-muted: #7d8590;--text-faint: #6b7280;--mono: "IBM Plex Mono", ui-monospace, monospace;--sans: "IBM Plex Sans", system-ui, sans-serif;--radius: 8px;--bottom-bar-h: 52px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}.icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;vertical-align:-.15em;flex-shrink:0;line-height:1}.icon>svg{width:100%;height:100%;display:block;stroke:currentColor}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#3a3f4a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#555c6b}::-webkit-scrollbar-corner{background:transparent}html,body{height:100%;height:100dvh;overflow:hidden;color-scheme:dark}html{min-height:calc(100% + env(safe-area-inset-top))}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;display:flex;flex-direction:column}#app{height:100%;display:flex;flex-direction:column;overflow:hidden}header{background:var(--surface);border-bottom:1px solid var(--border);padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top));display:flex;align-items:center;flex-wrap:wrap;gap:8px;position:fixed;top:0;right:0;left:0;z-index:100}.header-brand{display:flex;flex-direction:column;gap:2px;flex:0 0 auto;order:1}.header-nav-row{display:flex;align-items:center;gap:8px;margin-left:16px;order:2}.header-meta{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0;order:3}.header-top{display:flex;align-items:center;gap:8px}header h1{font-size:16px;font-weight:600;letter-spacing:.5px}.brand-short{display:none}.signal{display:flex;align-items:flex-end;gap:2px;height:16px;flex-shrink:0}.signal i{width:3px;border-radius:1px;background:var(--accent2);opacity:.55;transition:opacity .5s,background .4s}.signal i:nth-child(1){height:5px}.signal i:nth-child(2){height:8px}.signal i:nth-child(3){height:12px}.signal i:nth-child(4){height:16px}.signal.lit i{opacity:1;transition:opacity .05s}.signal.down i{background:var(--danger);opacity:1}@media (prefers-reduced-motion: reduce){.signal i{transition:none}}.status-label{font-size:12px;color:var(--text-muted)}.status-commit{font-family:var(--mono);opacity:.7}.badge{background:var(--border);color:var(--text-muted);font-size:11px;font-family:var(--mono);padding:2px 8px;border-radius:20px;flex-shrink:0}.badge-viewers{color:var(--accent2);background:#3fb95024}.my-identity-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--mono);font-size:12px;padding:3px 9px;width:180px;outline:none;transition:border-color .15s}.my-identity-input:focus{border-color:var(--accent)}.my-identity-input::placeholder{color:var(--text-muted)}.nav-search{color:var(--accent);text-decoration:none;font-size:12px;font-weight:600;margin-right:4px;white-space:nowrap}.nav-search:hover{text-decoration:underline}.nav-back{color:var(--text-muted);text-decoration:none;font-size:12px;white-space:nowrap}.nav-back:hover{color:var(--text)}.search-form{display:flex;align-items:center;gap:6px}.search-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--mono);font-size:12px;padding:3px 9px;width:220px;outline:none;transition:border-color .15s}.search-input:focus{border-color:var(--accent)}.search-btn{background:var(--accent);border:none;border-radius:var(--radius);color:#0d1117;cursor:pointer;font-size:12px;font-weight:600;padding:3px 12px}.search-btn:hover{opacity:.85}.search-count{font-size:11px;color:var(--text-muted);padding:4px 12px 8px}#channel-toggles{display:flex;gap:6px}.ch-btn{padding:3px 10px;border-radius:20px;border:1px solid currentColor;font-size:11px;font-family:var(--mono);font-weight:600;cursor:pointer;background:transparent;transition:opacity .2s,background .2s;-webkit-user-select:none;user-select:none;opacity:.3}.ch-btn.active{opacity:1}.ch-btn.mf{color:#58a6ff}.ch-btn.lf{color:var(--accent2)}.ch-btn.svc{color:var(--warn)}.ch-btn.an{color:#c084fc}.ch-btn.active.mf{background:#58a6ff1f}.ch-btn.active.lf{background:#3fb9501f}.ch-btn.active.svc{background:#d299221f}.ch-btn.active.an{background:#c084fc1f}.ch-btn.bot{color:#f85149}.ch-btn.active.bot{background:#f851491f}.ch-btn.help{color:var(--text-muted);opacity:.6}.ch-btn.help:hover{opacity:1;color:var(--accent)}.driver-popover.mesh-tour-popover{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--sans);box-shadow:0 8px 32px #00000080}.mesh-tour-popover .driver-popover-title{color:var(--accent);font-size:14px;position:relative;z-index:auto}.mesh-tour-popover .driver-popover-description{color:var(--text);font-size:13px}.mesh-tour-popover .driver-popover-progress-text{color:var(--text-muted);font-size:11px}.mesh-tour-popover .driver-popover-footer button{background:var(--border);color:var(--text);text-shadow:none;border:none;border-radius:var(--radius);font-family:var(--sans);font-size:12px;padding:5px 12px}.mesh-tour-popover .driver-popover-footer button:hover{background:var(--accent);color:#0d1117}.mesh-tour-popover .driver-popover-close-btn{color:var(--text);font-size:18px;font-weight:700;width:28px;height:28px;display:flex;align-items:center;justify-content:center;z-index:2}.mesh-tour-popover .driver-popover-close-btn:hover{color:var(--danger)}.mesh-tour-popover .driver-popover-arrow-side-left.driver-popover-arrow{border-left-color:var(--surface)}.mesh-tour-popover .driver-popover-arrow-side-right.driver-popover-arrow{border-right-color:var(--surface)}.mesh-tour-popover .driver-popover-arrow-side-top.driver-popover-arrow{border-top-color:var(--surface)}.mesh-tour-popover .driver-popover-arrow-side-bottom.driver-popover-arrow{border-bottom-color:var(--surface)}.msg-channel{font-size:10px;font-family:var(--mono);font-weight:700;padding:1px 6px;border-radius:4px;letter-spacing:.04em;flex-shrink:0;align-self:center}.msg-channel.mf{background:#58a6ff26;color:#58a6ff}.msg-channel.lf{background:#3fb95026;color:var(--accent2)}.msg-channel.svc{background:#d2992226;color:var(--warn)}.msg-channel.an{background:#c084fc26;color:#c084fc}.msg-channel.other{background:#94a3b81f;color:#94a3b8}.chat-wrap{flex:1;position:relative;min-height:0;display:flex;flex-direction:column}.scroll-down-btn{position:absolute;bottom:16px;left:50%;transform:translate(-50%);min-width:36px;height:36px;padding:0 10px;gap:6px;border-radius:18px;border:none;background:#ffffff1f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-family:var(--sans);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0006;transition:background .15s;white-space:nowrap;z-index:10}.scroll-down-btn:hover{background:#ffffff38}.scroll-down-btn.has-unread{background:var(--accent);color:var(--bg);font-size:14px;font-weight:600;padding:0 16px}.scroll-down-btn.has-unread:hover{background:var(--accent);filter:brightness(1.1)}#chat-scroll{flex:1;overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}#chat-scroll::-webkit-scrollbar{width:4px}#chat-scroll::-webkit-scrollbar-track{background:transparent}#chat-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}#chat-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}#chat{min-height:100%;padding:12px 16px;padding-top:calc(72px + env(safe-area-inset-top));display:flex;flex-direction:column;gap:3px}@media (min-width: 768px){#chat{width:60%;margin:0 auto}}#empty{display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px;gap:8px;height:100%}#top-sentinel{height:32px;display:flex;align-items:center;justify-content:center}.older-loading{font-size:11px;color:var(--text-muted)}.load-older-btn{font-size:11px;color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:6px;padding:4px 10px;cursor:pointer}.load-older-btn:hover{color:var(--text);border-color:var(--text-muted)}.msg{display:flex;flex-direction:row;gap:10px;align-items:flex-start;padding:8px 12px;border-radius:var(--radius);transition:background .15s,box-shadow .15s}.msg-body{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.msg:hover{background:var(--surface);box-shadow:inset 0 0 3px 2px #494949bf}.msg.msg-mine{box-shadow:inset 0 0 5px 1px #ea2effb2}.msg.msg-mine:hover{box-shadow:inset 0 0 7px 1px #e51ffbed}.msg-row-top{display:flex;align-items:baseline;gap:8px;min-width:0;justify-content:space-between}.msg-sender{font-weight:600;font-size:13px;cursor:pointer;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.msg-sender:hover{text-decoration:underline}.msg-sender.rank-gold{color:gold}.msg-sender.rank-silver{color:silver}.msg-sender.rank-bronze{color:#e0995e}.msg-top-right{display:flex;align-items:baseline;gap:5px;flex-shrink:0}.msg-bottom-right{position:absolute;right:0;bottom:0}.msg-to{font-size:11px;color:var(--text-muted);white-space:nowrap}.msg-relays{font-size:10px;font-family:var(--mono);font-weight:700;padding:4px 6px;border-radius:4px;letter-spacing:.04em;flex-shrink:0;align-self:center;background:#bc8cff26;color:var(--relay);cursor:pointer;white-space:nowrap}.msg-relays:hover{background:#bc8cff47}.msg-relays-extra{color:var(--accent)}.relay-node-prefix{color:var(--accent);font-family:var(--mono);font-weight:700}.msg-row-bottom{display:grid;grid-template-columns:55px 1fr;gap:0 12px;align-items:start}.msg-meta{display:flex;flex-direction:column;gap:3px;align-items:flex-end;padding-top:1px}.msg-date{font-size:10px;font-family:var(--mono);color:var(--text-muted);white-space:nowrap}.msg-time{font-size:11px;font-family:var(--mono);color:var(--text-muted);white-space:nowrap}.msg-snr{font-size:11px;font-family:var(--mono);white-space:nowrap}.msg-copy{font-size:19px;color:#f5c518;cursor:pointer;opacity:1;transition:color .15s;-webkit-user-select:none;user-select:none;margin-left:4px;vertical-align:middle}.msg-copy:hover{color:var(--accent)}.msg-copy.copied{color:var(--accent2);opacity:1}.msg-content{position:relative;display:flex;flex-direction:column;gap:4px;min-width:0;padding-bottom:22px}.msg-text{display:block;color:var(--text);font-size:14px;line-height:1.55;word-break:break-word;white-space:pre-wrap}.msg-time-corner{position:absolute;right:0;bottom:0;font-size:10px;font-family:var(--mono);color:var(--text-muted);white-space:nowrap}.msg-reply{display:flex;align-items:baseline;gap:5px;margin-top:2px;padding:4px 8px;border-left:2px solid var(--accent);background:#58a6ff33;border-radius:0 4px 4px 0;font-size:12px;color:var(--text-muted);max-width:100%;overflow:hidden;cursor:pointer;transition:background .15s}.msg-reply:hover{background:#58a6ff24}.msg-reply-name{color:var(--accent);font-weight:600;white-space:nowrap;flex-shrink:0}.msg-reply-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.msg.msg-highlight{animation:highlight-flash 1.5s ease-out}@keyframes highlight-flash{0%{background:#58a6ff40}to{background:transparent}}.popup{position:fixed;z-index:300;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;min-width:240px;max-width:min(320px,calc(100vw - 16px));overflow-x:hidden;overflow-y:auto;box-shadow:0 8px 32px #00000080;font-size:13px}.popup-close{position:absolute;top:8px;right:10px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:16px}.popup-close:hover{color:var(--text)}.popup h3{font-size:14px;margin-bottom:10px;padding-right:20px;color:var(--accent)}.popup-row{display:flex;justify-content:space-between;gap:12px;padding:3px 0;border-bottom:1px solid var(--border)}.popup-row:last-child{border-bottom:none}.popup-key{color:var(--text-muted)}.popup-val{font-family:var(--mono);font-size:12px;text-align:right}.popup-val.coords{color:var(--accent);cursor:pointer;text-decoration:underline dotted}.js-copy{cursor:pointer;text-decoration:underline dotted}.js-copy.js-copy-done{color:#2ecc71!important;text-decoration:none}.js-copy.js-copy-done:after{content:" ✓"}.popup-loader{color:var(--text-muted);text-align:center;padding:8px 0}.map-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:12px}.map-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(1326px,96vw);height:min(728px,90vh);display:flex;flex-direction:column;overflow:hidden}.map-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.map-header-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.map-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.map-relay-sender{font-size:14px;font-weight:600;color:var(--accent);line-height:1.25;word-break:break-word}.map-relay-sent-at{font-size:12px;font-weight:400;color:var(--text-muted)}.map-relay-text{font-size:13px;color:var(--text);line-height:1.45;white-space:pre-wrap;word-break:break-word;max-height:4.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}.map-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:22px}.map-close:hover{color:var(--text)}.map-theme-toggle{background:none;border:none;cursor:pointer;font-size:15px;padding:0 4px;opacity:.7}.map-theme-toggle:hover{opacity:1}.map-header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.map-header-actions-top{display:flex;align-items:center;gap:8px}.map-copy-link{background:none;border:none;cursor:pointer;font-size:25px;padding:0 4px;color:#eab308;opacity:.85}.map-copy-link:hover{opacity:1}.map-copy-link.copied{color:var(--accent2)}.map-tabs{display:flex;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--surface)}.map-tab{flex:1;padding:10px 8px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:11px;font-weight:600;font-family:var(--sans);border-bottom:2px solid transparent;margin-bottom:-1px}.map-tab:hover{color:var(--text)}.map-tab.active{color:var(--accent);border-bottom-color:var(--accent);background:#58a6ff14}.map-tab:disabled{opacity:.4;cursor:not-allowed}.map-body{display:flex;flex:1;min-height:0;overflow:hidden}.relay-sidebar{width:330px;flex-shrink:0;border-right:1px solid var(--border);overflow-y:auto;padding:8px 0;display:flex;flex-direction:column;gap:2px}.relay-section-title{padding:4px 12px 2px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.relay-item{display:flex;align-items:center;gap:8px;padding:5px 12px;border-radius:4px;margin:0 4px;transition:background .12s}.relay-item.clickable{cursor:pointer}.relay-item.clickable:hover{background:#ffffff12}.relay-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.relay-dot.sender{background:#58a6ff}.relay-dot.relay{background:#bc8cff}.relay-item-info{display:flex;flex-direction:column;min-width:0}.relay-item-name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.relay-item-meta{display:flex;gap:8px;font-size:11px;color:var(--text-muted);flex-wrap:wrap}.relay-node-badge{color:var(--accent);font-family:monospace;text-decoration:none;cursor:pointer}.relay-node-badge:hover{text-decoration:underline}.relay-packet-hops{font-size:10px;line-height:1.35;color:var(--text-muted);padding:4px 12px 8px;border-bottom:1px solid var(--border)}.map-leaflet{flex:1;min-width:0;min-height:0}@media (max-width: 500px){.msg{padding:5px 6px}header{padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top));gap:4px 8px;align-items:center}header h1{font-size:14px}.brand-full{display:none}.brand-short{display:inline}.status-label{display:none}.status-label--reconnecting{display:inline}.header-brand{order:1;flex:1;min-width:0}.header-meta{order:1;margin-left:0;flex-shrink:0;gap:5px}.my-identity-input{width:110px;font-size:11px}.badge:not(.badge-viewers){display:none}.header-nav-row{position:fixed;left:0;right:0;bottom:0;height:calc(var(--bottom-bar-h) + env(safe-area-inset-bottom));padding:0 12px env(safe-area-inset-bottom);margin-left:0;flex-wrap:nowrap;justify-content:space-between;gap:8px;background:var(--surface);border-top:1px solid var(--border);z-index:100}.header-nav-row .site-nav{order:2;margin-left:auto}#channel-toggles{gap:6px;min-width:0;overflow-x:auto;scrollbar-width:none}#channel-toggles .ch-btn{padding:5px 12px}#app:has(.header-nav-row){padding-bottom:calc(var(--bottom-bar-h) + env(safe-area-inset-bottom))}#chat{padding-top:calc(56px + env(safe-area-inset-top))}.search-input{width:160px}.search-form{flex-wrap:wrap}.map-modal{padding:8px}.map-container{height:calc(100dvh - 16px);width:calc(100vw - 16px)}.map-body{flex-direction:column}.relay-sidebar{width:100%;max-height:30vh;flex-shrink:0;border-right:none;border-bottom:1px solid var(--border);flex-direction:column;flex-wrap:nowrap;overflow-y:auto;padding:4px 0;gap:0}.relay-section-title{display:block}.relay-item{padding:5px 12px}.map-leaflet{flex:1;min-height:120px}}
