*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:#f5f6f8;color:#20242a;line-height:1.45}.top{background:#fff;border-bottom:1px solid #e2e5e9;padding:14px max(16px,calc((100% - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;z-index:5}.top strong{font-size:20px}.muted{display:block;color:#737b85;font-size:13px}.top nav{display:flex;flex-wrap:wrap;gap:10px}.top nav a{color:#26364a;text-decoration:none;font-size:14px}.wrap{max-width:1180px;margin:28px auto;padding:0 16px}h1{font-size:30px;margin:0 0 20px}h2{font-size:20px;margin:0 0 16px}.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.card{background:#fff;border:1px solid #e1e5ea;border-radius:10px;padding:17px}.card span{display:block;color:#68727d;font-size:13px}.card strong{display:block;font-size:23px;margin-top:5px}.card.highlight{border-left:4px solid #1e73be}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.button,button{display:inline-block;border:0;border-radius:7px;background:#1e73be;color:#fff;padding:10px 15px;text-decoration:none;cursor:pointer;font-size:14px}.button.secondary{background:#e8edf3;color:#26364a}.button.small{padding:6px 9px;font-size:12px}.panel{background:#fff;border:1px solid #e1e5ea;border-radius:10px;padding:20px;margin:18px 0}.work-summary{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #edf0f2}.work-summary div span{margin-left:15px;color:#6d7680;font-size:13px}.gridform{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gridform label,.inlineform{display:flex;flex-direction:column;gap:6px;font-size:13px}.gridform .wide{grid-column:1/-1}input,select,textarea{font:inherit;border:1px solid #cfd5dc;border-radius:7px;padding:10px;background:#fff;width:100%}.inlineform{flex-direction:row;align-items:end}.inlineform input{max-width:450px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;table-layout:fixed}th,td{padding:10px 8px;border-bottom:1px solid #e8ebee;text-align:left;vertical-align:top}th{font-size:13px;color:#59636d;background:#f8f9fa}.right{text-align:right}.link{background:none;color:#1e73be;padding:0}.danger{color:#b3261e}.dangerbtn{background:#b3261e;margin-top:15px}.alert{padding:11px 14px;border-radius:7px;margin-bottom:15px}.success{background:#e8f5e9;color:#216e39}.error{background:#fdecea;color:#a12622}.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.movement{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;border-bottom:1px solid #edf0f2;padding:10px 0}.movement small{display:block;color:#737b85}.tag{font-size:12px;background:#e7f4ea;padding:4px 7px;border-radius:5px}.tag.off{background:#eee}.report{max-width:900px;margin:30px auto;background:#fff;padding:30px}.report-work{margin-top:28px}.subtotal{text-align:right}.report-total{margin-top:35px;max-width:500px;margin-left:auto}.report-total .total td{font-weight:700;font-size:18px;border-top:2px solid #222}.print-actions{text-align:center;margin:30px}.login{min-height:100vh;display:grid;place-items:center}.login-card{background:#fff;border:1px solid #ddd;border-radius:12px;padding:30px;width:min(390px,92vw)}.login-card h1{font-size:25px}.login-card form{display:grid;gap:14px}.login-card label{font-size:13px}.login-card small{display:block;color:#68727d;margin-top:16px}footer{text-align:center;color:#7b838c;font-size:12px;padding:30px}@media(max-width:850px){.cards{grid-template-columns:repeat(2,1fr)}.top{align-items:flex-start;flex-direction:column}.two{grid-template-columns:1fr}}@media(max-width:560px){h1{font-size:25px}.cards{grid-template-columns:1fr 1fr}.gridform{grid-template-columns:1fr}.gridform .wide{grid-column:auto}.inlineform{flex-direction:column;align-items:stretch}.top nav{gap:8px}.movement{grid-template-columns:1fr auto}.movement form{grid-column:1/-1}.wrap{margin-top:18px}.panel{padding:15px}.report{padding:16px;margin:0}.print-actions{margin:20px 0}}@media print{body{background:#fff}.top,footer,.print-actions{display:none}.wrap,.report{max-width:none;margin:0;padding:0}.report-work{break-inside:avoid}.panel{border:0}.report-total{break-inside:avoid}}

.report-work table th:nth-child(1),.report-work table td:nth-child(1){width:18%;white-space:nowrap}
.report-work table th:nth-child(2),.report-work table td:nth-child(2){width:67%}
.report-work table th:nth-child(3),.report-work table td:nth-child(3){width:15%;text-align:right;white-space:nowrap}
.report-movements{margin-top:28px;break-inside:avoid}
.movement-table{table-layout:fixed!important}
.movement-table th:nth-child(1),.movement-table td:nth-child(1){width:18%;white-space:nowrap}
.movement-table th:nth-child(2),.movement-table td:nth-child(2){width:52%}
.movement-table th:nth-child(3),.movement-table td:nth-child(3){width:30%;white-space:nowrap}
.movement-table th:nth-child(4),.movement-table td:nth-child(4){width:18%;white-space:nowrap}
.movement-table th:last-child,.movement-table td:last-child{text-align:right}
.movement-total{text-align:right;margin:8px 0}
@media print{
 .report-work table,.movement-table{table-layout:fixed!important;width:100%}
 .report-movements{break-inside:avoid}
}

.report{max-width:900px;margin:24px auto;background:#fff;padding:42px 48px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.report-header{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;padding-bottom:24px;margin-bottom:28px;border-bottom:3px solid #26364a}
.report-header h1{font-size:29px;line-height:1.15;margin:5px 0 0;color:#20242a}
.report-kicker{font-size:12px;letter-spacing:.12em;font-weight:700;color:#1e73be}
.report-phrase{margin:8px 0 0;color:#68727d;font-size:14px}
.report-date{font-size:12px;color:#7a838c;white-space:nowrap;padding-top:4px}
.report-work{margin-top:30px}
.report-work h2{font-size:17px;text-transform:uppercase;letter-spacing:.03em;color:#26364a;margin-bottom:9px;padding-bottom:8px;border-bottom:1px solid #dfe4e9}
.report-work table th{background:#eef2f5;color:#3f4b57;font-size:12px;text-transform:uppercase;letter-spacing:.02em}
.report-work table td{font-size:13px}
.report-work .subtotal{margin:0;padding:10px 8px;background:#f7f8f9;border-bottom:1px solid #e3e7eb;font-size:13px}
.report-movements{margin-top:32px;padding-top:5px}
.report-movements h2,.report-total h2{font-size:17px;color:#26364a;border-bottom:2px solid #26364a;padding-bottom:8px}
.report-movements .movement-table th{background:#eef2f5;font-size:12px;text-transform:uppercase}
.report-total{margin-top:34px;padding:20px;background:#f5f7f9;border:1px solid #dfe4e9;border-radius:8px}
.report-total h2{margin-top:0}
.report-total table td{padding:8px}
.report-total table td:last-child{text-align:right;white-space:nowrap}
.report-total .total td{font-size:18px;padding-top:13px}
@media(max-width:560px){
 .report{padding:25px 16px;margin:0;box-shadow:none}
 .report-header{flex-direction:column;gap:8px;padding-bottom:18px}
 .report-header h1{font-size:24px}
 .report-date{display:none}
}
@media print{
 body{background:#fff}
 .report{max-width:none;margin:0;padding:12mm 10mm;box-shadow:none}
 .report-header{border-bottom:2px solid #26364a}
 .report-work h2{break-after:avoid}
}

.brand{display:flex;flex-direction:column}
.menu-toggle{display:none}
.report-title-row{display:flex;align-items:center;gap:28px}
.report-header-left{min-width:0;flex:1}
.report-balance{font-size:29px;line-height:1.15;font-weight:400;white-space:nowrap;color:#20242a}
.report-balance strong{font-size:inherit;font-weight:700}
.report-header-right{min-width:145px;text-align:right;display:grid;gap:8px;padding-top:2px}
.report-header-right div{display:flex;flex-direction:column}
.report-header-right span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#7a838c}
.report-header-right strong{font-size:13px;color:#26364a}
.report-print-footer{display:none}
.panel[id]{scroll-margin-top:120px}
@media(max-width:850px){
 .top{position:sticky;top:0;flex-direction:row;align-items:center}
 .menu-toggle{display:block;margin-left:auto;background:#e8edf3;color:#26364a;padding:8px 12px}
 .top nav{display:none;width:100%;flex-direction:column;gap:0}
 .top nav.open{display:flex}
 .top nav a{padding:10px 4px;border-top:1px solid #edf0f2}
 .top{flex-wrap:wrap}
 .top nav{order:3}
 .report-title-row{gap:15px}
 .report-balance{font-size:23px}
}
@media(max-width:560px){
 .report-header{flex-direction:column;gap:14px}
 .report-header-left{width:100%}
 .report-title-row{align-items:flex-start;justify-content:space-between}
 .report-header h1{font-size:24px}
 .report-balance{font-size:20px;text-align:right}
 .report-header-right{width:100%;display:flex;justify-content:space-between;text-align:left;padding-top:0;border-top:1px solid #e5e8eb;padding-top:10px}
 .report-header-right div{display:block}
 .report-header-right span{display:block}
 .panel[id]{scroll-margin-top:115px}
}
@media print{
 .report-print-footer{display:flex;position:fixed;left:0;right:0;bottom:0;justify-content:space-between;gap:15px;font-size:9px;color:#737b85;border-top:1px solid #dfe4e9;padding-top:5px}
 .report{padding-bottom:18mm}
 .page-counter:after{content:counter(page)}
}

/* Cabecera ajustada: saldo en la línea del periodo y fechas en la línea inferior */
.report-header{display:block;padding-bottom:20px;margin-bottom:26px;border-bottom:3px solid #26364a}
.report-title-row,.report-subtitle-row{display:flex;width:100%;justify-content:space-between;gap:24px}
.report-title-row{align-items:center}
.report-title-main{min-width:0}
.report-title-main h1{margin:5px 0 0}
.report-balance{margin-left:auto;text-align:right;white-space:nowrap;font-size:20px;font-weight:400;color:#68727d;padding-top:9px}
.report-balance strong{font-weight:600;color:#5f6974}
.report-subtitle-row{align-items:center;margin-top:8px;min-height:22px}
.report-phrase{margin:0;color:#68727d;font-size:14px}
.report-period-dates{margin-left:auto;text-align:right;color:#68727d;font-size:13px;white-space:nowrap}
@media(max-width:560px){
 .report-title-row{gap:12px;align-items:flex-start}
 .report-balance{font-size:15px;padding-top:10px}
 .report-title-main h1{font-size:24px}
 .report-subtitle-row{gap:12px;align-items:flex-start}
 .report-period-dates{font-size:12px}
}

/* V6: cabecera limpia, alineada a la izquierda */
.report-header{display:block!important;width:100%;padding-bottom:22px;margin-bottom:28px;border-bottom:3px solid #26364a}
.report-header .report-kicker{margin:0 0 4px}
.report-header h1{margin:0;font-size:32px;line-height:1.12;color:#20242a}
.report-header .report-period-dates{margin-top:6px;color:#68727d;font-size:13px;line-height:1.4;text-align:left}
.report-header .report-balance{margin-top:20px;padding:12px 0 0;text-align:left;border-top:1px solid #dfe4e9;color:#26364a}
.report-header .report-balance span{display:block;font-size:13px;font-weight:700;letter-spacing:.05em}
.report-header .report-balance strong{display:block;margin-top:2px;font-size:28px;line-height:1.15;color:#20242a;font-weight:700}
.report-title-row,.report-subtitle-row,.report-phrase,.report-date{display:none!important}
.report-movements .movement-table th:nth-child(1),.report-movements .movement-table td:nth-child(1){width:18%}
.report-movements .movement-table th:nth-child(2),.report-movements .movement-table td:nth-child(2){width:62%}
.report-movements .movement-table th:nth-child(3),.report-movements .movement-table td:nth-child(3){width:20%;text-align:right}
@media(max-width:560px){.report-header h1{font-size:25px}.report-header .report-balance strong{font-size:25px}.report-header .report-balance{margin-top:16px}}
@media print{.report-header{border-bottom:2px solid #26364a}}


/* ===== V7 - Identidad visual basada en el logo ===== */
:root{
  --brand-accent:#6CE2EC;
  --brand-accent-soft:#EAFBFC;
  --brand-dark:#2B2B2B;
  --brand-gray:#6E7781;
}

/* Cabecera */
.report-kicker{
  color:var(--brand-accent)!important;
}

.report-header{
  border-bottom:3px solid var(--brand-dark)!important;
}

.report-header .report-balance span{
  color:var(--brand-gray);
}

.report-header .report-balance strong{
  color:var(--brand-dark);
}

/* Títulos de obras */
.report-work h2{
  color:var(--brand-dark);
  border-bottom:2px solid var(--brand-accent);
}

/* Encabezados de tablas */
.report-work table th,
.movement-table th{
  background:var(--brand-accent-soft)!important;
  color:var(--brand-dark)!important;
}

/* Resumen final */
.report-total{
  border-top:4px solid var(--brand-accent);
}

/* Total pendiente */
.report-total .total td:last-child{
  color:var(--brand-dark);
  font-weight:700;
}

/* Impresión */
@media print{
  .report-header{
    border-bottom:2px solid var(--brand-dark)!important;
  }
}
