:root{--font-display:"Bahnschrift", "Aptos Display", "Trebuchet MS", sans-serif;--font-body:"Segoe UI", "Aptos", sans-serif;--color-bg:#f4f1ea;--color-bg-accent:#e8dfd2;--color-surface:#fffcf7e6;--color-surface-strong:#fffdf9;--color-surface-dark:#1f2320;--color-text:#1b1f1c;--color-text-soft:#59615c;--color-border:#d7ccbc;--color-border-strong:#b59b7c;--color-accent:#ad5c38;--color-accent-strong:#8f4423;--color-accent-soft:#f2e1d6;--color-success-bg:#dff3e5;--color-success-text:#23543b;--color-danger:#9e2f2f;--color-danger-soft:#f6e2e0;--color-shadow:0 20px 55px #3b2a181f;--radius-sm:12px;--radius-md:18px;--radius-lg:28px;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;color:var(--color-text);background:radial-gradient(circle at 0 0,#ad5c3833,#0000 28%),radial-gradient(circle at 100% 100%,#2a35301f,#0000 26%),linear-gradient(#f9f5ee 0%,#f4f1ea 52%,#ebe3d6 100%);margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}#root{min-height:100vh}.panel{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--color-shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #b59b7c3d}.screen-centered{place-items:center;min-height:100vh;padding:24px;display:grid}.eyebrow,.stat-label{letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);margin:0 0 8px;font-size:.8rem;font-weight:700}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-weight:700}p{margin:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #ad5c3847}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.app-shell{grid-template-columns:280px 1fr;gap:24px;min-height:100vh;padding:28px;display:grid}.content-shell,.sidebar,.sidebar-nav,.content-area,.dashboard-grid{flex-direction:column;display:flex}.content-shell,.content-area,.dashboard-grid{gap:24px}.sidebar,.loading-panel,.page-placeholder,.topbar,.stat-card{padding:26px}.sidebar-nav{flex:1;gap:12px;margin-top:28px}.sidebar-copy,.page-placeholder p,.stat-card p,.topbar p{color:var(--color-text-soft)}.sidebar{background:linear-gradient(180deg, #1f2320f5, #2d332ff0), var(--color-surface-dark);color:#f6f1e7;min-height:calc(100vh - 56px);position:sticky;top:28px}.sidebar .eyebrow,.sidebar .sidebar-copy{color:#f6f1e7b8}.sidebar h1{font-size:2rem}.sidebar-logout{border-radius:var(--radius-sm);color:#f6f1e7e6;background:#ffffff0a;border:1px solid #ffffff14;align-items:center;gap:10px;margin-top:auto;padding:13px 15px;display:inline-flex}.sidebar-logout:hover{background:linear-gradient(135deg,#ad5c383d,#ad5c381a);border-color:#e2b69552}.nav-link{border-radius:var(--radius-sm);color:#f6f1e7db;background:#ffffff08;border:1px solid #ffffff0f;padding:13px 15px;transition:background .2s,border-color .2s,transform .2s}.nav-link-active,.nav-link:hover{background:linear-gradient(135deg,#ad5c383d,#ad5c381a);border-color:#e2b69552;transform:translate(2px)}.nav-link-content{align-items:center;gap:10px;display:inline-flex}.topbar{background:linear-gradient(#fffdf9f0,#fffaf3e6);justify-content:space-between;align-items:center;gap:18px;display:flex}.topbar .secondary-button{align-items:center;gap:8px;display:inline-flex}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.stat-card strong{font-size:2.2rem;font-family:var(--font-display);margin-bottom:10px;display:block}.stat-card{background:linear-gradient(#ffffffeb,#f8f1e7e6)}.page-placeholder,.loading-panel{background:linear-gradient(#fffcf7f5,#f7f0e6eb)}@media (width<=900px){.app-shell{grid-template-columns:1fr;padding:18px}.topbar{flex-direction:column;align-items:flex-start}.sidebar{min-height:auto;position:static}}.menu-toggle{border-radius:var(--radius-sm);background:#fff8efeb;border:1px solid #b59b7c59;justify-content:center;align-items:center;gap:5px;width:48px;height:48px;padding:0;display:none}.sidebar-backdrop{display:none}@media (width<=900px){.menu-toggle{flex-direction:column;display:inline-flex}.sidebar-backdrop{z-index:29;background:#1714106b;border:0;display:block;position:fixed;inset:0}.sidebar{z-index:30;width:min(320px,100vw - 36px);min-height:auto;transition:transform .24s;position:fixed;top:18px;bottom:18px;left:18px;transform:translate(calc(-100% - 24px))}.sidebar-open{transform:translate(0)}}.form-panel{width:min(100%,420px);padding:28px}.form-panel p{color:var(--color-text-soft)}.field{flex-direction:column;gap:8px;margin-top:16px;display:flex}.field span{color:var(--color-text-soft);font-size:.92rem;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:#ffffffe6;padding:12px 14px;transition:border-color .2s,box-shadow .2s,background .2s}.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--color-border-strong)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-accent);background:var(--color-surface-strong);box-shadow:0 0 0 4px #ad5c381f}.primary-button,.secondary-button{border-radius:var(--radius-sm);cursor:pointer;border:0;padding:12px 16px;font-weight:700;transition:transform .2s,box-shadow .2s,background .2s}.primary-button{background:linear-gradient(135deg, var(--color-accent), var(--color-accent-strong));color:#fffaf4;margin-top:20px;box-shadow:0 14px 28px #8f442338}.secondary-button{color:var(--color-text);background:#fff8efeb;border:1px solid #b59b7c59}.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.form-error{color:var(--color-danger);margin-top:14px}.modal-overlay{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(#1e181273,#1419179e);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-shell{background:linear-gradient(#fffcf7f7,#f9f3eaf0);width:min(1080px,100%);max-height:calc(100vh - 48px);padding:26px;overflow:auto}.modal-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}@media (width<=900px){.modal-header{flex-direction:column;align-items:stretch}}.config-page,.config-section{flex-direction:column;gap:20px;display:flex}.config-page-header,.config-tabs,.config-header,.config-empty,.config-table-wrap,.config-form{padding:24px}.config-page-header p,.config-header p,.config-empty{color:var(--color-text-soft)}.config-tabs,.config-actions{gap:12px;display:flex}.config-tab{border-radius:var(--radius-sm);cursor:pointer;background:#fffcf7cc;border:1px solid #b59b7c3d;padding:12px 16px}.config-tab-active{background:linear-gradient(135deg,#ad5c382e,#ad5c380f);border-color:#ad5c385c}.config-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.config-table{border-collapse:collapse;width:100%}.config-table th,.config-table td{text-align:left;vertical-align:top;border-bottom:1px solid #b59b7c38;padding:14px 10px}.config-table thead th{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-soft);font-size:.78rem}.config-form .inline-actions{margin-top:8px}@media (width<=900px){.config-tabs,.config-actions,.config-header{flex-direction:column;align-items:stretch}}.dashboard-page,.dashboard-section,.dashboard-detail-grid,.dashboard-alerts,.latest-payments{flex-direction:column;gap:20px;display:flex}.dashboard-page .dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.dashboard-section-header,.dashboard-card,.dashboard-alerts,.dashboard-error{padding:24px}.dashboard-section-header p,.dashboard-alerts p,.dashboard-card p,.dashboard-error p{color:var(--color-text-soft)}.dashboard-card-head,.latest-payment-row{justify-content:space-between;gap:12px;display:flex}.dashboard-card{gap:12px}.dashboard-card strong{font-size:2.4rem;font-family:var(--font-display);display:block}.dashboard-card-warning{border-color:#b3871942}.dashboard-card-danger{border-color:#9e2f2f3d}.dashboard-card-info{border-color:#1c4f723d}.dashboard-card-success{border-color:#23543b3d}.dashboard-detail-grid{grid-template-columns:1fr 1fr;display:grid}.dashboard-alerts ul{flex-direction:column;gap:10px;margin:0;padding-left:18px;display:flex}.latest-payment-row{border-bottom:1px solid #b59b7c2e;align-items:center;padding:12px 0}.dashboard-skeleton-card .skeleton-line{background:linear-gradient(90deg,#d2c4af66,#f5ecdfcc,#d2c4af66);border-radius:999px;height:12px}.dashboard-skeleton-card .skeleton-line-large{width:55%;height:34px}.dashboard-skeleton-card .skeleton-line-small{width:35%}@media (width<=900px){.dashboard-detail-grid{grid-template-columns:1fr}.latest-payment-row{flex-direction:column;align-items:flex-start}}.fees-page,.fees-section,.fee-detail,.payment-history,.student-fee-list{flex-direction:column;gap:20px;display:flex}.fee-filters,.fee-status,.student-fee-row{display:flex}.fee-status{text-transform:capitalize;border-radius:999px;justify-content:center;align-items:center;padding:6px 10px;font-size:.82rem;font-weight:700}.fee-status-pendiente{color:#6b4f00;background:#f5e8bf}.fee-status-parcial{color:#1c4f72;background:#dcecf9}.fee-status-pagada{color:#23543b;background:#dff3e5}.fee-status-vencida{color:#8f2f2f;background:#f6e2e0}.student-fee-row{border-bottom:1px solid #b59b7c2e;justify-content:space-between;align-items:center;gap:10px;padding:10px 0}.payment-history{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.attendance-filters,.attendance-summary-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.attendance-summary-card strong{margin-top:.35rem;font-size:1.8rem;display:block}.attendance-selector,.attendance-selector-copy{justify-content:space-between;align-items:center;gap:1rem;display:flex}.attendance-selector-copy{flex-direction:column;align-items:flex-end}.attendance-note{color:var(--color-text-muted);grid-column:1/-1}.attendance-badge{text-transform:capitalize;border-radius:999px;align-items:center;padding:.3rem .7rem;font-size:.82rem;display:inline-flex}.attendance-badge.is-present{color:#1f5d40;background:#307a5724}.attendance-badge.is-absent{color:#8d3a2d;background:#96413224}.attendance-page{gap:1.25rem;display:grid}.attendance-check-cell{text-align:center}.attendance-check-cell input{width:18px;height:18px}@media (width<=720px){.attendance-selector,.attendance-selector-copy{flex-direction:column;align-items:flex-start}}.expense-filters,.expense-summary-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.expense-category-badge{color:#7d3c24;background:#ad5c381f;border-radius:999px;padding:.35rem .75rem;font-size:.82rem;display:inline-flex}.expense-breakdown{flex-direction:column;gap:.75rem;display:flex}.students-page,.students-header,.student-detail,.student-form{flex-direction:column;gap:20px;display:flex}.students-header,.section-header,.inline-actions,.student-search,.student-actions{gap:12px;display:flex}.students-header,.section-header{justify-content:space-between;align-items:flex-start}.student-search,.student-empty,.student-table-wrap,.student-detail{padding:24px}.students-header{background:linear-gradient(135deg,#fffaf3f2,#f1e4d4eb)}.student-form{padding:0}.detail-grid,.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.detail-block,.form-section{padding-top:8px}.detail-block{border-radius:var(--radius-md);background:#fffdf9d1;border:1px solid #b59b7c33;padding:18px}.detail-block h3,.form-section h3{margin-bottom:14px}.compact-field{margin-top:0}.full-width{grid-column:1/-1}.field-help{color:var(--color-text-soft)}.student-empty,.student-search,.student-table-wrap,.student-detail{background:linear-gradient(#fffcf7f0,#f9f2e9e6)}.feedback-error{color:var(--color-danger);background:var(--color-danger-soft);border-color:#9e2f2f2e}.student-fab{z-index:20;color:#fff8f1;background:linear-gradient(135deg,#ad5c38,#8f4321);border:none;border-radius:999px;justify-content:center;align-items:center;width:58px;height:58px;display:inline-flex;position:fixed;bottom:34px;right:36px;box-shadow:0 18px 34px #5c291247}.student-fab:hover{transform:translateY(-1px);box-shadow:0 22px 38px #5c291252}@media (width<=900px){.students-header,.section-header,.inline-actions,.student-actions{flex-direction:column;align-items:stretch}.student-fab{bottom:22px;right:22px}}.student-table{border-collapse:collapse;width:100%;overflow:hidden}.student-table th,.student-table td{text-align:left;vertical-align:top;border-bottom:1px solid #b59b7c38;padding:14px 10px}.student-table thead th{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-soft);background:#ece2d46b;font-size:.78rem}.student-table tbody tr:hover>td{background:#fff8ef9e}.student-table tbody tr.student-row-inactive>td{color:var(--color-text-soft);background:#cfc4b41f}.student-table tbody tr.student-row-inactive:hover>td{background:#cfc4b433}.table-action,.student-status,.checkbox-pill{border-radius:999px}.table-action{cursor:pointer;color:var(--color-text);background:#fffcf7f2;border:1px solid #b59b7c57;align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.accordion-row td{background:linear-gradient(#faf4ecd6,#f5eee4d6);padding:0}.danger-action,.field-error{color:var(--color-danger)}.reactivate-action{color:var(--color-success-text);background:var(--color-success-bg);border-color:#23543b3d}.student-status{text-transform:capitalize;background:var(--color-success-bg);color:var(--color-success-text);border:1px solid #23543b1f;padding:6px 10px;font-size:.85rem;display:inline-flex}.student-status-inactivo{background:var(--color-danger-soft);color:var(--color-danger);border:1px solid #9e2f2f2e}.form-grid textarea,.form-grid select,.field input[type=file]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#ffffffe6;padding:12px 14px}.checkbox-grid{flex-wrap:wrap;gap:10px;display:flex}.checkbox-pill{background:#fff8efe6;border:1px solid #b59b7c47;align-items:center;gap:8px;padding:10px 12px;display:inline-flex}.student-actions{flex-wrap:wrap}
