:root{--navy:#10233f;--navy2:#172f50;--accent:#11a379;--green:#07845d;--bg:#f3f6fa;--ink:#1e2a39;--muted:#68768a;--line:#e1e7ef;--white:#fff;--red:#b63442;--shadow:0 8px 30px rgba(16,35,63,.055)}
*{box-sizing:border-box}html{font-family:Inter,system-ui,-apple-system,'Segoe UI',Arial,sans-serif}body{margin:0;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5}a{color:#125e9f;text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a{transition:background .16s,color .16s}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.03em}h2{letter-spacing:-.02em}h3{font-size:16px}.muted{color:var(--muted)}.small{font-size:12px}.hidden{display:none!important}
.app-shell{min-height:100vh;display:grid;grid-template-columns:246px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:var(--navy);color:#eff7ff;display:flex;flex-direction:column;padding:25px 14px 17px;overflow:auto}.brand{display:flex;gap:11px;align-items:center;color:white;font-weight:650;font-size:18px;padding:0 11px 23px;line-height:1.3}.brand:hover{text-decoration:none}.brand b{color:#7fe0be}.brand small{display:block;font-size:11px;color:#9eb4ce;font-weight:400;letter-spacing:.02em}.brand-mark{width:43px;height:43px;display:grid;place-items:center;background:linear-gradient(130deg,#18ae85,#76d6b4);border-radius:13px;font-size:27px;font-weight:800;flex-shrink:0}.school-label{border-top:1px solid #304763;border-bottom:1px solid #304763;padding:15px 13px;margin:0 2px 16px;font-size:12px;color:#e1f0ff;font-weight:650}.school-label small{display:block;color:#9ab0c9;font-size:11px;font-weight:400;margin-top:4px}.sidebar nav{display:grid;gap:3px}.nav-link{display:flex;gap:11px;align-items:center;color:#b4c7df;padding:10px 14px;border-radius:8px;font-size:13px;font-weight:500}.nav-link:hover,.nav-link.active{background:#244463;color:white;text-decoration:none}.nav-link.active{box-shadow:inset 3px 0 var(--accent)}.nav-dot{width:7px;height:7px;border:1px solid #7ba9c7;border-radius:3px}.nav-link.active .nav-dot{background:#75ddb8;border-color:#75ddb8}.sidebar-bottom{margin-top:auto;padding:20px 12px 0;border-top:1px solid #304763;display:grid;gap:10px}.sidebar-bottom small{display:block;color:#9ab0c9;text-transform:capitalize}.sidebar-bottom .ghost{background:#244463;color:#e5f0fc;border:1px solid #345676}
.workspace{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;gap:16px;justify-content:space-between;align-items:center;min-height:105px;padding:21px 36px;background:white;border-bottom:1px solid var(--line)}.topbar small{color:#75849a;font-size:11px;letter-spacing:.025em}.topbar h1{margin:3px 0 0;font-size:23px}.top-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.top-select select{font-size:12px;max-width:205px;border:1px solid var(--line);border-radius:9px;background:#f9fbfe;padding:10px;color:var(--ink)}.content{padding:28px 35px 42px;max-width:1700px;width:100%;margin:0 auto;flex:1}.footer{font-size:11px;color:#9aa7b7;text-align:center;padding:16px}.mobile-menu{display:none}
.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-bottom:24px}.stat{background:white;padding:20px 22px;min-height:111px;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);border-top:3px solid #12a77e}.stat span{display:block;color:#77869b;font-size:12px;font-weight:600}.stat strong{font-size:27px;display:block;margin-top:9px;letter-spacing:-.03em;color:#17324d}.panel,.table-wrap,.report-card{background:white;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.panel{padding:24px;margin-bottom:21px}.panel h2{font-size:19px;margin-bottom:19px}.narrow{max-width:620px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;font-weight:600;color:#46556a;font-size:12px}.field span em{font-style:normal;color:#b63442}.field input,.field select,.field textarea,.filters input,.filters select,.top-select input,input.alloc,input.reason{width:100%;background:#fff;color:var(--ink);border:1px solid #cfdae6;border-radius:8px;padding:11px 12px;outline:none;min-width:0;font-size:13px}.field input:focus,.field select:focus,.field textarea:focus,.filters input:focus,input.alloc:focus{border-color:#0d9a79;box-shadow:0 0 0 3px #ddf8ef}.field textarea{resize:vertical}.field textarea,.field input{font-weight:400}.field input[readonly]{background:#eaf5f1;font-weight:800}.actions{margin-top:11px;display:flex;justify-content:flex-end}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;min-height:37px;border-radius:8px;border:1px solid var(--green);background:var(--green);color:white;font-weight:650;font-size:12px;white-space:nowrap;text-decoration:none}.btn:hover{background:#056f51;color:white;text-decoration:none}.btn.secondary{color:#134d6e;background:#ecf4fa;border-color:#d6e9f3}.btn.secondary:hover{background:#daeef8;color:#134d6e}.btn.ghost{color:#415973;background:#fff;border-color:#d7e1ec}.btn.ghost:hover{background:#edf3f8;color:#415973}.btn.danger{color:#b12e3c;background:#fff1f2;border-color:#f3ccd0;padding:6px 9px;min-height:31px}.btn.danger:hover{background:#fce0e3}.btn.full{width:100%;font-size:14px;padding:13px}.shortcuts{display:flex;flex-wrap:wrap;gap:8px;margin:9px 0 22px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 14px}.section-head h2{font-size:18px;margin:0}.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin:14px 0 19px}.filters>input{max-width:430px;flex:1}.filters .field{margin:0;min-width:220px}.table-wrap{overflow:auto;margin-bottom:22px}.table-wrap table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:12px}.table-wrap th{color:#697e92;background:#f8fafc;font-size:10px;letter-spacing:.065em;text-transform:uppercase;font-weight:750;border-bottom:1px solid var(--line)}.table-wrap th,.table-wrap td{padding:13px 14px;border-bottom:1px solid #edf1f5}.table-wrap tbody tr:hover{background:#fafcfe}.table-wrap tbody tr:last-child td{border-bottom:0}.table-wrap .num{text-align:right;font-variant-numeric:tabular-nums}.pill{display:inline-block;border-radius:30px;padding:4px 9px;font-size:10px;font-weight:700}.pill.good{background:#ddf7e9;color:#08734a}.pill.warn{background:#fff4da;color:#956300}.pill.bad{background:#fee9ea;color:#b13343}.pill.neutral{background:#e9f1fb;color:#476783}.alert{padding:13px 16px;border:1px solid #bbebd4;border-radius:9px;margin:0 0 21px;background:#e8f8ef;color:#14633b;font-weight:550}.alert.error{background:#fff0f0;color:#ae2535;border-color:#f5c6ce}.alert.warn{background:#fff6e5;color:#866015;border-color:#f4e1b2}.empty{background:white;padding:40px;text-align:center;border-radius:12px;border:1px dashed #bfcad7;color:#607388}.inline-form{display:inline-flex;gap:5px;align-items:center;margin:2px 5px}.inline-form input.reason{width:130px;font-size:11px;padding:6px}.check{display:flex;align-items:center;gap:6px;margin-bottom:10px;color:#43536a;font-size:13px}.check input{accent-color:#0e9a75}.bulk-parents{border:1px solid var(--line);background:#fbfdff;border-radius:9px;padding:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:330px;overflow:auto;margin-bottom:12px}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.report-card{padding:20px}.report-card h3{margin-bottom:14px}.report-card .shortcuts{margin:0}.guest{background:#eaf0f7}.login-wrap{max-width:970px;min-height:590px;margin:7vh auto;display:grid;grid-template-columns:1fr 1fr;background:white;box-shadow:0 26px 75px rgba(16,35,63,.17);border-radius:20px;overflow:hidden}.login-side{padding:60px 46px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(140deg,#092441,#174b65 65%,#0c8168);color:white;position:relative;isolation:isolate}.login-side:after{content:'✦';position:absolute;right:23px;top:70px;font-size:200px;opacity:.06;z-index:-1}.giant{font-size:74px;font-weight:900;line-height:.88;letter-spacing:-.07em;margin-bottom:44px}.giant span{display:block;font-size:25px;letter-spacing:-.035em;color:#7ce4c2;margin-top:12px}.login-side h2{font-size:30px;max-width:300px;line-height:1.25}.login-side p{color:#d6e8ed;max-width:310px}.login-card{padding:76px 55px;display:flex;flex-direction:column;justify-content:center}.login-card h1{font-size:30px;margin-bottom:7px}.login-card>p{color:#738397;margin-bottom:32px}.login-card .field{margin-bottom:17px}.login-icon{font-weight:800;font-size:17px;background:#e6f8f0;color:#099568;border-radius:12px;display:grid;place-items:center;width:52px;height:52px;margin-bottom:22px}
.document{background:#e6e9ee;color:#182539;font-family:Arial,sans-serif}.document-actions{max-width:900px;margin:20px auto;display:flex;gap:10px}.paper{background:white;max-width:900px;min-height:1060px;margin:0 auto 35px;padding:42px 45px 35px;box-shadow:0 5px 22px #0002}.doc-header{border-bottom:3px solid #183d5b;padding-bottom:18px;display:flex;align-items:center;gap:17px}.doc-header h1{font-size:21px;margin:3px 0}.doc-header p{font-size:11px;margin:2px}.doc-header strong{font-size:11px;letter-spacing:.09em}.seal{display:grid;place-items:center;font-weight:900;color:white;background:#153b59;min-width:63px;height:63px;font-size:20px;border-radius:9px}.doc-title{text-align:center;font-size:17px;letter-spacing:.08em;margin:26px 0 22px}.doc-meta{display:flex;justify-content:space-between;gap:12px;border:1px solid #d6e0eb;background:#f8fbfd;padding:14px;margin-bottom:15px}.doc-meta b{color:#bd293c;font-size:17px}.detail-line{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid #e4e9ee}.detail-line b{width:36%}.detail-line span{flex:1;text-align:right}.receipt-status{font-weight:800;letter-spacing:.06em;color:#17466e;text-align:center}.doc-table{border-collapse:collapse;width:100%;font-size:10px;table-layout:auto;margin:14px 0 22px}.doc-table th,.doc-table td{padding:7px 5px;text-align:left;vertical-align:top;border-bottom:1px solid #d7dfe8;overflow-wrap:anywhere}.doc-table th{background:#1d3c59;color:white;font-size:9px}.doc-table tbody tr:nth-child(even){background:#f7f9fb}.summary-strip{display:flex;flex-wrap:wrap;gap:13px;justify-content:space-between;border:1px solid #cedde8;background:#eff7f8;padding:16px 18px;margin:20px 0;font-size:12px}.summary-strip b{font-size:14px;color:#173650}.sign-one{text-align:center;margin:90px 0 30px}.signatures{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:80px;font-size:10px;text-align:center}.doc-foot{text-align:center;border-top:1px solid #dbe2e9;font-size:9px;color:#6a7c91;margin-top:38px;padding-top:12px}
@media(max-width:1050px){.app-shell{grid-template-columns:210px minmax(0,1fr)}.topbar{padding:20px}.content{padding:24px}.stat-grid{grid-template-columns:repeat(2,1fr)}.sidebar{padding:20px 10px}}
@media(max-width:740px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:30;left:-270px;width:250px;height:100vh;transition:left .2s}.sidebar.open{left:0}.mobile-menu{display:inline-block;border:0;border-radius:8px;background:#e8f3f6;padding:10px;font-size:20px}.topbar{flex-wrap:wrap;padding:15px;align-items:flex-start}.topbar h1{font-size:20px}.top-actions{width:100%;justify-content:flex-start}.top-select select{max-width:160px}.content{padding:15px}.stat-grid,.form-grid,.report-grid,.bulk-parents{grid-template-columns:1fr}.stat{min-height:95px}.stat strong{font-size:24px}.panel{padding:18px}.filters{align-items:stretch}.filters>input{flex-basis:100%}.section-head{align-items:flex-start}.login-wrap{margin:0;min-height:100vh;display:block;border-radius:0}.login-side{padding:40px 24px}.giant{font-size:45px;margin-bottom:20px}.giant span{font-size:16px}.login-side h2{font-size:20px}.login-card{padding:28px 24px}.paper{padding:20px}.doc-meta{flex-wrap:wrap}}
@page{size:letter;margin:12mm 11mm}@media print{body.document{background:white!important;font-size:10px}.paper{width:100%;min-height:0;margin:0;padding:0;max-width:none;box-shadow:none}.no-print,.document-actions{display:none!important}.doc-table{font-size:9px}.doc-table thead{display:table-header-group}.doc-table tr,.detail-line,.signatures,.doc-meta{break-inside:avoid;page-break-inside:avoid}.doc-header{break-after:avoid}.doc-foot{font-size:8px}.signatures{margin-top:60px}.doc-table td,.doc-table th{padding:5px 4px}.document{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

.doc-logo{height:63px;width:63px;object-fit:contain;background:white;border-radius:9px}.bar-chart{padding:22px}.bar-group{display:grid;grid-template-columns:80px minmax(0,1fr) 170px;align-items:center;gap:16px;margin-bottom:12px;font-size:12px}.bar-tracks{display:flex;flex-direction:column;gap:4px}.bar{height:13px;min-width:2px;border-radius:3px}.bar.income{background:#139774}.bar.expense{background:#396aab}.bar-group b{text-align:right;font-size:11px}.login-card form{max-height:70vh;overflow:auto;padding:2px}@media(max-width:740px){.bar-group{grid-template-columns:65px minmax(0,1fr)}.bar-group b{grid-column:2;text-align:left}}

.mass-parent[hidden]{display:none!important}.pagination{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin:18px 0 26px;color:#526477;font-size:12px}

@media print{@page{size:letter;margin:12mm 11mm;@bottom-right{content:"Página " counter(page);font:8px Arial;color:#62758a}}}

/* Módulo de cargos múltiples (v1.2) */
.bulk-toolbar{display:grid;grid-template-columns:minmax(200px,2fr) minmax(130px,1fr) minmax(130px,1fr);gap:12px;align-items:end}
.bulk-controls{display:flex;align-items:center;flex-wrap:wrap;gap:15px;margin:10px 0}.bulk-controls .check{margin:0}.bulk-controls span{color:var(--muted,#526477);font-size:12px}
.bulk-parent-list{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#f8fafc;padding:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:13px}
.bulk-parent{display:flex;gap:11px;align-items:center;border:1px solid #e2e8f0;border-radius:8px;padding:10px;background:white;cursor:pointer;min-width:0}
.bulk-parent:hover{border-color:#0e9a75;background:#f1fbf7}.bulk-parent:has(input:checked){border-color:#0e9a75;background:#ecf9f3}
.bulk-parent[hidden],.bulk-charge-result[hidden]{display:none!important}.bulk-parent input{accent-color:#0e9a75;flex:none;width:18px;height:18px}.bulk-parent span{min-width:0;overflow-wrap:anywhere}.bulk-parent strong{display:block;font-size:13px}.bulk-parent small{display:block;color:#63748b;margin-top:4px}
.bulk-selected{font-weight:800;color:#0e785d;margin:13px 0}.bulk-total{background:#edf8f5;border:1px solid #b8e5d6;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:16px;margin-top:10px}.bulk-total strong{font-size:22px;color:#0b7859}.bulk-total small{width:100%;color:#526477}
.bulk-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:15px 0 24px}.bulk-summary>div{padding:14px;background:#f0f5f9;border:1px solid #e1eaf3;border-radius:10px;color:#46556a;font-size:12px}.bulk-summary strong{display:block;margin-top:8px;color:#173650;font-size:20px;overflow-wrap:anywhere}
@media(max-width:740px){.bulk-toolbar{grid-template-columns:1fr}.bulk-parent-list{grid-template-columns:1fr}.bulk-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 1.3: lista vertical real, separa nombres/códigos y mantiene las casillas alineadas. */
.bulk-parent-list{display:block!important;padding:0!important;max-height:510px;overflow-y:auto;overflow-x:hidden;background:#fff}
.bulk-parent-head,.bulk-parent-list .bulk-parent{display:grid!important;grid-template-columns:98px minmax(160px,1fr) minmax(150px,200px) minmax(130px,190px);align-items:center;gap:14px;margin:0;min-width:0}
.bulk-parent-head{position:sticky;top:0;z-index:2;background:#eaf0f6;border-bottom:1px solid #d8e2ef;padding:11px 16px;color:#40546b;font-size:11px;font-weight:800;letter-spacing:.035em;text-transform:uppercase}
.bulk-parent-list .bulk-parent{border:0;border-bottom:1px solid #e5ebf1;border-radius:0;padding:12px 16px;min-height:55px;background:#fff;cursor:pointer}
.bulk-parent-list .bulk-parent:nth-child(odd){background:#f8fbfe}
.bulk-parent-list .bulk-parent:hover{background:#eaf6f2}
.bulk-parent-list .bulk-parent:has(input:checked){background:#e6f6ed;box-shadow:inset 3px 0 #0c966e}
.bulk-parent-list .bulk-parent[hidden]{display:none!important}
.bulk-parent-list .bulk-parent input{justify-self:start;margin-left:7px;flex:none;width:18px;height:18px}
.bulk-parent-list .bulk-parent-name{min-width:0;overflow-wrap:break-word}
.bulk-parent-list .bulk-parent-name strong{font-size:13px;font-weight:700;line-height:1.35;color:#1e304a}
.bulk-parent-list .bulk-parent-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-word;font-size:11px;font-weight:500;color:#465c74}
.bulk-parent-list .bulk-parent-locality{font-size:12px;word-break:break-word;color:#61718a}
.actions{gap:9px;flex-wrap:wrap}
@media(max-width:1100px){
 .bulk-parent-head{display:none!important}
 .bulk-parent-list .bulk-parent{grid-template-columns:27px minmax(0,1fr)!important;gap:2px 12px;padding:12px!important}
 .bulk-parent-list .bulk-parent input{grid-row:1/4;grid-column:1;margin-left:0}
 .bulk-parent-list .bulk-parent-name,.bulk-parent-list .bulk-parent-code,.bulk-parent-list .bulk-parent-locality{grid-column:2}
 .bulk-parent-list .bulk-parent-code{font-size:11px}
 .bulk-parent-list .bulk-parent-locality{font-size:11px}
}
