@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");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-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");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-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");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-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");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-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");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-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,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 Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_3c557b{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_3c557b{--font-jb-mono:"JetBrains Mono","JetBrains Mono Fallback"}:root{--color-bg:#09090b;--color-bg-elevated:#0f0f11;--color-surface:#141416;--color-surface-hover:#1a1a1d;--color-border:#1f1f23;--color-border-strong:#2a2a2e;--color-accent:#22d3b0;--color-accent-hover:#2ee7c4;--color-accent-muted:rgba(34,211,176,0.08);--color-accent-glow:rgba(34,211,176,0.12);--color-on-accent:#0a0a0b;--color-text:#fafafa;--color-text-secondary:#d4d4d8;--color-text-muted:#a1a1aa;--color-danger:#f43f5e;--color-danger-muted:rgba(244,63,94,0.1);--color-success:#22c55e;--color-success-muted:rgba(34,197,94,0.1);--font-sans:"Aeonik",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:var(--font-jb-mono,"JetBrains Mono"),ui-monospace,monospace;--text-hero:1.375rem;--text-display:1.25rem;--text-title:1.125rem;--text-heading:1rem;--text-body:0.9375rem;--text-small:0.8125rem;--text-caption:0.75rem;--text-overline:0.6875rem;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.6;--tracking-tight:-0.02em;--tracking-wide:0.02em;--tracking-wider:0.06em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-xs:3px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--radius-pill:9999px;--shadow-xs:0 1px 2px rgba(0,0,0,0.25);--shadow-sm:0 2px 6px rgba(0,0,0,0.3);--shadow-md:0 4px 12px rgba(0,0,0,0.35);--shadow-lg:0 8px 24px rgba(0,0,0,0.4);--shadow-glow:0 0 0 1px rgba(34,211,176,0.15);--header-height:56px;--mobile-nav-height:56px;--touch-target:44px;--content-max:720px;--gutter:var(--space-4);--gutter-mobile:var(--space-3);--input-height:36px;--button-height-sm:32px;--button-height-md:36px;--map-min-height:200px;--search-field-max:26.25rem;--icon-xs:14px;--icon-sm:18px;--icon-md:20px;--icon-lg:24px;--icon-xl:32px;--logo-height:24px;--logo-height-mobile:20px;--ease-out:cubic-bezier(0.16,1,0.3,1);--duration-fast:150ms;--duration-normal:200ms;--bg:var(--color-bg);--surface:var(--color-surface);--border:var(--color-border);--accent:var(--color-accent);--accent-dim:var(--color-accent-muted);--accent-glow:var(--color-accent-glow);--text-primary:var(--color-text);--text-secondary:var(--color-text-secondary);--text-tertiary:var(--color-text-muted);--danger:var(--color-danger);--danger-dim:var(--color-danger-muted);--surface-hover:var(--color-surface-hover);--border-hover:var(--color-border-strong);--radius-sm:var(--radius-sm);--radius-md:var(--radius-md);--radius-lg:var(--radius-lg);--radius-pill:var(--radius-pill);--shadow-sm:var(--shadow-sm);--shadow-md:var(--shadow-md);--shadow-lg:var(--shadow-lg);--shadow-glow:var(--shadow-glow);--header-height:var(--header-height);--mobile-nav-height:var(--mobile-nav-height);--touch-min:var(--touch-target)}.text-hero{font-size:var(--text-hero)}.text-display,.text-hero{font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text)}.text-display{font-size:var(--text-display)}.text-title{font-size:var(--text-title);line-height:var(--leading-tight)}.text-heading,.text-title{font-weight:600;color:var(--color-text)}.text-heading{font-size:var(--text-heading)}.text-body,.text-heading{line-height:var(--leading-normal)}.text-body{font-size:var(--text-body);color:var(--color-text)}.text-small{font-size:var(--text-small);color:var(--color-text-secondary)}.text-caption,.text-small{line-height:var(--leading-normal)}.text-caption{font-size:var(--text-caption)}.text-caption,.text-overline{color:var(--color-text-muted)}.text-overline{font-size:var(--text-overline);font-weight:600;letter-spacing:var(--tracking-wider);text-transform:uppercase}*{margin:0;padding:0;box-sizing:border-box;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}html{height:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;touch-action:manipulation}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}body{color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--leading-normal);overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.app-shell,body{background:var(--color-bg);height:100vh;height:100dvh}.app-shell{min-height:-webkit-fill-available;display:flex;flex-direction:column;position:relative;overflow-x:hidden}.app-loading{align-items:center;justify-content:center;gap:var(--space-4)}.loading-screen{animation:loading-screen-in .2s ease-out}@keyframes loading-screen-in{0%{opacity:0}to{opacity:1}}.loading-screen-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-5)}.loading-screen-logo{opacity:.95}.loading-screen-logo img{width:8.75rem;height:auto;display:block}.loading-spinner{width:var(--icon-xl);height:var(--icon-xl);border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite}.loading-text{font-size:var(--text-small);color:var(--color-text-muted)}.map-loading,.map-view-wrap{height:100%;min-height:var(--map-min-height);width:100%;background:var(--color-bg)}.map-view-wrap{flex:1 1;min-height:0;-webkit-overflow-scrolling:touch}.map-container-fill{height:100%;width:100%;background:var(--color-bg)}.feed-loading{padding:var(--space-5);color:var(--color-text-secondary)}.heavy-loading{position:fixed;top:0;left:0;right:0;z-index:3000;pointer-events:none;display:flex;flex-direction:column;align-items:center}.heavy-loading-bar{height:3px;width:100%;background:var(--color-border);overflow:hidden}.heavy-loading-bar:after{content:"";display:block;height:100%;width:40%;background:var(--color-accent);animation:heavy-loading-shimmer 1.2s ease-in-out infinite}@keyframes heavy-loading-shimmer{0%{transform:translateX(-100%)}to{transform:translateX(350%)}}.heavy-loading-message{position:absolute;top:calc(var(--header-height) + var(--space-2));left:50%;transform:translateX(-50%);font-size:var(--text-caption);font-weight:500;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);box-shadow:var(--shadow-md);white-space:nowrap}.heavy-loading-message,.offline-banner{padding:var(--space-2) var(--space-4);color:var(--color-text)}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:2500;font-size:var(--text-small);text-align:center;background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border-strong);padding-top:calc(var(--space-2) + env(safe-area-inset-top))}.app-header{height:var(--header-height);border-bottom:1px solid var(--color-border-strong);padding:0 var(--space-5) 0 var(--space-6);justify-content:space-between;z-index:2000;background:var(--color-bg);flex-shrink:0}.app-header,.header-left{display:flex;align-items:center}.header-left{gap:var(--space-6);flex:1 1;min-width:0}.first-time-hint{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.first-time-hint-text{margin:0;font-size:var(--text-small);line-height:var(--leading-normal);color:var(--color-text-secondary);flex:1 1;min-width:0}.first-time-hint-dismiss{flex-shrink:0;padding:var(--space-2) var(--space-4);font-size:var(--text-caption);font-weight:600;color:var(--color-accent);background:none;border:none;cursor:pointer;border-radius:var(--radius-sm);transition:background var(--duration-fast)}.first-time-hint-dismiss:hover{background:var(--color-accent-muted)}.logo{display:flex;align-items:center;text-decoration:none;flex-shrink:0;transition:opacity var(--duration-normal)}.logo:hover{opacity:.9}.logo-img{height:var(--logo-height);width:auto;display:block;object-fit:contain}.nav-pills{display:flex;gap:0}.nav-pill{padding:var(--space-2) var(--space-4);font-size:var(--text-small);font-weight:500;background:none;color:var(--color-text-muted);cursor:pointer;transition:color var(--duration-fast),background var(--duration-fast);border:none;border-bottom:2px solid transparent;margin-bottom:-2px;letter-spacing:var(--tracking-tight)}.nav-pill:hover{color:var(--color-text-secondary)}.nav-pill.active{color:var(--color-text);border-bottom-color:var(--color-accent);font-weight:600}.search-wrap{position:relative;display:flex;align-items:center;gap:var(--space-2);flex:0 1 var(--search-field-max);max-width:100%;margin-left:var(--space-2)}.search-field-wrap{position:relative;flex:1 1;min-width:0}.btn-location{flex-shrink:0;width:var(--input-height);height:var(--input-height);display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:color var(--duration-fast),border-color var(--duration-fast)}.btn-location:hover:not(:disabled){color:var(--color-accent);border-color:var(--color-border-strong)}.btn-location:disabled{cursor:wait;opacity:.8}.btn-location-spinner{width:var(--icon-xs);height:var(--icon-xs);border:2px solid var(--color-border-strong);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.location-menu-wrap{position:relative;flex-shrink:0}.location-menu-dropdown{position:absolute;top:calc(100% + var(--space-2));left:0;z-index:3000;min-width:12.5rem;max-height:min(17.5rem,50vh);overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-1);display:flex;flex-direction:column;gap:var(--space-1)}.location-menu-item{width:100%;padding:var(--space-2) var(--space-3);text-align:left;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-small);cursor:pointer;transition:background var(--duration-fast)}.location-menu-item:hover{background:var(--color-surface-hover);color:var(--color-text)}.search-icon{position:absolute;left:var(--icon-xs);top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.search-input{width:100%;height:var(--input-height);padding:0 var(--space-3) 0 var(--input-height);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-small);outline:none;transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.search-input::placeholder{color:var(--color-text-muted)}.search-input:focus{border-color:var(--color-border-strong);box-shadow:var(--shadow-glow)}.search-busy{position:absolute;right:var(--icon-xs);top:50%;transform:translateY(-50%);font-size:var(--text-overline);color:var(--color-text-muted)}.search-dropdown{position:absolute;top:calc(100% + var(--space-2));left:0;right:0;width:100%;max-width:min(26.25rem,calc(100vw - 2 * var(--gutter)));background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);z-index:3000;box-shadow:var(--shadow-md);overflow-x:hidden;overflow-y:auto;max-height:min(20rem,60vh);-webkit-overflow-scrolling:touch}.search-dropdown-item{width:100%;padding:var(--space-3) var(--space-4);text-align:left;background:none;border:none;border-bottom:1px solid var(--color-border);cursor:pointer;display:flex;flex-direction:column;gap:var(--space-1);transition:background var(--duration-fast)}.search-dropdown-item:last-child{border-bottom:none}.search-dropdown-item:hover{background:var(--color-surface-hover)}.search-dropdown-load-more{width:100%;padding:var(--space-3) var(--space-4);text-align:center;font-size:var(--text-small);color:var(--color-accent);background:none;border:none;border-top:1px solid var(--color-border);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.search-dropdown-load-more:hover:not(:disabled){background:var(--color-surface-hover)}.search-dropdown-load-more:disabled{cursor:wait;opacity:.8}.search-dropdown-name{font-weight:600;font-size:var(--text-small);color:var(--color-text)}.search-dropdown-meta{font-size:var(--text-caption);color:var(--color-text-muted)}.search-dropdown-empty{padding:var(--space-3) var(--space-4);text-align:center;color:var(--color-text-muted)}.search-dropdown-loading{display:inline-block;width:var(--icon-xs);height:var(--icon-xs);margin-right:var(--space-2);vertical-align:middle;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite}.header-right{gap:var(--space-5);margin-left:var(--space-4)}.header-right,.node-badge{display:flex;align-items:center}.node-badge{gap:var(--space-2);font-size:var(--text-overline);font-weight:500;color:var(--color-text-secondary);max-width:10rem;min-width:0}.node-badge-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pulse-dot{width:var(--space-1);height:var(--space-1);border-radius:50%;background:var(--color-text-muted);transition:background var(--duration-fast)}.pulse-dot.live{background:var(--color-accent)}.node-count-wrap{position:relative}.node-count-trigger{background:none;border:none;cursor:pointer;padding:var(--space-1) 0;font:inherit;color:inherit}.node-count,.node-count-trigger:hover .node-count{color:var(--color-text-secondary)}.node-count{font-size:var(--text-overline);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.node-count-local{color:var(--color-text-muted);opacity:.9;font-size:.95em}.nodes-popover{position:absolute;top:calc(100% + var(--space-2));left:0;min-width:15rem;max-width:20rem;max-height:17.5rem;overflow:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:3000;padding:var(--space-2)}.nodes-popover-title{font-size:var(--text-overline);font-weight:600;color:var(--color-text-muted);margin-bottom:var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--color-border)}.nodes-popover-empty{font-size:var(--text-caption);color:var(--color-text-muted)}.nodes-popover-list{list-style:none}.nodes-popover-item{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);font-size:var(--text-caption);display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);align-items:baseline}.nodes-popover-item:last-child{border-bottom:none}.nodes-popover-user-btn{background:none;border:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;text-align:left}.nodes-popover-user-btn:hover .nodes-popover-name{color:var(--color-accent)}.nodes-popover-name{font-weight:500;color:var(--color-text)}.nodes-popover-username{color:var(--color-text-muted)}.nodes-popover-id{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.nodes-popover-cafe,.nodes-popover-id{color:var(--color-text-muted);font-size:.9em}.nodes-popover-cafe{width:100%}.btn-header{height:var(--button-height-md);padding:0 var(--space-4);font-size:var(--text-caption)}.app-body{overflow:hidden}.app-body,.main-content{flex:1 1;display:flex;position:relative;min-height:0}.main-content{flex-direction:column;min-width:0}.main-content>div:first-child{flex:1 1;min-height:var(--map-min-height)}.floating-location-btn{position:absolute;bottom:var(--gutter);right:var(--gutter);z-index:1000;width:var(--touch-target);height:var(--touch-target);display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:50%;color:var(--color-text-secondary);cursor:pointer;box-shadow:var(--shadow-md);transition:color var(--duration-fast),border-color var(--duration-fast),background var(--duration-fast);-webkit-tap-highlight-color:transparent}.floating-location-btn:hover:not(:disabled){color:var(--color-accent);border-color:var(--color-border-strong);background:var(--color-surface-hover)}.floating-location-btn:disabled{cursor:wait;opacity:.9}.floating-location-btn-spinner{width:var(--icon-sm);height:var(--icon-sm);border:2px solid var(--color-border-strong);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite}.floating-card{position:absolute;z-index:1000;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.card-select-location{top:var(--space-5);left:50%;transform:translateX(-50%);width:min(21.25rem,90vw);padding:var(--space-5) var(--space-6);position:relative}.card-select-dismiss{position:absolute;top:var(--space-3);right:var(--space-3);width:var(--icon-xl);height:var(--icon-xl);display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);font-size:var(--text-display);line-height:1;cursor:pointer;border-radius:var(--radius-sm);transition:color var(--duration-fast),background var(--duration-fast)}.card-select-dismiss:hover{color:var(--color-text);background:var(--color-surface-hover)}.card-select-location .card-title{margin-bottom:var(--space-2);padding-right:var(--icon-xl);font-size:var(--text-title);font-weight:600;line-height:var(--leading-tight);color:var(--color-text)}.card-select-people{margin-bottom:var(--space-2)}.card-select-hint,.card-select-people{font-size:var(--text-caption);color:var(--color-text-muted)}.card-select-hint{margin:0 0 var(--space-4);line-height:var(--leading-normal);max-width:17.5rem}.card-actions-inline{display:flex;flex-wrap:wrap;gap:var(--space-3)}.card-actions-inline .btn-primary{flex:1 1;min-width:6.25rem}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-caption)}.card-live-bar{bottom:var(--space-5);left:50%;transform:translateX(-50%);width:min(25rem,90vw);padding:var(--space-4) var(--space-5);display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);border-color:var(--color-border-strong)}.card-live-bar .live-info{flex:1 1}.card-live-bar .live-info,.card-live-bar .live-info>div{min-width:0;overflow:hidden}.card-live-bar .live-cafe{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-bar-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.btn-share-location{display:inline-flex;align-items:center;gap:var(--space-1);height:var(--button-height-sm);min-height:var(--button-height-sm);padding:0 var(--space-3);font-size:var(--text-caption);font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:color var(--duration-fast),border-color var(--duration-fast),background var(--duration-fast)}.btn-share-location:hover{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-surface-hover)}.btn-share-icon{flex-shrink:0}.btn-share-label{white-space:nowrap}.card-location-prompt{top:var(--space-5);left:50%;transform:translateX(-50%);width:min(18.75rem,90vw);padding:var(--space-5)}.card-location-prompt-text{font-size:var(--text-body);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.card-location-prompt-actions{display:flex;flex-direction:column;gap:var(--space-2)}.card-label{font-size:var(--text-overline);font-weight:600;letter-spacing:var(--tracking-wider);color:var(--color-text-muted);margin-bottom:var(--space-2)}.card-title{font-size:var(--text-title);font-weight:600;line-height:var(--leading-tight);margin-bottom:var(--space-3);color:var(--color-text)}.card-actions{display:flex;flex-direction:column;gap:var(--space-3)}.card-active-nodes{margin-bottom:var(--space-3);font-size:var(--text-caption)}.card-active-nodes-label{font-weight:600;color:var(--color-text-muted)}.card-active-nodes-list{margin:var(--space-1) 0 0;padding-left:var(--space-4);color:var(--color-text-secondary)}.card-active-node-link{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.card-active-node-link:hover{color:var(--color-accent)}.card-hint{font-size:var(--text-caption);color:var(--color-text-muted);margin-bottom:var(--space-1);text-align:center}.live-info{display:flex;align-items:center;gap:var(--space-3)}.live-dot{width:var(--space-2);height:var(--space-2);border-radius:50%;background:var(--color-accent)}.live-label{display:block;font-size:var(--text-overline);font-weight:600;letter-spacing:var(--tracking-wider);color:var(--color-accent);margin-bottom:var(--space-1)}.live-cafe{font-size:var(--text-heading);font-weight:600;color:var(--color-text)}.live-others{display:block;font-size:var(--text-overline);font-weight:400;color:var(--color-text-muted);margin-top:var(--space-1)}.live-others-link{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:1px}.live-others-link:hover{color:var(--color-accent)}.btn-danger-sm{height:var(--button-height-sm);padding:0 var(--space-4);font-size:var(--text-caption);font-weight:500;background:transparent;border:1px solid var(--color-danger);color:var(--color-danger);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-normal),color var(--duration-normal)}.btn-danger-sm:hover{background:var(--color-danger-muted)}.map-empty-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:auto;z-index:10;padding:var(--space-6)}.map-empty-text{font-size:var(--text-small);color:var(--color-text-secondary);max-width:17.5rem;margin:0 auto}.map-empty-location{margin-top:var(--space-5)}.map-empty-error{margin-top:var(--space-3);font-size:var(--text-caption);color:var(--color-danger)}.map-empty-icon{width:3.5rem;height:3.5rem;margin:0 auto var(--space-6);opacity:.5;color:var(--color-accent)}.map-empty-icon svg{width:100%;height:100%}.map-empty-state h2,.map-empty-title{font-size:var(--text-hero);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text);margin-bottom:var(--space-3)}.map-empty-state p{font-size:var(--text-body);line-height:var(--leading-relaxed);color:var(--color-text-secondary);max-width:18.75rem;margin:0 auto var(--space-5)}.map-empty-state p:last-of-type{margin-bottom:0}.sidebar-tagline{margin:0 0 var(--space-4);max-width:17.5rem;color:var(--color-text-muted)}.sidebar{width:17.5rem;max-width:32vw;border-left:1px solid var(--color-border);padding:var(--space-5) var(--space-4);display:flex;flex-direction:column;gap:var(--space-6);background:var(--color-bg-elevated);flex-shrink:0;overflow-y:auto}.sidebar-heading{font-size:var(--text-overline);font-weight:700;letter-spacing:.1em;color:var(--color-text-muted);text-transform:uppercase;margin-bottom:var(--space-3)}.sidebar-section{flex-shrink:0}.sidebar-identity{display:flex;flex-direction:column;gap:var(--space-1)}.sidebar-meta{font-size:var(--text-overline);color:var(--color-text-muted);font-weight:500}.sidebar-name{font-size:var(--text-body);font-weight:500;color:var(--color-text)}.sidebar-cta p,.sidebar-email{font-size:var(--text-caption);color:var(--color-text-muted)}.sidebar-cta p{margin-bottom:var(--space-3);line-height:var(--leading-normal)}.sidebar-cta.compact{margin-bottom:0}.sidebar-sign-in-link{display:inline-block;font-size:var(--text-caption);font-weight:500;color:var(--color-accent);background:none;border:none;padding:0;cursor:pointer;text-decoration:none;transition:color var(--duration-normal)}.sidebar-sign-in-link:hover{color:var(--color-accent-hover)}.sidebar-node .sidebar-cta .btn-sm{height:var(--input-height);font-size:var(--text-caption)}.stream-row{display:flex;flex-direction:column;gap:var(--space-1)}.stream-row-top{display:flex;justify-content:space-between;align-items:baseline;font-weight:500;color:var(--color-text-secondary)}.stream-loc{font-family:var(--font-mono)}.stream-action,.stream-loc{font-size:var(--text-overline);color:var(--color-text-muted)}.stream-action{font-weight:600}.stream-row-highlight .stream-row-top span:first-child{color:var(--color-text)}.stream-row-highlight .stream-action{color:var(--color-accent)}.stream-waiting{font-size:var(--text-caption);color:var(--color-text-muted);font-style:italic}.sidebar-footer{margin-top:auto;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.sidebar-communities-hint{font-size:var(--text-overline);color:var(--color-text-muted);margin-bottom:var(--space-3);line-height:var(--leading-normal)}.sidebar-locations-empty{color:var(--color-text-muted);margin:0 0 var(--space-2);padding:var(--space-2) 0}.communities-list{display:flex;flex-direction:column;gap:var(--space-4)}.communities-area{display:flex;flex-direction:column;gap:var(--space-2)}.communities-area-label{font-size:var(--text-overline);font-weight:700;letter-spacing:var(--tracking-wider);color:var(--color-text-muted);text-transform:uppercase}.communities-cafe{display:block;width:100%;padding:var(--space-2) var(--space-3);text-align:left;font-size:var(--text-caption);font-weight:500;color:var(--color-text-secondary);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.communities-cafe:hover{background:var(--color-surface-hover);color:var(--color-text)}.communities-cafe.active{color:var(--color-accent);background:var(--color-accent-muted)}.sidebar-footer p{font-size:var(--text-caption);color:var(--color-text-secondary);line-height:var(--leading-normal)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;background:var(--color-accent);color:var(--color-on-accent);border:none;padding:var(--space-2) var(--space-5);min-height:var(--touch-target);border-radius:var(--radius-sm);font-size:var(--text-small);font-weight:600;cursor:pointer;transition:background var(--duration-fast),transform var(--duration-fast);letter-spacing:var(--tracking-tight)}.btn-primary:hover{background:var(--color-accent-hover)}.btn-primary:active{transform:scale(.98)}.btn-primary:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn-block{width:100%}.btn-block,.btn-ghost{min-height:var(--touch-target)}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-small);font-weight:500;cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast),color var(--duration-fast)}.btn-ghost:hover{background:var(--color-surface-hover);border-color:var(--color-border-strong);color:var(--color-text)}.btn-text{border:none;background:none;color:var(--color-text-muted);font-size:var(--text-caption);cursor:pointer;padding:var(--space-1) 0;transition:color var(--duration-fast)}.btn-text:hover{color:var(--color-text-secondary)}.panel{border:1px solid var(--color-border);border-radius:var(--radius-lg)}.input-minimal,.panel{background:var(--color-surface)}.input-minimal{border:1px solid var(--color-border);color:var(--color-text);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-small);outline:none;transition:border-color var(--duration-fast)}.input-minimal:focus{border-color:var(--color-border-strong)}.btn-minimal{background:var(--color-accent);color:var(--color-on-accent);border:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-caption);font-weight:600;cursor:pointer;transition:opacity var(--duration-fast)}.btn-minimal:hover{opacity:.9}.btn-border{background:transparent;border:1px solid var(--color-border);color:var(--color-text);padding:var(--space-2) var(--space-4);min-height:var(--touch-target);border-radius:var(--radius-sm);font-size:var(--text-small);font-weight:500;cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast)}.btn-border:hover{background:var(--color-surface-hover);border-color:var(--color-border-strong)}.user-menu-wrap{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:var(--space-2);height:var(--input-height);padding:0 var(--space-3);font-size:var(--text-caption);font-weight:500;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--duration-normal) var(--ease-out),background var(--duration-normal) var(--ease-out)}.user-menu-trigger:hover{border-color:var(--color-border-strong);background:var(--color-surface-hover)}.user-menu-dot{width:var(--space-2);height:var(--space-2);border-radius:50%;background:var(--color-accent);flex-shrink:0}.user-menu-dropdown{position:absolute;top:calc(100% + var(--space-2));right:0;min-width:12.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:3000;overflow:hidden}.user-menu-dropdown-email{padding:var(--space-2) var(--space-3);font-size:var(--text-overline);color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.user-menu-dropdown-item{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-caption);color:var(--color-text-secondary);background:none;border:none;cursor:pointer;text-align:left;transition:background var(--duration-fast)}.user-menu-dropdown-item:hover{background:var(--color-surface-hover)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:5000;padding:var(--space-6);overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-content{width:100%;max-width:26.25rem;max-height:calc(100vh - var(--space-12));max-height:calc(100dvh - var(--space-12));overflow-y:auto;padding:var(--space-8);background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);position:relative;margin:auto}.modal-close{position:absolute;top:var(--space-3);right:var(--space-3);width:var(--icon-xl);height:var(--icon-xl);display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);font-size:var(--text-display);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--duration-fast),background var(--duration-fast)}.modal-close:hover{color:var(--color-text);background:var(--color-surface-hover)}.form-field{margin-bottom:var(--space-5)}.form-field label{display:block;font-size:var(--text-caption);font-weight:500;color:var(--color-text-secondary)}.form-field label,.form-field label.text-overline{margin-bottom:var(--space-2)}.form-actions{display:flex;gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap}.form-error{font-size:var(--text-caption);color:var(--color-danger);margin-top:var(--space-2)}.modal-title{margin-bottom:var(--space-5)}.modal-form{display:flex;flex-direction:column;gap:var(--space-4)}.input-full{width:100%}.input-resize-vertical{resize:vertical}.profile-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:5000;padding:var(--space-6)}.profile-modal{width:90%;max-width:31.25rem;max-height:80vh;overflow-y:auto;padding:var(--space-8);position:relative}.profile-modal-close{position:absolute;top:var(--space-4);right:var(--space-4);background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:var(--text-title);line-height:1;transition:color var(--duration-fast)}.profile-modal-close:hover,.profile-modal-title{color:var(--color-text)}.profile-modal-title{font-size:var(--text-title);font-weight:600;margin-bottom:var(--space-6);text-align:center}.profile-modal-message{font-size:var(--text-overline);padding:var(--space-2);border-radius:var(--radius-sm);margin-bottom:var(--space-4)}.profile-modal-message.error{color:var(--color-danger);background:var(--color-danger-muted);border:1px solid rgba(244,63,94,.25)}.profile-modal-message.success{color:var(--color-success);background:var(--color-success-muted);border:1px solid rgba(34,197,94,.25)}.profile-modal-form{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-8)}.profile-modal-form:last-of-type{margin-bottom:0}.profile-modal-section-title{font-size:var(--text-body);font-weight:600;color:var(--color-text-secondary)}.profile-modal-label{font-weight:600;display:block;margin-bottom:var(--space-1)}.profile-modal-hint,.profile-modal-label{font-size:var(--text-overline);color:var(--color-text-muted)}.profile-modal-hint{margin-top:var(--space-1)}.profile-modal-input-full{width:100%}.profile-modal-input-muted{opacity:.8}.profile-modal-submit{width:100%;min-height:var(--touch-target)}.error-boundary,.not-found-wrap{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:max(var(--space-6),env(safe-area-inset-top)) var(--space-6) max(var(--space-6),env(safe-area-inset-bottom));background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);text-align:center}.not-found-wrap{padding-bottom:calc(var(--space-6) + var(--mobile-nav-height) + env(safe-area-inset-bottom))}.error-boundary h1,.not-found-wrap h1{font-size:var(--text-hero);font-weight:600;line-height:var(--leading-tight);margin-bottom:var(--space-3);color:var(--color-text)}.error-boundary p,.not-found-wrap p{font-size:var(--text-body);color:var(--color-text-muted);margin-bottom:var(--space-6);max-width:20rem}.error-boundary .btn-group,.not-found-wrap .btn-group{display:flex;gap:var(--space-3);flex-wrap:wrap;justify-content:center}::-webkit-scrollbar{width:var(--space-1);height:var(--space-1)}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}@media (max-width:1024px){.sidebar{width:16.25rem;padding:var(--space-5) var(--space-4)}.feed-reddit .feed-header{padding-left:var(--space-4);padding-right:var(--space-4)}.feed-community-row{gap:var(--space-3)}}@media (max-width:768px){.hide-mobile{display:none!important}.show-mobile{display:flex!important}.app-shell{padding-bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom))}.app-header{padding:0 var(--gutter-mobile) 0 var(--space-4);min-height:var(--touch-target);height:auto;flex-wrap:wrap;gap:var(--space-2);padding-bottom:var(--space-3)}.header-left{flex:1 1 100%;gap:var(--space-3);order:1}.header-left .logo-img{height:var(--logo-height-mobile)}.nav-pills{margin-left:0;padding:var(--space-1)}.nav-pill{padding:var(--space-2) var(--space-3);font-size:var(--text-caption);min-height:var(--touch-target)}.search-wrap{margin-left:0;flex:1 1;min-width:0}.btn-location{width:var(--touch-target);height:var(--touch-target);min-width:var(--touch-target)}.btn-location,.search-input{min-height:var(--touch-target)}.search-input{font-size:16px}.header-right.show-mobile{display:flex!important;order:2;flex:0 0 auto;gap:var(--space-3);margin-left:0}.header-right.show-mobile .node-badge{display:none}.header-right.show-mobile .node-count-trigger{min-height:var(--touch-target);padding:0 var(--space-2);margin:0 calc(-1 * var(--space-2))}.header-right.show-mobile .nodes-popover{left:0;right:auto;max-width:min(20rem,calc(100vw - 2 * var(--gutter)));max-height:min(17.5rem,50vh)}.header-right.show-mobile .btn-header{min-height:var(--touch-target);padding:0 var(--space-4)}.app-body{flex:1 1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.main-content{flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.floating-card,.panel{border-radius:var(--radius-md);border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);margin-left:var(--gutter-mobile);margin-right:var(--gutter-mobile);max-width:calc(100% - 2 * var(--gutter-mobile))}.card-location-prompt,.card-select-location{top:var(--gutter-mobile);width:calc(100% - 2 * var(--gutter-mobile));left:var(--gutter-mobile);right:var(--gutter-mobile);transform:none}.floating-location-btn{width:var(--touch-target);height:var(--touch-target);min-width:var(--touch-target);min-height:var(--touch-target)}.card-live-bar,.floating-location-btn{bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom) + var(--gutter-mobile));right:var(--gutter-mobile)}.card-live-bar{left:var(--gutter-mobile);width:auto;transform:none;flex-wrap:nowrap;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.btn-share-location{height:auto;padding:var(--space-3) var(--gutter-mobile)}.btn-danger-sm,.btn-share-location{min-height:var(--touch-target)}.map-empty-state h2{font-size:var(--text-heading)}.map-empty-state p{font-size:var(--text-caption)}.feed-toolbar{padding:var(--space-3) var(--gutter-mobile);gap:var(--space-2)}.feed-sort button{padding:var(--space-2) var(--space-3);min-height:var(--touch-target)}.feed-filter{max-width:none;flex:1 1;min-height:var(--touch-target)}.feed-list{padding:var(--gutter-mobile)}.feed-new-post{margin-left:0;width:100%;min-height:var(--touch-target)}.feed-reddit .feed-header{padding:0 var(--gutter-mobile) var(--space-3)}.feed-community-row{gap:var(--space-2);row-gap:var(--space-3)}.feed-community-pills{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;-webkit-overflow-scrolling:touch}.feed-community-pill{padding:var(--space-2) var(--space-3);font-size:var(--text-small)}.feed-community-pill,.feed-create-post{flex-shrink:0;min-height:var(--touch-target)}.feed-sort-tab{padding:var(--space-3) var(--gutter-mobile);font-size:var(--text-small)}.feed-reddit .feed-list{padding:var(--space-2) 0}.post-card-reddit{margin:0 var(--gutter-mobile) var(--space-2);padding:var(--space-3) var(--gutter-mobile)}.post-card-votes-reddit button{min-width:var(--input-height);min-height:var(--input-height)}.post-card-title-reddit{font-size:var(--text-body)}.post-card{padding:var(--space-4) var(--space-4);margin-bottom:var(--space-3)}.post-card-inner{gap:var(--space-3)}.post-card-title{font-size:var(--text-body)}.post-card-excerpt{font-size:var(--text-caption)}.post-card-votes button{min-width:var(--touch-target);min-height:var(--touch-target)}.auth-modal{margin:var(--gutter-mobile);padding:var(--space-6) var(--space-5);max-height:calc(100vh - 2 * var(--gutter-mobile));max-height:calc(100dvh - 2 * var(--gutter-mobile));overflow-y:auto}.auth-modal-backdrop{padding:var(--gutter-mobile);align-items:flex-start;padding-top:max(var(--gutter-mobile),env(safe-area-inset-top))}}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--color-bg);border-top:1px solid var(--color-border);z-index:1800}@media (max-width:768px){.mobile-bottom-nav{display:flex;align-items:center;justify-content:space-around;padding:var(--space-2) var(--space-2) env(safe-area-inset-bottom)}.mobile-nav-btn{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);min-height:var(--touch-target);padding:var(--space-2) var(--space-1);background:none;border:none;color:var(--color-text-muted);font-size:var(--text-overline);font-weight:500;cursor:pointer;transition:color var(--duration-fast);-webkit-tap-highlight-color:transparent}.mobile-nav-btn:focus,.mobile-nav-btn:hover{color:var(--color-text)}.mobile-nav-btn.active{color:var(--color-accent)}.mobile-nav-btn svg{width:var(--icon-md);height:var(--icon-md);flex-shrink:0}}.mobile-drawer{display:none}.mobile-drawer-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:4000;opacity:0;transition:opacity .2s}.mobile-drawer-backdrop.open{display:block;opacity:1}@media (max-width:768px){.mobile-drawer{position:fixed;bottom:0;left:0;right:0;max-height:75vh;max-height:75dvh;background:var(--color-surface);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);border:1px solid var(--color-border);border-bottom:none;z-index:4001;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -20px 48px rgba(0,0,0,.4)}.mobile-drawer.open{display:flex}.mobile-drawer-handle{width:var(--input-height);height:var(--space-1);border-radius:var(--radius-xs);background:var(--color-border);margin:var(--space-3) auto var(--space-4);flex-shrink:0}.mobile-drawer-content{flex:1 1;overflow-y:auto;padding:0 var(--space-5) var(--space-6);-webkit-overflow-scrolling:touch}.mobile-drawer .sidebar-heading{margin-top:var(--space-2)}.mobile-drawer .communities-cafe{min-height:var(--touch-target);padding:var(--gutter-mobile) var(--space-3)}}.post-detail-wrap{min-height:100vh;min-height:100dvh;background:var(--color-bg);padding:max(var(--space-6),env(safe-area-inset-top)) max(var(--space-6),env(safe-area-inset-right)) max(var(--space-6),env(safe-area-inset-bottom)) max(var(--space-6),env(safe-area-inset-left))}@media (max-width:768px){.post-detail-wrap{padding:var(--space-4);padding-bottom:calc(var(--space-4) + var(--mobile-nav-height) + env(safe-area-inset-bottom))}}.post-detail-inner{max-width:var(--content-max);margin:0 auto}.post-detail-nav{margin-bottom:var(--space-4);display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center}.post-detail-nav-link{font-size:var(--text-caption);color:var(--color-accent)}.post-detail-nav-link.muted{color:var(--color-text-muted)}.post-detail-panel{padding:var(--space-6);margin-bottom:var(--space-6)}.post-detail-row{display:flex;gap:var(--space-4)}.post-detail-votes{display:flex;flex-direction:column;align-items:center;min-width:var(--input-height)}.post-detail-vote-btn{background:none;border:none;padding:var(--space-1);cursor:pointer;color:var(--color-text-muted);transition:color var(--duration-fast)}.post-detail-vote-btn.active,.post-detail-vote-btn:hover{color:var(--color-accent)}.post-detail-vote-score{font-size:var(--text-body);font-weight:600}.post-detail-body{flex:1 1;min-width:0}.post-detail-title{font-size:var(--text-display);font-weight:600;margin-bottom:var(--space-2);color:var(--color-text)}.post-detail-meta{font-size:var(--text-caption);color:var(--color-text-muted);margin-bottom:var(--space-4)}.post-detail-meta a{color:var(--color-accent);font-weight:600}.post-detail-content{font-size:var(--text-body);line-height:var(--leading-relaxed);white-space:pre-wrap;color:var(--color-text)}.post-detail-comments-title{font-size:var(--text-small);font-weight:600;margin-bottom:var(--space-3);color:var(--color-text)}.post-detail-comment-form{margin-bottom:var(--space-6)}.post-detail-comment-form .input-minimal{width:100%;resize:vertical;margin-bottom:var(--space-2)}.post-detail-comment-error{color:var(--color-danger);font-size:var(--text-caption);margin-bottom:var(--space-2)}.post-detail-signin-prompt{margin-bottom:var(--space-6);padding:var(--space-4);background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border)}.post-detail-signin-prompt p{font-size:var(--text-small);color:var(--color-text-secondary);margin-bottom:var(--space-3)}.post-detail-comments-list{border-top:1px solid var(--color-border);padding-top:var(--space-4)}.post-detail-comments-empty{color:var(--color-text-muted);font-size:var(--text-small)}.post-detail-message{margin-bottom:var(--space-4);color:var(--color-text-secondary)}.comment-row{margin-left:0;margin-bottom:var(--space-3)}.comment-row.nested{margin-left:var(--space-6)}.comment-row-inner{display:flex;gap:var(--space-2);align-items:flex-start}.comment-votes{display:flex;flex-direction:column;align-items:center;min-width:var(--space-8)}.comment-vote-btn{background:none;border:none;padding:var(--space-1);cursor:pointer;color:var(--color-text-muted);transition:color var(--duration-fast)}.comment-vote-btn.active,.comment-vote-btn:hover{color:var(--color-accent)}.comment-vote-score{font-size:var(--text-overline);font-weight:600}.comment-body-wrap{flex:1 1;min-width:0}.comment-meta{font-size:var(--text-overline);color:var(--color-text-muted);margin-bottom:var(--space-1)}.comment-text{font-size:var(--text-small);line-height:var(--leading-normal);color:var(--color-text)}.comment-actions{margin-top:var(--space-2)}.comment-reply-btn{background:none;border:none;color:var(--color-accent);font-size:var(--text-caption);cursor:pointer}.comment-reply-form{margin-top:var(--space-2)}.comment-reply-form .input-minimal{width:100%;resize:vertical;margin-bottom:var(--space-2);font-size:var(--text-caption)}.comment-reply-actions{display:flex;gap:var(--space-2)}.btn-caption{font-size:var(--text-caption)}@media (max-width:480px){.app-header{padding-left:var(--space-3);padding-right:var(--space-3)}.nav-pill{padding:var(--space-2) var(--space-3);font-size:var(--text-overline)}.card-live-bar,.card-select-location{margin-left:var(--space-3);margin-right:var(--space-3);max-width:calc(100% - 2 * var(--space-3))}.feed-toolbar{flex-direction:column;align-items:stretch}.feed-sort{justify-content:center}.feed-community-row{flex-wrap:wrap}.feed-community-pill{padding:var(--space-2) var(--space-3);font-size:var(--text-caption)}.feed-create-post{width:100%;justify-content:center}}@media (max-width:380px){.app-header{padding-left:var(--space-2);padding-right:var(--space-2)}.header-left .logo-img{height:var(--icon-sm)}.nav-pill{padding:var(--space-2) var(--space-2);font-size:var(--text-overline)}.card-live-bar{padding:var(--space-2) var(--space-3);margin-left:var(--space-2);margin-right:var(--space-2);max-width:calc(100% - 2 * var(--space-2))}.btn-share-location:not(.copied) .btn-share-label{display:none}.live-label{font-size:var(--text-overline)}.live-cafe{font-size:var(--text-caption)}.card-select-location{margin-left:var(--space-2);margin-right:var(--space-2);max-width:calc(100% - 2 * var(--space-2));padding:var(--space-4)}.feed-community-pill{min-height:var(--touch-target);padding:var(--space-2) var(--space-3);font-size:var(--text-overline)}.feed-reddit .feed-header{padding:0 var(--space-2) var(--space-2)}.feed-sort-tab{padding:var(--space-2) var(--space-3);font-size:var(--text-caption)}.post-card-reddit{margin-left:var(--space-2);margin-right:var(--space-2);padding:var(--space-3) var(--space-4)}}@media (min-width:1200px){.feed-list,.feed.feed-reddit{max-width:680px;margin:0 auto}}@media (max-height:500px){.auth-modal-backdrop{align-items:flex-start;padding:var(--space-3);overflow-y:auto}.auth-modal{max-height:calc(100vh - var(--space-6));overflow-y:auto}}.leaflet-container{background:var(--color-bg)!important;font-family:var(--font-sans)!important}.leaflet-popup-content-wrapper{background:var(--color-bg-elevated)!important;color:var(--color-text)!important;border:1px solid var(--color-border-strong)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-lg)!important}.leaflet-popup-tip{background:var(--color-bg-elevated)!important;border:1px solid var(--color-border-strong)!important}.leaflet-popup-content{margin:var(--space-4)!important;font-size:var(--text-small)}.map-popup-inner{color:var(--color-text)}.map-popup-label{font-size:var(--text-overline);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--color-text-muted);margin-bottom:var(--space-1)}.map-popup-title{font-size:var(--text-small);font-weight:600;margin-bottom:var(--space-2);letter-spacing:var(--tracking-tight);color:var(--color-text)}.map-popup-meta{font-size:var(--text-overline);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.map-popup-meta ul{margin:var(--space-2) 0 0;padding-left:var(--space-4)}.map-popup-meta li{margin-bottom:var(--space-1)}.map-popup-user-btn{background:none;border:none;padding:0;color:inherit;cursor:pointer;text-align:left;font-size:inherit}.map-popup-user-btn:hover{color:var(--color-accent)}.map-popup-intent{opacity:.8;font-size:var(--text-overline)}.map-popup-disconnect{width:100%;border-color:var(--color-danger)!important;color:var(--color-danger)!important}.map-popup-disconnect:hover{background:var(--color-danger-muted)!important}.map-popup-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-2);gap:var(--space-2)}.pro-marker{pointer-events:auto!important;cursor:pointer;display:flex;align-items:center;justify-content:center}.pro-marker-dot{pointer-events:none}@keyframes node-dot-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.85}}.pro-marker-pulse .pro-marker-dot{animation:node-dot-pulse 1.4s ease-in-out infinite}.auth-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:5000;padding:var(--space-5)}.auth-modal{width:100%;max-width:23.75rem;padding:var(--space-8) var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);position:relative}.auth-modal-close{position:absolute;top:var(--space-4);right:var(--space-4);background:none;border:none;color:var(--color-text-muted);font-size:var(--text-title);line-height:1;cursor:pointer;padding:var(--space-1);transition:color var(--duration-normal)}.auth-modal-close:hover,.auth-modal-title{color:var(--color-text)}.auth-modal-title{font-size:var(--text-title);font-weight:600;line-height:var(--leading-tight);text-align:center;margin-bottom:var(--space-2)}.auth-modal-subtitle{text-align:center;margin-bottom:var(--space-6);color:var(--color-text-muted)}.auth-google-btn,.auth-modal-divider{margin-bottom:var(--space-5)}.auth-modal-divider{text-align:center;font-size:var(--text-overline);font-weight:600;letter-spacing:var(--tracking-wider);color:var(--color-text-muted)}.auth-form{display:flex;flex-direction:column;gap:var(--space-4)}.auth-field label{display:block}.auth-field label,.auth-field label.text-overline{margin-bottom:var(--space-1)}.auth-field .input-minimal{width:100%}.auth-error{font-size:var(--text-caption);color:var(--color-danger);padding:var(--space-3) var(--space-3);background:var(--color-danger-muted);border:1px solid rgba(244,63,94,.25);border-radius:var(--radius-sm)}.auth-toggle{text-align:center;margin-top:var(--space-6)}.auth-toggle-btn{background:none;border:none;color:var(--color-text-secondary);font-size:var(--text-small);cursor:pointer;padding:4px;transition:color .2s}.auth-toggle-btn:hover{color:var(--color-accent)}.notification-prompt{position:fixed;bottom:calc(var(--mobile-nav-height, 0) + var(--space-4));left:var(--space-4);right:var(--space-4);max-width:420px;margin:0 auto;padding:var(--space-4) var(--space-10) var(--space-4) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:3500}@media (min-width:769px){.notification-prompt{bottom:var(--space-6);left:var(--space-6);right:auto}}.notification-prompt-text{font-size:var(--text-small);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-3)}.notification-prompt-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.notification-prompt-allow,.notification-prompt-dismiss{padding:var(--space-2) var(--space-3);font-size:var(--text-caption)}.notification-prompt-close{position:absolute;top:var(--space-3);right:var(--space-3);background:none;border:none;color:var(--color-text-muted);font-size:1.25rem;line-height:1;cursor:pointer;padding:var(--space-1);transition:color var(--duration-normal)}.notification-prompt-close:hover{color:var(--color-text)}.feed-toolbar{padding:14px 20px;border-bottom:1px solid var(--color-border);display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:rgba(26,26,28,.6)}.feed-sort{display:flex;gap:4px;padding:4px;background:var(--color-surface);border-radius:var(--radius-pill);border:1px solid var(--color-border)}.feed-sort button{padding:6px 12px;font-size:12px;font-weight:500;border:none;background:transparent;color:var(--color-text-secondary);border-radius:var(--radius-pill);cursor:pointer;transition:background .2s,color .2s}.feed-sort button:hover{color:var(--color-text);background:var(--color-surface-hover)}.feed-sort button.active{background:var(--color-accent);color:var(--color-on-accent)}.feed-filter{max-width:200px;font-size:12px}.feed-new-post{margin-left:auto;font-size:12px}.feed-list{flex:1 1;overflow:auto;-webkit-overflow-scrolling:touch;padding:20px}.feed-empty{color:var(--color-text-secondary);font-size:var(--text-body);line-height:var(--leading-relaxed);text-align:center;padding:var(--space-12) var(--space-6)}.feed-empty-heading{font-size:var(--text-hero);font-weight:600;color:var(--color-text);margin-bottom:var(--space-3);letter-spacing:var(--tracking-tight)}.feed-empty-body{font-size:var(--text-body);line-height:var(--leading-relaxed);color:var(--color-text-muted);max-width:20rem;margin:0 auto}.feed-load-more-btn{margin-top:var(--space-3)}.post-card{padding:var(--space-4) var(--space-5);margin-bottom:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--duration-normal),box-shadow var(--duration-normal)}.post-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.post-card-inner{display:flex;gap:var(--space-4)}.post-card-votes{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);min-width:var(--space-10)}.post-card-votes button{background:none;border:none;padding:var(--space-1);cursor:pointer;color:var(--color-text-muted);transition:color var(--duration-normal)}.post-card-votes button.active,.post-card-votes button:hover:not(:disabled){color:var(--color-accent)}.post-card-votes button:disabled{cursor:default;opacity:.6}.post-card-score{font-size:var(--text-small);font-weight:600;color:var(--color-text-secondary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.post-card-body{flex:1 1;min-width:0}.post-card-title{font-size:var(--text-heading);font-weight:600;line-height:var(--leading-tight);margin-bottom:var(--space-2);color:var(--color-text);text-decoration:none;display:block;transition:color var(--duration-normal)}.post-card-title:hover{color:var(--color-accent)}.post-card-excerpt{font-size:var(--text-small);color:var(--color-text-secondary);margin-bottom:var(--space-2);line-height:var(--leading-relaxed)}.post-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:0 var(--space-1);font-size:var(--text-caption);color:var(--color-text-muted)}.post-card-meta span:not(:last-child):after{content:" · ";margin-left:var(--space-1);color:var(--color-text-muted);pointer-events:none}.feed.feed-reddit{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--color-bg)}.feed-reddit .feed-header{padding:0 var(--space-5) var(--space-4);border-bottom:1px solid var(--color-border-strong);background:var(--color-bg);flex-shrink:0}.feed-sort-tabs{display:flex;gap:0;margin-bottom:var(--space-4)}.feed-sort-tab{padding:var(--space-1) var(--space-4);font-size:var(--text-small);font-weight:500;color:var(--color-text-muted);background:none;border:none;border-bottom:1px solid transparent;margin-bottom:-1px;cursor:pointer;transition:color var(--duration-fast),border-color var(--duration-fast);letter-spacing:var(--tracking-tight)}.feed-sort-tab.active,.feed-sort-tab:hover{color:var(--color-text)}.feed-sort-tab.active{font-weight:600;border-bottom-color:var(--color-accent)}.feed-community-search-wrap{position:relative;display:inline-flex;align-items:center;max-width:12.5rem}.feed-community-search{width:100%;font-size:var(--text-small);padding:var(--space-1) var(--space-3);padding-right:var(--space-8);border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-text);outline:none;transition:border-color var(--duration-fast)}.feed-community-search::placeholder{color:var(--color-text-muted)}.feed-community-search:focus{border-color:var(--color-accent)}.feed-community-search-clear{position:absolute;right:var(--space-1);top:50%;transform:translateY(-50%);width:var(--icon-lg);height:var(--icon-lg);display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--color-text-muted);cursor:pointer;font-size:var(--text-heading);line-height:1;border-radius:var(--radius-sm)}.feed-community-search-clear:hover{color:var(--color-text);background:var(--color-bg-elevated)}.feed-community-no-match{font-size:var(--text-small);color:var(--color-text-muted);font-style:italic}.feed-community-row{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.feed-subreddit{font-size:var(--text-small);font-weight:600;color:var(--color-text-secondary);letter-spacing:var(--tracking-tight)}.feed-subreddit-link{background:none;border:none;padding:0;cursor:pointer;font:inherit}.feed-subreddit-link:hover{color:var(--color-accent)}.feed-community-pills{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;min-width:0;flex:1 1;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.feed-community-pill{font-size:var(--text-small);font-weight:500;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.feed-community-pill:hover{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.feed-community-pill.active{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent)}.feed-community-more-wrap{position:relative;flex-shrink:0}.feed-community-more-dropdown{position:absolute;top:calc(100% + var(--space-2));left:0;z-index:100;min-width:11.25rem;max-height:15rem;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.feed-community-more-item{text-align:left;font-size:var(--text-small);font-weight:500;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:none;background:none;color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feed-community-more-item:hover{background:var(--color-bg-elevated);color:var(--color-text)}.feed-community-more-item.active{background:var(--color-accent-muted);color:var(--color-accent)}.feed-clear-community{font-size:var(--text-caption);color:var(--color-text-muted);background:none;border:none;cursor:pointer;padding:var(--space-1) var(--space-2)}.feed-clear-community:hover{color:var(--color-text)}.feed-create-post{margin-left:auto;font-size:var(--text-caption);padding:var(--space-2) var(--space-4)}.feed-reddit .feed-list{flex:1 1;overflow:auto;-webkit-overflow-scrolling:touch;padding:0}.post-card-reddit{display:flex;gap:var(--space-5);padding:var(--space-5) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-bg);transition:background var(--duration-fast)}.post-card-reddit:hover{background:var(--color-bg-elevated)}.post-card-votes-reddit{display:flex;flex-direction:column;align-items:center;gap:0;flex-shrink:0;padding-top:2px}.post-card-votes-reddit button{background:none;border:none;padding:2px;cursor:pointer;color:var(--color-text-muted);line-height:0;transition:color var(--duration-fast)}.post-card-votes-reddit button:hover:not(:disabled){color:var(--color-text)}.post-card-votes-reddit button.active{color:var(--color-accent)}.post-card-votes-reddit button:disabled{cursor:default;opacity:.4}.post-card-score-reddit{font-size:var(--text-caption);font-weight:600;color:var(--color-text-secondary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:20px;text-align:center}.post-card-content-reddit{flex:1 1;min-width:0}.post-card-meta-reddit{font-size:var(--text-caption);color:var(--color-text-muted);margin-bottom:var(--space-1);display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-1)}.post-card-sub,.post-card-sub-static{font-weight:500;color:var(--color-text-secondary)}.post-card-sub{background:none;border:none;padding:0;cursor:pointer;font-size:inherit}.post-card-sub:hover{color:var(--color-text)}.post-card-by,.post-card-by-link{color:var(--color-text-muted)}.post-card-by-link{background:none;border:none;padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.post-card-by-link:hover{color:var(--color-accent)}.post-card-meta-dot{margin:0 4px;opacity:.6}.post-card-meta-dot,.post-card-time{color:var(--color-text-muted)}.post-card-title-reddit{font-size:var(--text-heading);font-weight:600;line-height:1.35;color:var(--color-text);text-decoration:none;display:block;margin-bottom:var(--space-1);transition:color var(--duration-fast);letter-spacing:var(--tracking-tight)}.post-card-title-reddit:hover{color:var(--color-accent)}.post-card-excerpt-reddit{font-size:var(--text-small);color:var(--color-text-secondary);line-height:1.5;margin-bottom:var(--space-2)}.post-card-actions-reddit{display:flex;gap:var(--space-4);font-size:var(--text-caption)}.post-card-comments-link{color:var(--color-text-muted);text-decoration:none;padding:2px 0}.post-card-comments-link:hover{color:var(--color-text)}