/* Tema «suizo» de TC-HVR: mismo sistema visual que cartolas.agm-lab.cl
   (paleta gris cálido + negro + naranja, Lexend/Source Sans 3, barra lateral, secciones numeradas, claro/oscuro automático).
   Reemplaza al CSS original de la página; las clases son las mismas, así que la lógica no cambia. */
:root {
  --bg:#F5F5F3; --panel:#FFFFFF; --side:#ECECE9; --ink:#111111; --mut:#5C5F63; --line:#D8D8D3; --rule:#111111;
  --acc:#C2410C; --acc-ink:#FFFFFF; --acc-soft:#FCEBDD; --ok:#166534; --bad:#B91C1C; --warn:#92400E; --focus:#C2410C;
  --f-display:'Lexend',system-ui,sans-serif; --f-body:'Source Sans 3',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-mono:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg:#121212; --panel:#1B1B1A; --side:#181817; --ink:#F2F2EF; --mut:#A4A4A0; --line:#2E2E2B; --rule:#F2F2EF;
    --acc:#FB923C; --acc-ink:#111111; --acc-soft:#2B1B0F; --ok:#4ADE80; --bad:#F87171; --warn:#FBBF24; --focus:#FB923C;
  }
}
* { box-sizing:border-box; margin:0; padding:0; }
html { -webkit-text-size-adjust:100%; }
body { background:var(--bg); color:var(--ink); font:16px/1.5 var(--f-body); min-height:100vh; display:block; padding:0; }
button, input, select { font:inherit; color:inherit; }
:focus-visible { outline:2px solid var(--focus); outline-offset:2px; }
svg.i { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; flex:none; vertical-align:-3px; }
svg.i.sm { width:15px; height:15px; vertical-align:-2px; }

/* ---------- estructura: barra lateral + contenido ---------- */
.app-wrap { display:grid; grid-template-columns:292px minmax(0,1fr); min-height:100vh; width:100%; max-width:none; }
.tabs { grid-column:1; grid-row:1; display:flex; flex-direction:column; gap:0; margin:0; background:var(--side); border-right:1px solid var(--line);
        position:sticky; top:0; height:100vh; padding-bottom:20px; }
.brand { padding:22px 20px 16px; border-bottom:1px solid var(--line); margin-bottom:8px; }
.brand b { font:600 20px/1.1 var(--f-display); letter-spacing:-.02em; display:block; }
.brand span { color:var(--mut); font-size:13px; }
.tab-btn { flex:none; display:block; width:100%; text-align:left; background:none; border:0; border-left:3px solid transparent; border-radius:0;
           padding:11px 20px; font:500 14.5px var(--f-display); color:var(--mut); cursor:pointer; transition:none; }
.tab-btn:hover:not(.active) { background:color-mix(in srgb,var(--ink) 6%,transparent); color:var(--ink); }
.tab-btn.active { background:var(--panel); border-left-color:var(--acc); color:var(--ink); }
.tab-panel { display:none; grid-column:2; grid-row:1; min-width:0; }
.tab-panel.active { display:block; }

.card { background:none; border-radius:0; box-shadow:none; overflow:visible; }
.card-header { background:none; color:var(--ink); padding:36px 44px 0; max-width:1040px; }
.card-header h1 { font:600 30px/1.15 var(--f-display); letter-spacing:-.03em; margin:0 0 4px; }
.card-header p { color:var(--mut); font-size:16px; opacity:1; margin:0 0 26px; }
.card-body { padding:0 44px 80px; max-width:1040px; counter-reset:sec; }

/* ---------- secciones suizas: regla gruesa + número ---------- */
.section-title { counter-increment:sec; display:flex; flex-wrap:wrap; gap:12px; align-items:baseline; margin:30px 0 14px; padding:14px 0 0;
                 border-top:2px solid var(--rule); border-bottom:0; font:600 17px var(--f-display); letter-spacing:-.01em; text-transform:none; color:var(--ink); }
.section-title::before { content:counter(sec, decimal-leading-zero); color:var(--acc); font:500 13px var(--f-display); letter-spacing:.04em; }
.alert + .alert + .steps + .section-title, .steps + .section-title { margin-top:8px; }
.divider { display:none; }

/* ---------- pasos 1-2-3 ---------- */
.steps { display:flex; margin:0 0 24px; padding:0; list-style:none; border:1px solid var(--line); background:var(--panel); }
.steps li { flex:1; padding:12px 16px; display:flex; gap:12px; align-items:center; border-right:1px solid var(--line); color:var(--mut); }
.steps li:last-child { border-right:0; }
.steps .num { font:600 22px var(--f-display); letter-spacing:-.03em; }
.steps .t { font-weight:600; line-height:1.2; color:inherit; }
.steps .d { font-size:12.5px; }
.steps li.now { color:var(--ink); box-shadow:inset 0 -3px 0 var(--acc); }
.steps li.now .num { color:var(--acc); }
.steps li.done { color:var(--ink); }
.steps li.done .num::after { content:' ✓'; font-size:16px; color:var(--ok); }

/* ---------- avisos ---------- */
.alert { display:none; border:0; border-left:3px solid var(--mut); border-radius:0; background:var(--panel); padding:11px 14px; font-size:14.5px; margin:0 0 18px; }
.alert.show { display:block; }
.alert-error { border-left-color:var(--bad); color:var(--bad); }
.alert-success { border-left-color:var(--ok); color:var(--ok); }
.alert-info { border-left-color:var(--acc); color:var(--ink); }
.info-box { background:var(--panel); border:0; border-left:3px solid var(--mut); border-radius:0; padding:11px 14px; margin-bottom:20px; }
.info-box p { font-size:14px; color:var(--mut); line-height:1.6; }
.info-box p + p { margin-top:3px; }
.info-box code { background:color-mix(in srgb,var(--ink) 8%,transparent); color:var(--ink); border-radius:2px; padding:1px 5px; font:.85em var(--f-mono); }

/* ---------- formularios ---------- */
.form-grid { display:grid; gap:14px 18px; margin-bottom:18px; }
.cols2 { grid-template-columns:1fr 1fr; }
.cols1 { grid-template-columns:1fr; }
label { display:block; font:500 12.5px var(--f-body); color:var(--mut); margin-bottom:4px; letter-spacing:.01em; }
label .hint { font-weight:400; color:var(--mut); font-size:12px; }
input[type=text], select { width:100%; padding:9px 10px; border:1px solid var(--line); border-radius:3px; font-size:15px; color:var(--ink); background:var(--panel); transition:none; }
input[type=text]:hover, select:hover { border-color:var(--mut); }
input[type=text]:focus, select:focus { outline:2px solid var(--focus); outline-offset:1px; border-color:var(--focus); box-shadow:none; background:var(--panel); }
input:disabled, select:disabled { background:color-mix(in srgb,var(--ink) 4%,var(--panel)); color:var(--mut); cursor:not-allowed; }
.cuentas-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; margin-bottom:18px; }
.cuenta-val { padding:9px 10px; background:var(--panel); border:1px solid var(--line); border-radius:3px; font:14.5px var(--f-mono); color:var(--mut); min-height:40px; }
.cuenta-val.filled { background:var(--acc-soft); border-color:var(--acc); color:var(--ink); font-weight:600; }

/* ---------- zona de archivo ---------- */
.upload-zone { display:flex; gap:16px; align-items:center; text-align:left; padding:22px 24px; border:1.5px dashed var(--mut); background:var(--panel); border-radius:3px;
               cursor:pointer; position:relative; margin-bottom:12px; transition:border-color .15s, background .15s; }
.upload-zone:hover, .upload-zone.dragover { border-color:var(--acc); background:var(--acc-soft); }
.upload-zone input[type=file] { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; }
.upload-zone > svg { width:30px; height:30px; color:var(--acc); }
.upload-zone b { display:block; font:500 16px var(--f-display); color:var(--ink); }
.upload-zone .uz-text > span { color:var(--mut); font-size:14px; }
#pdf-name { font-size:13px; color:var(--ok); margin-top:6px; font-weight:600; }

/* ---------- botones ---------- */
.btn { border:1px solid var(--ink); border-radius:3px; background:none; color:var(--ink); cursor:pointer; font:500 14.5px var(--f-display); padding:10px 18px; transition:none; transform:none; }
.btn:hover { opacity:1; transform:none; background:color-mix(in srgb,var(--ink) 7%,transparent); }
.btn:active { transform:none; }
.btn:disabled { opacity:.45; cursor:not-allowed; }
.btn-primary { background:var(--acc); border-color:var(--acc); color:var(--acc-ink); width:100%; padding:13px; font-size:15px; margin-top:6px; }
.btn-primary:hover { background:var(--acc); filter:brightness(1.08); }
.btn-success { background:var(--acc); border-color:var(--acc); color:var(--acc-ink); padding:9px 18px; }
.btn-success:hover { background:var(--acc); filter:brightness(1.08); }
.btn-danger { background:none; border-color:var(--bad); color:var(--bad); padding:7px 12px; }
.btn-danger:hover { background:var(--bad); color:#fff; }
.btn-outline { background:none; border-color:var(--line); color:var(--ink); font-weight:400; padding:8px 14px; }
.btn-outline:hover { background:color-mix(in srgb,var(--ink) 7%,transparent); border-color:var(--mut); }

.badge-empresa { display:none; background:var(--acc-soft); color:var(--acc); font:600 11px var(--f-display); letter-spacing:.03em; padding:2px 9px; border-radius:20px; margin-left:6px; vertical-align:middle; text-transform:none; }
.badge-moneda-usd { background:color-mix(in srgb,var(--warn) 18%,transparent) !important; color:var(--warn) !important; }
.moneda-tag { display:inline-block; padding:2px 9px; border-radius:20px; font:600 11px var(--f-display); background:color-mix(in srgb,var(--mut) 16%,transparent); color:var(--ink); }
.moneda-tag.usd { background:color-mix(in srgb,var(--warn) 18%,transparent); color:var(--warn); }

/* ---------- catálogo ---------- */
.admin-empresa-list { margin-bottom:20px; }
.empresa-card { border:1px solid var(--line); border-radius:3px; background:var(--panel); margin-bottom:10px; overflow:hidden; }
.empresa-card-header { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; background:var(--panel); cursor:pointer; user-select:none; }
.empresa-card-header:hover { background:color-mix(in srgb,var(--ink) 4%,var(--panel)); }
.empresa-card-title { font:600 15px var(--f-display); letter-spacing:-.01em; color:var(--ink); }
.empresa-card-meta { font-size:13px; color:var(--mut); margin-top:2px; }
.empresa-card-actions { display:flex; gap:7px; align-items:center; }
.empresa-card-body { padding:14px 16px; border-top:1px solid var(--line); display:none; }
.empresa-card-body.open { display:block; }
.tabla-scroll { overflow-x:auto; margin-bottom:12px; }
.titulares-table { width:100%; border-collapse:collapse; font-size:.8rem; margin-bottom:0; }
.titulares-table th { background:none; color:var(--mut); padding:6px 4px; text-align:left; font:500 11px var(--f-display); letter-spacing:.07em; text-transform:uppercase; border-bottom:2px solid var(--rule); white-space:nowrap; }
.titulares-table td { padding:6px 4px; border-bottom:1px solid var(--line); vertical-align:middle; font-size:13.5px; }
.titulares-table tr:last-child td { border-bottom:1px solid var(--line); }
.titulares-table tr:hover td { background:color-mix(in srgb,var(--ink) 4%,transparent); }
.titulares-table .mono { font-family:var(--f-mono); font-size:.72rem; color:var(--ink); white-space:nowrap; }
.titulares-table td:first-child { min-width:104px; word-break:break-word; }
.titulares-table td .btn { padding:3px 6px !important; }
.form-new { background:var(--bg); border:1px dashed var(--acc); border-radius:3px; padding:16px; margin-top:10px; }
.form-new .form-title { font:500 12px var(--f-display); color:var(--acc); margin-bottom:12px; text-transform:uppercase; letter-spacing:.08em; }
.form-new .row { display:grid; gap:10px; margin-bottom:10px; }
.form-new .row.g2 { grid-template-columns:1fr 1fr; }
.form-new .row.g3 { grid-template-columns:2fr 1fr 1fr; }
.form-new .row.g1 { grid-template-columns:1fr; }
.form-new label { font-size:12.5px; }
.form-new input { font-size:14.5px; padding:8px 10px; }
.form-new .btn-row { display:flex; gap:8px; justify-content:flex-end; margin-top:6px; }
.chevron { transition:transform .2s; display:inline-block; color:var(--acc); }
.chevron.open { transform:rotate(90deg); }
.empty-state { text-align:center; padding:28px 16px; color:var(--mut); font-size:14.5px; }

/* ---------- lectura del PDF: estado, revisión y tabla ---------- */
#pdf-status { font-size:14.5px; margin:0 0 14px; padding:11px 14px; border-left:3px solid var(--mut); background:var(--panel); display:none; }
#pdf-status.show { display:block; }
#pdf-status.info { border-left-color:var(--acc); }
#pdf-status.error { border-left-color:var(--bad); color:var(--bad); }
#pdf-status.ok { border-left-color:var(--ok); color:var(--ok); }
#pdf-review { display:none; margin:6px 0 18px; }
#pdf-review.show { display:block; }
.pdf-resumen { font-size:14.5px; color:var(--ink); line-height:1.6; margin-bottom:12px; }
.pdf-resumen .okv { color:var(--ok); font-weight:600; }
.pdf-resumen .avv { color:var(--warn); font-weight:600; }
.pdf-adv { font-size:14px; color:var(--warn); background:var(--panel); border-left:3px solid var(--warn); padding:9px 14px; margin-bottom:12px; }
.pdf-adv div + div { margin-top:3px; }
.pdf-tabla-wrap { max-height:380px; overflow:auto; border:1px solid var(--line); background:var(--panel); }
#pdf-tabla { width:100%; border-collapse:collapse; font-size:14px; }
#pdf-tabla th { position:sticky; top:0; background:var(--panel); text-align:left; padding:8px 6px; font:500 11px var(--f-display); text-transform:uppercase; letter-spacing:.07em; color:var(--mut); border-bottom:2px solid var(--rule); }
#pdf-tabla td { padding:4px; border-top:1px solid var(--line); }
#pdf-tabla input, #pdf-tabla select { width:100%; padding:6px 7px; border:1px solid var(--line); border-radius:3px; font-size:14px; background:var(--panel); color:var(--ink); }
#pdf-tabla select { padding:6px 2px; font-size:.78rem; }
#pdf-tabla input.pm { text-align:right; }
#pdf-tabla tr.pdf-dudosa td { background:color-mix(in srgb,var(--bad) 8%,var(--panel)); }
#pdf-tabla input.err { border-color:var(--bad); box-shadow:0 0 0 1px var(--bad); }
#pdf-tabla td.pdf-x button { border:0; background:none; cursor:pointer; color:var(--mut); font-size:1rem; }
#pdf-tabla td.pdf-x button:hover { color:var(--bad); }
#pdf-tabla td.pclp { font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums; }
.pdf-acciones { display:flex; gap:10px; align-items:center; margin-top:14px; flex-wrap:wrap; }
.pdf-acciones .btn { width:auto; padding:10px 18px; margin:0; }
.pdf-listo { font-size:14.5px; font-weight:600; }

/* ---------- móvil ---------- */
@media (max-width:900px) {
  .app-wrap { grid-template-columns:1fr; }
  .tabs { grid-column:1; flex-direction:row; flex-wrap:wrap; position:static; height:auto; border-right:0; border-bottom:1px solid var(--line); padding:0; }
  .brand { width:100%; margin-bottom:0; }
  .tab-btn { width:auto; flex:1; text-align:center; border-left:0; border-bottom:3px solid transparent; }
  .tab-btn.active { border-left:0; border-bottom-color:var(--acc); }
  .tab-panel { grid-column:1; grid-row:2; }
  .card-header { padding:22px 16px 0; }
  .card-body { padding:0 16px 60px; }
  .form-grid.cols2, .cuentas-grid { grid-template-columns:1fr; }
  .steps { flex-direction:column; }
  .steps li { border-right:0; border-bottom:1px solid var(--line); }
}
@media (prefers-reduced-motion: reduce) { * { transition:none !important; animation:none !important; } }

/* sesión (barra lateral) y rol de solo edición */
.sesion-box { margin-top:auto; padding:16px 20px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:2px; }
.sesion-box b { font:600 14.5px var(--f-display); }
.sesion-box span { color:var(--mut); font-size:13px; margin-bottom:10px; }
.sesion-box .btn { padding:7px 12px; font-size:13.5px; }
.rol-ktx .btn-danger { display:none !important; }
.login { min-height:100vh; display:grid; place-items:center; padding:24px; }
.login form { width:100%; max-width:360px; }
.login h1 { font:600 30px/1.15 var(--f-display); letter-spacing:-.03em; margin:0 0 4px; }
.login p { color:var(--mut); margin:0 0 26px; }
.login label { display:block; font:500 13.5px var(--f-display); margin:14px 0 6px; }
.login input { width:100%; padding:11px 12px; border:1px solid var(--ink); border-radius:3px; background:var(--panel); }
.login input:focus-visible { outline:2px solid var(--focus); outline-offset:2px; }
.login .btn { width:100%; margin-top:22px; background:var(--ink); color:var(--bg); }
.login .err { color:var(--bad); font-size:14.5px; min-height:22px; margin-top:12px; }
