/* Central Franquicias: mismo lenguaje visual que la Central Tángara (copiado de ~/central_tangara/public/estilo.css, 4-nov-2026). */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap');
:root { --negro:#141210; --tinta:#1D1A17; --gris:#6F6A60; --linea:#E8E6E1; --suave:#F6F5F2; --fondo:#FFFFFF; --rojo:#ED1C24;
  --ok:#1F7A52; --mal:#A93226; --aviso:#9A6414; color-scheme:light; }
* { box-sizing:border-box; } [hidden] { display:none !important; }
body { margin:0; background:var(--fondo); color:var(--tinta); font:15px/1.5 Montserrat,system-ui,sans-serif; }
a { color:inherit; }
.app { display:grid; grid-template-columns:240px minmax(0,1fr); min-height:100vh; }
#lado { position:sticky; top:0; height:100vh; overflow-y:auto; border-right:1px solid var(--linea); padding:18px 12px; background:#FAF9F6;
  background-image:linear-gradient(180deg, rgba(237,28,36,.06), transparent 140px); display:flex; flex-direction:column; gap:14px; }
.marca { padding:0 6px; } .marca b { display:block; font-size:15.5px; line-height:1.15; } .marca small { display:block; font-size:11.5px; color:var(--gris); }
.nav { display:flex; flex-direction:column; gap:2px; flex:1; }
.nav a { display:block; text-decoration:none; font-size:14px; font-weight:600; padding:8px 10px; border-radius:9px; color:#4A453E; }
.nav a:hover { background:#F1EFEA; } .nav a.aqui { background:var(--negro); color:#fff; }
.nav .t { font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--gris); margin:10px 10px 2px; }
.yo { border-top:1px solid var(--linea); padding:12px 8px 0; font-size:12px; color:var(--gris); overflow-wrap:anywhere; }
.yo button { margin-top:6px; }
.cuerpo { padding:28px 34px 60px; min-width:0; max-width:1240px; }
.cab { display:flex; align-items:flex-start; gap:14px; flex-wrap:wrap; margin-bottom:18px; } .cab > div:first-child { flex:1; min-width:220px; }
h1 { font-size:24px; margin:0; letter-spacing:-.01em; } h2 { font-size:17px; margin:26px 0 10px; } h3 { font-size:15px; margin:0 0 8px; }
.sub { color:var(--gris); font-size:14px; margin:4px 0 0; } .peq { font-size:12.5px; color:var(--gris); } .vacio { color:var(--gris); padding:14px; }
.card { background:#fff; border:1px solid var(--linea); border-radius:14px; padding:16px; margin-bottom:12px; }
.grid { display:grid; gap:12px; grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr)); }
.tile { display:flex; flex-direction:column; gap:6px; border:1px solid var(--linea); border-top:4px solid var(--c, var(--negro)); border-radius:14px; padding:16px; text-decoration:none; }
.tile:hover { border-color:#CFCBC2; box-shadow:0 4px 14px rgba(20,18,16,.06); } .tile .d { font-size:13px; color:var(--gris); } .tile.off { opacity:.55; }
label { display:flex; flex-direction:column; gap:4px; font-size:12.5px; color:var(--gris); } label.check { flex-direction:row; align-items:center; gap:6px; color:var(--tinta); font-size:14px; }
input, select, textarea { font:inherit; font-size:14px; padding:7px 10px; border:1px solid var(--linea); border-radius:9px; background:#fff; color:var(--tinta); min-width:0; } textarea { resize:vertical; }
.btn { font:inherit; font-size:13.5px; font-weight:600; padding:8px 14px; border-radius:9px; border:1px solid var(--linea); background:#fff; color:var(--tinta); cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.btn.pri { background:var(--negro); color:#fff; border-color:var(--negro); } .btn.chico { font-size:12px; padding:4px 10px; } .btn:disabled { opacity:.5; cursor:default; }
.acc { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin:10px 0; }
.form { display:grid; gap:10px; grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr)); }
.chip { display:inline-block; font-size:11.5px; font-weight:600; padding:2px 8px; border-radius:99px; background:#F1F0EC; white-space:nowrap; }
.chip.ok { background:#E7F3EC; color:var(--ok); } .chip.mal { background:#FAEAE8; color:var(--mal); } .chip.av { background:#FBF1DE; color:var(--aviso); }
.estado { font-size:13.5px; min-height:20px; } .estado.ok { color:var(--ok); } .estado.mal { color:var(--mal); }
.tabla { overflow-x:auto; border:1px solid var(--linea); border-radius:12px; }
table { border-collapse:collapse; width:100%; } th { text-align:left; font-size:11.5px; color:var(--gris); text-transform:uppercase; letter-spacing:.04em; background:var(--suave); }
th, td { padding:8px 10px; border-bottom:1px solid var(--linea); font-size:13.5px; vertical-align:top; } tr:last-child td { border-bottom:0; }
tr.clic { cursor:pointer; } tr.clic:hover td { background:#FBFAF7; } tr.inactivo td { color:var(--gris); }
.num { text-align:right; font-variant-numeric:tabular-nums; }
dialog { border:1px solid var(--linea); border-radius:16px; padding:20px; width:min(760px, calc(100vw - 32px)); max-height:calc(100vh - 40px); }
dialog::backdrop { background:rgba(20,18,16,.35); }
.aviso { border:1px solid #F1D9A6; border-left:4px solid #E0A21B; border-radius:12px; padding:12px 14px; background:#FFF8E8; font-size:14px; margin:10px 0; }
.error-l { border-left-color:var(--mal); background:#FDF1EF; border-color:#F0C9C3; }
.menu-btn { display:none; }
/* entrar */
.entrar { min-height:100vh; display:grid; place-items:center; padding:16px; background:var(--suave); }
.entrar .card { width:min(420px,100%); padding:26px; } .entrar h1 { font-size:21px; } .entrar form { display:flex; flex-direction:column; gap:12px; margin-top:16px; }
.entrar input.codigo { font-size:26px; letter-spacing:8px; text-align:center; }
@media (max-width:860px) {
  .app { grid-template-columns:1fr; }
  #lado { position:fixed; inset:0 auto 0 0; width:260px; z-index:20; transform:translateX(-100%); transition:transform .2s; }
  #lado.abierto { transform:none; box-shadow:0 0 30px rgba(0,0,0,.2); }
  .menu-btn { display:inline-flex; position:sticky; top:8px; margin:8px 0 0 12px; z-index:10; }
  .cuerpo { padding:14px 16px 50px; }
}
