/* Compact private pages retain the existing magazine palette and typography. */
.account-page:is(.account-page--profile,.account-page--favorites,.account-page--places,.account-page--contact,.account-page--security) {padding-top:100px}
.account-page:is(.account-page--profile,.account-page--favorites,.account-page--places,.account-page--contact,.account-page--security) .account-body {padding:clamp(16px,2.5vw,28px)}
.account-page .account-hero {padding:0 0 16px;margin:0;border:0;box-shadow:none;background:transparent;animation:none}
.account-page .account-hero-title {font-size:clamp(1.8rem,5vw,2.5rem);line-height:1.1}
.account-page .account-hero-lead {margin-top:6px;font-size:.95rem}
.account-page .account-hero-meta {margin-top:8px;padding:0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:.9rem}
.account-primary {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-bottom:2px solid var(--ink);margin:0 0 12px}
.account-primary a {display:flex;align-items:center;justify-content:center;min-height:44px;padding:4px;color:var(--ink);text-decoration:none;font-weight:800;font-size:.95rem}
.account-primary a[aria-current] {background:var(--yellow)}
.account-page .account-tabs {display:flex;margin-bottom:16px;gap:8px;border:0;background:none}
.account-page .account-tabs a {flex:1;min-height:44px;padding:7px 10px;border:1px solid var(--ink);font-size:.9rem}
.user-place {padding:16px 0}
.user-place h2 {margin:4px 0 8px;font-size:1.4rem;line-height:1.2}
.user-place-state {margin:0 0 8px;font-size:.8rem;padding:2px 6px}
.user-place-navigation {display:flex;flex-wrap:wrap;gap:8px}
.user-place-navigation a {display:inline-flex;align-items:center;justify-content:center;min-height:44px;box-sizing:border-box;padding:8px 12px;border:2px solid var(--ink);color:var(--ink);font-weight:800;text-decoration:none}
.user-place-navigation a:first-child {background:var(--yellow)}
.user-place-unmapped {align-self:center;font-size:.85rem}
.user-place-management {margin-top:6px}
.user-place-management>summary {display:list-item;width:fit-content;min-height:44px;box-sizing:border-box;padding:12px 4px;cursor:pointer;font-weight:700;font-size:.9rem}
.user-place-note {margin:0 0 12px}
.user-place-status:empty {display:none}
.account-primary a:focus-visible,.user-place-navigation a:focus-visible,.user-place-management>summary:focus-visible {outline:3px solid var(--cyan);outline-offset:3px}
@media(max-width:600px) {
 .account-page:is(.account-page--profile,.account-page--favorites,.account-page--places,.account-page--contact,.account-page--security){padding:86px 10px 50px}
 .account-page .account-body {box-shadow:4px 4px 0 var(--yellow)}
 .user-place-navigation a {font-size:.88rem;padding-inline:10px}
 .account-page .favorite-card {padding:14px;gap:10px}
}
/* Guardados is a peer of Guías and Cuenta, not a nested account shortcut. */
.main-menu>.menu-account-shortcuts{display:block;margin:0 0 12px;padding:0;border:0}
.main-menu>.menu-account-shortcuts a{display:flex;min-height:48px;padding:8px 14px;border:2px solid var(--ink);font-size:1.15rem;font-weight:800;letter-spacing:0;background:#fffdf8}
.main-menu>.menu-account-shortcuts a:last-child{border-bottom:2px solid var(--ink)}
.main-menu>.menu-account-shortcuts a:hover,.main-menu>.menu-account-shortcuts a:focus-visible{padding-left:14px}
.account-page .profile-kicker{color:var(--ink)}

/* WOW W02/W04: long account content reflows; focus uses both brand ink and paper. */
.account-page .account-hero,.account-page .account-hero-meta {min-width:0;max-width:100%;overflow-wrap:anywhere}
.account-page .account-body :is(a,button,input,textarea,select,summary,canvas):focus-visible,
.user-place-leave-dialog :focus-visible {outline:3px solid var(--blue,#173fc4);outline-offset:3px;box-shadow:0 0 0 3px #fffdf8}
@media(forced-colors:active) {
 .account-page .account-body :is(a,button,input,textarea,select,summary,canvas):focus-visible,
 .user-place-leave-dialog :focus-visible {outline:3px solid Highlight;outline-offset:3px;box-shadow:none;forced-color-adjust:auto}
}

/* A note is private work: protect it only when the user is about to leave. */
.user-place-leave-dialog {box-sizing:border-box;width:min(440px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:3px solid var(--ink);background:#fffdf8;color:var(--ink);font-family:var(--font-body,inherit);box-shadow:6px 6px 0 var(--pink)}
.user-place-leave-dialog::backdrop {background:rgb(23 23 19 / .6)}
.user-place-leave-dialog h2 {margin:0 0 12px;font-size:1.4rem;line-height:1.2}
.user-place-leave-dialog p {line-height:1.5}
.user-place-leave-status:empty {display:none}
.user-place-leave-actions {display:flex;flex-wrap:wrap;gap:10px}
.user-place-leave-actions button {min-height:44px;padding:10px 12px;border:2px solid var(--ink);background:#fffdf8;color:var(--ink);font:inherit;font-weight:800;cursor:pointer}
.user-place-leave-actions button:first-child {background:var(--yellow)}
.user-place-leave-actions button:disabled {opacity:.6;cursor:wait}

/* Text resizing must leave navigation readable and the menu reachable. */
.account-page .account-primary {display:flex;flex-wrap:wrap}
.account-page .account-primary a {flex:1 0 auto;min-width:0;max-width:100%;overflow-wrap:anywhere}
.account-page .account-tabs {flex-wrap:wrap}
.account-page .account-tabs a {flex:1 1 auto;min-width:0;max-width:100%;overflow-wrap:anywhere}
body[data-route="cuenta"] .app-header .brand {max-width:calc(100vw - 88px)!important;min-width:0}
body[data-route="cuenta"] .app-header .brand-copy {min-width:0;max-width:100%}
body[data-route="cuenta"] .app-header .brand-copy strong {white-space:normal;overflow-wrap:anywhere}

/* Contact keeps the security widget and fields inside the available column. */
.account-page--contact .contact-layout > * {min-width:0}
@media(max-width:899px) {
 .account-page--contact .contact-layout {grid-template-columns:minmax(0,1fr)}
}

/* «Sin datos»: copias guardadas en este navegador. */
.offline-panel{display:grid;gap:.7rem;margin-top:1rem}
.offline-panel [data-offline-list]{display:grid;gap:.6rem}
.offline-item{border:2px solid var(--ink,#171713);border-radius:12px;background:var(--paper,#e8e0c0);padding:.7rem .8rem;box-shadow:3px 3px 0 rgba(23,23,19,.18)}
.offline-item h2{margin:0;font-size:1rem}
.offline-meta{margin:.2rem 0 .5rem;font:500 .78rem/1.3 "IBM Plex Mono",ui-monospace,monospace;color:#3d3a31}
.offline-actions{display:flex;gap:.5rem}
.offline-actions a,.offline-actions button,.offline-clear{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.4rem .8rem;border:2px solid var(--ink,#171713);border-radius:10px;background:var(--paper,#e8e0c0);color:var(--ink,#171713);font:700 .85rem/1 "Space Grotesk",system-ui,sans-serif;text-decoration:none;cursor:pointer}
.offline-actions a{background:var(--ink,#171713);color:var(--paper,#e8e0c0)}
.offline-clear{justify-self:start;border-style:dashed;font-weight:500}
.offline-actions a:focus-visible,.offline-actions button:focus-visible,.offline-clear:focus-visible{outline:3px solid #00d8b0;outline-offset:2px}
.offline-panel [data-offline-status][data-tone="error"]{color:#a1121b;font-weight:700}

/* Campamentos base (Mis Patas → Lugares). */
.stay-panel{border:2px solid var(--ink,#171713);border-radius:14px;background:var(--paper,#e8e0c0);padding:.9rem;box-shadow:3px 3px 0 rgba(23,23,19,.18);display:grid;gap:.6rem;margin-bottom:1rem}
.stay-panel h2{margin:0;font-size:1.05rem}
.stay-panel [data-stay-list]{display:grid;gap:.5rem}
.stay-item{display:flex;align-items:center;justify-content:space-between;gap:.6rem;border-bottom:1px dashed rgba(23,23,19,.35);padding-bottom:.4rem}
.stay-item h3{margin:0;font-size:.95rem}
.stay-add,.stay-remove,.stay-here,.stay-save,.stay-cancel{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.4rem .8rem;border:2px solid var(--ink,#171713);border-radius:10px;background:var(--paper,#e8e0c0);color:var(--ink,#171713);font:700 .85rem/1 "Space Grotesk",system-ui,sans-serif;cursor:pointer}
.stay-add{justify-self:start;border-style:dashed;font-weight:500}
.stay-save{background:var(--ink,#171713);color:var(--paper,#e8e0c0)}
.stay-add:focus-visible,.stay-remove:focus-visible,.stay-here:focus-visible,.stay-save:focus-visible,.stay-cancel:focus-visible{outline:3px solid #00d8b0;outline-offset:2px}
.stay-panel [data-stay-status][data-tone="error"]{color:#a1121b;font-weight:700}
.stay-dialog{width:min(26rem,calc(100vw - 2rem));padding:1rem;border:2px solid var(--ink,#171713);border-radius:14px;background:var(--paper,#e8e0c0);color:var(--ink,#171713);box-shadow:5px 5px 0 rgba(23,23,19,.2)}
.stay-dialog::backdrop{background:rgba(23,23,19,.45)}
.stay-dialog label{display:grid;gap:.25rem;margin:.5rem 0;font-weight:700}
.stay-dialog input{min-height:44px;padding:.4rem .55rem;border:2px solid var(--ink,#171713);border-radius:10px;background:#fffdf3;color:var(--ink,#171713);font:400 .95rem/1.2 "Space Grotesk",system-ui,sans-serif}
.stay-here-row{display:grid;gap:.4rem;margin:.6rem 0}
.stay-manual summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700}
.stay-dialog-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.7rem}
@media (max-width:520px){.stay-panel{padding:.75rem}.stay-item{flex-wrap:wrap}}
