:root{
  --bg:#f4ecd8; --surface:#fffdf7; --border:#e4d9bf; --text:#3a2f1e;
  --muted:#8a7d63; --accent:#a0522d; --accent-2:#6b8e23; --danger:#b23a3a;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

/* Topbar */
.topbar{background:var(--surface);border-bottom:1px solid var(--border)}
.topbar-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:14px;padding:12px 16px;flex-wrap:wrap}
.marca{font-weight:800;font-size:18px;color:var(--accent)}
.nav{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:14px;flex-wrap:wrap}
.chip{background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-size:12px;color:var(--muted)}
.usuario{color:var(--muted)}
.salir{color:var(--danger)}

.contenido{max-width:1100px;margin:0 auto;padding:22px 16px}
.pie{max-width:1100px;margin:0 auto;padding:18px 16px;color:var(--muted)}

h1{font-size:24px;margin:0 0 4px}
h2{font-size:18px;margin:26px 0 8px}
.sub{color:var(--muted);margin:0 0 16px}
.meta{color:var(--muted);font-size:13px}

/* Centrado (login) */
.centro{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}

/* Tarjetas / formularios */
.tarjeta{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px;max-width:420px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.login{width:360px}
.login h1{color:var(--accent);text-align:center}
label{display:block;margin:10px 0;font-size:13px;color:var(--muted)}
input,select{width:100%;margin-top:4px;padding:10px;border:1px solid var(--border);border-radius:9px;background:#fff;font-size:15px;color:var(--text)}
.btn{display:inline-block;margin-top:10px;margin-right:6px;padding:9px 16px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font-size:14px;cursor:pointer}
.btn:hover{text-decoration:none;background:var(--bg)}
.btn.primario{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn.chico{padding:5px 10px;font-size:12px;margin:0}
.btn.peligro{color:var(--danger);border-color:#e0b8b8}
button.btn{font-family:inherit}

.error{background:#fdeaea;border:1px solid #e6b3b3;color:var(--danger);padding:9px 12px;border-radius:9px;margin:10px 0;font-size:14px}
.flash{background:#eef6e6;border:1px solid #c9e0ad;color:#4a6b1e;padding:9px 12px;border-radius:9px;margin:0 0 16px;font-size:14px}
.aviso{background:var(--surface);border:1px dashed var(--border);border-radius:12px;padding:14px;color:var(--muted)}
.aviso.ok{border-style:solid;border-color:#c9e0ad;background:#f3f8ec;color:#4a6b1e}

/* Grilla de establecimientos / paneles */
.grilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:8px}
.tarjeta.estab,.tarjeta.panel{max-width:none}
.estab{position:relative;transition:transform .08s}
.estab:hover{transform:translateY(-2px);text-decoration:none}
.estab h3{margin:0 0 4px;color:var(--text)}
.rol-chip{display:inline-block;background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:2px 9px;font-size:11px;color:var(--muted);margin-top:8px}
.entrar{display:block;margin-top:10px;color:var(--accent);font-weight:600}
.acciones{margin-top:18px}

/* Tabla */
.tabla{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.tabla th,.tabla td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:14px}
.tabla th{background:var(--bg);color:var(--muted);font-weight:600}
code{background:var(--bg);padding:1px 5px;border-radius:5px;font-size:12px}
