:root{--paper:#f7f8f4;--white:#fff;--ink:#263b35;--muted:#40513f;--green:#245e50;--soft:#e9f0e4;--line:#e1e6dd;--accent:#d6e4c3;--warn:#a06629;--font:Inter,"Segoe UI",system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:18px var(--font)}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:1}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--green);outline-offset:3px}button{border:0}button:hover:not(:disabled){filter:brightness(.96)}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid var(--line);background:#fcfcf9}.brand{display:flex;align-items:center;gap:12px;font-size:25px;letter-spacing:-1px;font-weight:650;color:var(--ink);text-decoration:none}.brand-light{font-weight:400;color:var(--ink)}.top-caption{font-size:16px;letter-spacing:2px;color:var(--muted)}.local-label{font-size:16px;display:flex;gap:8px;align-items:center}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:#9baba0}.local-label .dot,.sidebar-footer .dot{background:#7b9168}.workspace{display:grid;grid-template-columns:350px minmax(360px,1fr) 320px;height:calc(100dvh - 76px);max-width:none;margin:auto}.sidebar{display:flex;flex-direction:column;padding:26px 18px 18px;border-right:1px solid var(--line);min-height:0;overflow:auto}.sidebar-heading{display:flex;align-items:center;justify-content:space-between;padding:0 9px;margin-bottom:24px}h1{font-size:20px;font-weight:600;letter-spacing:-.5px;margin:0}.label{font-size:16px;letter-spacing:1px;color:var(--ink);background:#eaf0e5;padding:5px 6px;border-radius:4px}.search{display:flex;gap:9px;align-items:center;background:#ecefe8;border:1px solid transparent;border-radius:8px;padding:9px 12px;margin-bottom:30px}.search>span{font-size:23px;line-height:16px;color:var(--ink)}.search input{min-width:0;width:100%;border:0;background:transparent;font-size:16px;outline:none;color:var(--ink)}.section-label{font-size:16px;letter-spacing:1.5px;color:var(--muted);font-weight:600;margin:0 10px 13px}.section-split{display:flex;align-items:center;justify-content:space-between}.sidebar .section-split{margin-top:30px}.nav-item{width:100%;text-align:left;display:flex;align-items:center;gap:11px;border-radius:9px;padding:12px 11px;color:var(--ink);background:transparent;margin-bottom:4px;position:relative}.nav-item.selected{background:#e2eadb;color:var(--ink)}.nav-symbol{width:27px;height:27px;border-radius:8px;background:#e8ece4;display:flex;align-items:center;justify-content:center;font-size:17px;color:var(--ink);flex-shrink:0}.selected .nav-symbol{background:#d1ddc5;color:var(--ink)}.nav-text{display:flex;flex-direction:column;gap:3px;overflow:hidden}.nav-text strong{font-size:16px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-text small{font-size:16px;color:var(--ink)}.unread{margin-left:auto;background:var(--green);color:white;border-radius:5px;padding:2px 5px;font-size:16px}.side-note{display:flex;gap:12px;border-top:1px solid var(--line);padding:22px 10px;margin-top:auto}.side-note strong{font-size:16px;font-weight:550}.side-note p{font-size:16px;color:var(--muted);line-height:1.7;margin:5px 0 0}.note-mark{font-size:24px;color:var(--ink)}.sidebar-footer{font-size:16px;color:var(--muted);display:flex;align-items:center;gap:7px;padding:5px 10px}.sidebar-footer .dot{width:5px;height:5px}.chat{display:flex;flex-direction:column;min-width:0;min-height:0;background:#fcfcfa}.chat-header{height:95px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 30px;flex-shrink:0}.channel-avatar{background:#e9efe2;border:1px solid #e0e7d7;border-radius:13px;width:43px;height:43px;display:grid;place-items:center;font-size:23px;color:var(--ink)}.chat-title{flex:1;min-width:0}.chat-title h2{font-size:18px;letter-spacing:-.4px;margin:0 0 6px;font-weight:600}.chat-title p{margin:0;font-size:16px;color:var(--muted)}.quiet{background:transparent;font-size:16px;color:var(--muted);padding:8px}.banner{padding:10px 30px;background:#f4f0e3;font-size:16px;color:var(--ink);border-bottom:1px solid #eae3d2}.banner.connected{background:#f0f4eb;color:var(--ink);border-color:#e6ebdf}.search-banner{padding:8px 30px;background:#eaf0e5;color:var(--green);font-size:16px}.messages{flex:1;min-height:0;overflow-y:auto;scroll-behavior:auto;padding:24px 30px;display:flex;flex-direction:column;gap:20px}.empty{margin:auto;text-align:center;max-width:330px;padding:35px 10px;color:var(--muted)}.empty .empty-icon{font-size:42px;color:var(--ink);margin:0 auto 20px;background:#f0f3e9;width:85px;height:85px;border-radius:28px;display:grid;place-items:center}.empty h3{font-size:19px;color:var(--ink);font-weight:500;letter-spacing:-.4px}.empty p{line-height:1.8;font-size:16px}.day{text-align:center;font-size:16px;letter-spacing:.4px;color:var(--ink);margin:2px 0 6px}.message{display:flex;gap:10px;max-width:87%;align-self:flex-start}.message.out{align-self:flex-end;flex-direction:row-reverse}.avatar{width:29px;height:29px;border-radius:10px;background:#e8ece4;color:var(--ink);display:grid;place-items:center;font-size:16px;flex-shrink:0;margin-top:21px}.message.out .avatar{background:#d6e5c7;color:var(--ink)}.message-content{min-width:0}.message-meta{display:flex;align-items:center;gap:10px;font-size:16px;margin-bottom:7px;color:var(--ink)}.message-meta strong{font-size:16px;color:var(--ink);font-weight:550}.message.out .message-meta{justify-content:flex-end}.bubble{padding:13px 16px;background:#f0f2ec;border:1px solid #e7eae2;border-radius:2px 13px 13px;line-height:1.6;font-size:16px;white-space:pre-wrap;overflow-wrap:anywhere}.message.out .bubble{background:#e5eddb;border-color:#dce7cf;border-radius:13px 2px 13px 13px;color:var(--ink)}.message-note{font-size:16px;color:var(--ink);margin-top:6px;line-height:1.6}.message.out .message-note{text-align:right}.older{background:transparent;color:var(--green);font-size:16px;align-self:center;padding:7px}.composer{padding:16px 30px 20px;flex-shrink:0;background:#fcfcfa}.compose-box{background:white;border:1px solid #d8dfd1;border-radius:12px;padding:13px 14px;box-shadow:0 2px 6px #36482a03}.compose-box:focus-within{border-color:#8ca47b}.compose-box textarea{resize:none;width:100%;border:0;outline:none;box-shadow:none;background:transparent;line-height:1.7;font-size:16px;color:var(--ink);min-height:50px;max-height:140px}.compose-box textarea:focus-visible{outline:none}.compose-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.compose-actions>span{font-size:16px;color:var(--ink)}.primary{background:var(--green);color:white;padding:11px 15px;border-radius:8px;font-size:16px}.primary span{margin-left:12px}.compose-foot{display:flex;justify-content:space-between;gap:10px;color:var(--ink);font-size:16px;line-height:1.6;margin-top:10px}.error{padding:10px 30px;background:#fff0eb;color:#994f37;font-size:16px}.radio-panel{border-left:1px solid var(--line);padding:28px 23px;overflow:auto;background:#f6f7f1}.radio-panel>.section-label{margin-left:0}.radio-illustration{color:var(--ink);margin:8px auto 0;width:190px;height:123px}.radio-panel h2{text-align:center;font-size:17px;letter-spacing:-.4px;font-weight:550;margin:8px 0}.radio-subtitle{text-align:center;color:var(--muted);font-size:16px}.connection-pill{display:flex;justify-content:center;align-items:center;gap:6px;font-size:16px;color:var(--ink);margin:18px auto}.connection-pill.connected{color:var(--ink)}.connection-pill.connected .dot{background:#7b995c}.connection-pill.connecting .dot{background:#d5a055}.connect-button{width:100%;background:#e5ebdd;border:1px solid #d8e0cf;border-radius:7px;padding:10px;color:var(--ink);font-size:16px}.panel-divider{height:1px;background:var(--line);margin:26px 0}.radio-panel h3{font-size:16px;font-weight:600;margin:0}.text-button{font-size:16px;background:none;color:var(--ink);padding:5px}.metrics{margin:15px 0}.metrics>div{display:flex;justify-content:space-between;padding:9px 0;font-size:16px}.metrics dt{color:var(--muted)}.metrics dd{margin:0;font-variant-numeric:tabular-nums;color:var(--ink)}.muted{color:var(--ink);font-size:16px;line-height:1.8;margin:0}.frequency{font-size:26px;letter-spacing:-1px;font-weight:400;margin:17px 0 4px}.frequency small{font-size:16px;letter-spacing:0;color:var(--ink)}.firmware{display:flex;justify-content:space-between;margin-top:16px;font-size:16px;color:var(--ink);gap:5px}.info-note{padding:15px;background:#edf0e6;border:1px solid #e3e8da;border-radius:9px;margin-top:30px}.info-note strong{font-size:16px;color:var(--ink);font-weight:550}.info-note p{font-size:16px;line-height:1.8;color:var(--ink);margin:7px 0 0}.mobile-details{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}.over-limit{color:#a04730!important}
@media(min-width:1450px){.chat-header,.composer{padding-left:45px;padding-right:45px}.messages{padding:32px 45px}.message{max-width:75%}}
@media(max-width:1120px){.workspace{grid-template-columns:300px minmax(300px,1fr)}.radio-panel{display:none;position:fixed;right:0;top:76px;bottom:0;width:320px;z-index:5;box-shadow:-5px 0 35px #213c2519}.radio-panel.open{display:block}.mobile-details{display:block}.top-caption{display:none}.compose-foot>span:last-child{display:none}.sidebar{padding:22px 12px}.message{max-width:95%}}
@media(max-width:640px){.topbar{height:60px;padding:0 17px}.brand{font-size:22px}.local-label{font-size:16px}.workspace{height:calc(100dvh - 60px);display:flex;flex-direction:column}.sidebar{flex-shrink:0;border-right:0;border-bottom:1px solid var(--line);padding:10px 12px;display:block;max-height:160px}.sidebar-heading,.sidebar .section-label,.sidebar-footer,.side-note,.search{display:none}.sidebar nav{display:inline-flex;vertical-align:top}.nav-item{width:auto;padding:8px 12px;margin:0 4px 0 0}.nav-text small,.nav-symbol{display:none}.sidebar #contacts:before{content:'·';align-self:center;color:var(--ink);margin-right:8px}.chat{flex:1}.chat-header{height:75px;padding:0 17px;gap:10px}.chat-title h2{font-size:16px}.chat-title p{font-size:16px}.chat-header .quiet{font-size:16px}.channel-avatar{width:34px;height:34px;font-size:19px}.messages{padding:19px 16px}.composer{padding:12px 14px}.banner{padding:9px 17px;font-size:16px}.radio-panel{top:60px}.bubble{font-size:16px}.message{max-width:100%}.avatar{display:none}.compose-foot{font-size:16px}}
:root { color-scheme: light dark; }
