.location-context{margin:12px 0 18px;min-width:0}.location-context>details{background:var(--cc-surface);border:1px solid var(--cc-border);border-radius:var(--cc-radius-sm)}.location-context>details>summary{font-size:14px;font-weight:600;min-height:44px;padding:12px 14px;cursor:pointer;line-height:1.5;align-content:center}.location-context-current{font-weight:400;color:var(--cc-muted)}.location-context-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;padding:4px 14px 16px}.location-context-body>label{display:grid;gap:7px;font-size:14px;font-weight:600;min-width:0}.location-context-body :is(select,input:not([type=checkbox])){width:100%;max-width:100%;min-width:0;min-height:44px;padding:9px 10px;border:1px solid var(--cc-control-border);border-radius:var(--cc-radius-sm);font:400 16px var(--cc-font-body);color:var(--cc-text);background:var(--cc-surface)}.location-context-body>.location-context-check{display:flex;align-items:center;gap:10px;font-weight:400;font-size:14px;min-height:44px}.location-context-check input{width:20px;height:20px;flex:none}.location-context-body>:is(p,a){font-size:14px;line-height:1.55;margin:0;grid-column:1/-1;overflow-wrap:anywhere}.location-context-body>button{font-size:14px;min-height:44px;justify-self:start}.location-context-body :is(.location-context-scope,.location-context-privacy){color:var(--cc-muted)}.location-context-body [hidden]{display:none}.location-context [data-location-status]{border-left:3px solid var(--cc-border);padding-left:10px}
@media(max-width:650px){.location-context-body{grid-template-columns:minmax(0,1fr);padding:4px 12px 14px;gap:12px}.location-context>details>summary{padding:10px 12px}.location-context-current{display:block}.location-context-body>button{width:100%;justify-self:stretch}}

.location-welcome{box-sizing:border-box;width:min(540px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:36px;border:1px solid var(--cc-border);border-radius:24px;background:var(--cc-surface);color:var(--cc-text);box-shadow:0 24px 100px #10291e40;overflow-y:auto}
.location-welcome::backdrop{background:#10291e9c;backdrop-filter:blur(4px)}
.location-welcome h2{font:400 clamp(28px,5vw,36px)/1.15 var(--cc-font-heading,Georgia,serif);letter-spacing:-.025em;margin:10px 0 16px;color:var(--cc-text)}
.location-welcome p{font:400 16px/1.55 var(--cc-font-body);margin:0 0 20px;color:var(--cc-muted)}
.location-welcome .location-welcome-eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--cc-accent);margin-bottom:10px}
.location-welcome form{display:grid;gap:10px}.location-welcome label{font-size:15px;font-weight:600}
.location-welcome select{box-sizing:border-box;width:100%;min-width:0;min-height:52px;padding:12px;border:1px solid var(--cc-control-border);border-radius:10px;background:var(--cc-surface);color:var(--cc-text);font:400 16px var(--cc-font-body)}
.location-welcome .location-welcome-note{font-size:14px;margin:2px 0 12px}.location-welcome .location-welcome-privacy{font-size:13px;margin:20px 0 0}
.location-welcome-actions{display:grid;gap:10px}.location-welcome-actions button{width:100%;min-height:48px;justify-content:center;font-size:15px;white-space:normal}
.location-welcome [hidden]{display:none}
@media(max-width:560px){.location-welcome{padding:26px 22px;border-radius:20px}}

/* Reserve the measured collapsed controls before the location controller mounts. */
[data-location-context]{margin:12px 0 18px;min-height:47px;min-width:0}
@media(max-width:650px){[data-location-context]{min-height:64px}}
