/* Paleta de Volví (la empresa, no la de cada negocio-cliente -- esos
   tienen la propia, configurable, en su configuracion.php). Sacada del
   sitio público (volvi.club): morado de marca + acento coral sobre
   fondo claro, tipografías Space Grotesk (títulos) / Manrope (texto). */
:root{
  --bg:#FAFAF7; --card:#FFFFFF; --card2:#F5F3FA; --line:#E9E5F2;
  --ink:#15131C; --ink-dim:#6B6678; --ink-faint:#9D98AC;
  --primary:#5B3DF0; --primary-hover:#4527C7; --primary-light:#EFE9FC;
  --accent:#FF6B4A; --accent-hover:#E5542F;
  --ok-bg:#E8F7EE; --ok-text:#1F9254; --ok-border:#BFE8CF;
  --error-bg:#FDEDEA; --error-text:#C8372A; --error-border:#F6C9BE;
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:'Manrope',Arial,sans-serif; -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:'Space Grotesk',Arial,sans-serif; margin:0 0 8px}
a{color:var(--primary); text-decoration:none}
a:hover{color:var(--primary-hover)}

/* Contenedor principal -- pensado para escritorio (que es donde se usa
   más este panel): ancho generoso y centrado. En pantallas chicas baja
   de ancho y achica el padding, ver el media query al final. */
.wrap{max-width:1180px; margin:0 auto; padding:36px 40px 60px}

.topbar{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:28px; padding-bottom:18px; border-bottom:1px solid var(--line);
}
.topbar .marca{display:flex; align-items:center; gap:10px}
.topbar .marca img{height:28px; width:auto; display:block}
.topbar a{font-size:14px; color:var(--ink-dim); font-weight:600}
.topbar a:hover{color:var(--primary)}

.card{
  background:var(--card); border:1px solid var(--line); border-radius:20px;
  padding:28px; margin-bottom:20px;
}
label{display:block; font-size:13px; color:var(--ink-dim); margin:16px 0 6px; font-weight:600}
input[type=text], input[type=tel], input[type=email], input[type=date],
input[type=password], input[type=number], select, textarea{
  width:100%; padding:12px 14px; border-radius:12px; border:1px solid var(--line);
  background:var(--card2); color:var(--ink); font-size:15px; font-family:inherit;
}
input:focus, select:focus, textarea:focus{outline:2px solid var(--primary); outline-offset:1px; border-color:var(--primary)}

.btn{
  display:inline-block; width:100%; text-align:center; padding:14px 22px;
  border-radius:999px; background:var(--primary); color:#fff; font-weight:700;
  border:none; font-size:15px; cursor:pointer; margin-top:20px; text-decoration:none;
}
.btn:hover{background:var(--primary-hover); color:#fff}
.btn.secondary{background:transparent; border:1px solid var(--line); color:var(--ink)}
.btn.secondary:hover{background:var(--card2); border-color:var(--primary); color:var(--ink)}
.btn.accent{background:var(--accent)}
.btn.accent:hover{background:var(--accent-hover)}
/* Botón "en línea" (no ocupa el 100% del ancho, para usarlo dentro de
   una fila de tabla o al lado de otro elemento). */
.btn.auto{width:auto; display:inline-flex; align-items:center; margin-top:0}

.muted{color:var(--ink-dim); font-size:13px}
.center{text-align:center}

.badge{
  display:inline-block; background:var(--primary-light); color:var(--primary);
  padding:6px 14px; border-radius:999px; font-size:13px; font-weight:700; margin-bottom:12px;
}

table{width:100%; border-collapse:collapse; font-size:14px}
th,td{padding:12px 10px; border-bottom:1px solid var(--line); text-align:left}
th{color:var(--ink-dim); font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:.03em}
tbody tr:hover{background:var(--card2)}
.tabla-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch}

.error{background:var(--error-bg); border:1px solid var(--error-border); color:var(--error-text); padding:12px 14px; border-radius:12px; font-size:14px; margin-bottom:8px}
.ok{background:var(--ok-bg); border:1px solid var(--ok-border); color:var(--ok-text); padding:12px 14px; border-radius:12px; font-size:14px; margin-bottom:8px}

fieldset{border:1px solid var(--line); border-radius:14px; padding:18px 20px; margin:0 0 20px}
legend{padding:0 8px; color:var(--primary); font-weight:700; font-size:14px}

.fila{display:flex; gap:14px}
.fila > *{flex:1; min-width:0}

/* Dos fieldsets lado a lado en pantallas grandes -- para no dejar un
   formulario angosto perdido en medio de un monitor ancho. */
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start}
.grid-2 fieldset{margin:0}

/* Tarjetas de resumen (KPIs) en el listado de negocios. */
.stats-row{display:flex; gap:16px; margin-bottom:20px}
.stat{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:18px 20px; flex:1}
.stat .num{font-family:'Space Grotesk',Arial,sans-serif; font-size:26px; font-weight:700; line-height:1.1}
.stat .label{font-size:13px; color:var(--ink-dim); margin-top:4px}

@media (max-width:760px){
  .wrap{padding:20px 16px 40px}
  .grid-2{grid-template-columns:1fr}
  .fila{flex-direction:column; gap:0}
  .stats-row{flex-direction:column}
}
