/* Cosapi Contabilidad · sistema visual (13/11/2026): el de Cosapi Gastos en producción (versión del 29/10/2026).
   Sobrio y profesional: un solo color de acción (índigo #4b5ae6), fondo gris azulado, tarjetas blancas con filete
   fino y sombra mínima, texto azul marino, íconos Lucide de línea en el color del texto, sin arcoíris ni íconos 3D.
   Reemplaza los colores por módulo y la tipografía anterior. Se carga al final: no cambia la lógica. */
:root{
  --f-primary:#4b5ae6;--f-primary-hover:#3f4bd0;--f-primary-press:#343fb5;--f-tint:#eef0fd;--f-tint-2:#e2e5fc;
  --f-canvas:#f6f8fb;--f-surface:#fff;--f-hairline:#e3e8ee;--f-hairline-2:#cfd8e3;
  --f-ink:#0d253d;--f-ink-2:#425466;--f-muted:#5b6b82;
  --f-ok:#1f7a4d;--f-ok-bg:#e7f5ee;--f-warn:#9a5b00;--f-warn-bg:#fff4e0;--f-bad:#b4232c;--f-bad-bg:#fdecec;
  --f-shadow:0 1px 2px rgba(13,37,61,.05);--f-raised:0 8px 24px rgba(13,37,61,.08);
  --f-font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI Variable","Segoe UI","Inter",system-ui,sans-serif;
  /* los nombres que ya usa la web apuntan al sistema nuevo */
  --primario:var(--f-primary);--foco:var(--f-primary);--tinta:var(--f-ink);--tinta-80:var(--f-ink-2);--suave:var(--f-muted);
  --canvas:var(--f-surface);--pergamino:var(--f-canvas);--perla:#f9fafc;--filete:var(--f-hairline);--divisor:var(--f-hairline);
  --ok:var(--f-ok);--ok-bg:var(--f-ok-bg);--obs:var(--f-warn);--obs-bg:var(--f-warn-bg);--reg:var(--f-bad);--reg-bg:var(--f-bad-bg);
  --pend:var(--f-primary-press);--pend-bg:var(--f-tint);
  --r-sm:8px;--r-md:10px;--r-lg:14px;--texto:var(--f-font);
}

/* ---------- Base ---------- */
html body{font:400 15px/1.5 var(--f-font);letter-spacing:0;color:var(--f-ink);background:var(--f-canvas);-webkit-font-smoothing:antialiased}
button,input,select,textarea,table,dialog{font-family:inherit;letter-spacing:0}
b,strong,th,h1,h2,h3,h4{font-weight:600}
a{color:var(--f-primary)}
:focus-visible{outline:2px solid var(--f-primary);outline-offset:2px}
::selection{background:var(--f-tint-2);color:var(--f-ink)}
.num,td{font-variant-numeric:tabular-nums}

/* ---------- Íconos Lucide ---------- */
.lu{display:block;flex:none;width:18px;height:18px}

/* ---------- Barra superior ---------- */
.topbar{height:56px;background:rgba(255,255,255,.9);border-bottom:1px solid var(--f-hairline);backdrop-filter:saturate(180%) blur(16px)}
.logo span{font:400 17px/1 var(--f-font);color:var(--f-ink);border-left-color:var(--f-hairline)}
.logo b{font-weight:600}
.btn-util{background:transparent;border:1px solid var(--f-hairline-2);color:var(--f-ink-2);border-radius:9999px;font:500 13px/1 var(--f-font);padding:8px 14px}
.btn-util:hover:not(:disabled){background:#eef1f5;color:var(--f-ink)}
.pill{font:600 12px/1.3 var(--f-font);padding:3px 10px;border-radius:9999px;background:#eef1f5;color:var(--f-ink-2)}

/* ---------- Menú lateral ---------- */
.sidebar{background:var(--f-surface);border-right:1px solid var(--f-hairline);padding:16px 12px}
.sidebar nav{gap:2px}
.sidebar nav a{position:relative;gap:10px;padding:8px 10px;min-height:36px;border-radius:8px;font:500 14px/1.2 var(--f-font);color:var(--f-ink-2)}
.sidebar nav a:hover{background:#f3f5f8;color:var(--f-ink)}
.sidebar nav a.activo{background:var(--f-tint);color:var(--f-primary-press);font-weight:600}
.sidebar nav a.activo::before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--f-primary)}
.sidebar .chip,.sidebar nav a.activo .chip{width:22px;height:22px;background:none;box-shadow:none;color:currentColor;border-radius:0}
.nav-head{margin:18px 10px 6px;font:600 11px/1 var(--f-font);letter-spacing:.06em;text-transform:uppercase;color:var(--f-muted)}
.sidebar-foot{border-top-color:var(--f-hairline);font-size:12px;color:var(--f-muted)}

/* ---------- Encabezado de página ---------- */
.page-top{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.page-top h1{margin:0;font:600 32px/1.15 var(--f-font);letter-spacing:-.02em;color:var(--f-ink)}
.pt-ic{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--f-surface);color:var(--f-primary);box-shadow:inset 0 0 0 1px var(--f-hairline),var(--f-shadow)}
.pt-ic .lu{width:22px;height:22px}

/* ---------- Paneles y tarjetas ---------- */
.panel,details.panel{background:var(--f-surface);border:1px solid var(--f-hairline);border-radius:14px;box-shadow:var(--f-shadow);padding:20px 22px}
.panel h2,dialog h2,#reem-detalle h2{font:600 18px/1.3 var(--f-font);letter-spacing:-.01em;color:var(--f-ink)}
h3,dialog h3{font:600 16px/1.3 var(--f-font);letter-spacing:-.01em}
dialog form>h3:first-child{font-size:18px}
h4{font:600 15px/1.3 var(--f-font)}
summary{font:600 15px/1.3 var(--f-font);color:var(--f-ink)}
small,.leido,.nota{font-size:13px;color:var(--f-muted)}
label{font-size:13px;font-weight:500;color:var(--f-ink-2)}
p,li{line-height:1.55}

/* ---------- Botones (píldora; secundarios en índigo claro) ---------- */
button{font:500 14px/1.2 var(--f-font);min-height:38px;padding:9px 18px;border-radius:9999px;border:1px solid transparent;background:var(--f-tint);color:var(--f-ink);transition:background-color .15s ease,transform .1s ease,box-shadow .15s ease}
button:hover:not(:disabled){background:var(--f-tint-2)}
button:active:not(:disabled){transform:scale(.97)}
button.primary{background:var(--f-primary);border-color:var(--f-primary);color:#fff;font-weight:600}
button.primary:hover:not(:disabled){background:var(--f-primary-hover)}
button.primary:active:not(:disabled){background:var(--f-primary-press)}
button:disabled{background:#f1f3f6;color:#8a97a8;opacity:1}
button.primary:disabled{background:#c6cbf5;color:#fff}
button.enlace,.enlace{background:none;border:0;min-height:0;padding:0;color:var(--f-primary);font-weight:500}
button.enlace:hover:not(:disabled){background:none;text-decoration:underline}
td button,.obs .ir{font:500 13px/1.2 var(--f-font);min-height:30px;padding:6px 14px}

/* ---------- Campos ---------- */
input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{font:400 15px/1.3 var(--f-font);min-height:40px;padding:9px 12px;border:1px solid var(--f-hairline-2);border-radius:10px;background:var(--f-surface);color:var(--f-ink)}
input:hover:not(:focus),select:hover:not(:focus),textarea:hover:not(:focus){border-color:#b5c1cf}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--f-primary);box-shadow:0 0 0 3px rgba(75,90,230,.22)}
input[type=checkbox],input[type=radio]{accent-color:var(--f-primary)}
input[type=file]{font-size:13px}

/* ---------- Tablas ---------- */
.tabla{border:1px solid var(--f-hairline);border-radius:12px;overflow:auto;background:var(--f-surface)}
table{font-size:14px}
th{font:600 12px/1.2 var(--f-font);letter-spacing:.04em;text-transform:uppercase;color:var(--f-muted);background:#fafbfd;padding:11px 14px;border-bottom:1px solid var(--f-hairline)}
td{padding:11px 14px;border-top:1px solid #eef1f5;color:var(--f-ink)}
tbody tr:hover{background:#fafbff}

/* ---------- Estados: píldora con palabra ---------- */
.est,.tag{font:600 12px/1.3 var(--f-font);padding:3px 10px;border-radius:9999px}
.tag{background:#eef1f5;color:var(--f-ink-2)}
.tag.auto{background:var(--f-ok-bg);color:var(--f-ok)}.tag.ia{background:var(--f-tint);color:var(--f-primary-press)}
.v-OK{color:var(--f-ok)}.v-NO{color:var(--f-bad);font-weight:600}

/* ---------- Cifras (tarjetas): etiqueta en mayúsculas arriba, número en tinta ---------- */
.tarjetas{gap:12px}
.tarjeta{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:6px;background:var(--f-surface);border:1px solid var(--f-hairline);border-radius:14px;box-shadow:var(--f-shadow);padding:16px 18px}
.tarjeta strong{font:600 28px/1.1 var(--f-font);letter-spacing:-.02em;color:var(--f-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.tarjeta span{font:600 11.5px/1.3 var(--f-font);letter-spacing:.05em;text-transform:uppercase;color:var(--f-muted)}
/* el estado se marca con un punto junto a la etiqueta, no pintando la tarjeta */
.tarjeta.e-ok,.tarjeta.e-obs,.tarjeta.e-reg,.tarjeta.e-pend{background:var(--f-surface)}
.tarjeta.e-ok span::before,.tarjeta.e-obs span::before,.tarjeta.e-reg span::before,.tarjeta.e-pend span::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin:0 7px 1px 0;vertical-align:middle;background:var(--k)}
.tarjeta.e-ok{--k:#2fa36b}.tarjeta.e-obs{--k:#e09a1a}.tarjeta.e-reg{--k:#d64545}.tarjeta.e-pend{--k:var(--f-primary)}
a.tarjeta{transition:border-color .15s,box-shadow .15s,transform .15s}
a.tarjeta:hover{border-color:var(--f-hairline-2);box-shadow:var(--f-raised);transform:translateY(-1px)}

/* ---------- Inicio ---------- */
#v-inicio .page-top.hero{display:block;padding:26px 28px;border:1px solid var(--f-hairline);border-radius:16px;box-shadow:var(--f-shadow);
  background:radial-gradient(120% 140% at 100% 0%,var(--f-tint) 0%,rgba(238,240,253,0) 55%),var(--f-surface)}
.saludo{margin:0 0 6px;font:600 12px/1.2 var(--f-font);letter-spacing:.05em;text-transform:uppercase;color:var(--f-primary-press)}
.titular{margin:0;font:600 32px/1.15 var(--f-font);letter-spacing:-.02em;color:var(--f-ink)}
.titular .arcoiris{background:none;color:var(--f-primary);-webkit-text-fill-color:currentColor}
#v-inicio .bajada{margin:10px 0 0;max-width:60ch;font-size:15px;color:var(--f-muted)}
#tablero{border-color:var(--f-hairline)}
.modulos{gap:12px}
.modulo{position:relative;gap:4px;padding:18px 20px;background:var(--f-surface);border:1px solid var(--f-hairline);border-radius:14px;box-shadow:var(--f-shadow);transition:border-color .15s,box-shadow .15s,transform .15s}
.modulo:hover{border-color:var(--f-hairline-2);box-shadow:var(--f-raised);transform:translateY(-2px)}
.chip.grande{width:40px;height:40px;border-radius:11px;margin-bottom:8px;background:var(--f-surface);color:var(--f-primary);box-shadow:inset 0 0 0 1px var(--f-hairline),var(--f-shadow)}
.chip.grande .lu{width:20px;height:20px}
.modulo b{font:600 16px/1.3 var(--f-font);color:var(--f-ink)}
.modulo>span:not(.chip){font-size:14px;color:var(--f-muted)}
.modulo .hoy{font-size:13px;font-weight:500;color:var(--f-ink-2)}

/* ---------- Avisos, seguimiento y ventanas ---------- */
.seguimiento{border-radius:12px}
dialog{border:1px solid var(--f-hairline);border-radius:16px;box-shadow:var(--f-raised);color:var(--f-ink)}
dialog::backdrop{background:rgba(13,37,61,.32)}

/* ---------- Movimiento: entradas suaves y cortas ---------- */
.vista:not([hidden])>*{animation:entra .3s cubic-bezier(.2,.8,.2,1) both}
@keyframes entra{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.vista:not([hidden])>*{animation:none}}

@media (max-width:760px){
  .page-top h1,.titular{font-size:26px}
  .panel h2{font-size:17px}
  .pt-ic{width:40px;height:40px;border-radius:11px}
  button{min-height:42px}
  #v-inicio .page-top.hero{padding:20px}
}

/* Ajustes */
a:visited{color:var(--f-primary)}
.tarjeta strong{white-space:normal;overflow-wrap:anywhere}
#tab-tarjetas{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
#tab-tarjetas .tarjeta strong{font-size:26px}
.sidebar-foot .enlace,.sidebar-foot button{display:block;text-align:left;width:auto;color:var(--f-ink-2);font:500 12px/1.6 var(--f-font)}
.sidebar-foot .enlace:hover{color:var(--f-primary)}
