:root{color-scheme:dark;--color-bg: #121315;--color-surface: #1c1e21;--color-surface-raised: #26292d;--color-border: #34383d;--color-text: #ecebe7;--color-text-muted: #9a9ea5;--color-accent: #f2c230;--color-accent-hover: #f7d257;--color-accent-contrast: #121315;--color-success: #7fc28a;--color-danger: #e5736b;--radius-s: 8px;--radius-m: 12px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--tap-size: 44px;--tab-bar-height: 56px;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font-family:var(--font-sans);line-height:1.5;color:var(--color-text);background:var(--color-bg);-webkit-text-size-adjust:100%}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--color-bg)}h1,h2,p,ul{margin:0}h2{font-size:1.0625rem}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.screen,.app{min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.screen{padding:max(var(--space-6),env(safe-area-inset-top)) max(var(--space-4),env(safe-area-inset-right)) max(var(--space-6),env(safe-area-inset-bottom)) max(var(--space-4),env(safe-area-inset-left))}.screen-centered{display:grid;place-items:center}.app{display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.app-title{flex:1;font-size:1.125rem}.app-main{flex:1;display:grid;place-items:center;padding:var(--space-6) var(--space-4)}.app-main-top{place-items:start center}.stack{display:flex;flex-direction:column;gap:var(--space-4);width:min(100%,26rem)}.card{width:min(100%,26rem);padding:var(--space-6);border-radius:var(--radius-m);background:var(--color-surface)}.stack>.card{width:100%}.empty-state{text-align:center}.empty-state h2{margin-bottom:var(--space-2)}.brand{font-size:1.25rem;font-weight:700}.brand:before{content:"";display:inline-block;width:.5em;height:.5em;margin-right:var(--space-2);border-radius:50%;background:var(--color-accent);vertical-align:middle}.muted{color:var(--color-text-muted)}.small{font-size:.875rem}.error{color:var(--color-danger)}.notice{color:var(--color-success)}.toast{position:fixed;inset-inline:var(--space-4);bottom:calc(var(--space-4) + env(safe-area-inset-bottom));padding:var(--space-3) var(--space-4);border-radius:var(--radius-s);background:var(--color-surface-raised)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.form{display:flex;flex-direction:column;gap:var(--space-4)}.card>.form,.card>.error{margin-top:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-1);font-size:.875rem;color:var(--color-text-muted)}input{min-height:var(--tap-size);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-s);background:var(--color-bg);color:var(--color-text);font:inherit;font-size:1rem}input:focus-visible{border-color:var(--color-accent);outline:none}.input-code{font-variant-numeric:tabular-nums;letter-spacing:.2em;text-transform:uppercase}.form-actions{display:flex;justify-content:space-between;gap:var(--space-2)}.button{min-height:var(--tap-size);padding:var(--space-2) var(--space-4);border:1px solid transparent;border-radius:var(--radius-s);font:inherit;font-weight:600;cursor:pointer}.button:disabled{opacity:.5;cursor:default}.button-primary{background:var(--color-accent);color:var(--color-accent-contrast)}.button-primary:hover:not(:disabled){background:var(--color-accent-hover)}.button-secondary{border-color:var(--color-border);background:var(--color-surface-raised);color:var(--color-text)}.button-link{padding-inline:0;background:none;color:var(--color-accent);font-weight:500}.button-icon{min-width:var(--tap-size);padding:0;background:var(--color-surface-raised);color:var(--color-text);font-size:1.25rem}.members{padding-left:var(--space-4)}.invite{display:flex;flex-direction:column;gap:var(--space-3)}.invite-code{font-size:1.75rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.1em;color:var(--color-accent)}.token-list{padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-3)}.token-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.token-value{overflow-wrap:anywhere;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.875rem;-webkit-user-select:all;user-select:all}.import-toggles{display:flex;gap:var(--space-4)}.import-list{display:flex;flex-direction:column;gap:var(--space-2);padding:0;list-style:none}.import-list li:empty{display:none}.import-choice{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.import-choice input[type=checkbox]{flex:none;width:1.25rem;height:1.25rem;margin-top:2px;accent-color:var(--color-accent)}.import-text{display:flex;flex:1;flex-direction:column;gap:2px}a.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.button-danger{background:var(--color-danger);color:var(--color-accent-contrast)}select,textarea{min-height:var(--tap-size);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-s);background:var(--color-bg);color:var(--color-text);font:inherit;font-size:1rem}textarea{resize:vertical}select:focus-visible,textarea:focus-visible{border-color:var(--color-accent);outline:none}.stack-wide{width:min(100%,36rem);padding-bottom:calc(var(--tap-size) + var(--space-8))}.link-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.attribution{font-size:.75rem;color:var(--color-text-muted);text-align:center}.fab{position:fixed;right:max(var(--space-4),env(safe-area-inset-right));bottom:calc(var(--tab-bar-height) + env(safe-area-inset-bottom) + var(--space-4));box-shadow:0 6px 20px #00000073}.app-with-tabs{padding-bottom:calc(var(--tab-bar-height) + env(safe-area-inset-bottom))}.app-with-tabs .app-main-top{padding-bottom:calc(var(--tap-size) + var(--space-8))}.tab-bar{position:fixed;inset-inline:0;bottom:0;z-index:10;display:grid;grid-auto-columns:1fr;grid-auto-flow:column;height:calc(var(--tab-bar-height) + env(safe-area-inset-bottom));padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border-top:1px solid var(--color-border);background:var(--color-surface)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--color-text-muted);font-size:.75rem;font-weight:600;text-decoration:none}.tab-icon{font-size:1.125rem;line-height:1}.tab[aria-current=page]{color:var(--color-accent)}.filters{display:flex;flex-direction:column;gap:var(--space-2)}.segmented{display:grid;grid-template-columns:repeat(3,1fr);padding:var(--space-1);border-radius:var(--radius-s);background:var(--color-surface)}.segmented-option{min-height:36px;border:0;border-radius:6px;background:none;color:var(--color-text-muted);font:inherit;font-weight:600;cursor:pointer}.segmented-option[aria-pressed=true]{background:var(--color-surface-raised);color:var(--color-accent)}.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.select-field select{width:100%;font-size:.875rem}.entry-list{display:flex;flex-direction:column;gap:var(--space-2);padding:0;list-style:none}.entry-card{display:flex;flex-direction:column;gap:2px;width:100%;padding:var(--space-3) var(--space-4);border:1px solid transparent;border-radius:var(--radius-m);background:var(--color-surface);color:var(--color-text);font:inherit;text-align:left;text-decoration:none;cursor:pointer}.entry-card:hover{border-color:var(--color-border)}.entry-title{display:flex;align-items:center;gap:var(--space-2);font-weight:600}.entry-name{min-width:0}.entry-distance{margin-left:auto;color:var(--color-accent);font-size:.875rem;font-weight:600;white-space:nowrap}.entry-meta{font-size:.875rem;color:var(--color-text-muted)}.badge{padding:0 var(--space-2);border-radius:999px;background:var(--color-surface-raised);color:var(--color-text-muted);font-size:.75rem;font-weight:500}.rating-line{font-size:.9375rem}.rating-star{color:var(--color-accent)}.empty-filter{text-align:center}.detail{display:flex;flex-direction:column;gap:var(--space-2)}.detail-title{font-size:1.375rem}.detail .link-row{margin-top:var(--space-2)}summary{cursor:pointer;color:var(--color-accent)}.opening-hours{margin-top:var(--space-2);padding-left:var(--space-4);color:var(--color-text-muted)}.app-map{height:100dvh}.map-area{position:relative;flex:1;min-height:0}.map-area>.map{position:absolute;inset:0;background:#14161a}.map-overlay{position:absolute;inset-inline:var(--space-3);z-index:2;display:flex;flex-direction:column;gap:var(--space-2);margin-inline:auto;max-width:26rem;pointer-events:none}.map-overlay>*{pointer-events:auto}.map-overlay-top{top:var(--space-3)}.map-overlay-top .segmented,.map-overlay-top select{box-shadow:0 4px 14px #0006}.map-overlay-bottom{bottom:calc(var(--space-3) + 32px)}.map-note{align-self:center;padding:var(--space-1) var(--space-3);border-radius:999px;background:#121315d9;color:var(--color-text-muted);font-size:.8125rem}.map-note.error{color:var(--color-danger)}.map-card{border-color:var(--color-border);box-shadow:0 8px 24px #0000007f}.map-card-attribution{margin-top:var(--space-1);text-align:left}.pin{display:grid;place-items:end center;width:var(--tap-size);height:var(--tap-size);padding:0 0 4px;border:0;background:none;cursor:pointer}.pin-shape{width:22px;height:22px;border:2px solid #121315;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 6px #0000007f;transition:width .12s,height .12s}.pin-open .pin-shape{background:var(--color-accent)}.pin-visited .pin-shape{background:#8b9098}.pin-selected{z-index:1}.pin-selected .pin-shape{width:30px;height:30px;border-color:var(--color-text)}.map-area .maplibregl-ctrl-attrib.maplibregl-compact{background-color:var(--color-surface-raised);color:var(--color-text-muted)}.map-area .maplibregl-ctrl-attrib-button{background-color:transparent;filter:invert(1)}.map-area .maplibregl-ctrl-attrib a{color:var(--color-text-muted)}.segmented-compact{grid-template-columns:repeat(2,auto)}.segmented-compact .segmented-option{min-height:32px;padding:0 var(--space-3)}.nearby-controls{display:flex;justify-content:center;padding:var(--space-3) var(--space-4) 0}.nearby-controls .filters{width:min(100%,26rem)}.app-map .nearby-controls{padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.radius-field{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-1) var(--space-1) 0;font-size:.875rem;color:var(--color-text-muted)}.radius-label strong{color:var(--color-text)}.radius-field input[type=range]{width:100%;min-height:var(--tap-size);margin:0;accent-color:var(--color-accent)}.location-line{font-size:.8125rem;text-align:center}.text-button{padding:0;border:0;background:none;color:var(--color-accent);font:inherit;cursor:pointer}.map-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.user-location{width:16px;height:16px;border:3px solid var(--color-text);border-radius:50%;background:#3a8ee6;box-shadow:0 0 0 8px #3a8ee640;pointer-events:none}.pin-with-badge{width:auto;min-width:var(--tap-size);padding:0 0 6px}.pin-badge{padding:2px 7px;border:2px solid #121315;border-radius:999px;background:var(--color-surface-raised);color:var(--color-text);font-size:.75rem;font-weight:700;line-height:1.3;white-space:nowrap;box-shadow:0 2px 6px #0000007f}.pin-badge:before{content:"★ ";color:var(--color-accent)}.pin-listed .pin-badge{background:var(--color-accent);color:var(--color-accent-contrast)}.pin-listed .pin-badge:before{color:inherit}.pin-selected .pin-badge{border-color:var(--color-text);transform:scale(1.15)}.search-here{align-self:center;box-shadow:0 4px 14px #0006}.discover-card{cursor:default}.discover-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.discover-actions .button{flex:1}.suggestion{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--color-accent);border-radius:var(--radius-m);background:var(--color-surface)}.suggestion-label{color:var(--color-accent);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.suggestion-body{display:flex;flex-direction:column;gap:2px;color:var(--color-text);text-decoration:none}.suggestion-name{font-size:1.25rem;font-weight:700}.suggestion-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.suggestion-actions .button{flex:1;font-size:.875rem}.notice{padding:var(--space-3) var(--space-4);border:1px solid var(--color-accent);font-size:.9375rem}.card .entry-card{background:var(--color-surface-raised)}
