/* Cidade atual, viagem e preferências consentidas — componentes progressivos da 0.2. */
.visitor-context { margin-bottom:14px; }
.context-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.context-actions fieldset { display:flex; gap:4px; padding:4px; margin:0; border:1px solid var(--line); border-radius:100px; background:var(--surface); }
.context-actions button { border:1px solid var(--line); border-radius:100px; background:var(--surface); color:var(--fg); padding:10px 16px; font:600 13px/1.2 var(--body,system-ui,sans-serif); min-height:44px; cursor:pointer; }
.context-actions fieldset button { border:0; }
.context-actions button[aria-pressed=true] { background:var(--accent); color:var(--on-accent); }
.context-actions button:disabled { opacity:.65; cursor:wait; }
.context-note,.context-city-status { font-size:12px; line-height:1.6; color:var(--muted); margin:9px 4px 0; }
.context-note a { text-underline-offset:3px; }
.location-feedback { margin-top:12px; padding:16px; border:1px solid var(--line); border-radius:14px; background:var(--surface); display:flex; align-items:center; flex-wrap:wrap; gap:12px; font-size:13px; }
.location-feedback [data-location-message] { flex:1; min-width:180px; }
.location-feedback .btn { min-height:44px; }
.preferences-control { width:min(100%,600px); border:1px solid var(--line); border-radius:14px; background:var(--surface); color:var(--fg); padding:12px 16px; margin-top:18px; font:400 12px/1.6 var(--body,system-ui,sans-serif); text-align:left; }
.preferences-control summary { cursor:pointer; font-weight:600; min-height:22px; }
.preferences-control label { display:flex; gap:10px; align-items:flex-start; padding-top:14px; font-weight:600; font-size:13px; cursor:pointer; }
.preferences-control input[type=checkbox] { width:18px; height:18px; flex:none; accent-color:var(--accent); margin:2px 0 0; }
.preferences-control p { margin-top:10px; color:var(--muted); }
.preferences-control button { border:1px solid var(--line-strong); border-radius:100px; background:var(--surface); color:var(--fg); min-height:44px; padding:8px 14px; font:600 12px var(--body,system-ui,sans-serif); margin-top:12px; cursor:pointer; }
.visitor-context button:focus-visible,.preferences-control summary:focus-visible,.preferences-control input:focus-visible,.preferences-control button:focus-visible { outline:3px solid var(--ring); outline-offset:3px; }
.visitor-context [hidden],.preferences-control [hidden] { display:none!important; }
@media(max-width:540px) { .context-actions { gap:8px; } .context-actions fieldset { flex:1 1 100%; } .context-actions fieldset button { flex:1; } .context-actions > button { width:100%; } .location-feedback { align-items:flex-start; } .location-feedback .btn { width:100%; } .preferences-control { padding:12px 14px; } }
