:root{--bg: #f4f2ef;--surface: #ffffff;--surface-2: #f0ede9;--surface-raised: #ffffff;--text: #1a1714;--text-muted: #6c645c;--text-inverse: #ffffff;--border: #e2ddd6;--border-strong: #b8afa5;--accent: #14524a;--accent-text: #ffffff;--accent-soft: #e3efec;--focus: #0b6bcb;--danger: #9c2a1e;--danger-soft: #fbe9e6;--favourite: #c8365a;--overlay-scrim: rgba(12, 10, 8, .74);--ph-1: 88%;--ph-2: 72%;--energy-good: #2e7d4f;--energy-mid: #a97b12;--energy-poor: #9c4a1e;--value-good: #2e7d4f;--value-poor: #9c2a1e;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--r-xl: 24px;--r-pill: 999px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;--fs-2xs: 10px;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 15px;--fs-md: 17px;--fs-lg: 20px;--fs-xl: 26px;--lh-tight: 1.15;--lh-normal: 1.45;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--shadow-1: 0 1px 2px rgba(26, 23, 20, .07), 0 1px 1px rgba(26, 23, 20, .04);--shadow-2: 0 4px 14px rgba(26, 23, 20, .1), 0 1px 3px rgba(26, 23, 20, .06);--dur-fast: .12s;--dur-base: .2s;--ease: cubic-bezier(.32, .72, .28, 1);--col: min(100vw, 480px);--cat-1: #14524a;--cat-2: #a9560f;--cat-3: #2f5d9e;--cat-4: #7a3b6d;--cat-5: #4b6b1f;--tap: 44px;--safe-b: env(safe-area-inset-bottom, 0px);--tabbar-h: calc(var(--tap) + var(--sp-2) * 2 + var(--safe-b))}@media (prefers-color-scheme: dark){:root{--bg: #14120f;--surface: #1f1c19;--surface-2: #2a2621;--surface-raised: #262220;--text: #f2efea;--text-muted: #a49b91;--border: #35302b;--border-strong: #574f47;--accent: #6fc0ae;--accent-text: #0d211d;--accent-soft: #1d2f2b;--focus: #7fb2ff;--danger: #f08a7a;--danger-soft: #33201d;--favourite: #f0728f;--overlay-scrim: rgba(0, 0, 0, .8);--ph-1: 26%;--ph-2: 17%;--energy-good: #6cc38b;--energy-mid: #d8ac4a;--energy-poor: #e08a63;--value-good: #6cc38b;--value-poor: #f08a7a;--cat-1: #6fc0ae;--cat-2: #e0a86a;--cat-3: #8fb4e8;--cat-4: #d69cc8;--cat-5: #a8c777;--shadow-1: 0 1px 2px rgba(0, 0, 0, .5);--shadow-2: 0 4px 16px rgba(0, 0, 0, .55)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased}h1,h2,h3,p,dl,dt,dd,ul,figure{margin:0}ul{list-style:none;padding:0}button{font:inherit;color:inherit}a{color:var(--accent)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}:focus:not(:focus-visible){outline:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.app{width:var(--col);margin:0 auto;padding-bottom:calc(var(--sp-10) + var(--safe-b))}.skip-link{position:absolute;left:var(--sp-3);top:calc(-1 * var(--sp-12));z-index:100;padding:var(--sp-2) var(--sp-4);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);transition:top var(--dur-fast) var(--ease)}.skip-link:focus{top:var(--sp-3)}.browsebar{position:sticky;top:0;z-index:40;width:var(--col);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg);border-bottom:1px solid var(--border)}.appbar-nav{align-self:center;flex:none;width:var(--tap);height:var(--tap);display:grid;place-items:center;padding:0;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text);cursor:pointer}.appbar-nav-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.feed{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-4)}.card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);overflow:hidden;transition:box-shadow var(--dur-base) var(--ease)}.card:hover,.card:focus-within{box-shadow:var(--shadow-2)}.card-media{position:relative;aspect-ratio:4 / 3;background:linear-gradient(160deg,hsl(28 14% var(--ph-1)),hsl(28 12% var(--ph-2)));display:grid;place-items:center}.card-media:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,var(--overlay-scrim) 0%,transparent 52%)}.card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.card-media-note{position:relative;z-index:1;font-size:var(--fs-xs);color:var(--text-muted);background:var(--surface-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill)}.card-score{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:46px;padding:2px var(--sp-2);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-1);line-height:1.1}.card-score b{font-size:var(--fs-lg);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums}.card-score-scale{font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.card-score-good b{color:var(--value-good)}.card-score-mid b{color:var(--text)}.card-score-low b{color:var(--text-muted)}.card-badges{position:absolute;z-index:2;top:var(--sp-3);left:var(--sp-3);display:flex;gap:var(--sp-2);flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);background:var(--surface);color:var(--text);box-shadow:var(--shadow-1)}.badge-new{background:var(--accent);color:var(--accent-text)}.badge-withdrawn{background:var(--danger);color:var(--text-inverse)}.badge-dot{width:8px;height:8px;border-radius:50%;flex:none}.energy-good{background:var(--energy-good)}.energy-mid{background:var(--energy-mid)}.energy-poor{background:var(--energy-poor)}.energy-unknown{background:var(--border-strong)}.card-sources{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-sm)}.card-sources a{align-self:flex-start;min-height:var(--tap);display:inline-flex;align-items:center}.end-of-list{padding:var(--sp-2) var(--sp-4) var(--sp-8);text-align:center;font-size:var(--fs-sm);color:var(--text-muted)}.card-price{position:absolute;z-index:2;bottom:var(--sp-3);left:var(--sp-4);right:var(--sp-4);color:var(--text-inverse);font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:-.02em;line-height:var(--lh-tight);font-variant-numeric:tabular-nums;text-shadow:0 1px 8px rgba(0,0,0,.5)}.card-title{font-size:var(--fs-sm);color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-body{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.card-address{font-size:var(--fs-md);font-weight:var(--fw-semibold);letter-spacing:-.01em;line-height:var(--lh-tight)}.card-address a{color:inherit;text-decoration:none}.card-address a:hover{text-decoration:underline}.card-sub{font-size:var(--fs-sm);color:var(--text-muted)}.card-withdrawn{background:var(--danger-soft);color:var(--danger);font-size:var(--fs-sm);font-weight:var(--fw-medium);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md)}.metrics{display:grid;grid-template-columns:1.2fr 1fr .9fr;gap:var(--sp-2) var(--sp-3);padding:var(--sp-3) 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.metrics>div{min-width:0}.metrics dt{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-muted);white-space:nowrap}.metrics dd{font-size:var(--fs-base);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metrics dd.unknown{font-size:var(--fs-sm);font-weight:var(--fw-regular);color:var(--text-muted)}.metric-delta{display:block;font-size:var(--fs-xs);font-weight:var(--fw-medium);letter-spacing:0;white-space:normal}.delta-good{color:var(--value-good)}.delta-poor{color:var(--value-poor)}.transit{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-sm)}.transit-row{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.transit-mode{flex:none;width:4.2em;padding:1px var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-align:center;background:var(--accent-soft);color:var(--accent)}.transit-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transit-away{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}.card-facts{font-size:var(--fs-xs);color:var(--text-muted)}.card-energy{align-self:flex-start;margin:0}@keyframes shimmer{0%{background-position:-320px 0}to{background-position:320px 0}}.skeleton{background:linear-gradient(90deg,var(--surface-2) 0%,var(--surface) 50%,var(--surface-2) 100%) 0 0 / 640px 100% no-repeat,var(--surface-2);animation:shimmer 1.4s linear infinite;border-radius:var(--r-sm)}.skeleton-media{aspect-ratio:4 / 3;border-radius:0}.skeleton-line{height:13px;margin-bottom:var(--sp-2)}.state{margin:var(--sp-8) var(--sp-4);padding:var(--sp-8) var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);text-align:center}.state h2{font-size:var(--fs-md);font-weight:var(--fw-semibold);margin-bottom:var(--sp-2)}.state p{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:var(--sp-5)}.state-error{border-color:var(--danger);background:var(--danger-soft)}.state-error h2{color:var(--danger)}.button{min-height:var(--tap);padding:0 var(--sp-6);border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface-2);font-size:var(--fs-base);font-weight:var(--fw-medium);cursor:pointer}.button-primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.signin{min-height:100dvh;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:var(--sp-8);padding:var(--sp-6) var(--sp-6) calc(var(--sp-10) + var(--safe-b));text-align:center}.signin-intro{margin:auto 0;display:flex;flex-direction:column;align-items:center}.signin-mark{width:60px;height:60px;margin:0 auto var(--sp-5);border-radius:var(--r-lg);background:var(--accent);color:var(--accent-text);display:grid;place-items:center;font-size:var(--fs-lg);font-weight:var(--fw-bold)}.signin h1{font-size:var(--fs-lg);font-weight:var(--fw-semibold);margin-bottom:var(--sp-2)}.signin p{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:var(--sp-8);max-width:32ch}.signin-action{width:100%;max-width:360px}.signin-form{width:100%;max-width:360px;display:flex;flex-direction:column;gap:var(--sp-4);text-align:left}.field{display:flex;flex-direction:column;gap:var(--sp-2)}.field-label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text)}.field-input{font:inherit;font-size:16px;padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);box-sizing:border-box;width:100%}.field-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.field-error{margin-bottom:0;color:var(--danger);font-size:var(--fs-sm)}.signin-action[disabled]{opacity:.6;cursor:progress}.app-with-dock{padding-bottom:calc(var(--tabbar-h) + var(--safe-b))}.dock-view{display:flex;gap:var(--sp-1);padding:var(--sp-1);background:var(--surface-2);border-radius:var(--r-pill)}.dock-view button{min-height:40px;padding:0 var(--sp-3);border:none;border-radius:var(--r-pill);background:transparent;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer}.dock-view button[aria-current=true]{background:var(--accent);color:var(--accent-text)}.dock-view button:disabled{color:var(--text-muted);cursor:not-allowed}.dock-actions{display:flex;gap:var(--sp-2)}.dock-sort,.dock-filter{min-height:var(--tap);padding:0 var(--sp-4);border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface-2);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer}.dock-filter{display:inline-flex;align-items:center;gap:var(--sp-2);background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:var(--fw-semibold)}.dock-badge{min-width:20px;height:20px;padding:0 5px;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--accent-text);color:var(--accent);font-size:var(--fs-xs);font-weight:var(--fw-bold)}.card-fav{position:absolute;z-index:3;top:var(--sp-3);right:var(--sp-3)}.fav{display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text-muted);box-shadow:var(--shadow-1);cursor:pointer}.fav-heart{width:22px;height:22px;display:block}.fav-on{color:var(--favourite);border-color:var(--favourite)}.fav:disabled{opacity:.5;cursor:default}.fav[aria-busy=true]{opacity:.6}.fav-failed{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.fav-detail{flex:none;background:var(--surface-2)}.fav-ratings{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-2);margin:0;padding:0;list-style:none;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--favourite)}.fav-rating{display:inline-flex;align-items:baseline}.fav-rating+.fav-rating:before{content:"·";margin-right:var(--sp-2);color:var(--text-muted)}.fav-rating-visible{display:inline-flex;align-items:baseline;gap:var(--sp-1)}.fav-rating-stars{display:inline-flex;align-items:center;gap:1px;white-space:nowrap}.fav-rating-star{width:12px;height:12px;flex:none}.fav-error{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin:var(--sp-2) 0 0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--danger-soft);color:var(--danger);font-size:var(--fs-sm)}.fav-error button{flex:none;min-height:32px;padding:0 var(--sp-3);border:1px solid var(--danger);border-radius:var(--r-pill);background:transparent;color:var(--danger);font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer}.favbar{width:var(--col);margin:0 auto;padding:0 var(--sp-3) var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-1)}.favbar-seg{display:flex;gap:var(--sp-1);padding:var(--sp-1);background:var(--surface-2);border-radius:var(--r-pill)}.favbar-seg button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);min-height:36px;padding:0 var(--sp-2);border:none;border-radius:var(--r-pill);background:transparent;color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favbar-seg button[aria-current=true]{background:var(--favourite);color:var(--text-inverse)}.favbar-seg button:disabled{color:var(--text-muted);cursor:not-allowed}.favbar-count{min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--surface);color:var(--text);font-size:var(--fs-2xs);font-weight:var(--fw-bold)}.favbar-seg button[aria-current=true] .favbar-count{background:var(--text-inverse);color:var(--favourite)}.favbar-hint{font-size:var(--fs-xs);color:var(--text-muted);padding:0 var(--sp-2)}.dhead-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3)}.dhead-top h1{flex:1}.scrim{position:fixed;inset:0;z-index:70;background:#1a17147a}.sheet{position:fixed;z-index:71;left:0;right:0;bottom:0;width:var(--col);margin:0 auto;max-height:88vh;overflow-y:auto;background:var(--surface-raised);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:0 -8px 32px #1a17142e;padding:var(--sp-3) var(--sp-4) calc(var(--sp-6) + var(--safe-b))}.sheet-grip{width:40px;height:4px;border-radius:var(--r-pill);background:var(--border-strong);margin:0 auto var(--sp-4)}.sheet h2{font-size:var(--fs-md);font-weight:var(--fw-semibold);margin-bottom:var(--sp-4)}.field{margin:0 0 var(--sp-5);padding:0;border:0}.field>label,.field>legend{display:block;padding:0;font-size:var(--fs-sm);font-weight:var(--fw-medium);margin-bottom:var(--sp-2)}.input{width:100%;min-height:var(--tap);padding:0 var(--sp-3);font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md)}.pair{display:flex;align-items:center;gap:var(--sp-2)}.pair span{color:var(--text-muted)}.chips{display:flex;gap:var(--sp-2);flex-wrap:wrap}.chip{min-height:40px;padding:0 var(--sp-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);font-size:var(--fs-sm);cursor:pointer}.chip[aria-pressed=true]{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.radio{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--tap);font-size:var(--fs-base)}.sheet-actions{position:sticky;bottom:0;display:flex;gap:var(--sp-3);padding-top:var(--sp-4);background:linear-gradient(to top,var(--surface-raised) 72%,transparent)}.sheet-actions .button{flex:1;padding:0 var(--sp-4)}.map-wrap{position:relative;height:calc(100dvh - 8.5rem);min-height:320px}.map-wrap>.map-canvas{position:absolute;inset:0}.map-status{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-muted);text-align:center}.map-omitted{position:absolute;left:var(--sp-3);right:var(--sp-3);bottom:var(--sp-3);z-index:1;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-muted);text-align:center}.detail-map-wrap{position:relative;height:260px;min-height:220px;margin-top:var(--sp-3);border-radius:var(--r-md);overflow:hidden}.detail-map-wrap>.detail-map-canvas{position:absolute;inset:0}.detail-map-status{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-muted);text-align:center}.detail-map-fallback{margin-top:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);background:var(--surface-2);text-align:center}.detail-map-fallback-title{font-weight:var(--fw-semibold)}.detail-map-fallback-hint{margin-top:var(--sp-1);font-size:var(--fs-sm);color:var(--text-muted)}.detail{position:fixed;inset:0;z-index:60;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--bg)}.detail:focus{outline:none}.detail-inner{width:var(--col);margin:0 auto;padding-bottom:calc(var(--sp-12) + var(--safe-b))}.detail-state{display:flex;flex-direction:column;gap:var(--sp-4);padding-top:var(--sp-8)}.dbar{position:sticky;top:0;z-index:3;padding:var(--sp-2) var(--sp-3);background:var(--bg);border-bottom:1px solid var(--border)}.dback{min-height:var(--tap);display:inline-flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.dback-state{align-self:center}.dscore-total{margin:0 0 var(--sp-3);font-size:var(--fs-lg);font-variant-numeric:tabular-nums}.dscore-coverage{margin-top:var(--sp-3);padding-top:var(--sp-2);border-top:1px solid var(--border)}.dfold summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:44px}.dfold summary::-webkit-details-marker{display:none}.dfold summary:after{content:"";flex:none;width:8px;height:8px;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:rotate(45deg);transition:transform .12s ease}.dfold[open] summary:after{transform:rotate(-135deg)}.dfold summary h2{margin:0}.dhero{position:relative;aspect-ratio:4 / 3;background:linear-gradient(160deg,hsl(28 14% var(--ph-1)),hsl(28 12% var(--ph-2)));display:grid;place-items:center}.dhero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.dhero-note{position:relative;z-index:1;font-size:var(--fs-xs);color:var(--text-muted);background:var(--surface-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);text-align:center}.dhero-count{position:absolute;z-index:2;top:var(--sp-3);right:var(--sp-3);font-size:var(--fs-xs);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;background:var(--surface);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);box-shadow:var(--shadow-1)}.dhero-empty{aspect-ratio:16 / 7}.dhero-open{width:100%;border:0;padding:0;cursor:zoom-in;font:inherit;color:inherit}.dhero-open:focus-visible{outline-offset:-3px}.dfull{position:fixed;inset:0;z-index:40;background:#110f0e;display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);overscroll-behavior:contain}.dfull:focus{outline:none}.dfull-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-3) var(--sp-2)}.dfull-count{white-space:nowrap;font-size:var(--fs-sm);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;color:#edeae9}.dfull-zoomers,.dfull-pager{display:flex;gap:var(--sp-2)}.dfull-pager{margin-left:auto}.dfull-zoomer:disabled{opacity:.35;cursor:default}.dfull-zoomer{border:0;font-variant-numeric:tabular-nums;background:#ffffff24;color:#f6f5f4;font:inherit;font-size:var(--fs-md);min-width:44px;min-height:44px;border-radius:var(--r-pill);cursor:pointer;line-height:1}.dfull-zoomer:focus-visible,.dfull-close:focus-visible{outline:2px solid hsl(28 10% 96%);outline-offset:2px}.dfull-close{min-width:44px;font-size:var(--fs-lg);line-height:1;border:0;background:#ffffff24;color:#f6f5f4;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);min-height:44px;padding:0;border-radius:var(--r-pill);cursor:pointer}.dfull-track{display:flex;margin:0;padding:0;list-style:none;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:pan-x}.dfull-track[data-zoomed=true]{scroll-snap-type:none}.dfull-track li{flex:0 0 100%;scroll-snap-align:center;scroll-snap-stop:always;display:grid;place-items:center;min-width:0}.dfull-zoom{width:100%;height:100%;overflow:visible;overscroll-behavior:contain;touch-action:pan-x;scrollbar-width:none}.dfull-zoom::-webkit-scrollbar{display:none}.dfull-zoom[data-zoomed=true]{overflow:auto;touch-action:pan-x pan-y}.dfull-canvas{width:calc(100% * var(--zoom, 1));min-height:100%;display:grid;place-items:center}.dfull-zoom img{display:block}.dfull-zoom[data-zoomed=false] img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.dfull-zoom[data-zoomed=true] img{width:100%;height:auto;max-width:none;max-height:none}.dfull-caption{margin:0;padding:var(--sp-3) var(--sp-4) var(--sp-5);font-size:var(--fs-sm);color:#d6d1cd;text-align:center}.dstrip{display:flex;gap:var(--sp-2);overflow-x:auto;padding:var(--sp-3) var(--sp-4);scroll-snap-type:x mandatory;overscroll-behavior-x:contain}.dstrip li{flex:none;scroll-snap-align:start}.dthumb{width:104px;aspect-ratio:4 / 3;padding:var(--sp-1);border:1px solid var(--border);border-radius:var(--r-md);background:linear-gradient(160deg,hsl(28 14% var(--ph-1)),hsl(28 12% var(--ph-2)));display:grid;place-items:center;overflow:hidden;cursor:pointer}.dthumb[aria-current=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.dthumb img{width:100%;height:100%;object-fit:cover;border-radius:var(--r-sm)}.dthumb-note{font-size:var(--fs-2xs);color:var(--text-muted);text-align:center;overflow:hidden}.dhead{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-1)}.dhead h1{font-size:var(--fs-lg);font-weight:var(--fw-bold);letter-spacing:-.01em;line-height:var(--lh-tight)}.dsub{font-size:var(--fs-sm);color:var(--text-muted)}.dtitle{font-size:var(--fs-base);margin-top:var(--sp-1)}.dwithdrawn{margin:0 var(--sp-4) var(--sp-4);padding:var(--sp-3);border-radius:var(--r-md);background:var(--danger-soft);color:var(--danger);display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-sm)}.dblock{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);margin:0 var(--sp-4) var(--sp-4);padding:var(--sp-4)}.dblock>h2{font-size:var(--fs-base);font-weight:var(--fw-semibold);margin-bottom:var(--sp-3)}.dnote{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:var(--sp-2)}.dnote-inset{padding:0 var(--sp-4) var(--sp-2)}.drow{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-4);padding:var(--sp-2) 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm)}.drow:last-child{border-bottom:0;padding-bottom:0}.drow dt{color:var(--text-muted);flex:none}.drow dd{text-align:right;font-variant-numeric:tabular-nums}.unknown{color:var(--text-muted);font-style:italic}.dprov-field{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-xs);overflow-wrap:anywhere}.ddescription{margin-top:var(--sp-3);font-size:var(--fs-sm);line-height:var(--lh-normal);white-space:pre-line}.dsource-link{margin-top:var(--sp-3);font-size:var(--fs-sm)}.dsource-link a{min-height:var(--tap);display:inline-flex;align-items:center}.dplans{display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-3)}.dplan-open{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}.dplan-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dplan{width:100%;aspect-ratio:4 / 3;object-fit:contain;border-radius:var(--r-md);background:var(--surface-2)}.dplan-empty{display:grid;place-items:center}.drooms{display:flex;flex-direction:column}.drooms li{display:flex;align-items:baseline;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm)}.drooms li:last-child{border-bottom:0}.droom-name{overflow-wrap:anywhere}.drooms li.droom-outdoor{border-top:1px solid var(--border);margin-top:var(--sp-2)}.drooms li.droom-outdoor .droom-name{color:var(--text-muted)}.drooms li b{margin-left:auto;flex:none;font-variant-numeric:tabular-nums}.drooms li em{flex:none;min-width:76px;text-align:right;font-style:normal;font-size:var(--fs-xs);color:var(--text-muted)}.feed li{position:relative}.card-open{position:absolute;inset:0;z-index:1;border-radius:var(--r-lg)}.card-sources a{position:relative;z-index:2}.rate{display:inline-flex;align-items:center;gap:2px;background:var(--surface);border-radius:var(--r-pill);padding:2px var(--sp-1);box-shadow:var(--shadow-1);color:var(--text-muted)}.rate-star{display:grid;place-items:center;width:32px;height:32px;border:0;padding:0;background:none;color:inherit;cursor:pointer}.rate-star:disabled{cursor:default;opacity:.5}.rate-on{color:var(--text)}.rate-liked .rate-on,.rate-on.rate-liked{color:var(--favourite)}.rate-detail .rate-star{width:44px;height:44px}.rate-failed{outline:2px solid var(--value-poor, currentColor)}.rate-inherited{font-size:var(--fs-xs);color:var(--text-muted);cursor:help}.dashboard{position:fixed;inset:0;z-index:60;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--bg)}.dashboard-inner{width:min(100vw,960px);margin:0 auto;padding-bottom:calc(var(--sp-12) + var(--safe-b))}.dash-head{padding:var(--sp-4) var(--sp-4) 0}.dash-head h1{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.dash-meta{margin-top:var(--sp-1);font-size:var(--fs-sm);color:var(--text-muted);font-variant-numeric:tabular-nums}.dash-filters{padding:var(--sp-4) var(--sp-4) 0}.dash-filters .field:last-of-type{margin-bottom:var(--sp-3)}.dash-note{margin-top:var(--sp-2);font-size:var(--fs-xs);color:var(--text-muted)}.dash-stats{display:grid;grid-template-columns:1fr;gap:var(--sp-3);padding:var(--sp-4)}.dash-stat{padding:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.dash-stat-label{font-size:var(--fs-sm);color:var(--text-muted)}.dash-stat-value{font-size:var(--fs-xl);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.dash-plot{padding:var(--sp-4);margin:0 var(--sp-4) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.dash-plot h2,.dash-plot h3{font-size:var(--fs-base);font-weight:var(--fw-semibold);margin-bottom:var(--sp-3)}.dash-plots{display:grid;grid-template-columns:1fr}.dash-chart{display:flex;flex-direction:column;gap:var(--sp-1)}.dash-chart-svg{width:100%;height:120px;display:block;border-bottom:1px solid var(--border)}.dash-seg-1{fill:var(--cat-1)}.dash-seg-2{fill:var(--cat-2)}.dash-seg-3{fill:var(--cat-3)}.dash-seg-4{fill:var(--cat-4)}.dash-seg-5{fill:var(--cat-5)}.dash-seg-plot{fill:var(--accent)}.dash-axis,.dash-axis-max{font-size:var(--fs-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.dash-axis{display:flex;justify-content:space-between;gap:var(--sp-2)}.dash-ticks{display:flex;list-style:none;font-size:var(--fs-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.dash-ticks>li{flex:1 1 0;text-align:center;min-width:0}.dash-legend{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);list-style:none;margin-top:var(--sp-2);font-size:var(--fs-xs);color:var(--text-muted)}.dash-legend>li{display:flex;align-items:center;gap:var(--sp-2)}.dash-swatch{width:12px;height:12px;border-radius:3px;background:currentColor}.dash-swatch.dash-seg-1{background:var(--cat-1)}.dash-swatch.dash-seg-2{background:var(--cat-2)}.dash-swatch.dash-seg-3{background:var(--cat-3)}.dash-swatch.dash-seg-4{background:var(--cat-4)}.dash-swatch.dash-seg-5{background:var(--cat-5)}.dash-empty{font-size:var(--fs-sm);color:var(--text-muted)}@media (min-width: 720px){.dash-stats,.dash-plots{grid-template-columns:1fr 1fr}.dash-filters .input{max-width:320px}}.tabbar{position:fixed;z-index:61;left:0;right:0;bottom:0;display:flex;justify-content:space-around;padding:var(--sp-2) var(--sp-3) calc(var(--sp-2) + var(--safe-b));background:var(--surface-raised);border-top:1px solid var(--border);box-shadow:0 -4px 16px #1a171414}.tabbar-item{flex:1;min-height:var(--tap);padding:0 var(--sp-2);border:none;border-radius:var(--r-md);background:transparent;color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;display:flex;align-items:center;justify-content:center}.tabbar-item[aria-current=true]{color:var(--accent);font-weight:var(--fw-semibold)}.tabbar-icon{width:24px;height:24px;flex:none}@media (min-width: 720px){.tabbar{position:fixed;z-index:70;top:0;left:auto;bottom:auto;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:transparent;border-top:none;box-shadow:none}.tabbar-item{flex:none}}.favorites{position:fixed;inset:0;z-index:60;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--bg);padding-bottom:calc(var(--tabbar-h) + var(--sp-4))}.favorites .dash-head{padding:var(--sp-4) var(--sp-4) 0}.favorites .dash-head h1{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.favorites .dock-view{margin:var(--sp-3) var(--sp-4) 0}.feed-compact{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4)}.compact-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);overflow:hidden;display:flex;gap:var(--sp-3)}.compact-card-media{position:relative;flex:none;width:96px;aspect-ratio:4 / 3;background:linear-gradient(160deg,hsl(28 14% var(--ph-1)),hsl(28 12% var(--ph-2)));display:grid;place-items:center}.compact-card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.compact-card-price{position:absolute;z-index:2;bottom:var(--sp-1);left:var(--sp-2);right:var(--sp-2);color:var(--text-inverse);font-size:var(--fs-sm);font-weight:var(--fw-bold);line-height:var(--lh-tight);font-variant-numeric:tabular-nums;text-shadow:0 1px 6px rgba(0,0,0,.6)}.compact-card-score{position:absolute;z-index:2;top:var(--sp-1);right:var(--sp-1);min-width:32px;padding:1px var(--sp-1);border-radius:var(--r-sm);background:var(--surface);font-size:var(--fs-xs);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;text-align:center}.compact-card-body{flex:1;min-width:0;padding:var(--sp-2) var(--sp-3) var(--sp-2) 0;display:flex;flex-direction:column;gap:var(--sp-1);justify-content:center}.compact-card-address{font-size:var(--fs-sm);font-weight:var(--fw-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-card-outdoor{margin:0;font-size:var(--fs-xs);color:var(--text-muted)}.compact-card-transit{font-size:var(--fs-xs)}.compact-card-transit .transit-row{gap:var(--sp-1)}
