:focus-visible{outline:3px solid #f0a500;outline-offset:3px}button,a,select,input{min-height:44px}header{position:sticky;top:0;z-index:10;gap:12px}header span{display:flex;align-items:center;gap:8px}.card{transition:transform .15s,box-shadow .15s}.card:hover{transform:translateY(-2px);box-shadow:0 7px 18px #123b1920}.form label{display:grid;gap:4px}.form{max-width:680px}.password-control{display:flex;gap:8px}.password-control input{min-width:0;flex:1}.password-toggle{flex:0 0 auto;background:#fff;color:#176b3a}.card img{display:block}hr{border:0;border-top:1px solid #d6e2d8;margin:24px 0}@media(max-width:600px){header{padding:12px 5%;height:auto;align-items:flex-start}header span{flex-wrap:wrap;justify-content:flex-end}main{padding-top:24px}.card{padding:15px}h1{line-height:1.08}}
:focus-visible{outline:3px solid #f0a500;outline-offset:3px}button,a,select,input{min-height:44px}header{position:sticky;top:0;z-index:10;gap:12px}header span{display:flex;align-items:center;gap:8px}.card{transition:transform .15s,box-shadow .15s}.card:hover{transform:translateY(-2px);box-shadow:0 7px 18px #123b1920}.form label{display:grid;gap:4px}.form{max-width:680px}.password-control{display:flex;gap:8px}.password-control input{min-width:0;flex:1}.password-toggle{flex:0 0 auto;background:#fff;color:#176b3a}.card img{display:block}.notification-card{background:#fff!important;color:#183324!important}.notification-open{display:block;margin-top:6px;color:#176b3a}hr{border:0;border-top:1px solid #d6e2d8;margin:24px 0}@media(max-width:600px){header{padding:12px 5%;height:auto;align-items:flex-start}header span{flex-wrap:wrap;justify-content:flex-end}main{padding-top:24px}.card{padding:15px}h1{line-height:1.08}}


.site-header{display:grid;grid-template-columns:44px 1fr auto;grid-template-areas:"menu brand ." "menu user .";align-items:center;gap:6px 12px}.menu-wrap{grid-area:menu;position:relative}.menu-toggle{width:44px;padding:8px;font-size:24px;line-height:1;background:#176b3a}.site-menu{position:absolute;left:0;top:calc(100% + 8px);z-index:20;display:flex;flex-direction:column;min-width:190px;padding:8px;background:#fff;border:1px solid #d6e2d8;border-radius:12px;box-shadow:0 12px 28px #123b1930}.site-menu button{display:block;width:100%;margin:0;padding:11px;text-align:left;background:transparent;color:#183324;border:0;border-radius:8px}.site-menu button[onclick*="support"]{order:999}.site-menu button:hover,.site-menu button:focus{background:#e7f3e9}.site-brand{grid-area:brand;margin-right:auto;font-size:18px;text-decoration:none}.user-actions{grid-area:user;display:flex;align-items:center;gap:8px}@media(max-width:600px){.site-header{padding:12px 5%;gap:6px 8px}.site-brand{font-size:15px}.user-actions{font-size:14px}.user-actions button{font-size:14px}.site-menu{min-width:210px}}
.site-menu[hidden]{display:none!important}
.idea-map-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin:16px 0}.idea-map-actions .button{justify-content:center;min-width:0;padding:12px 8px;text-align:center;line-height:1.25;font-weight:800;background:#168244!important;border-color:#63d58b!important;color:#fff!important;text-shadow:none}.idea-map-actions .button:focus-visible,.idea-map-actions .button:hover{background:#0d6633!important;color:#fff!important;outline:3px solid #b5f5cb;outline-offset:2px}@media(max-width:360px){.idea-map-actions{gap:7px}.idea-map-actions .button{font-size:13px;padding-inline:5px}}
.official-calendar{max-width:1050px;margin:auto}.official-calendar-controls{display:grid;grid-template-columns:50px 1fr 50px;align-items:center;gap:10px;margin:18px 0}.official-calendar-controls h2{text-align:center;margin:0;text-transform:capitalize}.official-calendar-week,.official-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.official-calendar-week{text-align:center;color:#176b3a;margin-bottom:5px}.official-calendar-day,.official-calendar-empty{min-height:112px;padding:7px;border:1px solid #c9ddce;border-radius:9px;background:#fff}.official-calendar-day>b{display:block;margin-bottom:5px}.official-calendar-event{display:block;width:100%;min-height:auto;margin:4px 0;padding:6px;font-size:12px;text-align:left;background:#176b3a;color:#fff;border:1px solid #176b3a;border-radius:6px}.official-calendar-event small{display:block;margin-top:3px;color:inherit;opacity:.9}.official-calendar-legend{color:#526857}@media(max-width:600px){.official-calendar-day,.official-calendar-empty{min-height:76px;padding:4px}.official-calendar-event{padding:4px;font-size:10px;line-height:1.2}.official-calendar-event small{display:none}.official-calendar-week{font-size:12px}}
.newsletter-panel{margin-top:24px;padding-top:16px;border-top:1px solid #c9ddce}.newsletter-panel textarea{width:100%;box-sizing:border-box;resize:vertical}.newsletter-toggle{display:block;margin:12px 0}.newsletter-history article{padding:10px 0;border-top:1px solid #d6e2d8}
.newsletter-history-toggle{margin-top:10px}
.route-official-toggle{display:flex!important;align-items:flex-start;gap:12px;padding:14px 16px!important;margin:18px 0!important;border:1px solid #77b98d;border-radius:12px;background:#eff9f1;color:#183324;cursor:pointer}.route-official-toggle input{width:21px!important;height:21px!important;min-height:0!important;margin:2px 0 0}.route-official-toggle strong{display:block;font-size:16px}.route-official-toggle small{display:block;margin-top:4px;color:#42614b;line-height:1.35}html[data-theme="dark"] .route-official-toggle{background:#1e3827;border-color:#5f9e73;color:#edf8ef}html[data-theme="dark"] .route-official-toggle small{color:#c4dfca}
.public-header{display:grid;grid-template-columns:1fr auto;grid-template-areas:"brand theme" "login .";align-items:center}.public-header>a[href="#/"]{grid-area:brand}.public-header>span{grid-area:theme}.public-header>.public-login-link{grid-area:login;justify-self:start;margin-top:8px}

.support-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border-radius:8px;background:#176b3a;color:#fff;font-weight:700;text-decoration:none}
textarea{width:100%;box-sizing:border-box;min-height:120px;padding:10px;border:1px solid #afc4b4;border-radius:8px;font:inherit}
#description-editor.route-description{width:100%;box-sizing:border-box;min-height:220px;padding:10px;border:1px solid #afc4b4;border-radius:8px;font:inherit;resize:vertical;overflow:auto;line-height:1.45;white-space:pre-wrap}
#description-editor.route-description:empty:before{content:attr(data-placeholder);color:#69786d;pointer-events:none}
.route-description-text{line-height:1.5}.route-description-text p{margin:.5em 0}.route-description-text ul,.route-description-text ol{padding-left:1.5em}.route-description-text a{font-weight:700;overflow-wrap:anywhere}
html[data-theme="dark"] #description-editor.route-description{background:#152019;color:#f1f6f2;border-color:#4b6052}

/* Tema oscuro: la elección se guarda en el navegador del usuario. */
html[data-theme="dark"] { color-scheme: dark; }
html[data-theme="dark"] body { background:#121815; color:#e8f0e9; }
html[data-theme="dark"] header { background:#18231d; border-color:#31443a; }
html[data-theme="dark"] main { color:#e8f0e9; }
html[data-theme="dark"] footer { color:#aebdb1; }
html[data-theme="dark"] a,html[data-theme="dark"] .tag { color:#83d69b; }
html[data-theme="dark"] .card,html[data-theme="dark"] .site-menu { background:#1c2820; border-color:#384b40; color:#e8f0e9 !important; }
html[data-theme="dark"] .site-menu button { color:#e8f0e9; }
html[data-theme="dark"] .site-menu button:hover,html[data-theme="dark"] .site-menu button:focus { background:#2a3b30; }
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea { background:#152019; color:#f1f6f2; border-color:#4b6052; }
html[data-theme="dark"] button:not(.site-menu button) { background:#267446; border-color:#4d9b69; }

.duration-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.forum{max-width:820px}.forum-compose{margin:20px 0}.forum-compose label{display:grid;gap:6px;margin:12px 0}.forum-topic{margin:12px 0;cursor:pointer}.forum-topic-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.forum-topic h2{margin:.2rem 0}.forum-pinned{display:inline-block;color:#176b3a;font-weight:800}.forum-meta{color:#66766a;font-size:.9rem}.forum-preview{white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.forum-body,.forum-reply p{white-space:pre-wrap}.forum-replies{margin:24px 0}.forum-reply{padding:14px 0;border-bottom:1px solid #d6e2d8}.forum-reply span{margin-left:8px;color:#66766a;font-size:.85rem}.forum-pin{margin-top:8px}
/* Listado del foro: filas legibles y pulsables, no una cuadrícula de botones. */
.forum-intro{position:static;display:block;background:transparent;border:0;padding:0;margin:0 0 22px}.forum-intro span{color:#176b3a;font-size:12px;font-weight:800;letter-spacing:.08em}.forum-intro h1{margin:4px 0}.forum-intro p{margin:0;color:#66766a}.forum-list-title{margin:26px 0 10px;font-size:20px}.forum-topic-list{display:grid;gap:10px}.forum-topic-list .forum-topic{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;width:100%;box-sizing:border-box;margin:0;padding:18px 20px;background:#fff;color:#183324;text-align:left;cursor:pointer}.forum-topic-list .forum-topic:hover{border-color:#4d9b69;box-shadow:0 8px 20px #123b1920}.forum-topic-main{min-width:0}.forum-topic-list .forum-topic h2{margin:0 0 6px;font-size:19px;line-height:1.25}.forum-topic-list .forum-meta{margin:0 0 9px}.forum-topic-list .forum-preview{margin:0;color:#425646;line-height:1.4;-webkit-line-clamp:2}.forum-open{justify-self:end;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e7f3e9;color:#176b3a;font-size:28px;line-height:1}.forum-topic-list .forum-topic:hover .forum-open{background:#176b3a;color:#fff}html[data-theme="dark"] .forum-intro p,html[data-theme="dark"] .forum-topic-list .forum-preview{color:#b7c7ba}html[data-theme="dark"] .forum-topic-list .forum-topic{background:#1c2820;color:#e8f0e9;border-color:#384b40}html[data-theme="dark"] .forum-open{background:#294334;color:#9ee7ae}@media(max-width:600px){.forum-topic-list .forum-topic{padding:16px}.forum-topic-list .forum-topic h2{font-size:17px}}
html[data-theme="dark"] .forum-meta,html[data-theme="dark"] .forum-reply span{color:#b7c7ba}html[data-theme="dark"] .forum-reply{border-color:#384b40}html[data-theme="dark"] .forum-pinned{color:#9ee7ae}
.forum-admin-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.forum-delete{background:#b33737!important;border-color:#e16b6b!important;color:#fff!important;margin-top:12px}.forum-delete-reply{font-size:14px;padding:8px 10px;min-height:38px}.forum-reply-card{cursor:default}.forum-reply-card:hover{transform:none}
.route-participation{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.route-joined{background:#dff3e4!important;color:#176b3a!important;border-color:#8acb9c!important;opacity:1!important;cursor:default}html[data-theme="dark"] .route-joined{background:#244b31!important;color:#e2f8e7!important;border-color:#71bf89!important}

/* El vídeo se comparte desde Comunidad; este cargador legado no se muestra. */
#admin-route-actions label:has(input[id^="admin-video-"]){display:none}

/* Selector de rutas previstas/finalizadas en la portada. */
#route_status{font-weight:700}
html[data-theme="dark"] #route_status{background:#24382a;color:#f4fff6;border-color:#79c691}
html[data-theme="dark"] #route_status option{background:#18231d;color:#f4fff6}

/* La ficha de detalle contiene controles; no debe parecer un enlace ni elevarse al pasar el ratón. */
main > article.card{cursor:default}
main > article.card:hover{transform:none;box-shadow:none}

/* Acciones de una ruta: deben quedar por encima de cualquier capa decorativa de la tarjeta. */
#route-quick-actions,#gpx-download,.card button[onclick*="openRouteGallery"],.card a[href*="/calendar"]{position:relative!important;z-index:20!important;pointer-events:auto!important}
#route-quick-actions button,#gpx-download button,#gpx-download a,.card button[onclick*="openRouteGallery"],.card a[href*="/calendar"]{cursor:pointer!important}
html[data-theme="dark"] .notification-card{background:#1c2820!important;color:#e8f0e9!important;border-color:#384b40!important}
html[data-theme="dark"] .notification-open{color:#7ed79d}

/* Controles de exploración en la portada web. */
#web-route-controls{margin:18px 0}.web-route-actions{display:flex;gap:10px;flex-wrap:wrap}.web-route-action,.web-route-action-active,.web-back-planned,.web-button-secondary{font-weight:800}.web-route-action{background:transparent;color:#176b3a;border:1px solid #176b3a}.web-route-action-active{background:#176b3a;color:#fff;border:1px solid #176b3a}.web-back-planned{margin-top:10px;background:#e7f3e9;color:#176b3a;border-color:#a9d4b4}.web-filter-panel{display:grid;gap:14px;padding:16px;background:#eaf4ec;border:1px solid #b6d8bf;border-radius:14px}.web-filter-heading{display:flex;align-items:center;justify-content:space-between;font-size:19px;color:#176b3a}.web-filter-panel label{display:grid;gap:6px;color:#183324;font-weight:700}.web-filter-panel select{width:100%;background:#fff}.web-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.web-filter-actions{display:flex;gap:10px;flex-wrap:wrap}.web-button-secondary{background:#fff;color:#176b3a}@media(max-width:600px){.web-route-actions>*{flex:1}.web-filter-grid{grid-template-columns:1fr}}
html[data-theme="dark"] .web-route-action{color:#dff7e5;border-color:#8bd9a5;background:#195a35}html[data-theme="dark"] .web-route-action-active{background:#25824b;border-color:#86e5a6}.web-filter-panel{background:#182b1d;border-color:#3e8b5c}.web-filter-panel label,.web-filter-heading{color:#e8f0e9}.web-filter-panel select{background:#152019;color:#f1f6f2;border-color:#4b6052}html[data-theme="dark"] .web-button-secondary,html[data-theme="dark"] .web-back-planned{background:#d8f0df!important;color:#176b3a!important;border-color:#a9d4b4!important}

/* Visor de fotos inmersivo: el gesto horizontal cambia de imagen en pantallas táctiles. */
@media (hover:none),(pointer:coarse){.route-photo-viewer .desktop-gallery-control{display:none!important}}
