:root{--m74-bg: #ebe8e3;--m74-bg-elevated: #f7f5f1;--m74-ink: #171513;--m74-muted: #6a645c;--m74-border: #cec8be;--m74-accent: #e4572e;--m74-accent-ink: #fff8f5;--m74-ok: #2f6f4e;--m74-warn: #b7791f;--m74-danger: #b42318;--m74-radio: #2b4c7e;--m74-region: #e4572e;--m74-radius: 14px;--m74-font: "IBM Plex Sans", "Segoe UI", sans-serif;--m74-display: "IBM Plex Sans Condensed", "Segoe UI", sans-serif;color-scheme:light}[data-theme=dark]{--m74-bg: #0e0d0c;--m74-bg-elevated: #1a1816;--m74-ink: #f2ebe3;--m74-muted: #9a9288;--m74-border: #2e2a24;--m74-accent: #ff6b3d;--m74-accent-ink: #1a0c07;--m74-ok: #4ade80;--m74-warn: #fbbf24;--m74-danger: #f87171;--m74-radio: #7aa2d4;--m74-region: #ff6b3d;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--m74-font);background:radial-gradient(900px 480px at 0% -20%,color-mix(in srgb,var(--m74-accent) 18%,transparent),transparent 55%),radial-gradient(700px 400px at 100% 0%,rgba(43,76,126,.14),transparent 50%),var(--m74-bg);color:var(--m74-ink);overflow-x:hidden}a{color:inherit}button,input,select,textarea{font:inherit}button,.nav a,.tab-item,.subnav a,.bubble-reply,.reply-clear{min-height:44px;min-width:44px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}input.input,select.select,textarea.textarea{min-height:44px;font-size:16px}.app-shell{min-height:100dvh;min-height:100%;display:grid;grid-template-rows:auto 1fr;padding-bottom:env(safe-area-inset-bottom,0)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left));border-bottom:1px solid var(--m74-border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:color-mix(in srgb,var(--m74-bg) 82%,transparent);position:sticky;top:0;z-index:20}.topbar-left{display:flex;align-items:center;gap:10px;min-width:0}.brand{font-family:var(--m74-display);font-weight:700;font-size:1.35rem;letter-spacing:.04em;text-decoration:none;white-space:nowrap;text-transform:lowercase}.site-link{display:none;font-size:12px;font-weight:600;color:var(--m74-muted);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--m74-muted) 40%,transparent)}.site-link:hover{color:var(--m74-accent)}.nav-ext{text-decoration:none;padding:8px 12px;border-radius:10px;color:var(--m74-muted);font-weight:600;font-size:13px}.nav-ext:hover{color:var(--m74-accent)}.sheet-link{display:flex;align-items:center;min-height:44px;padding:12px 14px;border-radius:var(--m74-radius);border:1px solid var(--m74-border);color:var(--m74-accent);font-weight:700;text-decoration:none}.nav-desktop{display:none;flex-wrap:wrap;gap:4px;align-items:center;justify-content:flex-end}.nav-desktop a{text-decoration:none;padding:8px 12px;border-radius:10px;color:var(--m74-muted);display:inline-flex;align-items:center;font-weight:600;font-size:13px}.nav-desktop a.active{color:var(--m74-ink);background:color-mix(in srgb,var(--m74-accent) 16%,transparent)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;border:1px solid var(--m74-border);background:var(--m74-bg-elevated);color:var(--m74-ink);cursor:pointer;padding:0;font-weight:700}.main{padding:12px max(12px,env(safe-area-inset-right)) 88px max(12px,env(safe-area-inset-left));width:min(720px,100%);margin:0 auto}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:6px 8px max(8px,env(safe-area-inset-bottom));border-top:1px solid var(--m74-border);background:color-mix(in srgb,var(--m74-bg-elevated) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tab-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--m74-muted);font-size:11px;font-weight:600;border-radius:10px;padding:6px 4px;border:none;background:transparent;cursor:pointer}.tab-item.active{color:var(--m74-ink);background:color-mix(in srgb,var(--m74-accent) 14%,transparent)}.tab-item .tab-ico{font-size:16px;line-height:1}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:40}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;background:var(--m74-bg-elevated);border-top:1px solid var(--m74-border);border-radius:16px 16px 0 0;padding:16px 16px max(20px,env(safe-area-inset-bottom));display:grid;gap:10px;max-height:70dvh;overflow:auto}.sheet h3{margin:0;font-family:var(--m74-display)}.stack{display:grid;gap:12px}.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.row.actions{gap:10px}.row.actions>*{flex:1 1 120px}.row.actions button,.row.actions a{width:100%}.muted{color:var(--m74-muted)}.input,.select,.textarea{width:100%;padding:10px 12px;border-radius:var(--m74-radius);border:1px solid var(--m74-border);background:var(--m74-bg-elevated);color:var(--m74-ink)}.select-sm{min-height:40px;padding:6px 10px}.textarea{min-height:72px;resize:vertical}.chat-screen{display:grid;grid-template-rows:auto 1fr auto;gap:10px;min-height:calc(100dvh - 140px)}.chat-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.chat-head h2{margin:0;font-family:var(--m74-display);font-size:clamp(1.35rem,4vw,1.7rem);letter-spacing:.02em}.chat-path{font-size:12px;font-weight:600;text-transform:lowercase}.chat-feed{display:flex;flex-direction:column;gap:8px;overflow:auto;min-height:220px;max-height:min(52dvh,520px);padding:4px 2px 8px;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.chat-empty{margin:24px 0;text-align:center}.chat-error{color:var(--m74-danger);margin:0;font-size:13px}.bubble{position:relative;padding:10px 12px 8px;border-radius:16px 16px 16px 6px;background:var(--m74-bg-elevated);border:1px solid var(--m74-border);overflow-wrap:anywhere}.bubble-local{border-color:color-mix(in srgb,var(--m74-radio) 45%,var(--m74-border));background:color-mix(in srgb,var(--m74-radio) 10%,var(--m74-bg-elevated))}.bubble-meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;font-size:12px;color:var(--m74-muted);margin-bottom:4px}.bubble-name{color:var(--m74-ink);font-weight:700}.bubble-ch{opacity:.85}.bubble-text{margin:0;line-height:1.4;font-size:15px}.bubble-reply{margin-top:6px;padding:4px 0;min-height:32px;min-width:0;border:0;background:transparent;color:var(--m74-accent);font-size:12px;font-weight:700;cursor:pointer}.composer{display:grid;gap:8px;padding:12px;border-radius:18px;border:1px solid var(--m74-border);background:color-mix(in srgb,var(--m74-bg-elevated) 92%,var(--m74-accent));position:sticky;bottom:72px;z-index:5}.reply-bar{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--m74-accent) 12%,transparent);font-size:13px;font-weight:600}.reply-clear{border:0;background:transparent;color:var(--m74-muted);font-size:12px;font-weight:600;cursor:pointer;min-height:32px;min-width:0;padding:4px 6px}.composer-tools{display:flex;flex-wrap:wrap;gap:8px}.composer-tools .tool{display:grid;gap:4px;font-size:12px;color:var(--m74-muted);min-width:88px}.composer-tools .tool.grow{flex:1 1 140px}.composer-input{min-height:64px}.captcha-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start}.captcha-fields{display:grid;gap:4px;font-size:12px}.captcha-box{max-width:140px;height:auto;background:#fff;border-radius:8px;display:block}.channel-picker{display:grid;gap:6px;font-size:13px;color:var(--m74-muted)}.channel-picker strong{color:var(--m74-ink)}.chip-row{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:2px 0 4px;scrollbar-width:none}.chip-row::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;min-height:40px;min-width:0;padding:8px 14px;border-radius:999px;border:1px solid var(--m74-border);background:var(--m74-bg-elevated);color:var(--m74-muted);font-size:13px;font-weight:700;cursor:pointer}.chip.active{color:var(--m74-ink);border-color:color-mix(in srgb,var(--m74-accent) 55%,var(--m74-border));background:color-mix(in srgb,var(--m74-accent) 16%,var(--m74-bg-elevated))}.node-list{display:grid;gap:10px}.node-item{display:flex;gap:8px;padding:12px;border:1px solid var(--m74-border);border-radius:var(--m74-radius);background:var(--m74-bg-elevated)}.node-main{display:grid;gap:8px;width:100%;min-width:0}.node-title-row{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.node-short{font-size:12px;font-weight:700;color:var(--m74-accent)}.node-meta{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:12px}.node-actions{display:flex;flex-wrap:wrap;gap:8px}.node-actions button{flex:1 1 120px}.tag-ok{color:var(--m74-ok);font-weight:700}.tag-muted{color:var(--m74-muted)}.tag-accent{color:var(--m74-accent);font-weight:700}.map-wrap{height:min(68dvh,640px);min-height:320px;width:100%;border-radius:var(--m74-radius);overflow:hidden;background:#d8d2c6}.map-wrap .maplibregl-canvas{outline:none}.map-wrap .maplibregl-ctrl-attrib{font-size:10px}.map-pin{display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;transform:translateY(4px)}.map-pin-dot{display:block;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 5px #0006}.map-pin-label{font-size:10px;font-weight:800;line-height:1.1;padding:1px 5px;border-radius:6px;background:color-mix(in srgb,var(--m74-bg-elevated) 92%,transparent);color:var(--m74-ink);border:1px solid var(--m74-border);max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-popup-wrap .maplibregl-popup-content{background:var(--m74-bg-elevated);color:var(--m74-ink);border:1px solid var(--m74-border);border-radius:12px;box-shadow:0 8px 24px #00000047;padding:10px 12px;min-width:180px}.map-popup-wrap .maplibregl-popup-tip{border-top-color:var(--m74-bg-elevated)}.map-popup{display:grid;gap:6px;font-size:12px}.map-popup .mp-title{font-family:var(--m74-display);font-size:15px;font-weight:700;line-height:1.2}.map-popup .mp-short{color:var(--m74-accent);font-weight:700}.map-popup .mp-id{color:var(--m74-muted);font-family:ui-monospace,monospace;font-size:11px}.map-popup .mp-badges{display:flex;flex-wrap:wrap;gap:4px}.map-popup .mp-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:999px;border:1px solid var(--m74-border);color:var(--m74-muted)}.map-popup .mp-badge.mp-ok{color:var(--m74-ok);border-color:color-mix(in srgb,var(--m74-ok) 45%,var(--m74-border))}.map-popup .mp-badge.mp-accent{color:var(--m74-accent);border-color:color-mix(in srgb,var(--m74-accent) 45%,var(--m74-border))}.map-popup .mp-meta{display:grid;gap:3px;color:var(--m74-muted)}.map-popup .mp-meta b{color:var(--m74-ink);font-weight:600}.hero-home{min-height:calc(100dvh - 160px);display:grid;align-content:center;gap:18px;padding-bottom:24px}.hero-home h1{font-family:var(--m74-display);font-size:clamp(3rem,14vw,5.5rem);margin:0;line-height:.9;letter-spacing:-.02em;text-transform:lowercase}.hero-home h1 em{font-style:normal;color:var(--m74-accent)}.hero-tag{max-width:360px;font-size:1.05rem;line-height:1.4;margin:0}.hero-home .cta-row{display:grid;gap:10px}.hero-home .cta-row a,.hero-home .cta-row button{width:100%}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid var(--m74-border);font-size:12px;white-space:nowrap}.dot{width:8px;height:8px;border-radius:50%;background:var(--m74-muted);flex:0 0 auto}.dot.ready{background:var(--m74-ok)}.dot.connecting,.dot.picking{background:var(--m74-warn)}.dot.error{background:var(--m74-danger)}.cap-note{font-size:13px;color:var(--m74-muted);margin:0}.cap-bad{color:var(--m74-warn)}.page-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.page-head h2{margin:0;font-family:var(--m74-display);font-size:clamp(1.25rem,4vw,1.6rem)}@media(min-width:860px){.tabbar{display:none}.nav-desktop{display:flex}.main{padding:20px 20px 28px;width:min(760px,100%)}.composer{bottom:16px}.chat-feed{max-height:min(58dvh,640px)}.hero-home .cta-row{display:flex;flex-wrap:wrap}.hero-home .cta-row a,.hero-home .cta-row button{width:auto}.row.actions>*{flex:0 1 auto}.row.actions button,.row.actions a{width:auto}.icon-btn.mobile-only{display:none}}@media(max-width:859px){.status-pill .status-text{max-width:9rem;overflow:hidden;text-overflow:ellipsis}.topbar .nav-desktop{display:none}.captcha-row{grid-template-columns:1fr}}
