:root{--primary:#074b3f;--primary-foreground:#fff;--background:#f3f4f4;--card:#e8f2f1;--card-2:#d1dfe4;--foreground:#12232b;--muted-foreground:#515f66;--accent:#17615d;--border:#095445;--border-2:#1f4652;--chip:#e6ece9;--ring:#2e7d32;--scrim:#fff;--bg-dim:.5;--bgx-1:#f4f3de;--bgx-2:#b2dcea;--bgx-3:#dcf5e4;--bgx-4:#fff;--bgx-5:#f4b56d;--bgx-6:#e4c7b3;--bgx-7:#fff;--bgx-8:#f7bb99;--font:Roboto,-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;--radius:36px;--radius-small:12px;--blur:30px;--surface:linear-gradient(115deg,color-mix(in srgb,var(--card) 20%,transparent),color-mix(in srgb,var(--card-2) 14%,transparent) 52%,color-mix(in srgb,var(--card) 8%,transparent));--rim:linear-gradient(165deg,color-mix(in srgb,var(--border) 30%,transparent),color-mix(in srgb,var(--border) 15%,transparent) 20%,transparent 55%,color-mix(in srgb,var(--border-2) 22%,transparent) 100%)}
:root[data-theme="dark"]{--primary:#4caf50;--primary-foreground:#052611;--background:#0e1417;--card:#304143;--card-2:#1a2426;--foreground:#e7ecec;--muted-foreground:#9aaab0;--accent:#63d0c9;--border:#728186;--border-2:#d7e6ea;--chip:#1e2a28;--ring:#4caf50;--scrim:#000;--bg-dim:.4;--bgx-1:#466286;--bgx-2:#0b2d4b;--bgx-3:#125053;--bgx-4:#000;--bgx-5:#72635a;--bgx-6:#372e28;--bgx-7:#201c16;--bgx-8:#0c151b}
*{box-sizing:border-box}html{background:var(--background);color:var(--foreground);font-family:var(--font);font-variant-numeric:tabular-nums;color-scheme:light dark}body{margin:0;min-width:280px;min-height:100vh}.coast-bg{position:fixed;inset:0;z-index:-1;filter:blur(50px) saturate(200%);transform:scale(1.08);background:radial-gradient(120% 88% at 50% 44%,transparent 38%,color-mix(in srgb,var(--bgx-8) 50%,transparent)),radial-gradient(150% 46% at 55% 116%,color-mix(in srgb,var(--bgx-8) 68%,transparent),transparent 72%),radial-gradient(92% 72% at 106% 70%,color-mix(in srgb,var(--bgx-6) 76%,transparent),transparent 80%),radial-gradient(88% 62% at -8% 20%,color-mix(in srgb,var(--bgx-3) 80%,transparent),transparent 82%),linear-gradient(105deg,color-mix(in srgb,var(--bgx-2) 54%,transparent),transparent 44%,color-mix(in srgb,var(--bgx-5) 38%,transparent)),linear-gradient(180deg,var(--bgx-1),var(--bgx-2) 27%,var(--bgx-6) 69%,var(--bgx-7))}.coast-bg:after{content:"";position:absolute;inset:-20%;background:color-mix(in srgb,var(--scrim) calc(var(--bg-dim)*100%),transparent)}button,a{font:inherit}button{touch-action:manipulation}button,a{min-height:44px}.skip-link{position:fixed;left:10px;top:10px;transform:translateY(-160%);z-index:10;background:var(--primary);color:var(--primary-foreground);padding:10px}.skip-link:focus{transform:none}:focus-visible{outline:3px solid var(--ring);outline-offset:3px}.app-shell{width:min(100%,520px);margin:auto;padding:18px 18px 48px}.appbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;padding:12px 14px}.glass,.plate,.toggle{position:relative;border-radius:var(--radius-small);background:var(--surface);backdrop-filter:blur(var(--blur)) saturate(60%);-webkit-backdrop-filter:blur(var(--blur)) saturate(60%)}.glass:after,.plate:after,.toggle:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:.9px;background:var(--rim);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none}.glass{border-radius:var(--radius);padding:24px;box-shadow:0 2px 6px #0000000d}.plate{padding:18px 24px}.brand{color:var(--foreground);font-weight:700;text-decoration:none;letter-spacing:-.01em}.brand em{font-style:normal;color:var(--accent)}.brand__pin{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:9px;margin-right:8px;background:var(--primary);color:var(--primary-foreground)}.screen-flow{display:grid;gap:12px}.eyebrow{margin:0 0 12px;color:var(--accent);font-size:12.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}h2,h3,p{margin-top:0}h1{font-size:18px;line-height:1.3;font-weight:500;color:var(--muted-foreground)}h2{font-size:25px;letter-spacing:-.03em;line-height:1.1}h3{font-size:16px;margin-bottom:6px}.lede,.hint,.about p{color:var(--muted-foreground)}.button{width:100%;border:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;text-align:center;text-decoration:none;font-size:15px;font-weight:700;letter-spacing:.04em;cursor:pointer}.button--primary{min-height:52px;background:var(--primary);color:var(--primary-foreground)}.button--text{background:transparent;color:var(--accent);text-decoration:underline;text-underline-offset:4px;letter-spacing:0}.button--compact{width:auto;min-height:44px;padding:8px}.center{text-align:center}.hint,.lede{font-size:14px;line-height:1.45;margin-bottom:0}.loading{min-height:55vh;place-content:center}.dot{display:block;width:14px;height:14px;margin:0 auto 18px;border-radius:50%;background:var(--primary)}.chips{display:flex;flex-wrap:wrap;gap:12px}.chips button{border:0;border-radius:999px;background:var(--surface);color:var(--foreground);padding:0 16px;font-weight:600;cursor:pointer;backdrop-filter:blur(var(--blur))}.results-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.results-head h2{margin-bottom:0}.toggle{display:flex;gap:4px;padding:4px;border-radius:999px}.toggle button{flex:1;min-height:46px;border:0;border-radius:999px;background:transparent;color:var(--muted-foreground);font-size:15px;font-weight:500;cursor:pointer}.toggle button[aria-pressed="true"]{background:var(--foreground);color:var(--card);font-weight:700}.offers{display:grid;gap:12px;list-style:none;margin:0;padding:0}.offer{padding:24px}.offer__price{font-size:27px;font-weight:700;letter-spacing:-.03em;line-height:1.05;margin-bottom:6px}.offer .button{margin-top:2px}.empty h2{margin-bottom:12px}.about summary{min-height:44px;display:flex;align-items:center;color:var(--accent);font-weight:600;cursor:pointer}.about p:last-child{margin-bottom:0}[hidden]{display:none!important}@media(forced-colors:active){.glass,.plate,.toggle,.button{border:2px solid ButtonText}}@media(prefers-reduced-motion:no-preference){.dot{animation:breathe 2.6s ease-in-out infinite}@keyframes breathe{0%,100%{opacity:.28}50%{opacity:1}}}

.theme-toggle{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;min-height:44px;padding:3px;border:1px solid color-mix(in srgb,var(--border) 32%,transparent);border-radius:999px;background:color-mix(in srgb,var(--card) 42%,transparent);backdrop-filter:blur(var(--blur)) saturate(60%)}
.theme-toggle button{display:grid;place-items:center;width:40px;min-height:38px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--muted-foreground);cursor:pointer}
.theme-toggle button[aria-pressed="true"]{background:var(--foreground);color:var(--card);box-shadow:0 1px 4px #0002}
.theme-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle button[data-theme-choice="light"] svg circle{fill:currentColor;stroke:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.product-choices{display:grid;gap:12px}
.district-filter{display:grid;gap:6px}.district-filter label{color:var(--muted-foreground);font-size:14px;font-weight:600}.district-filter input{width:100%;min-height:44px;border:1px solid color-mix(in srgb,var(--border) 46%,transparent);border-radius:var(--radius-small);background:var(--surface);color:var(--foreground);padding:10px 14px;font:inherit}.district-filter input::placeholder{color:var(--muted-foreground);opacity:1}
.button:disabled{cursor:wait;opacity:.65}
.offer__topline{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.offer__topline>*{min-width:0}.offer__price{margin:0;white-space:nowrap}.offer__distance{flex:0 0 auto;margin:0;color:var(--muted-foreground);font-size:21px;font-weight:600;line-height:1.35;text-align:right;white-space:nowrap}.offer__identity{margin:0 0 6px;font-size:16px;font-weight:700;line-height:1.35}.offer__context{margin:0 0 18px;color:var(--muted-foreground);font-size:14.5px;line-height:1.5;overflow-wrap:anywhere}.offer__freshness{white-space:nowrap}.offer__tag{margin:0 0 8px;color:var(--accent);font-size:13px;font-weight:700}
@media(max-width:360px){.theme-toggle button{width:36px}}

/* Gate 4.3: composición compacta; conserva los tokens y superficies existentes. */
.appbar--compact{margin-bottom:12px;padding:8px 12px}
.app-shell--selector{display:flex;min-height:100dvh;flex-direction:column;padding-bottom:18px}
.product-picker{display:grid;flex:1;align-content:center;gap:16px}
.product-picker h1{margin:0;color:var(--foreground);font-size:25px;font-weight:700;letter-spacing:-.03em;line-height:1.12;text-align:center}
.product-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.product-choices .button{min-height:52px;padding-inline:10px}
.product-picker__attribution{margin:0;color:var(--muted-foreground);font-size:12px;line-height:1.4;text-align:center}
.start-step--compact{padding-top:10px;text-align:center}
.start-step--compact h1{margin:0 0 8px;color:var(--foreground);font-size:25px;font-weight:700;letter-spacing:-.03em;line-height:1.14}
.privacy-line{margin:0;color:var(--muted-foreground);font-size:12px;line-height:1.4}
.district-step--compact{padding-top:4px}
.district-step--compact h2{margin:0 0 2px}
.district-step--compact .button--text{justify-content:flex-start;padding-inline:2px}
.results-head--compact{padding:2px 2px 0}
.results-head--compact h2{font-size:22px;line-height:1.2}
.results-head--compact .button--compact{flex:0 0 auto}
.offline-note{margin:0;color:var(--muted-foreground);font-size:13px;line-height:1.4}
#offers-note{margin:0 2px 10px}
.offers{gap:10px}
.offer{padding:17px}
.offer__topline{margin-bottom:10px}
.offer__context{margin-bottom:14px}
.offer .button{min-height:48px;margin-top:0}
@media(max-width:360px){.app-shell{padding-inline:14px}.appbar--compact{padding-inline:10px}.product-picker h1,.start-step--compact h1{font-size:23px}.product-choices .button{font-size:14px}.offer{padding:16px}}
