:root{--navy:#153454;--teal:#0797a3;--line:#dce6ee}*{box-sizing:border-box}body{margin:0;background:#f2f6fa;color:var(--navy);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}header{background:#fff;border-bottom:1px solid var(--line);padding:20px max(24px,calc((100% - 1280px)/2));display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:14px}.brand strong{font-size:20px}.brand small{display:block}.brand img{width:66px;height:66px;object-fit:contain}main{max-width:1280px;margin:36px auto;padding:0 24px}h1{font-size:30px;line-height:1.2}h2{font-size:19px;margin-top:0}a{color:#075b86;text-decoration:none}nav{display:flex;gap:20px;font-size:13px}.card{background:white;border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:22px;box-shadow:0 4px 16px #15345406}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.cards strong{display:block;font-size:32px;margin-top:6px}.debt{background:#fff0f2;color:#c52f4a}.paid{background:#e9fafa;color:#087b83}.columns{display:grid;grid-template-columns:1fr 1.35fr;gap:22px}.access{max-width:480px;margin:70px auto}.scroll{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:14px}th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left}th{background:#eff5fa;font-size:12px}td:not(:first-child){font-variant-numeric:tabular-nums}.badge{background:#fff0cb;border-radius:20px;padding:3px 10px;font-size:12px}.badge.ok{background:#d5f4e7;color:#176b51}.tabs{display:flex;gap:8px;margin-bottom:16px}.tabs a{padding:7px 14px;border:1px solid var(--line);border-radius:7px}.tabs .selected{background:var(--teal);color:white}.muted,footer{font-size:12px;color:#61798d}footer{text-align:center;padding:30px}.student{display:flex;justify-content:space-between;gap:20px;padding:16px 8px;border-bottom:1px solid var(--line)}.student:hover{background:#edf8fc}.student strong{white-space:nowrap}.roster{max-width:900px}input,select{width:100%;padding:11px;border:1px solid #c6d5e1;border-radius:7px;font:inherit;background:white;color:var(--navy)}label{display:block;margin-bottom:16px;font-size:13px}label input,label select{margin-top:6px}button,.button{background:var(--teal);border:0;border-radius:7px;color:white;padding:11px 17px;font:600 14px system-ui;cursor:pointer;display:inline-block}button:hover,.button:hover{filter:brightness(.95)}.secondary{background:white;color:var(--navy);border:1px solid var(--line)}.danger{background:#b83d51}.search,.formrow,.heading{display:flex;gap:16px;align-items:center;margin-bottom:24px}.formrow{align-items:end;flex-wrap:wrap}.formrow label{flex:1;min-width:200px;margin:0}.notice{background:#e3f6f2;padding:16px;border-radius:10px}.error{background:#ffe7eb;padding:16px;border-radius:10px;color:#99293f}.check{display:flex;gap:10px;align-items:center}.check input{width:auto}.inline{display:flex;gap:8px}.inline input{min-width:160px}.heading{justify-content:space-between}.search input{max-width:600px}input[type=file]{margin-bottom:12px}@media(max-width:800px){header{align-items:flex-start;flex-direction:column;padding:18px}main{padding:0 14px;margin:24px auto}.cards,.columns{grid-template-columns:1fr}.cards{gap:0}.cards .card{margin-bottom:12px}.card{padding:17px}h1{font-size:25px}.student{font-size:13px}.student strong{font-size:12px}.heading{align-items:flex-start}.cards strong{font-size:28px}.tabs{flex-wrap:wrap}}

.inline input[type=checkbox]{min-width:0;width:18px;height:18px}.inline .check{margin:0;white-space:nowrap}

/* adicionales2026-v1 */
.extras-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}
.extras-panel h2 .badge{display:inline-block;margin-left:8px;vertical-align:middle}
.extras-payment{border-left:1px solid var(--line);padding-left:24px}
.extras-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.extras-cards article{padding:14px;border:1px solid var(--line);border-radius:9px}
.extras-cards strong{display:block;font-size:22px}
.extras-quantity{display:flex;gap:14px;align-items:end}
.extras-quantity label{max-width:180px;margin-bottom:0}
.extras-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.extra-row{background:#fff5de;font-weight:600}
@media(max-width:950px){.extras-layout{grid-template-columns:1fr}.extras-payment{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.extras-cards{grid-template-columns:1fr}.extras-quantity{flex-wrap:wrap}.extras-fields{grid-template-columns:1fr}}
/* avance-recaudacion-v1 */
.report-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.report-kpis strong{display:block;font-size:28px;margin:8px 0}
.report-kpis small{display:block}
.report-counts{display:flex;gap:28px;flex-wrap:wrap;margin:24px 0}
.report-counts strong{font-size:22px}
.report-notice{padding:16px 20px;background:#fff3d8;border:1px solid #f0d08b;border-radius:10px;color:#755013}
.report-legend{display:flex;gap:24px;flex-wrap:wrap;font-size:13px;margin:20px 0}
.report-legend span:before{content:'';width:12px;height:12px;display:inline-block;border-radius:50%;margin-right:8px}
.legend-target:before{background:#285b94}.legend-paid:before{background:#0797a3}.legend-pending:before{background:#f26860}
.report-graph{overflow-x:auto}.report-graph svg{width:100%;min-width:650px;display:block}
.report-grid{stroke:#e0e8ef;stroke-width:1;stroke-dasharray:5 4}
.report-axis{font:14px system-ui;fill:#526e88}.report-line{stroke-width:3}
.report-line.report-target{stroke:#285b94}.report-line.report-paid{stroke:#0797a3}.report-line.report-pending{stroke:#f26860;stroke-dasharray:7 5}
.report-point.report-target{fill:#285b94}.report-point.report-paid{fill:#0797a3}.report-point.report-pending{fill:#f26860}
.report-progress{width:100%;height:22px;accent-color:#0797a3;margin:12px 0 22px;border:0;border-radius:12px;overflow:hidden;background:#fee6e3}
.report-progress::-webkit-progress-bar{background:#fee6e3}.report-progress::-webkit-progress-value{background:#0797a3}.report-progress::-moz-progress-bar{background:#0797a3}
@media(max-width:1000px){.report-kpis{grid-template-columns:repeat(2,1fr)}.report-kpis .card{margin-bottom:0}.report-kpis{margin-bottom:22px}nav{flex-wrap:wrap}}
@media(max-width:580px){.report-kpis{grid-template-columns:1fr}.report-counts{gap:12px;flex-direction:column}.report-kpis strong{font-size:27px}.report-legend{gap:12px}}
