/* Panel Cámara Franca — mismos tokens que el sitio público */
:root{
  --azul:#1A3352; --azul-hover:#0F2238; --azul-claro:#EBF2FA;
  --dorado:#9A7B3A; --dorado-bg:#FBF5E9; --dorado-brd:#E8D4A0;
  --bg:#FFFFFF; --surface:#F7F6F4; --surface2:#EFECE7;
  --borde:#E2DDD6; --texto:#1C1917; --texto2:#3D3733; --muted:#7C756E;
  --rojo:#9B2C2C; --rojo-bg:#FDF2F2;
  --verde:#2F6B4F; --verde-bg:#F0F7F3;
  --serif:'Libre Baskerville',Georgia,serif;
  --sans:'Inter',system-ui,sans-serif;
  --mono:'IBM Plex Mono',monospace;
  --r:5px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);background:var(--surface);color:var(--texto);line-height:1.6}
img{max-width:100%;display:block}
a{color:var(--azul);text-decoration:none}
a:hover{text-decoration:underline}
ul{list-style:none}
:focus-visible{outline:2px solid var(--dorado);outline-offset:2px}

/* Barra superior */
.topbar{background:var(--azul);color:#fff;padding:.9rem 0}
.topbar .container{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.topbar a{color:#fff}
.marca{font-family:var(--serif);font-size:1.05rem;letter-spacing:.01em}
.marca span{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;opacity:.7;display:block;margin-top:.1rem}
.topnav{display:flex;gap:1.4rem;align-items:center;font-size:.9rem}
.topnav .quien{color:rgba(255,255,255,.6);font-size:.82rem}

.container{max-width:1080px;margin:0 auto;padding:0 1.5rem}
main{padding:2.5rem 0 4rem}

.encabezado{display:flex;justify-content:space-between;align-items:flex-end;
  gap:1rem;flex-wrap:wrap;margin-bottom:1.75rem}
h1{font-family:var(--serif);font-size:1.7rem;font-weight:700;line-height:1.25}
h1 + p{color:var(--muted);font-size:.92rem;margin-top:.3rem}

.label{display:inline-flex;font-family:var(--mono);font-size:.68rem;
  letter-spacing:.13em;text-transform:uppercase;color:var(--dorado);
  background:var(--dorado-bg);border:1px solid var(--dorado-brd);
  padding:.24rem .7rem;border-radius:20px;margin-bottom:.75rem}

/* Tarjetas */
.card{background:var(--bg);border:1px solid var(--borde);border-radius:var(--r);
  padding:1.75rem}
.card + .card{margin-top:1.25rem}

/* Botones */
.btn{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--sans);
  font-size:.9rem;font-weight:500;padding:.62rem 1.1rem;border-radius:var(--r);
  border:1px solid transparent;cursor:pointer;transition:background .15s,border-color .15s}
.btn:hover{text-decoration:none}
.btn-primario{background:var(--azul);color:#fff}
.btn-primario:hover{background:var(--azul-hover)}
.btn-secundario{background:var(--bg);color:var(--texto2);border-color:var(--borde)}
.btn-secundario:hover{background:var(--surface2)}
.btn-peligro{background:var(--rojo-bg);color:var(--rojo);border-color:#F0D5D5}
.btn-peligro:hover{background:#F9E4E4}
.btn-sm{font-size:.82rem;padding:.4rem .75rem}

/* Formularios */
.campo{margin-bottom:1.35rem}
.campo label{display:block;font-size:.86rem;font-weight:500;
  color:var(--texto2);margin-bottom:.4rem}
.campo .ayuda{font-size:.79rem;color:var(--muted);margin-top:.35rem}
input[type=text],input[type=email],input[type=password],input[type=url],
input[type=number],textarea,select{
  width:100%;font-family:var(--sans);font-size:.94rem;color:var(--texto);
  padding:.65rem .8rem;border:1px solid var(--borde);border-radius:var(--r);
  background:var(--bg);transition:border-color .15s}
input:focus,textarea:focus,select:focus{border-color:var(--azul-medio,#2E5380);outline:none;
  box-shadow:0 0 0 3px rgba(26,51,82,.08)}
textarea{resize:vertical;min-height:280px;line-height:1.7}
input[type=file]{font-size:.88rem}
.fila{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}

/* Interruptores de tipo */
.tipos{display:flex;gap:.75rem;margin-bottom:1.75rem;flex-wrap:wrap}
.tipo{flex:1;min-width:200px;border:1px solid var(--borde);border-radius:var(--r);
  padding:1rem 1.1rem;cursor:pointer;background:var(--bg);transition:border-color .15s,background .15s}
.tipo:has(input:checked){border-color:var(--azul);background:var(--azul-claro)}
.tipo input{margin-right:.5rem}
.tipo strong{font-size:.94rem}
.tipo small{display:block;color:var(--muted);font-size:.8rem;margin-top:.2rem;
  margin-left:1.35rem;line-height:1.45}

.check{display:flex;align-items:flex-start;gap:.6rem;font-size:.9rem;color:var(--texto2)}
.check input{margin-top:.28rem}

/* Tabla de entradas */
.tabla{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--bg)}
.tabla th{text-align:left;font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);font-weight:500;
  padding:.8rem 1rem;border-bottom:1px solid var(--borde)}
.tabla td{padding:.9rem 1rem;border-bottom:1px solid var(--borde);vertical-align:middle}
.tabla tr:last-child td{border-bottom:none}
.tabla .tit{font-weight:500;color:var(--texto)}
.tabla .sub{color:var(--muted);font-size:.82rem;margin-top:.15rem}
.miniatura{width:56px;height:40px;object-fit:cover;border-radius:3px;border:1px solid var(--borde)}
.sin-img{width:56px;height:40px;border-radius:3px;background:var(--surface2);
  border:1px solid var(--borde)}
.acciones{display:flex;gap:.4rem;justify-content:flex-end}

/* Etiquetas de estado */
.pill{display:inline-block;font-family:var(--mono);font-size:.66rem;letter-spacing:.09em;
  text-transform:uppercase;padding:.22rem .6rem;border-radius:20px;border:1px solid}
.pill-pub{color:var(--verde);background:var(--verde-bg);border-color:#CFE3D8}
.pill-bor{color:var(--muted);background:var(--surface2);border-color:var(--borde)}
.pill-enl{color:var(--dorado);background:var(--dorado-bg);border-color:var(--dorado-brd)}

/* Avisos */
.aviso{padding:.85rem 1.1rem;border-radius:var(--r);font-size:.9rem;margin-bottom:1.5rem;
  border:1px solid}
.aviso-error{background:var(--rojo-bg);color:var(--rojo);border-color:#F0D5D5}
.aviso-ok{background:var(--verde-bg);color:var(--verde);border-color:#CFE3D8}

/* Estado vacío */
.vacio{text-align:center;padding:4rem 1.5rem;color:var(--muted)}
.vacio h2{font-family:var(--serif);font-size:1.2rem;color:var(--texto2);margin-bottom:.5rem}
.vacio p{font-size:.92rem;margin-bottom:1.5rem}

/* Login */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem;
  background:var(--azul)}
.login-card{background:var(--bg);border-radius:var(--r);padding:2.5rem;
  width:100%;max-width:400px;box-shadow:0 16px 48px rgba(0,0,0,.18)}
.login-card .marca{color:var(--azul);text-align:center;margin-bottom:1.75rem}
.login-card .marca span{color:var(--muted);opacity:1}

.tipo-oculto{display:none}

@media (max-width:720px){
  .fila{grid-template-columns:1fr}
  .topnav{gap:.9rem;font-size:.85rem}
  .topnav .quien{display:none}
  .tabla thead{display:none}
  .tabla,.tabla tbody,.tabla tr,.tabla td{display:block;width:100%}
  .tabla tr{border-bottom:1px solid var(--borde);padding:.6rem 0}
  .tabla td{border:none;padding:.35rem 1rem}
  .acciones{justify-content:flex-start;padding-top:.5rem}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
}
