.app-shell{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app-main{flex:1;min-height:0;position:relative}.radar{grid-template-columns:clamp(400px,37vw,560px) minmax(0,1fr);height:100%;display:grid;position:relative}.radar__panel{background:var(--surface);border-right:1px solid var(--border);z-index:5;flex-direction:column;min-height:0;display:flex}.radar__scroll{overscroll-behavior:contain;min-height:0;padding:0 var(--space-4) var(--space-5);flex:1;overflow-y:auto}.radar__map{background:var(--bg-subtle);min-width:0;position:relative}.radar-map,.radar-map.maplibregl-map,.maplibregl-canvas-container{width:100%;height:100%;position:absolute;inset:0}.radar-map--loading{background:linear-gradient(135deg, var(--bg-subtle), var(--surface))}.sheet__grip{padding:var(--space-3) var(--space-4) var(--space-2);border-bottom:1px solid var(--border);background:var(--surface)}.sheet__handle{display:none}.radar__summary{gap:var(--space-2);display:grid}.radar__count{font-size:.9375rem;font-weight:650}.radar__count-sub{color:var(--text-muted);font-weight:500}.peek{align-items:center;gap:2px var(--space-3);text-align:left;width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-subtle);cursor:pointer;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"label label""price addr""price avail";display:grid}.peek:hover{border-color:var(--border-strong)}.peek__label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);grid-area:label;font-size:.75rem;font-weight:700}.peek__price{border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;grid-area:price;padding:2px 10px;font-size:1.375rem;font-weight:800}.peek__addr{grid-area:addr;align-self:end;min-width:0;display:grid}.peek__street{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;font-weight:650;overflow:hidden}.peek__meta{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.peek__avail{grid-area:avail;align-self:start;min-width:0}.price-chip--cheap{background:var(--tier-cheap-bg);color:var(--tier-cheap)}.price-chip--mid{background:var(--tier-mid-bg);color:var(--tier-mid)}.radar__flat{color:var(--text-muted);font-size:.8125rem}.radar__privacy{color:var(--text-muted);font-size:.75rem}.empty__title{color:var(--text);font-weight:700}.radar__where{gap:var(--space-2);padding-top:var(--space-3);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.region-switch{border:1px solid var(--border);border-radius:var(--radius-pill);gap:2px;padding:3px;display:inline-flex}.chip-button{border-radius:var(--radius-pill);min-height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:6px 14px;font-size:.9375rem;font-weight:600}.chip-button[aria-pressed=true]{background:var(--brand);color:var(--brand-contrast)}.locate svg{flex:none}@media (max-width:479px){.radar__where{flex-wrap:nowrap}.locate{flex:none;min-width:44px;min-height:44px;padding-inline:12px}.locate__label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}}.radar__origin{margin-top:var(--space-2);color:var(--text-muted);font-size:.875rem}.radar__origin strong{color:var(--text);font-weight:600}.notice{margin-top:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--tier-mid-bg);color:var(--text);gap:var(--space-2);font-size:.875rem;display:grid}.filters{margin-top:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.filters__toggle{text-align:left;border-radius:var(--radius);width:100%;padding:var(--space-3) calc(var(--space-3) + 24px) var(--space-3) var(--space-3);cursor:pointer;background:0 0;border:0;gap:2px;min-height:48px;font-weight:650;display:grid;position:relative}.filters__toggle:after{content:"";right:var(--space-4);border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);width:8px;height:8px;position:absolute;top:50%;transform:translateY(-70%)rotate(45deg)}.filters[data-open=true] .filters__toggle:after{transform:translateY(-30%)rotate(-135deg)}.filters[data-open=false] .filters__body{display:none}.filters__summary{color:var(--text-muted);font-size:.8125rem;font-weight:500;display:block}.filters__body{padding:var(--space-3);border-top:1px solid var(--border)}.controls{gap:var(--space-4);display:grid}.controls__group{gap:var(--space-3);display:grid}.controls__group+.controls__group{border-top:1px solid var(--border);padding-top:var(--space-4)}.controls__title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.8125rem;font-weight:750}.controls__hint{color:var(--text-muted);margin-top:-6px;font-size:.8125rem}.controls__row{gap:var(--space-3);flex-wrap:wrap;align-items:end;display:flex}.range{gap:6px;display:grid}.range__label{justify-content:space-between;font-size:.9375rem;font-weight:600;display:flex}.range__value{font-family:var(--font-numbers);font-variant-numeric:tabular-nums;color:var(--brand-text);font-weight:700}input[type=range]{width:100%;accent-color:var(--brand);min-height:32px}.seg{border:0;min-width:0;margin:0;padding:0}.seg__legend{margin-bottom:6px;padding:0;font-size:.9375rem;font-weight:600}.seg__options{flex-wrap:wrap;gap:6px;display:flex}.seg__option{position:relative}.seg__option input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.seg__option span{border-radius:var(--radius-pill);border:1px solid var(--border-strong);min-height:36px;color:var(--text);background:var(--surface);align-items:center;padding:6px 12px;font-size:.875rem;font-weight:600;display:inline-flex}.seg__option input:checked+span{background:var(--text);border-color:var(--text);color:var(--bg)}.seg__option input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}.select{gap:4px;font-size:.875rem;font-weight:600;display:grid}.select select{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);min-height:40px;padding:6px 10px;font-weight:500}.switch{cursor:pointer;align-items:center;gap:8px;min-height:40px;font-size:.9375rem;font-weight:600;display:inline-flex}.switch input{width:20px;height:20px;accent-color:var(--brand)}.radar__loading,.empty{margin-top:var(--space-4);color:var(--text-muted);gap:var(--space-2);display:grid}.results{margin:var(--space-3) 0 0;gap:var(--space-2);padding:0;list-style:none;display:grid}.result{content-visibility:auto;contain-intrinsic-size:auto 96px}.result__button{gap:var(--space-3);text-align:left;width:100%;padding:var(--space-3);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);grid-template-columns:20px minmax(0,1fr) auto;align-items:center;display:grid}.result__button:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.result__button.is-selected{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.result__price{border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;justify-items:center;gap:2px;min-width:92px;padding:8px 10px;display:grid}.result__approx{margin-right:1px;font-size:.85em;font-weight:650}.result__caption{white-space:nowrap;font-size:.75rem;font-weight:600}.price--cheap{background:var(--tier-cheap-bg);color:var(--tier-cheap)}.price--mid{background:var(--tier-mid-bg);color:var(--tier-mid)}.price--high{background:var(--tier-high-bg);color:var(--tier-high)}.price--unknown{background:var(--tier-unknown-bg);color:var(--tier-unknown);border:1px dashed var(--border-strong)}.price--unknown .result__main{font-size:1rem}.result__button.is-unavailable .result__title{color:var(--text-muted)}.tier-dot{background:var(--tier-unknown-bg);border:2px solid var(--border-strong);border-radius:50%;justify-self:center;place-items:center;width:12px;height:12px;display:inline-grid}.tier-dot--cheap{background:var(--tier-cheap-bg);border-color:var(--tier-cheap-bg)}.tier-dot--mid{background:var(--tier-mid-bg);border-color:var(--tier-mid)}.tier-dot--high{background:var(--tier-high-bg);border-color:var(--tier-high)}.tier-dot--best{width:20px;height:20px;color:var(--tier-cheap);background:var(--tier-cheap-bg);border:0}.result__overline{text-transform:uppercase;letter-spacing:.04em;color:var(--tier-cheap-text);font-size:.75rem;font-weight:800}.result__badges{flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;display:flex}.fee-chip{border:1px solid var(--border-strong);color:var(--text);background:var(--bg-subtle);white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:.75rem;font-weight:650;line-height:1.2}.avail-badge{border-radius:var(--radius-pill);white-space:nowrap;border:1px solid;align-items:center;gap:5px;width:fit-content;max-width:100%;padding:3px 9px 3px 6px;font-size:.8125rem;font-weight:700;line-height:1.2;display:inline-flex}.avail-badge svg{flex:none}.avail-badge--compact{gap:4px;padding:2px 7px 2px 4px;font-size:.75rem}.avail-badge--free{color:var(--ok);background:var(--ok-bg);--icon-knockout:var(--ok-bg)}.avail-badge--busy{color:var(--warn);background:var(--warn-bg);--icon-knockout:var(--warn-bg)}.avail-badge--offline{color:var(--bad);background:var(--bad-bg);--icon-knockout:var(--bad-bg)}.avail-badge--unknown{color:var(--unknown);background:var(--unknown-bg);border-style:dashed}.detail__head{gap:6px;display:grid}.cost-hero__approx{opacity:.85;margin-right:.08em;font-size:.8em;font-weight:650}.result__main{letter-spacing:-.01em;text-align:center;font-size:1.1875rem;font-weight:800;line-height:1.1}.result__secondary{opacity:.9;font-size:.75rem;font-weight:600}.result__body{gap:2px;min-width:0;display:grid}.result__title{text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.result__rank{text-transform:uppercase;letter-spacing:.04em;vertical-align:2px;background:var(--tier-cheap);color:var(--bg);border-radius:4px;margin-right:6px;padding:0 6px;font-size:.6875rem;font-weight:800;display:inline-block}.result__meta{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.result__flags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.chip{border:1px solid;border-radius:4px;padding:2px 6px;font-size:.6875rem;font-weight:700}.chip--warn{color:var(--warn)}.tier--cheap{background:var(--tier-cheap-bg);color:var(--tier-cheap)}.tier--mid{background:var(--tier-mid-bg);color:var(--tier-mid)}.tier--high{background:var(--tier-high-bg);color:var(--tier-high)}.tier--unknown{background:var(--tier-unknown-bg);color:var(--tier-unknown)}.tier--unknown .result__main{font-size:.875rem;font-weight:700}.avail{white-space:nowrap}.avail--free{color:var(--ok);font-weight:650}.avail--busy{color:var(--warn);font-weight:600}.avail--offline{color:var(--bad)}.radar__footer{margin-top:var(--space-5);color:var(--text-subtle);font-size:.75rem}.detail{gap:var(--space-4);padding-top:var(--space-3);display:grid}.detail__back{min-height:40px;color:var(--brand-text);cursor:pointer;background:0 0;border:0;justify-self:start;padding:8px 4px;font-weight:650}.detail__title{font-size:1.375rem;font-weight:750}.detail__title:focus{outline:none}.detail__sub,.detail__walk{color:var(--text-muted);margin-top:4px;font-size:.9375rem}.cost-hero{border-radius:var(--radius-lg);padding:var(--space-4);border:1px solid var(--border);gap:4px;display:grid}.cost-hero--cheap{background:var(--tier-cheap-bg);color:var(--tier-cheap)}.cost-hero--cheap :is(.cost-hero__label,.cost-hero__session,.cost-hero__reason){color:currentColor}.cost-hero--mid{background:var(--tier-mid-bg)}.cost-hero--high{background:var(--tier-high-bg)}.cost-hero--unknown{background:var(--tier-unknown-bg)}.cost-hero__overline{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.8125rem;font-weight:700}.cost-hero--cheap .cost-hero__overline{color:currentColor;opacity:.88}.cost-hero__tags{flex-wrap:wrap;align-items:center;gap:8px;margin-top:2px;display:flex}.tier-tag{border-radius:var(--radius-pill);border:1px solid;align-items:center;gap:4px;width:fit-content;padding:4px 8px;font-size:.75rem;font-weight:700;line-height:1.2;display:inline-flex}.cost-hero__plug{font-size:.875rem;font-weight:600}.cost-hero__compare{margin-top:2px;font-size:.875rem}.cost-hero--cheap .cost-hero__compare{color:currentColor}.cost-hero__total{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:2.75rem;font-weight:850;line-height:1.05}.cost-hero--unknown .cost-hero__total{font-size:1.75rem}.cost-hero__per{font-weight:650}.cost-hero__source{margin-top:4px;font-size:.75rem;font-weight:600;line-height:1.35}.cost-hero__session,.cost-hero__reason{color:var(--text-muted);font-size:.875rem}.badges{flex-wrap:wrap;gap:6px;margin:6px 0 0;padding:0;list-style:none;display:flex}.badge{border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border-strong);color:var(--text);padding:3px 8px;font-size:.75rem;font-weight:700}.badge--warn{border-color:var(--warn);color:var(--warn)}.badge--bad{border-color:var(--bad);color:var(--bad)}.badge--live{border-color:var(--ok);color:var(--ok);text-transform:uppercase;margin-left:6px;font-size:.6875rem}.breakdown h3,.connectors h3,.datanote h3{margin-bottom:var(--space-2);font-size:1rem;font-weight:750}.breakdown__table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.breakdown__table th,.breakdown__table td{border-bottom:1px solid var(--border);vertical-align:top;padding:8px 0}.breakdown__table th{text-align:left;font-weight:600}.breakdown__table td{text-align:right;white-space:nowrap;padding-left:var(--space-3);font-weight:650}.breakdown__table tfoot th,.breakdown__table tfoot td{border-bottom:0;font-size:1.0625rem;font-weight:800}.breakdown__qty{color:var(--text-muted);font-size:.8125rem;font-weight:500;display:block}.note{margin-top:var(--space-2);color:var(--text-muted);font-size:.8125rem}.connectors ul,.datanote ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.connector{gap:2px var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--bg-subtle);grid-template-columns:minmax(0,1fr) auto;font-size:.9375rem;display:grid}.connector__plug{font-weight:650}.connector__kw{color:var(--text-muted);font-size:.8125rem;font-weight:500;display:block}.connector .avail{grid-column:1;font-size:.875rem}.connector__price{text-align:right;font-variant-numeric:tabular-nums;grid-area:1/2/span 2;align-self:center;font-weight:750}.connector__best{text-transform:uppercase;letter-spacing:.04em;color:var(--tier-cheap);font-size:.6875rem;font-weight:700;display:block}.detail__links{gap:var(--space-2);flex-wrap:wrap;display:flex}.datanote{color:var(--text-muted);border-top:1px solid var(--border);padding-top:var(--space-4);font-size:.875rem}.datanote__alt{margin-top:var(--space-3)}.datanote__alt summary{cursor:pointer;color:var(--text);min-height:32px;font-weight:650}.search-here{box-shadow:var(--shadow);z-index:3;position:absolute;top:12px;left:50%;transform:translate(-50%)}.map-status{z-index:3;border-radius:var(--radius-pill);background:var(--surface);color:var(--text-muted);box-shadow:var(--shadow-sm);border:1px solid var(--border);align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-flex;position:absolute;top:10px;left:10px}.map-status__dot{background:var(--border-strong);border-radius:50%;width:8px;height:8px}.map-status__dot.is-live{background:var(--ok)}.legend{z-index:4;color:var(--text);position:absolute;top:56px;left:10px}.legend>summary{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;box-shadow:var(--shadow-sm);color:var(--brand-text);cursor:pointer;border-radius:50%;place-items:center;font-weight:800;list-style:none;display:grid}.legend>summary::-webkit-details-marker{display:none}.legend__body{width:min(340px,100vw - 24px);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);position:absolute;top:42px;left:0}.legend__title{margin:0 0 var(--space-2);font-weight:750}.legend__body ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.legend__body li{align-items:center;gap:var(--space-2);grid-template-columns:max-content minmax(0,1fr);font-size:.8125rem;line-height:1.3;display:grid}.pin--static{min-height:26px;box-shadow:none;cursor:default;margin:0}.pin--static:after{display:none}.origin-dot{width:18px;height:18px;box-shadow:0 0 0 6px #1a5fd038, var(--shadow-sm);pointer-events:none;background:#1a5fd0;border:3px solid #fff;border-radius:50%}.pin{--pin-bg:var(--tier-unknown-bg);--pin-fg:var(--tier-unknown);border-radius:var(--radius-pill);border:2px solid var(--pin-fg);background:var(--pin-bg);min-height:30px;color:var(--pin-fg);font:750 13px/1 var(--font-sans);font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer;transition:transform var(--dur) var(--ease);align-items:center;gap:4px;margin-bottom:7px;padding:4px 9px 4px 7px;display:inline-flex;box-shadow:0 2px 6px #00000038}.pin:after{content:"";background:var(--pin-bg);border-right:2px solid var(--pin-fg);border-bottom:2px solid var(--pin-fg);border-bottom-right-radius:2px;width:10px;height:10px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)rotate(45deg)}.pin--cheap{--pin-bg:var(--tier-cheap-bg);--pin-fg:var(--tier-cheap)}.pin--mid{--pin-bg:var(--tier-mid-bg);--pin-fg:var(--tier-mid)}.pin--high{--pin-bg:var(--tier-high-bg);--pin-fg:var(--tier-high)}.pin--busy,.pin--unknown,.pin--dashed{border-style:dashed}.pin--offline{border-style:dotted}.pin__glyph{font-size:11px}.pin__status{border-radius:var(--radius-pill);border:1px solid;align-items:center;gap:3px;min-height:18px;padding:2px 5px;font-size:.625rem;font-weight:750;line-height:1;display:inline-flex}.pin__status-icon,.pin__status-icon svg{flex:none;width:10px;height:10px}.pin__status--free{color:var(--ok);background:var(--ok-bg)}.pin__status--busy{color:var(--warn);background:var(--warn-bg)}.pin__status--offline{color:var(--bad);background:var(--bad-bg)}.pin__status--unknown{color:var(--unknown);background:var(--unknown-bg);border-style:dashed}.pin--cluster{padding-right:6px}.pin__count:after{content:attr(data-count)}.pin__status-text[data-text]:after{content:attr(data-text)}.pin__count{border-radius:var(--radius-pill);background:var(--pin-fg);min-width:20px;height:20px;color:var(--pin-bg);justify-content:center;align-items:center;margin-left:2px;padding:0 5px;font-size:11px;display:inline-flex}.pin:hover{transform:translateY(-2px)}.pin.is-selected{background:var(--pin-fg);color:var(--pin-bg);border-color:var(--brand);box-shadow:0 0 0 3px var(--surface), var(--shadow-lg);transform:scale(1.15)}.pin:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.maplibregl-ctrl-attrib{font-size:11px}.map-attrib{z-index:2;background:color-mix(in srgb, var(--surface-raised) 92%, transparent);max-width:calc(100% - 16px);color:var(--text);border-radius:999px;padding:2px 8px;font-size:11px;line-height:1.6;position:absolute;bottom:8px;right:8px}.map-attrib a{color:inherit;text-decoration:none}.map-attrib a:hover{text-decoration:underline}@media (max-width:899px){.radar{display:block}.radar__map{position:absolute;inset:0}.radar__panel{transition:transform .26s var(--ease);will-change:transform;touch-action:none;border-right:0;border-radius:18px 18px 0 0;position:absolute;inset:0;transform:translateY(calc(100% - 176px));box-shadow:0 -6px 24px #0000002e}.radar[data-sheet=half] .radar__panel{transform:translateY(50%)}.radar[data-sheet=full] .radar__panel{border-radius:0;transform:translateY(0)}.radar__scroll{touch-action:pan-y}.radar[data-sheet=peek] .radar__scroll{visibility:hidden}.radar[data-sheet=half] .radar__scroll{padding-bottom:calc(50dvh + var(--space-5))}.sheet__grip{touch-action:none;cursor:grab;border-radius:18px 18px 0 0;padding-top:6px}.sheet__handle{cursor:pointer;background:0 0;border:0;justify-content:center;width:100%;height:24px;padding:0;display:flex}.sheet__handle span{background:var(--border-strong);border-radius:3px;width:44px;height:5px;margin-top:6px}.filters__toggle{display:grid}.radar[data-detail=open] .peek,.radar[data-sheet=half] .peek,.radar[data-sheet=full] .peek,.filters[data-open=false] .filters__body{display:none}.filters__body{border-top:1px solid var(--border)}.map-status{top:auto;bottom:226px}.radar[data-sheet=half] .map-status,.radar[data-sheet=full] .map-status{display:none}.search-here{top:60px}.radar[data-sheet=peek] :is(.maplibregl-ctrl-bottom-right,.map-attrib){bottom:184px!important}.radar[data-sheet=half] :is(.maplibregl-ctrl-bottom-right,.map-attrib){bottom:calc(50dvh + 8px)!important}}@media (prefers-reduced-motion:reduce){.radar__panel,.pin{transition:none}}.pin.pin--best,.pin.is-selected{--pin-bg:var(--color-signal);--pin-fg:var(--color-on-signal)}.pin.is-selected{background:var(--color-signal);color:var(--color-on-signal);border-color:var(--color-on-signal)}.pin.is-selected:after{background:var(--color-signal);border-color:var(--color-on-signal)}.result__price.is-best,.peek__price,.tier-dot--best,.cost-hero--best{background:var(--color-signal);color:var(--color-on-signal)}.cost-hero--best :is(.cost-hero__label,.cost-hero__session,.cost-hero__reason,.cost-hero__overline){color:var(--color-on-signal)}.peek--placeholder{cursor:default;height:106px;display:block}.radar[data-detail=open] .peek--placeholder{display:none}
