/* Panel administrativo (CMS) - estilos */
:root{
  --adm-primario:#FFC107;
  --adm-secundario:#6A1B9A;
  --adm-oscuro:#4A148C;
  --adm-fondo:#F5F3F7;
  --adm-borde:#e3dde8;
}
*{box-sizing:border-box;}
body.admin-body{margin:0; font-family:'Poppins',system-ui,Segoe UI,Roboto,sans-serif; background:var(--adm-fondo); color:#262626;}
a{color:var(--adm-secundario); text-decoration:none;}
a:hover{text-decoration:underline;}

.admin-layout{display:flex; min-height:100vh;}
.admin-sidebar{width:230px; background:var(--adm-oscuro); color:#fff; flex-shrink:0; padding:22px 0;}
.admin-sidebar .marca{padding:0 20px 20px; font-weight:700; font-size:1.05rem; border-bottom:1px solid rgba(255,255,255,.15); margin-bottom:14px;}
.admin-sidebar a{display:flex; align-items:center; gap:10px; padding:11px 20px; color:#ecd9ff; font-size:.92rem;}
.admin-sidebar a:hover, .admin-sidebar a.activo{background:rgba(255,255,255,.12); text-decoration:none; color:#fff;}
.admin-sidebar .separador{padding:14px 20px 4px; font-size:.7rem; text-transform:uppercase; color:#caa6ec; letter-spacing:.05em;}

.admin-main{flex:1; min-width:0;}
.admin-topbar{background:#fff; border-bottom:1px solid var(--adm-borde); padding:14px 26px; display:flex; justify-content:space-between; align-items:center;}
.admin-content{padding:26px;}

.card{background:#fff; border-radius:12px; padding:22px; box-shadow:0 2px 10px rgba(74,20,140,.06); margin-bottom:22px;}
.card h2, .card h3{margin-top:0;}

table.tabla{width:100%; border-collapse:collapse; font-size:.9rem;}
table.tabla th, table.tabla td{padding:10px 12px; border-bottom:1px solid var(--adm-borde); text-align:left; vertical-align:middle;}
table.tabla th{background:#faf7fc; font-weight:700; color:#555;}
table.tabla tr:hover{background:#fbf9fd;}
.thumb-tabla{width:46px; height:46px; border-radius:8px; object-fit:cover; background:#eee;}

.form-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px;}
.form-grupo{margin-bottom:16px;}
.form-grupo label{display:block; font-weight:600; font-size:.88rem; margin-bottom:6px; color:#444;}
.form-grupo input[type=text], .form-grupo input[type=email], .form-grupo input[type=password],
.form-grupo input[type=number], .form-grupo input[type=date], .form-grupo input[type=datetime-local],
.form-grupo input[type=tel], .form-grupo select, .form-grupo textarea{
  width:100%; padding:10px 12px; border:1px solid var(--adm-borde); border-radius:8px; font-family:inherit; font-size:.92rem;
}
.form-grupo textarea{min-height:120px; resize:vertical;}
.form-ayuda{font-size:.78rem; color:#888; margin-top:4px;}
.form-check{display:flex; align-items:center; gap:8px; margin-bottom:14px;}
.checkbox-roles{display:flex; flex-direction:column; gap:8px; border:1px solid var(--adm-borde); border-radius:8px; padding:12px;}
.checkbox-roles label{display:flex; gap:8px; align-items:center; font-weight:500;}

.btn{display:inline-block; padding:10px 20px; border-radius:8px; background:var(--adm-secundario); color:#fff; border:none; cursor:pointer; font-weight:600; font-size:.9rem;}
.btn:hover{background:var(--adm-oscuro); text-decoration:none;}
.btn-amarillo{background:var(--adm-primario); color:#262626;}
.btn-peligro{background:#c0392b;}
.btn-peligro:hover{background:#962d21;}
.btn-sm{padding:6px 12px; font-size:.8rem;}
.btn-outline{background:transparent; border:2px solid var(--adm-secundario); color:var(--adm-secundario);}

.badge{display:inline-block; padding:3px 10px; border-radius:999px; font-size:.72rem; font-weight:700;}
.badge-borrador{background:#eee; color:#555;}
.badge-publicado, .badge-vigente{background:#e4f6e8; color:#1e7e34;}
.badge-cancelado{background:#fde3e3; color:#c0392b;}
.badge-vencido{background:#fff3cd; color:#8a6d00;}
.badge-inactivo{background:#eee; color:#777;}
.badge-programado{background:#eaf2ff; color:#2c5aa0;}

.alerta{padding:12px 18px; border-radius:10px; margin-bottom:18px; font-size:.9rem;}
.alerta-exito{background:#e4f6e8; color:#1e7e34;}
.alerta-error{background:#fde3e3; color:#c0392b;}
.alerta-info{background:#eaf2ff; color:#2c5aa0;}

.fotos-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:10px; margin:12px 0;}
.foto-item{position:relative; border-radius:8px; overflow:hidden; border:2px solid transparent;}
.foto-item.portada{border-color:var(--adm-primario);}
.foto-item img{height:90px; object-fit:cover; width:100%;}
.foto-item .acciones{position:absolute; bottom:0; left:0; right:0; background:rgba(0,0,0,.55); display:flex; justify-content:space-around; padding:3px;}
.foto-item .acciones button, .foto-item .acciones a{background:none; border:none; color:#fff; font-size:.68rem; cursor:pointer;}

.login-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--adm-secundario),var(--adm-oscuro));}
.login-caja{background:#fff; padding:40px 36px; border-radius:16px; width:100%; max-width:380px; box-shadow:0 10px 40px rgba(0,0,0,.25);}
.login-caja .logo-slot{width:60px; height:60px; border-radius:14px; background:var(--adm-primario); margin:0 auto 16px; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:1.4rem; color:#4A148C;}
.login-caja h1{text-align:center; font-size:1.2rem; margin-top:0;}

.acciones-tabla{display:flex; gap:8px;}

.toggle-sidebar{display:none;}
@media (max-width:860px){
  .admin-layout{flex-direction:column;}
  .admin-sidebar{width:100%;}
}
