/* ---------- Añadidos comunes de la versión dinámica ---------- */
.form-error{
  display:none;background:rgba(112,11,2,.14);border:1px solid var(--ember);color:#b3261e;
  border-radius:var(--radius);padding:10px 12px;font-size:12.5px;margin:0 0 14px;
}
.modal select,.modal textarea,.field textarea{
  width:100%;background:var(--ink);border:1px solid var(--line);border-radius:var(--radius);
  padding:11px 12px;color:var(--paper);font-family:'Inter',sans-serif;font-size:14px;
}
.modal textarea{min-height:80px;resize:vertical;}
.modal select:focus,.modal textarea:focus{outline:none;border-color:var(--ember);}
.modal form{margin:0;}
.modal-scroll{max-height:88vh;overflow-y:auto;}
.btn[disabled]{opacity:.6;cursor:wait;}
.brand a{display:block;}

/* toast (index no lo traía) */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink-3);border:1px solid var(--gold);color:var(--paper);padding:12px 20px;border-radius:var(--radius);font-size:13px;opacity:0;transition:.25s;z-index:200;display:flex;align-items:center;gap:8px;pointer-events:none;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* tarjeta de región clicable en home */
a.card{display:block;}

/* enlace "Manage" en tarjetas de walk */
.walk-card .manage-link{color:var(--gold);font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-family:'Oswald',sans-serif;}
.walk-card .manage-link:hover{color:var(--ember);}

/* solicitud de unión en tarjetas de walk (voluntarios) */
.walk-join{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:2px;}
.walk-join .btn{margin-left:auto;}
.join-state{font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-family:'Oswald',sans-serif;color:var(--paper-dim);}
.join-state.member{color:#7fd18b;}
.join-state.declined{color:var(--smoke);}
.walk-join .link-btn{background:none;border:none;padding:0;color:var(--gold);text-decoration:underline;font-size:12px;font-family:inherit;cursor:pointer;}
.walk-join .link-btn:hover{color:var(--ember);}

/* solicitudes pendientes en profile.php */
.request-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:13px 0;border-bottom:1px solid var(--line);font-size:14px;}
.request-row:last-child{border-bottom:none;}
.request-row .req-contact{font-size:12px;color:var(--smoke);margin-top:2px;}
.request-row .req-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.request-row .req-actions select{background:transparent;border:1px solid var(--line);border-radius:var(--radius);padding:7px 10px;font-size:12px;color:inherit;}

/* selector de walk en el dashboard */
.walk-picker{display:flex;align-items:center;gap:10px;padding-top:22px;font-size:12px;color:var(--smoke);}
.walk-picker select{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--paper);padding:8px 10px;font-size:13px;}

/* ruta de la app (datos de zona.php) vs. ruta local antigua */
.route-card .app-only{display:none;}
.route-card.is-app .app-only{display:block;}
.route-card.is-app .team-stats.app-only{display:grid;}
.route-card.is-app .legacy-only{display:none;}
.route-card .team-stats{margin:0;border-width:0 0 1px;border-radius:0;}
.route-loading{padding:12px 22px;font-size:12.5px;color:var(--smoke);border-bottom:1px solid var(--line);}
.route-card.is-app .route-map{background:#ddd6c4;min-height:520px;}
#routeMap{position:absolute;inset:0;}
.route-map .add-houses{z-index:2;cursor:pointer;}
.route-map .add-houses.on{background:var(--ember);}
.route-panel .panel-sub{margin:28px 0 12px;}
.table-wrap{overflow-x:auto;}
.app-table td{padding:12px 6px;}
.media-link{color:var(--gold);white-space:nowrap;font-size:12px;}
.route-toggle[disabled]{opacity:.55;cursor:not-allowed;}
.btn-sm.btn-primary{text-decoration:none;}

/* páginas legales */
.legal{max-width:760px;margin:0 auto;padding:40px 0 20px;line-height:1.7;color:var(--paper-dim);}
.legal h1{color:var(--paper);font-size:32px;margin-bottom:18px;}
.legal h2,.legal h3{color:var(--paper);margin:26px 0 8px;}
.legal a{color:var(--gold);text-decoration:underline;}

/* ---------- admin ---------- */
.admin .crumb-link{color:var(--gold);font-weight:600;}
.admin .crumb-link:hover{color:var(--ember);}
.admin-form{max-width:760px;}
.admin .field select{width:100%;background:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:11px 12px;color:var(--paper);font-size:14px;}
.admin .field textarea{font-family:'IBM Plex Mono',monospace;font-size:13px;}
.admin-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);}
.admin-table{width:100%;border-collapse:collapse;font-size:13px;}
.admin-table th{text-align:left;color:var(--smoke);text-transform:uppercase;letter-spacing:.05em;font-size:10.5px;padding:10px;border-bottom:1px solid var(--line);background:var(--ink-2);}
.admin-table td{padding:10px;border-bottom:1px solid var(--line);color:var(--paper-dim);vertical-align:top;}
.admin-table tr:last-child td{border-bottom:none;}
header.topbar .who a{color:var(--ember);text-decoration:underline;}
