:root{color:#111;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f7f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#f5f7f6;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{background:#fff;border:1px solid #e2e6e4;border-radius:8px;gap:18px;width:100%;max-width:420px;padding:28px;display:grid;box-shadow:0 18px 40px #1118271a}.login-logo{object-fit:contain;background:#f4f5f4;border:1px solid #e0e5e3;border-radius:8px;justify-self:center;width:150px;height:86px;padding:8px;display:block}.sidebar{color:#111;background:#fff;border-right:1px solid #e2e6e4;flex-direction:column;gap:28px;padding:24px 20px;display:flex}.brand{align-items:center;gap:14px;display:flex}.brand-logo{object-fit:contain;background:#f4f5f4;border:1px solid #e0e5e3;border-radius:8px;width:96px;height:58px;padding:6px;display:block}.brand strong,.brand span{display:block}.brand strong{font-size:1.04rem}.brand span,.eyebrow{color:#6b7280;font-size:.82rem}.nav{gap:6px;display:grid}.nav-button{color:#3f4644;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;min-height:44px;padding:0 12px;display:flex}.nav-button:hover{background:#f2f7f6;border-color:#dce7e5}.nav-button.active{color:#0d3b36;background:#e8f5f3;border-color:#b9dbd6;font-weight:700}.status{color:#4b5563;background:#f8faf9;border:1px solid #e2e6e4;border-radius:8px;align-items:center;gap:10px;min-height:44px;margin-top:auto;padding:0 12px;display:flex}.status.online{color:#0d3b36;background:#e8f5f3;border-color:#b9dbd6}.runtime-badge{border:1px solid #e2e6e4;border-radius:8px;gap:3px;min-height:54px;padding:9px 12px;display:grid}.runtime-badge span{color:#4b5563;text-transform:uppercase;font-size:.72rem;font-weight:800}.runtime-badge strong{color:#111;overflow-wrap:anywhere;font-size:.82rem}.runtime-badge.production{background:#e8f5f3;border-color:#b9dbd6}.runtime-badge.local{background:#fff7ed;border-color:#fed7aa}.content{flex-direction:column;gap:20px;min-width:0;padding:28px;display:flex}.topbar{justify-content:space-between;align-items:center;gap:18px;display:flex}h1,h2,p{margin:0}h1{color:#111;font-size:2rem;font-weight:800;line-height:1.1}h2{color:#111;font-size:1rem}.topbar-actions{align-items:center;gap:10px;display:flex}.current-user{justify-items:end;line-height:1.1;display:grid}.current-user strong{font-size:.9rem}.current-user span{color:#6b7280;font-size:.78rem}.logout-button{white-space:nowrap}.search{background:#fff;border:1px solid #d9dfdd;border-radius:8px;align-items:center;gap:8px;width:min(300px,42vw);min-height:42px;padding:0 12px;display:flex}.search input{border:0;outline:0;width:100%;min-width:0;padding:0}.icon-button,.primary-button,.secondary-button{border-radius:8px;justify-content:center;align-items:center;min-height:42px;display:inline-flex}.icon-button{color:#fff;background:#111;border:1px solid #111;width:42px}.primary-button{color:#fff;background:#111;border:1px solid #111;gap:8px;padding:0 16px}.secondary-button{color:#111;background:#fff;border:1px solid #d9dfdd;gap:8px;padding:0 14px}.primary-button:hover,.icon-button:hover{background:#004249;border-color:#004249}.secondary-button:hover{background:#f2f7f6}.checkbox-control{color:#3f4644;cursor:pointer;white-space:nowrap;background:#f8faf9;border:1px solid #d9dfdd;border-radius:999px;align-items:center;gap:7px;min-height:34px;padding:0 10px;font-size:.78rem;font-weight:800;display:inline-flex}.checkbox-control input{width:auto;min-height:auto;padding:0}.primary-button:disabled,.icon-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.55}.alert,.loading{border:1px solid;border-radius:8px;align-items:center;gap:10px;min-height:42px;padding:0 14px;display:flex}.alert{color:#8a3d00;background:#fff6ed;border-color:#f2c9a2}.loading{color:#0d3b36;background:#e8f5f3;border-color:#b9dbd6}.loading svg{animation:.8s linear infinite spin}.dashboard-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.metric,.panel{background:#fff;border:1px solid #e2e6e4;border-radius:8px;box-shadow:0 12px 30px #1118270f}.metric{gap:10px;min-height:128px;padding:18px;display:grid}.metric.teal svg,.metric.blue svg,.metric.amber svg,.metric.rose svg{color:#004249}.metric span{color:#6b7280;font-size:.86rem;font-weight:700}.metric strong{color:#111;font-size:2.2rem;line-height:1}.panel{min-width:0;padding:18px}.panel.wide{grid-column:1/-1}.panel-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.panel-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.work-grid{grid-template-columns:minmax(260px,360px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.lists-layout{grid-template-columns:minmax(0,1fr) minmax(220px,260px);gap:16px;display:grid}.events-layout{grid-template-columns:minmax(260px,320px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.event-list-panel{grid-column:1}.events-detail-panel{grid-column:2;min-height:520px}.event-create-form{background:#f8faf9;border:1px solid #dfe7e4;border-radius:8px;margin-bottom:14px;padding:14px}.events-detail-grid{grid-template-columns:minmax(260px,.9fr) minmax(360px,1.2fr);gap:16px;margin-bottom:18px;display:grid}.event-subform{background:#f8faf9;border:1px solid #dfe7e4;border-radius:8px;align-content:start;padding:14px}.event-subform h3{margin:0;font-size:.92rem}.event-detail-row{grid-template-columns:minmax(220px,1fr) 120px;gap:10px;display:grid}.event-participants-toggle{background:#fff;border:1px solid #dfe7e4;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:12px 14px;display:flex}.event-participants-toggle div{gap:4px;display:grid}.event-participants-toggle strong{color:#1f2937;font-size:.95rem}.list-count{color:#3f4644;white-space:nowrap;background:#f8faf9;border:1px solid #d9dfdd;border-radius:999px;padding:7px 10px;font-size:.78rem;font-weight:800}.lists-detail-panel{min-height:420px}.lists-side-panel{gap:16px;display:grid}.empty-detail{color:#6b7280;text-align:center;align-content:center;justify-items:center;gap:10px;min-height:360px;display:grid}.empty-detail svg{color:#004249}.empty-detail p{max-width:320px}.list-selector{gap:8px;display:grid}.list-selector-button{color:#1f2937;cursor:pointer;text-align:left;background:#fff;border:1px solid #d9dfdd;border-radius:8px;gap:4px;padding:10px;display:grid}.list-selector-button:hover,.list-selector-button.active{background:#e8f5f3;border-color:#b9dbd6}.list-selector-button strong{font-size:.92rem}.list-selector-button span{color:#6b7280;font-size:.78rem;font-weight:700}.payments-report-panel{grid-column:1/-1}.payment-period-box{background:#f8faf9;border:1px solid #dfe7e4;border-radius:8px;gap:4px;margin:12px 0;padding:12px;display:grid}.payment-period-box span,.payment-period-box small{color:#6b7280;font-size:.78rem;font-weight:700}.payment-period-box strong{color:#0d3b36;font-size:1.05rem}.alumnos-layout{gap:16px;display:grid}.alumno-master-grid{grid-template-columns:minmax(0,1fr) minmax(280px,420px);align-items:start;gap:16px;display:grid}.alumno-form{grid-template-columns:repeat(4,minmax(180px,1fr))}.alumno-form .primary-button{justify-self:start}.field-label{gap:6px;display:grid}.field-label span,.detail-item span{color:#6b7280;font-size:.78rem;font-weight:700}.detail-panel{min-height:360px}.large-detail-panel{padding:24px}.detail-list{grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px;display:grid}.embedded-panel{border-top:1px solid #e2e6e4;margin-top:18px;padding-top:18px}.detail-item{border-bottom:1px solid #edf0ef;gap:4px;padding-bottom:10px;display:grid}.detail-item strong{color:#111;overflow-wrap:anywhere;font-size:.95rem;font-weight:700}.detail-form{grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px}.button-row,.catalog-tabs{flex-wrap:wrap;gap:10px;display:flex}.active-tab{color:#0d3b36;background:#e8f5f3;border-color:#b9dbd6;font-weight:800}.compact-button{min-height:34px;padding:0 10px}.lookup-field{grid-template-columns:minmax(0,1fr) 42px;gap:8px;display:grid}.lookup-panel{border:1px solid #e2e6e4;border-radius:8px;gap:10px;padding:12px;display:grid}.lookup-search{width:100%}.lookup-list{gap:6px;max-height:260px;display:grid;overflow:auto}.lookup-row{color:#111;text-align:left;background:#fff;border:1px solid #e2e6e4;border-radius:8px;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:8px;min-height:42px;padding:0 10px;display:grid}.lookup-row:hover{background:#f2f7f6}.lookup-row span{overflow-wrap:anywhere}.receipt-panel{align-self:start}.receipt{color:#111;background:#fff;border:1px dashed #9ca3af;gap:12px;max-width:320px;margin:0 auto;padding:16px;display:grid}.receipt-brand{text-align:left;justify-content:center;align-items:center;gap:10px;display:flex}.receipt-brand img{object-fit:contain;width:72px;height:46px}.receipt-brand strong,.receipt-brand span{display:block}.receipt-brand strong{font-size:1.05rem}.receipt-brand span,.receipt-note{color:#6b7280;font-size:.78rem}.receipt-divider{border-top:1px dashed #9ca3af}.receipt-folio{text-align:center;border:1px solid #111;gap:3px;padding:8px;display:grid}.receipt-folio span{color:#6b7280;text-transform:uppercase;font-size:.72rem;font-weight:800}.receipt-folio strong{letter-spacing:0;font-size:1.2rem}.receipt-lines{gap:8px;margin:0;display:grid}.receipt-lines div{grid-template-columns:112px minmax(0,1fr);gap:8px;display:grid}.receipt-lines dt{color:#6b7280;text-transform:uppercase;font-size:.72rem;font-weight:800}.receipt-lines dd{overflow-wrap:anywhere;text-align:right;margin:0;font-size:.82rem;font-weight:700}.receipt-total{border-top:1px dashed #9ca3af;border-bottom:1px dashed #9ca3af;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.receipt-total span{color:#6b7280;text-transform:uppercase;font-size:.78rem;font-weight:800}.receipt-total strong{font-size:1.35rem}.receipt-note{text-align:center}form{gap:12px;display:grid}input,select,textarea{color:#111;background:#fff;border:1px solid #d9dfdd;border-radius:8px;outline:0;width:100%;min-height:42px;padding:0 12px}textarea{resize:vertical;min-height:96px;padding-top:10px}input:focus,select:focus,textarea:focus{border-color:#004249;box-shadow:0 0 0 3px #0042491f}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:640px}th,td{text-align:center;vertical-align:middle;border-bottom:1px solid #edf0ef;padding:12px 10px}th{color:#6b7280;text-transform:uppercase;font-size:.78rem;font-weight:800}td{color:#1f2937}.selectable-row{cursor:pointer}.selectable-row:hover td,.selectable-row.selected td{background:#f2f7f6}.selectable-row.selected td:first-child{box-shadow:inset 3px 0 #004249}.status-badge{color:#0d3b36;white-space:nowrap;background:#e8f5f3;border:1px solid #b9dbd6;border-radius:999px;justify-content:center;align-items:center;padding:6px 9px;font-size:.76rem;font-weight:800;line-height:1;display:inline-flex}.status-badge.overdue{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.timeline{gap:10px;display:grid}.timeline-row{border-bottom:1px solid #edf0ef;grid-template-columns:110px minmax(0,1fr);align-items:start;gap:12px;padding:12px 0;display:grid}.timeline-row span{color:#004249;font-size:.78rem;font-weight:800}.timeline-row p,.empty{color:#6b7280}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=900px){.shell{grid-template-columns:1fr}.sidebar{gap:14px}.nav{grid-template-columns:repeat(4,minmax(0,1fr))}.nav-button{justify-content:center}.nav-button span{display:none}.status{margin-top:0}.dashboard-grid,.alumno-master-grid,.alumno-form,.detail-form,.detail-list,.events-layout,.events-detail-grid,.lists-layout,.work-grid{grid-template-columns:1fr}.events-detail-panel,.event-list-panel{grid-area:auto/1}}@media (width<=1200px){.events-detail-grid,.event-detail-row{grid-template-columns:1fr}}@media (width<=640px){.event-participants-toggle{flex-direction:column;align-items:stretch}.content{padding:18px}.topbar{flex-direction:column;align-items:stretch}.topbar-actions,.search{width:100%}.dashboard-grid{gap:12px}h1{font-size:1.55rem}}@media print{@page{margin:6mm;size:80mm auto}body{background:#fff}body *{visibility:hidden}.receipt-print-area,.receipt-print-area *{visibility:visible}.receipt-print-area{box-shadow:none;border:0;width:72mm;padding:0;position:absolute;top:0;left:0}.receipt-screen-actions{display:none}.receipt{border:0;width:72mm;max-width:none;padding:0}}
