/* Área privada de socio — estilos compartidos */

.area { background:#14100e; min-height:70vh; padding:48px 24px 96px; }
.area__inner { max-width:1600px; margin:0 auto; }
.area__layout { display:grid; grid-template-columns:220px 1fr; gap:32px; align-items:start; }
.area__title { color:#fff; font-size:clamp(28px,5vw,42px); margin:0 0 6px; }
.area__hello { color:#b7ab99; margin:0 0 28px; }

/* Navegación lateral */
.socio-nav { display:flex; flex-direction:column; gap:4px; background:#1f1915; border:1px solid #2e2823; border-radius:12px; padding:14px; position:sticky; top:24px; }
.socio-nav__link { display:flex; align-items:center; gap:10px; padding:11px 14px; border-radius:8px; color:#cfc3b2; text-decoration:none; font-size:15px; transition:background .18s, color .18s; }
.socio-nav__link:hover { background:#14100e; color:#fff; }
.socio-nav__link--active { background:#e07b00; color:#14100e; font-weight:700; }
.socio-nav__link i { font-size:18px; }

/* Tarjetas */
.area__card { background:#1f1915; border:1px solid #2e2823; border-radius:12px; padding:28px; margin-bottom:22px; }
.area__card-title { color:#fff; font-size:19px; margin:0 0 18px; }
.area__row { display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid #2e2823; font-size:15px; }
.area__row:last-child { border-bottom:none; }
.area__row-label { color:#8c8072; }
.area__row-value { color:#fff; font-weight:600; text-align:right; }
.area__num { color:#e07b00; font-size:22px; letter-spacing:1px; }

/* Grid de tiles del dashboard */
.area__tiles { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:16px; margin-bottom:22px; }
.area__tile { background:#1f1915; border:1px solid #2e2823; border-radius:12px; padding:22px; text-align:center; }
.area__tile-num { font-family:"MedievalSharp", serif; font-size:34px; color:#e07b00; line-height:1; }
.area__tile-label { margin-top:8px; font-size:12px; letter-spacing:1px; text-transform:uppercase; color:#8c8072; }

/* Avatar */
.area__avatar { display:flex; align-items:center; gap:18px; margin-bottom:22px; }
.area__avatar-img { width:72px; height:72px; border-radius:50%; object-fit:cover; border:2px solid #e07b00; }
.area__avatar-ph { width:72px; height:72px; border-radius:50%; background:#14100e; border:2px solid #3a322b; display:flex; align-items:center; justify-content:center; color:#5a4a38; font-size:30px; }

/* Avisos */
.area__aviso a { color:#e07b00; }
.area__aviso { background:#1f1915; border-left:3px solid #e07b00; color:#cfc3b2; padding:12px 16px; border-radius:6px; margin-bottom:12px; font-size:14px; line-height:1.5; }

/* Lista de eventos */
.area__evento { display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid #2e2823; }
.area__evento:last-child { border-bottom:none; }
.area__evento-fecha { color:#e07b00; font-weight:700; white-space:nowrap; font-size:14px; }
.area__evento-titulo { color:#fff; }
.area__evento-lugar { color:#8c8072; font-size:13px; }
.area__empty { color:#8c8072; margin:0; font-size:14px; }

/* Cambio de contraseña / avisos */
.area__warn { background:#fff4e6; border-left:3px solid #e07b00; color:#a05a00; padding:14px 18px; border-radius:6px; margin-bottom:24px; font-size:14px; }

/* Campos de formulario */
.area__field { margin-bottom:18px; }
.area__label { display:block; color:#cfc3b2; font-size:13px; margin-bottom:6px; }
.area__input { width:100%; box-sizing:border-box; padding:12px 14px; background:#14100e; border:1px solid #3a322b; border-radius:6px; color:#fff; font-size:15px; }
.area__input:focus { outline:none; border-color:#e07b00; }
.area__input:disabled { color:#8c8072; cursor:not-allowed; }
.area__hint { font-size:12px; color:#6a6256; margin-top:4px; }
.area__btn { padding:13px 32px; background:#e07b00; border:none; border-radius:6px; color:#14100e; font-weight:700; letter-spacing:1px; text-transform:uppercase; cursor:pointer; }
.area__btn:hover { background:#f59422; }

/* Botones pequeños de evento (apuntarse/cancelar) */
.area__btn-sm { padding:8px 18px; border-radius:6px; font-size:13px; font-weight:700; letter-spacing:.5px; cursor:pointer; border:none; white-space:nowrap; }
.area__btn-sm--go { background:#e07b00; color:#14100e; }
.area__btn-sm--go:hover { background:#f59422; }
.area__btn-sm--cancel { background:transparent; border:1px solid #7a2020; color:#e07a7a; }
.area__btn-sm--cancel:hover { background:#3a1414; }
.area__badge { display:inline-block; padding:4px 10px; border-radius:6px; font-size:12px; white-space:nowrap; }
.area__badge--in { background:#1e3a1e; color:#7fd17f; }
.area__badge--full { background:#3a1414; color:#e0a0a0; }
.area__badge--info { background:#14100e; color:#8c8072; border:1px solid #3a322b; }

/* Propuestas: badges de estado y apoyo */
.prop-estado { display:inline-block; padding:3px 10px; border-radius:6px; font-size:11px; text-transform:uppercase; letter-spacing:.5px; white-space:nowrap; }
.prop-estado--presentada { background:#14100e; color:#b7ab99; border:1px solid #3a322b; }
.prop-estado--en_estudio { background:#2a2410; color:#d9c07f; }
.prop-estado--aprobada { background:#1e3a1e; color:#7fd17f; }
.prop-estado--rechazada { background:#3a1414; color:#e0a0a0; }
.prop-estado--realizada { background:#1d2a3a; color:#8fb8e0; }
.prop-apoyo { display:inline-flex; align-items:center; gap:6px; padding:6px 14px; border-radius:20px; border:1px solid #3a322b; background:transparent; color:#cfc3b2; font-size:13px; cursor:pointer; transition:all .18s; }
.prop-apoyo:hover { border-color:#e07b00; color:#e07b00; }
.prop-apoyo--on { background:#e07b00; border-color:#e07b00; color:#14100e; font-weight:700; }
.prop-card { padding:18px 0; border-bottom:1px solid #2e2823; }
.prop-card:last-child { border-bottom:none; }
.prop-card__head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.prop-card__title { color:#fff; font-size:17px; margin:0 0 4px; }
.prop-card__meta { color:#8c8072; font-size:13px; }
.prop-card__desc { color:#cfc3b2; font-size:14px; line-height:1.6; margin:10px 0 0; }
.prop-card__respuesta { background:#1f1915; border-left:3px solid #e07b00; padding:10px 14px; border-radius:6px; margin-top:10px; font-size:13px; color:#cfc3b2; }

/* Acciones y formulario de edición de partida (área de socio) */
.partida-acciones { display:inline-flex; gap:8px; align-items:center; flex-wrap:wrap; }
.partida-editar { background:#14100e; border:1px solid #2e2823; border-radius:10px; padding:20px; margin:0 0 16px; }
.partida-editar__imagen { display:flex; align-items:center; gap:14px; margin-bottom:10px; }
.partida-editar__imagen img { width:120px; height:80px; object-fit:cover; border-radius:6px; border:1px solid #3a322b; }
.partida-editar__quitar { display:flex; align-items:center; gap:8px; color:#cfc3b2; font-size:13px; cursor:pointer; }
.partida-editar__quitar input { width:16px; height:16px; accent-color:#e07b00; cursor:pointer; }

/* Preferencias (checkboxes) */
.area__pref { display:flex; gap:12px; align-items:flex-start; padding:14px 0; border-bottom:1px solid #2e2823; cursor:pointer; color:#cfc3b2; font-size:14px; line-height:1.55; }
.area__pref input { margin-top:3px; width:18px; height:18px; flex-shrink:0; accent-color:#e07b00; cursor:pointer; }

/* Delegaciones de voto */
.deleg-asamblea { padding:18px 0; border-bottom:1px solid #2e2823; }
.deleg-asamblea:last-child { border-bottom:none; }
.deleg-asamblea__head { margin-bottom:12px; }
.deleg-asamblea__title { color:#fff; font-size:17px; margin:0 0 4px; }
.deleg-asamblea__meta { color:#8c8072; font-size:13px; }
.deleg-asamblea__limite { color:#b7ab99; font-size:12px; margin-top:6px; display:flex; align-items:center; gap:5px; }
.deleg-asamblea__limite i { color:#e07b00; }
.deleg-cerrado { color:#8c8072; font-size:13px; font-style:italic; margin:10px 0 0; }
.deleg-form { margin-top:8px; }
.deleg-estado-box { background:#14100e; border:1px solid #3a322b; border-radius:8px; padding:14px 16px; color:#cfc3b2; font-size:14px; }
.deleg-recibida { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; padding:16px 0; border-bottom:1px solid #2e2823; flex-wrap:wrap; }
.deleg-recibida:last-child { border-bottom:none; }
.deleg-recibida__info { flex:1; min-width:200px; color:#fff; }
.deleg-recibida__meta { color:#8c8072; font-size:13px; margin-top:4px; }
.deleg-recibida__nota { color:#b7ab99; font-size:13px; font-style:italic; margin-top:4px; }
.deleg-recibida__acciones { display:flex; gap:8px; align-items:center; }
.deleg-badge { display:inline-block; padding:3px 10px; border-radius:6px; font-size:11px; text-transform:uppercase; letter-spacing:.5px; white-space:nowrap; margin-left:6px; }
.deleg-badge--pendiente { background:#2a2410; color:#d9c07f; }
.deleg-badge--aceptada { background:#1e3a1e; color:#7fd17f; }
.deleg-badge--rechazada { background:#3a1414; color:#e0a0a0; }
.deleg-badge--revocada { background:#14100e; color:#8c8072; border:1px solid #3a322b; }

/* Recursos / préstamos */
.rec-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:18px; }
.rec-card { background:#14100e; border:1px solid #2e2823; border-radius:10px; overflow:hidden; display:flex; flex-direction:column; }

/* Imagen completa (sin recortar) sobre la misma imagen difuminada de fondo.
   Es un botón: abre la ficha del recurso. */
.rec-card__media { position:relative; aspect-ratio:4/3; overflow:hidden; background:#1a1512; display:flex; align-items:center; justify-content:center; width:100%; padding:0; border:none; cursor:pointer; }
.rec-card__media:focus-visible { outline:2px solid #e07b00; outline-offset:-2px; }
.rec-card__media-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:blur(18px) brightness(.45); transform:scale(1.15); }
.rec-card__media-img { position:relative; max-width:100%; max-height:100%; object-fit:contain; display:block; }
.rec-card__media-ph { color:#4a3f33; font-size:52px; }

.rec-card__body { padding:14px 16px; display:flex; flex-direction:column; flex:1; }
.rec-card__cat { color:#e07b00; font-size:11px; text-transform:uppercase; letter-spacing:.5px; margin-bottom:4px; }
.rec-card__sistema { color:#8fb8e0; font-size:12px; margin-bottom:4px; display:flex; align-items:center; gap:4px; }
.rec-card__title { color:#fff; font-size:16px; margin:0 0 6px; }
.rec-card__title-btn { background:none; border:none; padding:0; margin:0; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.rec-card__title-btn:hover { color:#e07b00; }

/* Descripción limitada a 3 líneas; "Leer más" abre la ficha (modal) */
.rec-card__desc { color:#b7ab99; font-size:13px; line-height:1.5; margin:0; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.leer-mas { align-self:flex-start; background:none; border:none; padding:2px 0; margin:2px 0 0; color:#e07b00; font-size:12px; font-weight:700; cursor:pointer; }
.leer-mas:hover { color:#f59422; text-decoration:underline; }
.rec-card__uso { color:#8c8072; font-size:12px; margin:10px 0 12px; display:flex; align-items:center; gap:5px; }
.rec-card__uso i { color:#5a4a38; }

/* ===== Ficha del recurso (modal <dialog>) ===== */
html.modal-abierto { overflow:hidden; }
.rec-ficha { width:min(920px, calc(100vw - 32px)); max-height:calc(100vh - 48px); padding:0; border:1px solid #3a322b; border-radius:14px; background:#1f1915; color:#cfc3b2; overflow:auto; }
.rec-ficha::backdrop { background:rgba(10, 8, 6, .78); }
.rec-ficha:focus, .rec-ficha:focus-visible { outline:none; }
.rec-ficha__cerrar { position:absolute; top:10px; right:12px; z-index:2; width:36px; height:36px; border-radius:50%; border:1px solid #3a322b; background:#14100e; color:#fff; font-size:22px; line-height:1; cursor:pointer; }
.rec-ficha__cerrar:hover { background:#e07b00; border-color:#e07b00; color:#14100e; }
.rec-ficha__layout { display:grid; grid-template-columns:minmax(220px, 340px) 1fr; }
.rec-ficha__media { background:#14100e; display:flex; align-items:flex-start; justify-content:center; padding:24px; }
.rec-ficha__media img { max-width:100%; height:auto; border-radius:8px; box-shadow:0 8px 28px rgba(0,0,0,.5); display:block; }
.rec-ficha__info { padding:28px 32px; display:flex; flex-direction:column; gap:14px; }
.rec-ficha__etiquetas { display:flex; flex-wrap:wrap; gap:6px; padding-right:40px; }
.rec-ficha__etiquetas .rec-badge { margin-left:0; }
.rec-ficha__titulo { color:#fff; font-size:clamp(22px, 3vw, 28px); line-height:1.2; margin:0; }
.rec-ficha__datos { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px 20px; font-size:13px; color:#b7ab99; }
.rec-ficha__datos li { display:flex; align-items:center; gap:6px; }
.rec-ficha__datos i { color:#e07b00; }
.rec-ficha__desc { font-size:14px; line-height:1.7; color:#cfc3b2; border-top:1px solid #2e2823; padding-top:14px; }
.rec-ficha__acciones { margin-top:auto; padding-top:6px; }
.rec-badge--cat { background:#2a1f10; color:#e9b878; }
.rec-badge--sistema { background:#14100e; color:#8fb8e0; border:1px solid #2b3a4d; display:inline-flex; align-items:center; gap:4px; text-decoration:none; }
a.rec-badge--sistema:hover { border-color:#8fb8e0; color:#fff; }

@media (max-width:700px) {
  .rec-ficha__layout { grid-template-columns:1fr; }
  .rec-ficha__media { padding:20px 20px 0; }
  .rec-ficha__media img { max-height:320px; }
  .rec-ficha__info { padding:20px; }
}
.rec-card__meta { color:#8c8072; font-size:12px; margin-bottom:10px; }
.rec-card__foot { margin-top:auto; }
.rec-prestamo { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; padding:14px 0; border-bottom:1px solid #2e2823; flex-wrap:wrap; }
.rec-prestamo:last-child { border-bottom:none; }
.rec-prestamo__info { flex:1; min-width:200px; color:#fff; }
.rec-prestamo__meta { color:#8c8072; font-size:13px; margin-top:4px; }
.rec-prestamo__nota { color:#b7ab99; font-size:13px; font-style:italic; margin-top:4px; }
.rec-badge { display:inline-block; padding:3px 10px; border-radius:6px; font-size:11px; text-transform:uppercase; letter-spacing:.5px; white-space:nowrap; margin-left:6px; }
.rec-badge--solicitado { background:#2a2410; color:#d9c07f; }
.rec-badge--prestado { background:#1d2a3a; color:#8fb8e0; }
.rec-badge--devuelto { background:#1e3a1e; color:#7fd17f; }
.rec-badge--rechazado { background:#3a1414; color:#e0a0a0; }
.rec-badge--cancelado { background:#14100e; color:#8c8072; border:1px solid #3a322b; }
.rec-badge--vencido { background:#3a1414; color:#e0a0a0; }
.rec-badge--info { background:#14100e; color:#8c8072; border:1px solid #3a322b; }
.rec-badge--digital { background:#1d2a3a; color:#8fb8e0; margin-left:6px; }

/* Recursos digitales: botones descargar / abrir enlace */
.rec-acciones { display:flex; gap:8px; flex-wrap:wrap; }
.rec-acciones .area__btn-sm { display:inline-flex; align-items:center; gap:6px; text-decoration:none; }
.area__btn-sm--ghost { background:transparent; border:1px solid #e07b00; color:#e07b00; }
.area__btn-sm--ghost:hover { background:#e07b00; color:#14100e; }

/* Enlace destacado del Panel de Junta en la navegación */
.socio-nav__link--junta { border:1px solid #e07b00; color:#e9b878; margin-bottom:6px; }
.socio-nav__link--junta:hover { background:#2a1f10; color:#f59422; }

/* Panel de Junta: cuadro de mando */
.junta-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(160px, 1fr)); gap:16px; }
.junta-tile { display:block; background:#1f1915; border:1px solid #2e2823; border-radius:12px; padding:22px; text-align:center; text-decoration:none; transition:border-color .18s, transform .18s; }
.junta-tile:hover { border-color:#e07b00; transform:translateY(-2px); }
.junta-tile__num { font-family:"MedievalSharp", serif; font-size:38px; color:#e07b00; line-height:1; }
.junta-tile__label { margin-top:10px; font-size:12px; letter-spacing:.5px; text-transform:uppercase; color:#8c8072; }
.junta-tile--alert { border-color:#d9a441; }
.junta-tile--alert .junta-tile__num { color:#e9b878; }
.junta-tile--danger { border-color:#7a2020; }
.junta-tile--danger .junta-tile__num { color:#e0a0a0; }
.junta-asamblea { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; color:#fff; }

@media (max-width: 760px) {
  .area__layout { grid-template-columns:1fr; gap:20px; }
  .socio-nav { flex-direction:row; flex-wrap:wrap; position:static; }
  .socio-nav__link { flex:1 1 auto; justify-content:center; }
}
