:root{--bg:#f5f6f8;--card:#fff;--text:#171a21;--muted:#6f7682;--border:#e4e7ec;--accent:#a80f55;--accent-soft:#f7e8ef;--green:#15803d;--red:#b42318;--shadow:0 10px 30px rgba(16,24,40,.05)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.sidebar{background:#111319;color:#fff;padding:28px 18px;display:flex;flex-direction:column;gap:34px;position:sticky;top:0;height:100vh}.brand-kicker{font-size:11px;letter-spacing:.24em;font-weight:800}.brand-title{font-size:22px;font-weight:750;margin-top:4px}.small{font-size:12px}.muted{color:var(--muted)}.sidebar .muted{color:#a8adb7}.sidebar nav{display:grid;gap:6px}.sidebar nav a{padding:11px 12px;border-radius:10px;color:#c8ccd3;font-size:14px}.sidebar nav a:hover,.sidebar nav a.active{background:#242832;color:#fff}.sidebar-footer{margin-top:auto;font-size:13px;color:#a8adb7;display:grid;gap:8px}.content{padding:30px;min-width:0}.content.narrow{max-width:940px}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:22px}.topbar h1{font-size:30px;line-height:1.1;margin:4px 0 6px}.topbar p{margin:0}.top-actions,.filters-inline{display:flex;gap:9px;flex-wrap:wrap}.btn,button,select,input,textarea{font:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 15px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}select,input,textarea{border:1px solid var(--border);background:#fff;border-radius:10px;padding:10px 12px;color:var(--text);min-height:42px}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.kpi{padding:18px}.kpi span,.kpi small{display:block;color:var(--muted)}.kpi span{font-size:11px;text-transform:uppercase;letter-spacing:.08em}.kpi strong{display:block;font-size:25px;margin:7px 0 3px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.8fr);gap:14px;margin-bottom:14px}.dashboard-grid.bottom{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr)}.chart-card,.dashboard-grid>.card{padding:18px}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.section-head h2,.insight h2{font-size:16px;margin:0}.section-head p{margin:3px 0 0;font-size:13px}.section-head a{font-size:13px;color:var(--accent)}canvas{width:100%;margin-top:18px}.category-list{margin-top:18px;display:grid;gap:15px}.cat-line{display:flex;justify-content:space-between;gap:15px;font-size:13px}.bar{height:7px;background:#eef0f3;border-radius:20px;overflow:hidden;margin-top:7px}.bar i{display:block;height:100%;background:var(--accent);border-radius:20px}.recent-list{margin-top:10px}.recent-row{display:grid;grid-template-columns:1fr auto;gap:14px;padding:13px 0;border-bottom:1px solid var(--border)}.recent-row:last-child{border-bottom:0}.recent-row strong,.recent-row small{display:block}.recent-row strong{font-size:14px}.recent-row small{font-size:12px;color:var(--muted);margin-top:3px}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.insight-box{background:#f7f8fa;border-radius:12px;padding:13px;margin-top:11px}.insight-box span{display:block;font-size:12px;color:var(--muted)}.insight-box strong{display:block;font-size:21px;margin-top:4px}.filter-panel{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:10px;padding:14px;margin-bottom:14px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:14px;border-bottom:1px solid var(--border);font-size:13px}th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#fafbfc}td strong,td small{display:block}td small{color:var(--muted);margin-top:3px}.num{text-align:right}.pill{padding:5px 8px;border-radius:99px;font-size:11px;font-weight:700}.pill.income{background:#eaf7ee;color:var(--green)}.pill.expense{background:#fff0ef;color:var(--red)}.movement-form{padding:22px}.type-switch{display:flex;gap:10px;margin-bottom:18px}.type-switch label input{position:absolute;opacity:0}.type-switch label span{display:block;padding:10px 18px;border:1px solid var(--border);border-radius:10px;cursor:pointer}.type-switch label input:checked+span{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:750}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid label,.form-stack label{font-size:13px;font-weight:650;display:grid;gap:6px}.span2{grid-column:span 2}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.alert{border-radius:10px;padding:12px 14px;margin-bottom:14px;font-size:13px}.alert.error{background:#fff0ef;color:#8c1d18;border:1px solid #ffc7c3}.alert.success{background:#ebf8ef;color:#166534;border:1px solid #b7e4c7}.empty{text-align:center;color:var(--muted);padding:30px}.auth-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:#111319}.auth-card{width:min(430px,100%);background:#fff;border-radius:18px;padding:30px;box-shadow:0 25px 80px rgba(0,0,0,.25)}.auth-card h1{margin:7px 0}.auth-card .brand-kicker{color:var(--accent)}.form-stack{display:grid;gap:14px;margin-top:22px}.form-stack .btn{width:100%}@media(max-width:980px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.dashboard-grid.bottom{grid-template-columns:1fr}.filter-panel{grid-template-columns:1fr 1fr}}@media(max-width:720px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:15px;gap:14px}.sidebar nav{display:flex;overflow:auto}.sidebar nav a{white-space:nowrap}.sidebar-footer{display:none}.content{padding:18px}.topbar{align-items:stretch;flex-direction:column}.top-actions,.filters-inline{width:100%}.filters-inline select,.top-actions .btn{flex:1}.kpi-grid{grid-template-columns:1fr 1fr}.kpi strong{font-size:20px}.filter-panel{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span2{grid-column:span 1}.form-actions{position:sticky;bottom:0;background:var(--card);padding-top:12px}.movement-form{padding:16px}}@media(max-width:400px){.kpi-grid{grid-template-columns:1fr}}

.setup-card{width:min(480px,100%)}.field-help{font-size:11px;color:var(--muted);font-weight:500;margin-top:-2px}.setup-card .alert{margin-top:18px}

/* Importador histórico */
.import-card{padding:28px;max-width:820px}.import-card h2{margin:12px 0 6px}.import-icon{width:62px;height:62px;border-radius:16px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-weight:850;letter-spacing:.06em}.import-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin-top:22px}.import-form label{display:grid;gap:7px;font-size:13px;font-weight:700}.import-form input[type=file]{width:100%;padding:9px}.import-notes{margin-top:22px;padding:16px;border-radius:12px;background:#f7f8fa;font-size:13px}.import-notes ul{margin:9px 0 0;padding-left:20px;color:var(--muted);line-height:1.7}.import-kpis{margin-bottom:14px}.import-summary{padding:18px;margin-bottom:14px}.warning-list{padding:16px 18px;margin-bottom:14px}.warning-list summary{cursor:pointer;font-weight:750}.warning-list ul{color:var(--muted);font-size:12px;line-height:1.6;max-height:280px;overflow:auto}.import-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin:18px 0 30px}.import-actions form{margin:0}
@media(max-width:720px){.import-form{grid-template-columns:1fr}.import-form .btn{width:100%}.import-actions{justify-content:stretch}.import-actions form,.import-actions .btn{width:100%}}

/* V7 · Dashboard mensual inspirado en la organización del Excel */
.monthly-kpis .featured-kpi{border-color:#d9c4ce;background:linear-gradient(180deg,#fff 0%,#fdf9fb 100%)}
.account-equation{display:grid;grid-template-columns:repeat(4,minmax(0,1fr) auto) minmax(0,1.15fr);align-items:center;gap:12px;padding:15px 18px;margin-bottom:14px}
.account-equation>div{min-width:0}.account-equation span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.account-equation strong{display:block;margin-top:4px;font-size:18px}.account-equation>b{font-size:22px;color:#9aa0aa;font-weight:500}.account-equation .equation-total{padding:10px 12px;border-radius:12px;background:#f7f8fa}.account-equation .equation-total strong{font-size:21px}
.monthly-summary-card{padding:18px;margin-bottom:14px}.monthly-summary-table{margin-top:14px}.monthly-summary-table table{min-width:720px}.monthly-summary-table tr.selected-month td{background:#fbf2f6}.monthly-summary-table tr.selected-month td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
@media(max-width:980px){.account-equation{grid-template-columns:1fr auto 1fr auto 1fr;}.account-equation .equation-total{grid-column:1/-1}.account-equation>b:nth-of-type(3){display:none}}
@media(max-width:620px){.account-equation{grid-template-columns:1fr 1fr;gap:10px}.account-equation>b{display:none}.account-equation .equation-total{grid-column:1/-1}.monthly-kpis{grid-template-columns:1fr}.monthly-kpis .kpi strong{font-size:24px}}

/* V8 · Proyecciones de convenios, nómina e IVA */
.forecast-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:14px;align-items:center;padding:16px 18px;margin-bottom:14px}.forecast-strip>div{min-width:0}.forecast-strip span,.projection-equation span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.forecast-strip strong{display:block;font-size:20px;margin:4px 0}.forecast-strip small{color:var(--muted);font-size:11px}.setup-strip{grid-template-columns:1fr auto}.projection-main,.tax-card{padding:18px}.projection-equation{display:grid;grid-template-columns:repeat(5,minmax(0,1fr) auto) minmax(0,1.2fr);gap:10px;align-items:center;margin-top:18px}.projection-equation strong{display:block;font-size:18px;margin-top:4px}.projection-equation>b{font-size:20px;color:#9aa0aa}.projection-equation .equation-total{background:#f7f8fa;border-radius:12px;padding:12px}.projection-equation .equation-total strong{font-size:22px}.projection-table{margin-top:14px}.projection-table .pad,.table-wrap .pad{padding:18px 18px 0}.tax-card .insight-box strong{font-size:18px}@media(max-width:1100px){.forecast-strip{grid-template-columns:repeat(2,1fr)}.forecast-strip>.btn{grid-column:1/-1}.projection-equation{grid-template-columns:1fr auto 1fr auto 1fr}.projection-equation .equation-total{grid-column:1/-1}.projection-equation>b:nth-of-type(3),.projection-equation>b:nth-of-type(4){display:none}}@media(max-width:620px){.forecast-strip{grid-template-columns:1fr}.forecast-strip>.btn{grid-column:auto}.projection-equation{grid-template-columns:1fr 1fr}.projection-equation>b{display:none}.projection-equation .equation-total{grid-column:1/-1}}

/* V8.2 edición de registros */
.row-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.row-actions form{margin:0}.btn.compact{min-height:32px;padding:0 10px;border-radius:8px;font-size:12px;white-space:nowrap}.section-head .btn{flex:none}@media(max-width:720px){.row-actions{min-width:170px}.section-head{align-items:stretch;flex-direction:column}.section-head .btn{width:100%}}

/* V8.3 · Nómina con KPIs e incidencias */
.payroll-kpis{margin-bottom:14px}.payroll-adjusted{border-color:#e4c4d1;background:linear-gradient(180deg,#fff 0%,#fdf8fa 100%)}
.payroll-flow-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1.15fr);align-items:center;gap:12px;padding:15px 18px;margin-bottom:14px}.payroll-flow-strip>div{min-width:0}.payroll-flow-strip span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.payroll-flow-strip strong{display:block;font-size:19px;margin-top:4px}.payroll-flow-strip>b{font-size:22px;color:#9aa0aa;font-weight:500}.payroll-flow-strip .equation-total{padding:10px 12px;border-radius:12px;background:#f7f8fa}.payroll-flow-strip .equation-total strong{font-size:22px}
.payroll-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);gap:14px}.payroll-help{padding:20px}.payroll-help h2{font-size:16px;margin:0 0 8px}.payroll-help .insight-box small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.payroll-help .field-help{display:block;margin-top:15px;line-height:1.5}
@media(max-width:980px){.payroll-layout{grid-template-columns:1fr}.payroll-flow-strip{grid-template-columns:1fr auto 1fr auto 1fr}.payroll-flow-strip .equation-total{grid-column:1/-1}.payroll-flow-strip>b:last-of-type{display:none}}
@media(max-width:620px){.payroll-flow-strip{grid-template-columns:1fr 1fr}.payroll-flow-strip>b{display:none}.payroll-flow-strip .equation-total{grid-column:1/-1}.payroll-kpis{grid-template-columns:1fr}}

/* V9.2 · Identidad visual Acento 21 */
.sidebar-brand{display:flex;flex-direction:column;align-items:flex-start}.sidebar-logo{height:64px;width:auto;max-width:100%;object-fit:contain;margin:0 0 10px 2px}.auth-logo-wrap{width:86px;height:118px;background:#111319;border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:18px}.auth-logo{height:98px;width:auto;max-width:72px;object-fit:contain}.setup-card .auth-logo-wrap{margin-bottom:18px}.sidebar .brand-kicker{color:#fff}.sidebar-brand .brand-title{margin-top:5px}
@media(max-width:720px){.sidebar-brand{display:none}.sidebar-logo{height:42px;margin-bottom:0}.auth-logo-wrap{width:72px;height:100px}.auth-logo{height:82px}}


/* V9.4 · Compatibilidad visual y cache-busting del dashboard */
.account-equation{
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr) 34px minmax(0,1fr) 34px minmax(0,1.15fr);
  gap:12px;
  align-items:stretch;
  padding:16px;
  margin-bottom:14px;
}
.account-equation>div{
  min-width:0;
  padding:14px 15px;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fafbfc;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.account-equation>div.equation-total{
  background:#f7f8fa;
  border-color:#d9c4ce;
}
.account-equation>b{
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:24px;
  color:#8b919b;
  font-weight:600;
}
.account-equation span{
  display:block;
  font-size:11px;
  line-height:1.35;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:var(--muted);
}
.account-equation strong{
  display:block;
  margin-top:7px;
  font-size:20px;
  line-height:1.2;
  white-space:nowrap;
}
.account-equation .equation-total strong{font-size:23px}

.forecast-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr)) auto;
  gap:12px;
  align-items:stretch;
  padding:16px;
  margin-bottom:14px;
}
.forecast-strip>div{
  min-width:0;
  padding:13px 14px;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fafbfc;
}
.forecast-strip>div span{
  display:block;
  font-size:10px;
  line-height:1.35;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:var(--muted);
}
.forecast-strip>div strong{
  display:block;
  margin:7px 0 4px;
  font-size:19px;
  line-height:1.2;
  white-space:nowrap;
}
.forecast-strip>div small{
  display:block;
  font-size:11px;
  line-height:1.35;
  color:var(--muted);
}
.forecast-strip>.btn{
  align-self:center;
  white-space:nowrap;
}

@media(max-width:1180px){
  .forecast-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .forecast-strip>.btn{grid-column:1/-1;justify-self:start}
}
@media(max-width:980px){
  .account-equation{grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr) 30px minmax(0,1fr)}
  .account-equation .equation-total{grid-column:1/-1}
  .account-equation>b:last-of-type{display:none}
}
@media(max-width:620px){
  .account-equation{grid-template-columns:1fr;gap:8px}
  .account-equation>b{display:none}
  .account-equation .equation-total{grid-column:auto}
  .forecast-strip{grid-template-columns:1fr}
  .forecast-strip>.btn{grid-column:auto;width:100%}
}
