@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";.dashboard-grid{display:grid;gap:16px;grid-template-columns:1.35fr 1fr}.dashboard-calendar,.dashboard-day{align-content:start}.calendar-header{display:flex;justify-content:space-between;align-items:center;gap:10px}.calendar-header h3{margin:0}.calendar-controls{display:flex;align-items:center;gap:8px}.calendar-controls span{font-weight:700;color:var(--primary-strong)}.dashboard-metrics{display:flex;flex-wrap:wrap;gap:10px}.dashboard-metrics span{border:1px solid var(--line);border-radius:999px;padding:6px 10px;background:#f5fbf7;font-size:.85rem;font-weight:600;color:var(--muted)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;color:var(--muted);font-size:.85rem;font-weight:700}.calendar-weekdays span{text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-cell{border:1px solid var(--line);border-radius:10px;min-height:86px;background:#f7fbf8;padding:7px;display:grid;align-content:space-between;gap:4px;text-align:left;cursor:pointer}.calendar-cell.empty{border-style:dashed;background:#f8fbf9;cursor:default}.calendar-cell.with-data{border-color:#9bbcae;background:#edf6f1}.calendar-cell.selected{border-color:#2f7d65;box-shadow:inset 0 0 0 1px #2f7d65}.calendar-cell .day-number{font-weight:800;font-size:.9rem}.calendar-cell .day-dots{display:grid;gap:2px;font-size:.73rem;color:var(--muted)}.calendar-cell .day-dots.muted{color:#90a59b}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.detail-grid h4{margin:0 0 8px}.detail-grid p{margin:0 0 4px;color:var(--muted)}.month-detail{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}.month-detail h3{margin:0 0 10px}@media(max-width:1100px){.dashboard-grid{grid-template-columns:1fr}}.solicitudes-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;align-items:end}.solicitud-estado{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:.8rem;font-weight:700}.solicitud-estado.pendiente{color:#8a5b00;background:#fff4d8;border:1px solid #f1d9a8}.solicitud-estado.aprobada{color:#2b6c37;background:#e7f8ea;border:1px solid #b7e2be}.solicitud-estado.rechazada{color:#9c302a;background:#fff2f1;border:1px solid #e6c7c4}.page-header{padding:10px}.alumno-archivos-head{align-items:flex-start}.alumno-archivos-upload-row,.alumno-archivos-list{display:grid;gap:8px}.alumno-archivos-list h4{margin:0}.alumno-archivo-item{border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.alumno-archivo-item p{margin:4px 0 0;color:var(--muted);font-size:.9rem}.alumno-form-section{display:grid;gap:12px}.alumno-form-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.alumno-form-header{align-items:flex-start}.alumno-form-items{display:grid;gap:12px}.alumno-form-item{display:grid;gap:12px;border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--surface-soft)}.alumno-form-item-head h4{margin:0}.alumno-ficha-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.alumno-ficha-full{grid-column:1 / -1}.alumno-textarea{min-height:88px;resize:vertical}.alumno-ficha-actions{grid-column:1 / -1}.alumno-ficha-section{grid-column:1 / -1;margin:8px 0 0}.autorizado-status{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:.8rem;font-weight:700}.autorizado-status.active{background:#e7f8ea;color:#2b6c37;border:1px solid #b7e2be}.autorizado-status.inactive{background:#fff2f1;color:#9c302a;border:1px solid #e6c7c4}.sala-pill{display:inline-flex;align-items:center;gap:6px}.asistencia-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.asistencia-summary{display:flex;flex-wrap:wrap;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.asistencia-summary span{font-weight:600;color:var(--muted)}.asistencia-select{min-width:150px}.asistencia-alerts{border:1px solid #f1d9a8;border-radius:10px;background:#fff8e9;padding:10px 12px}.asistencia-alerts h3{margin:0 0 8px;font-size:.95rem;color:#8a5b00}.asistencia-alerts ul{margin:0;padding-left:18px;display:grid;gap:6px}.asistencia-alerts li{color:#6c4a05;font-size:.9rem}.checkout-status{display:grid;gap:2px;font-size:.82rem}.checkout-status.pending{color:var(--muted)}.checkout-status.success{color:#2b6c37}.checkout-status.success strong{font-size:.84rem}.checkout-status.success small{font-size:.77rem}.asistencia-muted{font-size:.82rem;color:var(--muted)}.cobros-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;align-items:end}.cobros-grid .btn{width:fit-content}.cobros-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:end}.cobros-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.cobros-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:16px}.novedades-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;align-items:end}.finanzas-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:end}.finanzas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.finanzas-bars{display:grid;gap:10px}.finanzas-bar-row{display:grid;grid-template-columns:110px 1fr 120px;gap:10px;align-items:center}.finanzas-bar-dual{display:grid;gap:6px}.finanzas-label,.finanzas-value{font-size:.88rem;color:var(--muted)}.finanzas-value{text-align:right}.finanzas-bar-track{border-radius:999px;height:10px;background:#dce8e0;overflow:hidden}.finanzas-bar-fill{height:100%;background:linear-gradient(90deg,#1e6f5c,#54a083)}.finanzas-bar-fill.expense{background:linear-gradient(90deg,#9f3f2e,#d67b54)}@media(max-width:700px){.finanzas-bar-row{grid-template-columns:1fr;gap:4px}.finanzas-value{text-align:left}}.personal-layout,.actividades-layout{display:grid;gap:16px}:root{--bg: #f4f7f3;--surface: #ffffff;--surface-soft: #eef4ed;--text: #18221d;--muted: #587063;--primary: #1e6f5c;--primary-strong: #145143;--danger: #ba3e37;--line: #d4e1d8;--shadow: 0 10px 24px rgba(20, 41, 34, .08)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;font-family:Manrope,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(circle at 10% 8%,#d9eadc 0%,transparent 22%),radial-gradient(circle at 90% 0%,#d2e2d4 0%,transparent 18%),var(--bg)}a{color:inherit}#root{min-height:100vh}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#163f34,#1e5a4b);color:#e8f2ed;padding:24px 18px;position:sticky;top:0;align-self:start;height:100vh}.brand{display:grid;gap:2px;margin-bottom:26px}.brand-top{font-size:.85rem;opacity:.75}.brand-bottom{font-size:1.45rem;font-weight:800;letter-spacing:.4px}.sidebar-nav{display:grid;gap:8px}.sidebar-link{border-radius:10px;padding:10px 12px;color:#d9ebe3;text-decoration:none;font-weight:600}.sidebar-link:hover{background:#e4f4ec2e}.sidebar-link.active{background:#f2f8f4;color:#1b5747}.content-shell{display:grid;grid-template-rows:74px 1fr}.topbar{border-bottom:1px solid var(--line);background:#ffffffe6;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:space-between;padding:14px 24px}.topbar-label{margin:0;font-weight:700}.topbar-role{margin:2px 0 0;color:var(--muted);font-size:.88rem}.content{padding:24px}.page-stack{display:grid;gap:16px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.page-header h1{margin:0;font-size:1.55rem}.page-header p{margin:6px 0 0;color:var(--muted)}.grid-cards{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.tile{display:block;text-decoration:none;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}.tile h3{margin:0 0 8px}.tile p{margin:0;color:var(--muted)}.form-grid{display:grid;gap:12px}.field{display:grid;gap:6px}.field label{font-weight:600;font-size:.92rem}.input{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:11px 12px;font-size:.95rem}.input:focus{outline:2px solid #b6d8ca;border-color:var(--primary)}.field-error{margin:0;font-size:.83rem;color:var(--danger)}.btn{border:none;border-radius:10px;cursor:pointer;padding:10px 14px;font-weight:700;font-size:.92rem}.btn:disabled{opacity:.65;cursor:not-allowed}.btn-primary{background:var(--primary);color:#f2fbf8}.btn-primary:hover:not(:disabled){background:var(--primary-strong)}.btn-secondary{background:var(--surface-soft);color:var(--text)}.btn-secondary:hover:not(:disabled){background:#dde9de}.btn-danger{background:var(--danger);color:#fff2f2}.btn-danger:hover:not(:disabled){background:#992f2a}.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--text)}.alert{border-radius:10px;padding:11px 12px;border:1px solid transparent}.alert-error{background:#ffeceb;border-color:#f5c7c4;color:#782925}.alert-info{background:#edf6f1;border-color:#cfe2d8;color:#33574b}.alert-success{background:#e7f8ea;border-color:#b7e2be;color:#2b6c37}.table-wrap{border:1px solid var(--line);border-radius:12px;overflow:auto;background:var(--surface)}.table{width:100%;border-collapse:collapse;min-width:760px}.table th,.table td{border-bottom:1px solid var(--line);padding:11px 12px;text-align:left}.table th{background:#f6faf7;font-size:.86rem;text-transform:uppercase;letter-spacing:.5px}.actions-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-link{color:var(--primary-strong);text-decoration:none;font-weight:700;background:none;border:none;cursor:pointer;padding:0}.inline-link.danger{color:#9c302a}.table-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.table-action-chip{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:4px 10px;border:1px solid #c7d8cd;border-radius:999px;background:#f3f8f4;color:var(--primary-strong);font-weight:700;font-size:.82rem;line-height:1;text-decoration:none;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease}.table-action-chip:hover{background:#e5f1ea;border-color:#aec7b8}.table-action-chip:focus-visible{outline:2px solid #8fb9a3;outline-offset:2px}.table-action-chip:disabled{opacity:.6;cursor:not-allowed}.table-action-chip.danger{background:#fff2f1;border-color:#e6c7c4;color:#9c302a}.table-action-chip.danger:hover:not(:disabled){background:#ffe8e6;border-color:#dca4a0;color:#842620}.loader-wrap{display:inline-flex;align-items:center;gap:10px;color:var(--muted)}.loader{width:18px;height:18px;border-radius:999px;border:3px solid #c5d9cd;border-top-color:var(--primary);animation:spin .8s linear infinite}.modal-backdrop{position:fixed;inset:0;background:#14231e7a;display:grid;place-items:center;padding:16px;z-index:10}.modal-card{width:min(680px,100%);background:var(--surface);border-radius:12px;box-shadow:var(--shadow);border:1px solid var(--line)}.modal-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:14px 16px}.modal-head h3{margin:0}.modal-close{border:none;background:transparent;cursor:pointer;font-size:1rem;color:var(--muted)}.modal-body{padding:16px}.detail-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);padding:16px}.detail-card p{margin:0 0 8px}.detail-card p:last-child{margin-bottom:0}.panel-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);padding:14px;display:grid;gap:12px}.panel-card h3{margin:0}.panel-total{margin:0;font-weight:700;color:var(--primary-strong)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}.auth-card{width:min(520px,100%);border:1px solid var(--line);border-radius:14px;padding:24px;background:var(--surface);box-shadow:var(--shadow)}.auth-card h1{margin:0}.auth-card p{color:var(--muted)}.auth-footnote{margin-top:12px;font-size:.92rem}.auth-footnote a{color:var(--primary-strong);font-weight:700}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.sidebar-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:16px}.page-header{flex-direction:column;align-items:flex-start}.table-actions{gap:6px}.table-action-chip{min-height:28px;padding:4px 9px;font-size:.78rem}}
