:root{--font-display:"Bebas Neue", "Bahnschrift", "Aptos Display", sans-serif;--font-body:"Aptos", "Segoe UI", sans-serif;--color-bg:#f5f2e9;--color-bg-accent:#ebe2ce;--color-surface:#fffcf4e6;--color-surface-strong:#fffdf6;--color-surface-dark:#0f0d0a;--color-text:#1b1710;--color-text-soft:#6f6657;--color-text-muted:var(--color-text-soft);--color-border:#ded2ba;--color-border-strong:#b99a54;--color-accent:#c79a31;--color-accent-strong:#8a6116;--color-accent-soft:#fff0c9;--color-lime:#e8c65a;--color-lime-soft:#fff5d3;--color-ink:#11100d;--color-vital:#d85a36;--color-vital-soft:#ffe4d8;--color-info:#236b76;--color-info-soft:#dff3f4;--color-warning:#9b6708;--color-warning-soft:#fff0c5;--color-success-bg:#e3f4da;--color-success-text:#2f6730;--color-danger:#a83232;--color-danger-soft:#fae2df;--color-shadow:0 22px 60px #22190b26;--color-shadow-soft:0 12px 28px #22190b17;--gradient-gold:linear-gradient(135deg, #f3d77a 0%, #c79a31 48%, #7c5512 100%);--gradient-ink:linear-gradient(145deg, #0f0d0afa, #241d11f5);--gradient-panel:linear-gradient(180deg, #fffdf7f5, #f9f3e7e8);--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--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:linear-gradient(135deg,#11100d0a 25%,#0000 25%) 0 0/28px 28px,radial-gradient(circle at 11% 8%,#c79a313d,#0000 26%),radial-gradient(circle at 88% 6%,#d85a361f,#0000 22%),radial-gradient(circle at 82% 88%,#236b761f,#0000 24%),linear-gradient(#fffdf6 0%,#f5f2e9 48%,#ece1cb 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(16px)saturate(1.08);backdrop-filter:blur(16px)saturate(1.08);border:1px solid #b99a5442}.table-panel,.config-table-wrap,.student-table-wrap{overflow:auto hidden}.screen-centered{place-items:center;min-height:100vh;padding:24px;display:grid}.eyebrow,.stat-label{letter-spacing:0;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:0;margin:0;font-weight:700;line-height:.95}p{margin:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #c79a3157}button:disabled{cursor:not-allowed;opacity:.58;transform:none}.ghost-button{border-radius:var(--radius-sm);color:var(--color-text-soft);cursor:pointer;background:0 0;border:1px solid #b99a5440;padding:10px 13px;font-weight:700}.danger-button{color:var(--color-danger);background:#fae2df8c;border-color:#a8323238}.table-actions{flex-wrap:wrap;gap:8px;display:flex}::selection{background:var(--color-lime);color:var(--color-ink)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.app-shell{grid-template-columns:292px minmax(0,1fr);gap:22px;min-height:100vh;padding:24px;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;min-height:0;margin-top:28px;padding-right:4px;overflow-y:auto}.sidebar-copy,.page-placeholder p,.stat-card p,.topbar p{color:var(--color-text-soft)}.sidebar{background:var(--gradient-ink), radial-gradient(circle at 20% 0%, #e8c65a2e, transparent 30%), var(--color-surface-dark);color:#f6f1e7;min-height:calc(100vh - 48px);max-height:calc(100vh - 48px);position:sticky;top:24px;overflow:hidden}.sidebar:after{content:"";pointer-events:none;border:1px solid #e8c65a33;width:190px;height:240px;position:absolute;bottom:-100px;right:-70px;transform:rotate(-16deg)}.sidebar .eyebrow,.sidebar .sidebar-copy{color:#ffefbed6}.sidebar h1{font-size:2.35rem}.sidebar-brand{align-items:center;gap:14px;display:flex}.sidebar-brand-copy{min-width:0}.sidebar-brand-copy.is-professor h1{margin:0;font-size:1.45rem;line-height:1.1}.sidebar-greeting{display:block}.sidebar-greeting-inline{color:#ffefbeeb;flex-wrap:wrap;align-items:center;gap:10px;font-size:1.45rem;font-weight:700;line-height:1.1;display:inline-flex}.sidebar-logo,.login-mark{background:#090806;border:1px solid #e8c65a80;place-items:center;display:inline-grid;overflow:hidden;box-shadow:0 14px 30px #0308053d}.sidebar-logo{border-radius:16px;width:58px;height:58px}.sidebar-logo img,.login-mark img{object-fit:contain;width:88%;height:88%}.sidebar-logout{border-radius:var(--radius-sm);color:#f6f1e7e6;cursor:pointer;background:#ffffff0e;border:1px solid #ffffff1f;align-items:center;gap:10px;margin-top:auto;padding:13px 15px;display:inline-flex}.sidebar-logout:hover{background:linear-gradient(135deg,#c79a314d,#d85a3629);border-color:#e8c65a57}.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;position:relative}.nav-link-active,.nav-link:hover{background:linear-gradient(135deg,#c79a3147,#d85a361f);border-color:#e8c65a57;transform:translate(2px)}.nav-link-active:before{content:"";background:var(--gradient-gold);border-radius:999px;width:3px;position:absolute;inset:10px auto 10px 8px}.nav-link-content{align-items:center;gap:10px;display:inline-flex}.topbar{box-shadow:var(--color-shadow-soft);background:linear-gradient(135deg,#fffdf6f5,#fff2cdc7);justify-content:flex-start;align-items:center;gap:18px;padding:0;display:none}.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,.page-placeholder,.loading-panel{background:var(--gradient-panel)}.password-change-panel{background:linear-gradient(135deg,#fffbf1f5,#ffefc3d1);justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px;display:flex}.password-change-panel .primary-button{white-space:nowrap;margin-top:0}.loading-panel{place-items:center;gap:18px;min-width:min(420px,100vw - 40px);min-height:280px;display:grid;position:relative;overflow:hidden}.loading-panel:before{content:"";pointer-events:none;border:1px solid #c79a3124;border-radius:32px;position:absolute;inset:24px}.loading-brand{letter-spacing:.38em;color:#5b4922d1}.gym-loader{place-items:center;width:150px;height:150px;animation:1.9s linear infinite gym-loader-spin;display:grid;position:relative}.gym-loader-plate,.gym-loader-cap{border-radius:999px;position:absolute}.gym-loader-plate-outer{border:10px solid #1f1a15e6;inset:0;box-shadow:inset 0 0 0 5px #c79a31e0,0 18px 30px #311e0a2e}.gym-loader-plate-inner{border:12px solid #d9ae48f2;inset:27px;box-shadow:inset 0 0 0 6px #1f1a15d1}.gym-loader-bar{background:linear-gradient(90deg,#493c30e6,#e5d6c5f5,#493c30e6);border-radius:999px;width:128px;height:10px;box-shadow:0 0 0 1px #ffffff59}.gym-loader-cap{background:#1f1a15f0;width:18px;height:18px;top:50%;transform:translateY(-50%)}.gym-loader-cap-left{left:6px}.gym-loader-cap-right{right:6px}@keyframes gym-loader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=900px){.app-shell{grid-template-columns:1fr;padding:18px}.topbar{padding:16px;display:flex}.sidebar{min-height:auto;max-height:none;position:static}.loading-panel{min-width:100%;min-height:240px}.password-change-panel{flex-direction:column}}.menu-toggle{border-radius:var(--radius-sm);width:48px;height:48px;color:var(--color-ink);box-shadow:var(--color-shadow-soft);background:#fffdf6f0;border:1px solid #b99a5459;justify-content:center;align-items:center;gap:5px;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:radial-gradient(circle at 20% 15%,#c79a312e,#0000 28%),#0f0d0a9e;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{flex-direction:column;align-items:center;width:min(100%,420px);padding:28px;display:flex;position:relative;overflow:hidden}.form-panel:before{content:"";background:linear-gradient(90deg, var(--color-ink), var(--color-accent), var(--color-vital));height:6px;position:absolute;inset:0 0 auto}.login-mark{border-radius:18px;width:68px;height:68px;margin:0}.form-panel p{color:var(--color-text-soft)}.login-welcome{text-align:center;justify-content:center;align-items:center;gap:14px;width:100%;margin-bottom:22px;display:flex}.login-welcome-title{align-items:center;gap:10px;margin:0;font-size:1.8rem;line-height:1.05;display:inline-flex}.field{flex-direction:column;gap:8px;width:100%;min-width:0;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);width:100%;min-width:0;color:var(--color-text);background:#fffffbeb;padding:12px 14px;transition:border-color .2s,box-shadow .2s,background .2s}.field input[type=checkbox],.field input[type=radio]{width:auto;min-width:auto;accent-color:var(--color-accent);flex:none}.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 #c79a312e}.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:var(--gradient-ink);color:#fff7df;margin-top:20px;position:relative;overflow:hidden;box-shadow:0 14px 28px #22190b3d}.primary-button:after{content:"";background:linear-gradient(90deg,#0000,#e8c65a2e,#0000);transition:transform .35s;position:absolute;inset:0;transform:translate(-100%)}.primary-button:hover:after{transform:translate(100%)}.secondary-button{color:var(--color-text);background:#fffffbeb;border:1px solid #b99a5457}.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.form-error{color:var(--color-danger);width:100%;margin-top:14px}.form-panel .primary-button{width:100%}@media (width<=560px){.form-panel{padding:24px 20px}.login-welcome{flex-direction:column;gap:12px;margin-bottom:20px}.login-welcome-title{font-size:1.55rem}}.modal-overlay{z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:radial-gradient(circle at 20% 12%,#c79a312e,#0000 30%),linear-gradient(#0f0d0a94,#0f0d0abd);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-shell{background:var(--gradient-panel);border-color:#c79a3157;width:min(1380px,100%);max-height:calc(100vh - 40px);padding:28px;overflow:auto}.modal-header{z-index:3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#fffdf7fa,#fffdf7e6);border-bottom:1px solid #b99a542e;justify-content:space-between;align-items:flex-start;gap:16px;margin:-28px -28px 24px;padding:24px 28px 18px;display:flex;position:sticky;top:-28px}@media (width<=900px){.modal-header{flex-direction:column;align-items:stretch}}@media (width<=640px){.modal-overlay{padding:10px}.modal-shell{max-height:calc(100vh - 20px);padding:18px}.modal-header{margin:-18px -18px 18px;padding:18px;top:-18px}}.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,.config-header,.config-form,.config-empty{background:var(--gradient-panel)}.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:#fffffbd1;border:1px solid #b99a5447;padding:12px 16px;font-weight:700}.config-tab-active{color:#fff3cf;background:linear-gradient(135deg,#11100df0,#3a2b10e6);border-color:#e8c65a66}.config-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.config-table{border-collapse:separate;border-spacing:0;width:100%}.config-table th,.config-table td{text-align:left;vertical-align:top;border-bottom:1px solid #b99a542e;padding:15px 12px}.config-table thead th{text-transform:uppercase;letter-spacing:.08em;color:#fff3cf;background:var(--gradient-ink);font-size:.78rem}.config-table tbody tr{transition:background .18s}.config-table tbody tr:hover td{background:#fff0c966}.config-form .inline-actions{margin-top:8px}.config-form-note{color:var(--color-text-soft);margin:4px 0 0;font-size:.92rem}.config-form-note.panel{background:#fffcf4d1;border:1px solid #b99a542e;border-radius:16px;flex-wrap:wrap;gap:8px;padding:16px 18px;display:flex}.checkbox-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;display:grid}.checkbox-pill{background:#fffffcc7;border:1px solid #b99a542e;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px 14px;display:grid}.checkbox-pill small{color:var(--color-text-soft);white-space:nowrap;font-weight:700}.plan-activity-field{gap:14px}.checkbox-grid.plan-activity-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.checkbox-pill.plan-activity-pill{background:#fffffc9e;border-color:#b99a5424;border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px 10px;padding:10px 12px;display:grid;box-shadow:inset 0 1px #ffffff73}.checkbox-pill.plan-activity-pill .plan-activity-name{white-space:normal;word-break:normal;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none;min-width:0;font-size:.95rem;font-weight:600;line-height:1.35}.checkbox-pill.plan-activity-pill .plan-activity-frequency{grid-column:2;width:min(150px,100%);margin-top:2px;padding:10px 12px;font-size:.9rem}.plan-combined-field{gap:14px}.plan-combined-picker{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.plan-combined-activity-list{gap:8px;display:grid}.plan-combined-activity-row{background:#fffffc80;border:1px solid #b99a541f;border-radius:10px;grid-template-columns:minmax(0,150px) minmax(0,1fr);align-items:center;gap:10px;padding:8px 10px;display:grid}.plan-combined-activity-row strong{min-width:0;font-size:.9rem;line-height:1.2}.plan-combined-activity-select{justify-self:end;font-size:.9rem;width:min(220px,100%)!important;padding:9px 10px!important}.plan-combined-selected-list{gap:8px;display:grid}.plan-combined-selected-row{background:#fffffc94;border:1px solid #b99a5424;border-radius:11px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.plan-combined-components{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;display:grid}.plan-combined-component{background:#fffffc94;border:1px solid #b99a5424;border-radius:11px;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px;display:flex}.plan-combined-component strong{font-size:.88rem}.plan-combined-component span{color:var(--color-text-soft);font-weight:700}.plan-combined-metrics{flex-wrap:wrap;gap:10px;display:flex}.plan-combined-metrics .field,.plan-metric-field{flex:none;width:fit-content;min-width:0;margin-top:0}.plan-metric-input{text-align:center;max-width:104px;font-weight:700;width:auto!important;min-width:64px!important;padding:9px 10px!important}.plan-metric-input-currency{max-width:132px;min-width:96px!important}.plan-combined-metrics-final{margin-top:2px}.plan-discount-toggle{background:#fffffc99;border-color:#b99a5424;border-radius:10px;grid-template-columns:auto 1fr;justify-content:start;align-self:start;gap:8px;width:fit-content;padding:8px 10px}.plan-discount-toggle span{font-size:.9rem;font-weight:600;line-height:1.2}.plan-discount-input{grid-template-columns:minmax(0,1fr) 96px;max-width:360px}.plan-discount-input select,.plan-discount-input input{min-width:0}.config-schedule-groups{gap:16px;display:grid}.schedule-day-group,.schedule-card{flex-direction:column;gap:16px;display:flex}.schedule-day-header,.schedule-card{justify-content:space-between}.schedule-day-header,.schedule-card,.day-selector{gap:12px;display:flex}.schedule-day-header{cursor:pointer;align-items:flex-start;padding:20px 24px;list-style:none}.schedule-day-header::-webkit-details-marker{display:none}.schedule-day-header h3,.schedule-card h4{margin:0}.schedule-day-header p,.schedule-card-capacity,.schedule-card-time{color:var(--color-text-soft);margin:4px 0 0}.schedule-day-meta{align-items:center;gap:10px;display:flex}.schedule-day-count{background:var(--color-accent-soft);white-space:nowrap;border:1px solid #c79a3147;border-radius:999px;padding:6px 12px}.schedule-day-chevron{color:var(--color-text-soft);flex-shrink:0;transition:transform .18s}.schedule-day-group[open] .schedule-day-chevron{transform:rotate(180deg)}.schedule-day-list{border-top:1px solid #b99a5433;gap:12px;padding:0 24px 24px;display:grid}.schedule-card{border-radius:var(--radius-sm);background:#fffffbb8;border:1px solid #b99a5433;padding:16px}.warning-action{color:var(--color-accent-strong);border-color:#c79a3152}.schedule-card-time{font-size:.92rem;font-weight:600}.schedule-card-professor strong{color:var(--color-text);font-weight:800}.day-selector{flex-wrap:wrap}.day-option{border-radius:var(--radius-sm);background:#fffdf6db;border:1px solid #b99a5447;align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.billing-settings-hero{background:linear-gradient(135deg,#fffdf6f5,#ffefc3c7)}.billing-settings-preview{border-radius:var(--radius-sm);background:var(--gradient-ink);color:#fff3cf;border:1px solid #c79a3152;min-width:190px;padding:16px;box-shadow:0 16px 30px #22190b2e}.billing-settings-preview span,.billing-settings-preview small{color:#fff3cfc2;display:block}.billing-settings-preview strong{margin:8px 0 2px;font-size:2.2rem;line-height:1;display:block}.billing-settings-grid{align-items:start}.billing-percent-input{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.billing-percent-input span{border-radius:var(--radius-sm);text-align:center;background:#fff0c9ad;border:1px solid #b99a543d;min-width:42px;padding:12px 14px;font-weight:800}.billing-settings-toggle{border-radius:var(--radius-sm);background:#fffdf6c7;border:1px solid #b99a543d;gap:12px;min-height:100%;padding:16px;display:flex}.billing-settings-toggle input{margin-top:3px}.billing-settings-toggle span{gap:4px;display:grid}.billing-settings-toggle small{color:var(--color-text-soft)}.feedback-success{color:var(--color-success-text);margin:0;font-weight:700}.config-user-preview{background:linear-gradient(145deg,#fffcf5f0,#fff2d2db);border:1px solid #b99a5433;border-radius:20px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 16px;margin-top:18px;padding:18px;display:grid;box-shadow:inset 0 1px #fff9}.config-user-preview-card{background:#fffffcd1;border:1px solid #b99a542e;border-radius:16px;gap:8px;padding:16px;display:grid;box-shadow:0 10px 22px #4c351214}.config-user-preview-card-highlight{background:linear-gradient(135deg,#34250df5,#815413eb);border-color:#e8c65a42;grid-column:1/-1;box-shadow:0 16px 30px #3a2b102e}.config-user-preview-card strong{text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent-strong);font-size:.82rem}.config-user-preview-card span{color:var(--color-text-soft);word-break:break-word;font-size:1rem;font-weight:700;line-height:1.45}.config-user-policy-note{text-align:justify;font-weight:800;line-height:1.6;display:block;color:#fff6dc!important}.config-user-preview-card-highlight strong{color:#f7d98c}.config-user-preview-card-highlight span{color:#fff6dceb}.professor-action-delete{color:var(--color-danger);background:linear-gradient(135deg,#fae6e2fa,#f0c6c0fa);border-color:#9e2f2f2e}.professor-action-pending{color:#7a5110;background:linear-gradient(135deg,#fff4d6f0,#f3dba3f0);border-color:#c79a313d}.professor-column-payment,.professor-column-actions,.professor-cell-payment,.professor-cell-actions{text-align:center!important}.professor-cell-payment .fee-status{margin:0 auto}.professor-cell-actions{white-space:nowrap;justify-content:center;align-items:center}.professor-filter-actions{align-items:center}.professor-filter-actions .secondary-button{align-items:center;gap:8px;display:inline-flex}@media (width<=900px){.config-tabs,.config-actions,.config-header,.schedule-day-header,.schedule-card,.schedule-day-meta{flex-direction:column;align-items:stretch}.checkbox-grid.plan-activity-grid{grid-template-columns:1fr}.plan-combined-picker,.plan-combined-activity-row,.checkbox-pill.plan-activity-pill .plan-activity-frequency,.plan-combined-metrics,.plan-discount-input{width:100%;max-width:none}.plan-combined-metrics{flex-direction:column}.plan-combined-picker,.plan-combined-metrics .field,.plan-metric-field,.plan-metric-input,.plan-metric-input-currency{max-width:none;width:100%!important}.plan-combined-picker,.plan-combined-activity-row{grid-template-columns:1fr}.plan-combined-activity-select{justify-self:stretch;width:100%!important}.plan-discount-input{grid-template-columns:1fr}}.dashboard-page,.dashboard-section,.dashboard-detail-grid,.dashboard-alerts,.latest-payments,.dashboard-schedule-browser,.dashboard-schedule-detail,.dashboard-schedule-assigned,.dashboard-student-picker{flex-direction:column;gap:20px;display:flex}.dashboard-page .dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.dashboard-section-header,.dashboard-card,.dashboard-alerts,.dashboard-error,.dashboard-root-actions,.dashboard-schedule-detail{padding:24px}.dashboard-section-header{background:var(--gradient-ink);color:#f9fff1;box-shadow:var(--color-shadow-soft);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;display:grid}.dashboard-section-copy{flex-direction:column;gap:10px;min-width:0;max-width:58ch;display:flex}.dashboard-section-copy h2{text-wrap:balance;margin:0;line-height:1.05}.dashboard-section-copy p{text-wrap:pretty;margin:0;line-height:1.5}.dashboard-section-header .eyebrow{color:var(--color-lime)}.dashboard-section-header p,.dashboard-alerts p,.dashboard-card p,.dashboard-error p{color:var(--color-text-soft)}.dashboard-section-header p{color:#f9fff1b8}.dashboard-error{gap:12px}.dashboard-error h2,.dashboard-error p{max-width:54ch;margin:0}.dashboard-card-head,.latest-payment-row{justify-content:space-between;gap:12px;display:flex}.dashboard-card{box-shadow:var(--color-shadow-soft);background:linear-gradient(#fffdf7fa,#f7f2e8eb);gap:10px;min-width:0;position:relative;overflow:hidden}.dashboard-card:before{content:"";background:var(--gradient-gold);height:4px;position:absolute;inset:0 0 auto}.dashboard-card strong{font-size:clamp(2rem,3vw,2.35rem);font-family:var(--font-display);letter-spacing:-.03em;line-height:.95;display:block}.dashboard-card .stat-label{letter-spacing:.08em;margin-bottom:0;font-size:.74rem}.dashboard-card-copy{text-wrap:pretty;max-width:24ch;margin:0;font-size:.94rem;line-height:1.42}.dashboard-card-icon{width:38px;height:38px;color:var(--color-ink);background:linear-gradient(135deg, var(--color-lime-soft), #fffdfa);border:1px solid #c79a3133;border-radius:999px;place-items:center;display:inline-grid}.dashboard-card-warning{border-color:#a1680647}.dashboard-card-danger{border-color:#a8323242}.dashboard-card-info{border-color:#1c6b8e42}.dashboard-card-success{border-color:#1d613c42}.dashboard-card-warning:before{background:var(--color-warning)}.dashboard-card-danger:before{background:var(--color-danger)}.dashboard-card-info:before{background:var(--color-info)}.dashboard-card-success:before{background:var(--color-lime)}.dashboard-detail-grid{grid-template-columns:minmax(340px,1.1fr) minmax(280px,.9fr);gap:18px;display:grid}.dashboard-root-overview{grid-template-columns:minmax(360px,1.15fr) minmax(280px,.85fr);gap:18px;display:grid}.dashboard-root-finance-panel,.dashboard-root-attendance-panel{flex-direction:column;gap:16px;display:flex}.dashboard-root-finance-panel .dashboard-panel-header,.dashboard-root-attendance-panel .dashboard-panel-header{padding-top:4px;padding-left:6px}.dashboard-panel-header{flex-direction:column;gap:6px;display:flex}.dashboard-panel-header .eyebrow{margin-bottom:0}.dashboard-panel-header h2{font-size:clamp(1.45rem,2vw,1.8rem)}.dashboard-panel-summary{color:var(--color-text-soft);max-width:42ch;font-size:.95rem;line-height:1.45}.dashboard-root-finance-total{color:#f9fff1;background:linear-gradient(135deg,#141815eb,#353a29db);border:1px solid #fff4d714;border-radius:20px;padding:20px 22px;box-shadow:inset 0 1px #fffaef14}.dashboard-root-finance-total.is-positive{background:linear-gradient(135deg,#141815f5,#3e542de6)}.dashboard-root-finance-total.is-negative{background:linear-gradient(135deg,#1f1414f5,#642a22e0)}.dashboard-root-finance-total span,.dashboard-root-finance-total strong{display:block}.dashboard-root-finance-total span{color:#f9fff1b3}.dashboard-root-finance-total strong{margin-top:10px;font-size:clamp(2rem,4vw,2.8rem);line-height:.95}.dashboard-root-finance-rows,.dashboard-root-attendance-rows{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.dashboard-root-finance-row,.dashboard-root-attendance-row{background:#ffffffc2;border:1px solid #b59b7c2e;border-radius:16px;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:6px;padding:14px 15px;display:flex}.dashboard-root-finance-row span,.dashboard-root-attendance-row span{color:var(--color-text-soft);text-transform:uppercase;letter-spacing:.05em;font-size:.83rem}.dashboard-root-finance-row strong,.dashboard-root-attendance-row strong{font-size:1.18rem;line-height:1}.dashboard-alerts>p:not(.eyebrow),.dashboard-alerts .dashboard-panel-summary{max-width:44ch}.dashboard-schedule-detail-header,.dashboard-schedule-modal-layout,.dashboard-schedule-filters,.dashboard-recovery-toggle{gap:16px;display:grid}.dashboard-schedule-detail-header{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:center}.dashboard-section-action{justify-content:flex-end;align-items:center;display:flex}.dashboard-professor-header{grid-template-columns:minmax(0,1fr) minmax(240px,320px)}.dashboard-professor-copy{max-width:66ch}.dashboard-session-badge,.dashboard-professor-loading{color:var(--color-ink);background:#fffaede6;border:1px solid #e4bf5347;border-radius:18px;padding:18px}.dashboard-session-badge span,.dashboard-session-badge strong,.dashboard-session-badge small{display:block}.dashboard-session-badge span{letter-spacing:.04em;text-transform:uppercase;color:var(--color-accent);font-size:.78rem;font-weight:800}.dashboard-session-greeting{align-items:center;gap:8px;display:inline-flex!important}.dashboard-session-badge strong{margin-top:6px;font-size:1.05rem}.dashboard-session-badge small{color:var(--color-text-soft);margin-top:4px}.dashboard-professor-callout{background:linear-gradient(135deg,#c2d92f1f,#fff7e22e);border:1px solid #c2d92f38;border-radius:16px;margin-top:16px;padding:14px 16px}.dashboard-professor-callout span,.dashboard-professor-callout strong{display:block}.dashboard-professor-callout span{letter-spacing:.04em;text-transform:uppercase;color:var(--color-lime);font-size:.78rem;font-weight:800}.dashboard-professor-callout strong{text-wrap:pretty;margin-top:6px;font-size:.98rem;line-height:1.35}.dashboard-gold-button{color:#2c2108;letter-spacing:.02em;background:linear-gradient(135deg,#f8dfa1 0%,#e0b34b 48%,#bc8520 100%);border:1px solid #e4bf538c;border-radius:999px;padding:14px 22px;font-weight:700;transition:transform .2s,box-shadow .2s,background .2s,border-color .2s;position:relative;overflow:hidden;box-shadow:inset 0 1px #fff8dfa6,0 12px 24px #7f58083d}.dashboard-gold-button:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(#ffffff47,#0000 48%);position:absolute;inset:1px}.dashboard-gold-button:hover{background:linear-gradient(135deg,#fde7ad 0%,#e8bc55 52%,#c68c22 100%);border-color:#f7df94eb;transform:translateY(-1px);box-shadow:inset 0 1px #fff8dfc7,0 16px 28px #7f58084d}.dashboard-gold-button:active{transform:translateY(0);box-shadow:inset 0 1px #fff8df85,0 8px 16px #7f580833}.dashboard-schedule-modal-layout{grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr);align-items:start}.dashboard-activity-tabs,.dashboard-schedule-list,.dashboard-order-toggles{gap:12px;display:grid}.dashboard-activity-tabs{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.dashboard-schedule-filters{grid-template-columns:minmax(140px,180px) 1fr;align-items:end}.dashboard-order-toggles{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.dashboard-schedule-filters .field{margin:0}.dashboard-activity-tabs .is-active{border-color:var(--color-lime);background:#c1d82f1f}.dashboard-schedule-card,.dashboard-student-option{text-align:left;background:#ffffffb8;border:1px solid #b59b7c3d;border-radius:18px;width:100%;padding:14px 16px;transition:border-color .2s,box-shadow .2s,background .2s,transform .2s}.dashboard-schedule-card.is-selected,.dashboard-student-option.is-selected{background:linear-gradient(135deg,#c1d82f3d,#fff8dff5);border-color:#9bba12e6;transform:translateY(-1px);box-shadow:inset 4px 0 #9bba12f2,0 0 0 2px #c1d82f47,0 12px 22px #67701429}.dashboard-schedule-card.is-selected strong,.dashboard-schedule-card.is-selected span,.dashboard-schedule-card.is-selected small{color:#2d320c}.dashboard-schedule-card.is-full{opacity:.7}.dashboard-schedule-card span,.dashboard-schedule-card small,.dashboard-student-option span,.dashboard-student-option small{display:block}.dashboard-student-picker{max-height:280px;overflow:auto}.dashboard-recovery-toggle{background:linear-gradient(#fffbf1f2,#fff6dbd1);border:1px solid #b59b7c38;border-radius:18px;grid-template-columns:auto 1fr;align-items:center;padding:16px 18px}.dashboard-recovery-toggle input{width:18px;height:18px;accent-color:var(--color-accent);margin:0}.dashboard-recovery-toggle span,.dashboard-recovery-toggle small{grid-column:2}.dashboard-recovery-toggle span{color:var(--color-text);font-weight:800}.dashboard-recovery-toggle small{color:var(--color-text-muted);line-height:1.45}.dashboard-schedule-assigned ul{margin:0;padding-left:18px}.dashboard-alerts ul{flex-direction:column;gap:10px;margin:0;padding-left:0;list-style:none;display:flex}.dashboard-alerts li{margin:0}.dashboard-alert-link{background:#ffffffc7;border:1px solid #b59b7c2e;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px 14px;transition:border-color .2s,background .2s,transform .2s,box-shadow .2s;display:flex}.dashboard-alert-link span{color:var(--color-text);line-height:1.4}.dashboard-alert-link strong{text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent);flex-shrink:0;font-size:.82rem}.dashboard-alert-link:hover{background:#fffaedf5;border-color:#c79a315c;transform:translateY(-1px);box-shadow:0 10px 20px #5c482614}.latest-payment-row{border-bottom:1px solid #b59b7c2e;grid-template-columns:minmax(0,1.2fr) auto auto auto;align-items:center;padding:12px 0;display:grid}.latest-payment-row strong{min-width:0}.latest-payment-row span:first-of-type{color:var(--color-ink);font-weight:700}.latest-payment-row span:nth-of-type(2){color:var(--color-accent);text-transform:capitalize;background:#c1d82f1f;border-radius:999px;padding:4px 8px;font-size:.82rem}.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-page,.dashboard-section,.dashboard-detail-grid,.dashboard-alerts,.latest-payments,.dashboard-schedule-browser,.dashboard-schedule-detail,.dashboard-schedule-assigned,.dashboard-student-picker{gap:16px}.dashboard-section-header{grid-template-columns:1fr;padding:20px}.dashboard-section-action{justify-content:flex-start}.dashboard-professor-header,.dashboard-detail-grid,.dashboard-root-overview,.dashboard-schedule-modal-layout,.dashboard-page .dashboard-grid{grid-template-columns:1fr}.dashboard-card,.dashboard-alerts,.dashboard-error,.dashboard-root-actions,.dashboard-schedule-detail{padding:20px}.dashboard-card strong{font-size:2rem}.dashboard-card-copy,.dashboard-section-copy,.dashboard-professor-copy{max-width:none}.latest-payment-row{grid-template-columns:1fr;align-items:flex-start}.dashboard-alert-link{flex-direction:column;align-items:flex-start}}@media (width<=560px){.dashboard-section-header{gap:14px;padding:18px}.dashboard-card,.dashboard-alerts,.dashboard-error,.dashboard-root-actions,.dashboard-schedule-detail,.dashboard-session-badge,.dashboard-professor-loading{padding:18px}.dashboard-card-head{align-items:flex-start}.dashboard-card-icon{width:34px;height:34px}.dashboard-card strong{font-size:1.8rem}.dashboard-root-finance-rows,.dashboard-root-attendance-rows{grid-template-columns:1fr}}.fees-page,.fees-section,.fee-detail,.payment-history,.student-fee-list{flex-direction:column;gap:20px;display:flex}.fee-overview-toolbar,.fee-overview-filters,.fee-overview-table-body,.fee-overview-student-button,.fee-overview-row-actions{display:flex}.fee-overview-toolbar-main{gap:10px;display:grid}.fee-overview-toolbar{background:#fffdf6db;justify-content:space-between;align-items:flex-start;gap:18px;padding:24px}.fee-overview-filters{flex-wrap:wrap;gap:10px}.fee-overview-context{color:var(--color-text-soft);line-height:1.4}.fee-overview-filter{color:var(--color-text-soft);cursor:pointer;background:#fffffbeb;border:1px solid #b99a5447;border-radius:999px;padding:10px 14px;font-weight:700}.fee-overview-filter.is-active{color:#fff4d5;background:var(--gradient-ink);border-color:#e8c65a57;box-shadow:0 12px 20px #22190b29}.fee-overview-search{width:min(360px,100%);margin-top:0}.fee-overview-table-wrap,.fee-overview-empty{padding:0;overflow:hidden}.fee-overview-empty{padding:24px}.fee-overview-table-head,.fee-overview-row{grid-template-columns:minmax(220px,2fr) minmax(140px,1.15fr) minmax(140px,1fr) minmax(150px,.9fr);align-items:center;gap:14px;padding:18px 22px;display:grid}.fee-overview-table-head{color:#f6ebce;text-transform:uppercase;letter-spacing:.03em;background:#2c2111f0;border-bottom:1px solid #b99a542e;font-size:.8rem;font-weight:800}.fee-overview-table-body{flex-direction:column}.fee-overview-row{background:linear-gradient(#fffefaf5,#fbf6ebeb);border-bottom:1px solid #b99a5424}.fee-overview-row:last-child{border-bottom:0}.fee-overview-cell{min-width:0}.fee-overview-cell strong,.fee-overview-cell small,.fee-overview-cell span{display:block}.fee-overview-cell small{color:var(--color-text-soft)}.fee-overview-student-button{color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:4px;padding:0}.fee-overview-student-button:hover strong{color:var(--color-accent)}.fee-status-overview{width:fit-content}.fee-status-overview-pendiente{color:#8d5c09;background:#ffecc1d1}.fee-status-overview-parcial{color:#185d79;background:#d2ebf4e0}.fee-status-overview-al-dia{color:#1d5f39;background:#dcf2e1e6}.fee-status-overview-especial{color:#59418f;background:#efe7ffeb}.fee-status-overview-muy-atrasado{color:#9e2f2f;background:#fae0dceb}.fee-whatsapp-button{align-items:center;display:inline-flex}.fee-overview-row-actions{flex-wrap:wrap;align-items:center;gap:8px}.fee-action-button{border-radius:14px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 12px;font-weight:700;transition:transform .2s,box-shadow .2s,border-color .2s,background .2s,color .2s;display:inline-flex;position:relative;overflow:hidden}.fee-action-button svg{z-index:1;shape-rendering:geometricprecision;vector-effect:non-scaling-stroke;position:relative}.fee-action-label{z-index:1;font-size:.82rem;position:relative}.fee-action-button:hover{transform:translateY(-1px)}.fee-action-button:after{content:"";background:linear-gradient(120deg,#0000 0%,#ffffff47 45%,#0000 100%);transition:transform .35s;position:absolute;inset:0;transform:translate(-120%)}.fee-action-button:hover:after{transform:translate(120%)}.fee-action-pay{color:#fff1c8;background:linear-gradient(135deg,#2d2212f5,#583f19f5);border-color:#e8c65a47;box-shadow:0 10px 18px #22190b24}.fee-action-edit{color:#7a5110;background:linear-gradient(135deg,#fff4d6f0,#f3dba3f0);border-color:#c79a313d}.fee-action-view{color:#345565;background:linear-gradient(135deg,#eff4f7f5,#d8e4ebf5);border-color:#67869533}.fee-whatsapp-button{color:#1f6a3c;background:linear-gradient(135deg,#e5f9eafa,#bdedc9fa);border-color:#2a894d33}.fee-action-pay svg,.fee-action-edit svg,.fee-action-view svg,.fee-whatsapp-button svg{filter:drop-shadow(0 1px #ffffff29)}.fee-whatsapp-button:disabled{color:var(--color-text-soft);box-shadow:none;background:#f4efe6c7;border-color:#b99a542e}.fee-form-blocker{border-radius:var(--radius-md);background:#fff3f0e0;border:1px solid #a8323229;gap:8px;margin-bottom:18px;padding:18px 20px;display:grid}.fee-form-blocker h3{font-size:1.35rem}.fee-payment-highlight{gap:10px;display:grid}.fee-payment-summary{color:var(--color-text-soft);line-height:1.4}.fee-payment-metrics{gap:6px;display:grid}.fee-payment-metrics p:last-child{font-size:1rem}.fee-summary-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;display:grid}.fee-summary-stack,.fee-report-grid,.fee-report-body,.fee-status-summary{gap:18px;display:grid}.fee-status-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));padding:18px 20px}.fee-status-summary article,.fee-report-header{gap:6px;display:grid}.fee-status-summary strong{font-family:var(--font-display);font-size:1.8rem}.fee-report-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.fee-report-card{padding:0;overflow:hidden}.fee-report-header{border-bottom:1px solid #b99a5429;padding:20px 22px 14px}.fee-report-empty-message{padding:20px 26px 24px}.fee-report-table{display:grid}.fee-report-row{grid-template-columns:minmax(120px,1.4fr) repeat(3,minmax(90px,1fr));align-items:center;gap:12px;padding:14px 22px;display:grid}.fee-report-row-head{color:#f6ebce;text-transform:uppercase;letter-spacing:.03em;background:#2c2111f0;font-size:.78rem;font-weight:800}.fee-report-body .fee-report-row{background:#fffdf6c7;border-top:1px solid #b99a541f}.fee-surcharge-toggle{justify-content:flex-start}.fee-period-control,.fee-debtor-strip{justify-content:space-between;align-items:flex-start;gap:18px;padding:24px;display:flex}.fee-period-control .field{width:min(260px,100%)}.fee-debtor-list{flex:1;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;display:grid}.fee-debtor-card{border-radius:var(--radius-sm);background:#fffdf6d1;border:1px solid #b99a5438;justify-content:space-between;gap:12px;padding:12px;display:flex}.fee-debtor-card div:first-child{gap:3px;display:grid}.fee-debtor-card span{color:var(--color-text-soft);font-size:.92rem}.student-account-layout{grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:20px;display:grid}.account-search-panel,.account-detail-panel{padding:24px}.account-search-summary{color:var(--color-text-soft);margin-top:8px;line-height:1.4}.account-search-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fffffbeb;align-items:center;gap:8px;padding:0 12px;display:flex}.account-search-input input{box-shadow:none;background:0 0;border:0}.account-search-input input:focus{box-shadow:none}.account-student-list,.account-fee-list{gap:10px;display:grid}.account-student,.account-fee-row{border-radius:var(--radius-sm);width:100%;color:var(--color-text);text-align:left;background:#fffdf6d1;border:1px solid #b99a5438;justify-content:space-between;align-items:center;gap:14px;padding:12px;display:flex}.account-student{cursor:pointer}.account-student.is-selected{color:#fff3cf;background:var(--gradient-ink);border-color:#e8c65a5c}.account-student span,.account-fee-row div:first-child{gap:3px;display:grid}.account-student small,.account-fee-row span{color:var(--color-text-soft)}.account-student.is-selected small{color:#fff3cfb8}.account-detail-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.account-detail-header .primary-button{margin-top:0}.account-metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:18px;display:grid}.account-metrics article{border-radius:var(--radius-sm);background:#fff0c95c;border:1px solid #b99a5433;padding:14px}.account-metrics span{color:var(--color-text-soft);font-size:.88rem;display:block}.account-metrics strong{font-family:var(--font-display);margin-top:4px;font-size:1.6rem;display:block}.account-empty{align-content:center;gap:8px;min-height:260px;display:grid}@media (width<=980px){.fee-overview-toolbar,.student-account-layout{flex-direction:column}.student-account-layout{grid-template-columns:1fr}.account-detail-header,.account-fee-row{flex-direction:column;align-items:stretch}}@media (width<=640px){.fee-report-row{grid-template-columns:1fr;gap:8px}.fee-report-row-head{display:none}.fee-report-body .fee-report-row span:before{content:attr(data-label);display:block}.fee-overview-table-head{display:none}.fee-overview-row{grid-template-columns:1fr;gap:10px;padding:18px}.fee-overview-row-actions{justify-content:flex-start}.fee-overview-cell:before{content:attr(data-label);color:var(--color-text-soft);letter-spacing:.02em;text-transform:uppercase;margin-bottom:4px;font-size:.76rem;font-weight:800;display:block}.account-search-panel,.account-detail-panel{padding:18px}.account-student{flex-direction:column;align-items:stretch}}.fee-filters,.fee-status,.student-fee-row{display:flex}.fee-status{text-transform:capitalize;border:1px solid #11100d14;border-radius:999px;justify-content:center;align-items:center;padding:6px 10px;font-size:.82rem;font-weight:700}.fee-status-pendiente{background:var(--color-warning-soft);color:var(--color-warning)}.fee-status-parcial{background:var(--color-info-soft);color:var(--color-info)}.fee-status-pagada{background:var(--color-success-bg);color:var(--color-success-text)}.fee-status-vencida{background:var(--color-danger-soft);color:var(--color-danger)}.student-fee-row{border-bottom:1px solid #b99a542e;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,.attendance-quick-filters{gap:1rem;display:grid}.attendance-quick-filters-copy{gap:.35rem;padding-left:10px;display:grid}.attendance-quick-filters-copy h2,.attendance-quick-filters-copy p{margin:0}.attendance-filters{grid-template-columns:repeat(2,max-content);justify-content:center;align-items:end;gap:.75rem 2.5rem}.attendance-summary-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.attendance-summary-card strong{font-size:1.8rem;font-family:var(--font-display);margin-top:.35rem;line-height:.95;display:block}.attendance-summary-card,.expense-breakdown{background:var(--gradient-panel);padding:22px;position:relative;overflow:hidden}.attendance-summary-card p{color:var(--color-text-soft)}.attendance-summary-card:before,.expense-breakdown:before{content:"";background:var(--gradient-gold);height:4px;position:absolute;inset:0 0 auto}.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-selector p:last-child,.attendance-selector-copy p{max-width:46ch}.attendance-note{text-align:center;color:var(--color-text-muted);grid-column:1/-1;line-height:1.45}.attendance-recovery-tag{color:#5f4695;background:#efe7ffeb;border-radius:999px;align-items:center;gap:.3rem;margin-left:.55rem;padding:.18rem .5rem;font-size:.72rem;font-weight:800;display:inline-flex}.attendance-recovery-tag.is-compact{margin-top:.3rem;margin-left:0}.attendance-recovery-tag span{line-height:1}.attendance-recovery-student-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;display:grid}.attendance-recovery-student{border-radius:var(--radius-md);text-align:left;background:#fffdf6e0;border:1px solid #b99a5438;padding:.9rem 1rem}.attendance-recovery-student strong,.attendance-recovery-student small{display:block}.attendance-recovery-fixed-value{min-height:44px;color:var(--color-text);background:linear-gradient(#fffdf8fa,#fff8e5e6);border:1px solid #b99a5433;border-radius:14px;padding:.72rem .9rem;display:block;box-shadow:inset 0 1px #ffffffe6}.attendance-recovery-student small,.attendance-recovery-feedback small,.attendance-recovery-history p{color:var(--color-text-muted)}.attendance-recovery-student.is-selected{color:#fff3cf;background:linear-gradient(135deg,#11100df0,#3a2b10e6);border-color:#e8c65a57}.attendance-recovery-student.is-selected small{color:#fff3cfb8}.attendance-recovery-feedback,.attendance-recovery-history{border-radius:var(--radius-md);background:#fffaebb3;border:1px solid #b99a5433;gap:.45rem;margin-top:1rem;padding:1rem;display:grid}.attendance-filter-field{justify-self:start;margin-bottom:6px}.attendance-filter-field-date{width:190px}.attendance-filter-field-schedule{width:min(100%,320px)}.attendance-filter-field .attendance-filter-input{width:100%}.attendance-filter-input{min-height:44px;color:var(--color-text);background:linear-gradient(#fffdf8fa,#fff8e5e6);border:1px solid #b99a5433;border-radius:14px;transition:border-color .16s,box-shadow .16s,background .16s;box-shadow:inset 0 1px #ffffffe6}.attendance-filter-input:hover{background:linear-gradient(#fffdf8,#fff7def5);border-color:#b99a5457}.attendance-filter-input:focus{background:#fffef9;border-color:#c79a3194;outline:none;box-shadow:0 0 0 3px #d6ad5229,inset 0 1px #fffffff5}.attendance-filter-date,.attendance-filter-schedule{min-width:0}.attendance-chip-group{flex-wrap:wrap;gap:.75rem;padding-bottom:10px;padding-left:10px;display:flex}.attendance-chip{border-radius:var(--radius-md);min-width:170px;color:inherit;text-align:left;background:#fffdf6db;border:1px solid #b99a543d;gap:.2rem;padding:.9rem 1rem;display:grid}.attendance-chip span{font-weight:700}.attendance-chip small{color:var(--color-text-muted)}.attendance-chip.is-selected{color:#fff3cf;background:linear-gradient(135deg,#11100df0,#3a2b10e6);border-color:#c79a317a;box-shadow:0 10px 24px #22190b24}.attendance-chip.is-selected small{color:#fff3cfb8}.attendance-badge{text-transform:capitalize;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.82rem;font-weight:800;display:inline-flex}.attendance-badge.is-present{background:var(--color-success-bg);color:var(--color-success-text)}.attendance-badge.is-absent{background:var(--color-warning-soft);color:var(--color-warning)}.attendance-badge.is-pending{color:var(--color-text-muted);background:#ccbea233}.attendance-badge.is-icon-only{border:1px solid;width:2rem;height:2rem;padding:0}.attendance-page{gap:1.25rem;display:grid}.attendance-page-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.attendance-page .section-header p:last-child{max-width:58ch;color:var(--color-text-soft);line-height:1.45}.attendance-analytics-stack,.attendance-chart-grid,.attendance-report-grid,.attendance-report-body{gap:1rem;display:grid}.attendance-analytics-section{padding:0;overflow:hidden}.attendance-analytics-toggle{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.35rem;list-style:none;display:flex}.attendance-analytics-toggle::-webkit-details-marker{display:none}.attendance-analytics-toggle-action{color:var(--color-text);background:#fff0c980;border-radius:999px;flex:none;align-items:center;gap:.45rem;padding:.55rem .9rem;font-weight:800;display:inline-flex}.attendance-analytics-section[open] .attendance-analytics-toggle-action{background:var(--gradient-ink);color:#fff3cf}.attendance-analytics-content{border-top:1px solid #b99a5429;padding:0 1.35rem 1.35rem}.attendance-report-grid,.attendance-chart-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.attendance-chart-card{background:radial-gradient(circle at 100% 0,#c79a313d,#0000 32%),radial-gradient(circle at 0 100%,#8a61161f,#0000 26%),linear-gradient(#fffdf7f5,#f9f3e7e8);padding:0;position:relative;overflow:hidden;box-shadow:0 18px 38px #35260d1a}.attendance-chart-card:after{content:"";pointer-events:none;opacity:.9;background:linear-gradient(120deg,#0000 0%,#ffffff2e 36%,#0000 58%);position:absolute;inset:0}.attendance-chart-header{gap:.25rem;min-height:104px;padding:1.15rem 1.35rem 0;display:grid}.attendance-chart-header h3,.attendance-chart-header p{margin:0}.attendance-chart-header h3{font-size:1.2rem;line-height:1.05}.attendance-chart-legend{flex-wrap:wrap;align-items:center;gap:.65rem 1rem;padding:.55rem 1.35rem .25rem;display:flex}.attendance-chart-legend-item,.attendance-chart-legend-note{align-items:center;gap:.45rem;font-size:.8rem;font-weight:700;display:inline-flex}.attendance-chart-legend-note{color:var(--color-text-muted);font-weight:600}.attendance-chart-legend-item i{border-radius:999px;width:12px;height:12px;display:inline-block}.attendance-chart-legend-item i.is-present{background:linear-gradient(90deg,#1f7a4f,#48b87d)}.attendance-chart-legend-item i.is-absent{background:linear-gradient(90deg,#f0dfb8,#d6b36a)}.attendance-chart-legend-item i.is-alert{background:linear-gradient(90deg,#8a6116,#c79a31)}.attendance-chart-list{gap:.9rem;padding:.3rem 1.35rem 1.35rem;display:grid}.attendance-chart-list-row{background:#fffcf3d1;border:1px solid #b99a5429;border-radius:18px;gap:.7rem;padding:.95rem 1rem;transition:transform .18s,box-shadow .18s,border-color .18s;display:grid;box-shadow:inset 0 1px #ffffffb3,0 10px 24px #30240e0d}.attendance-chart-list-row:hover{border-color:#b99a5452;transform:translateY(-2px);box-shadow:inset 0 1px #ffffffd6,0 16px 32px #30240e1a}.attendance-chart-list-copy{gap:.18rem;display:grid}.attendance-chart-title-line{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.attendance-chart-list-copy strong,.attendance-chart-list-copy small{margin:0}.attendance-chart-list-copy strong{font-size:1rem}.attendance-chart-list-copy small{color:var(--color-text-muted)}.attendance-chart-rank,.attendance-chart-alert{letter-spacing:.02em;text-transform:uppercase;border-radius:999px;align-items:center;min-height:28px;padding:.18rem .6rem;font-size:.72rem;font-weight:800;display:inline-flex}.attendance-chart-rank{color:var(--color-accent-strong);background:#c79a3126}.attendance-chart-alert{color:#7b4f12;background:#8a61161f}.attendance-chart-bars,.attendance-chart-single-bar{gap:.45rem;display:grid}.attendance-chart-bars{grid-template-columns:minmax(0,1fr) auto;align-items:center}.attendance-chart-bar-track{background:#c79a311f;border-radius:999px;min-height:14px;position:relative;overflow:hidden;box-shadow:inset 0 1px 2px #3e2b0814}.attendance-chart-bar-track.is-soft{background:#d2bc8638}.attendance-chart-bar-track.is-dark{background:#8a61161f}.attendance-chart-bar-fill{border-radius:inherit;transform-origin:0;min-width:8%;height:14px;animation:.7s both attendance-chart-grow;display:block;position:relative;box-shadow:inset 0 -1px #ffffff47}.attendance-chart-bar-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff57,#0000);animation:2.8s linear infinite attendance-chart-sheen;position:absolute;inset:0}.attendance-chart-bar-fill.is-soft{background:linear-gradient(90deg,#f0dfb8,#d6b36a)}.attendance-chart-bar-fill.is-dark{background:linear-gradient(90deg,#8a6116,#c79a31)}.attendance-chart-bar-value{text-align:right;min-width:54px;color:var(--color-text);font-weight:800;font-family:var(--font-display);letter-spacing:.03em;font-size:1rem}.attendance-chart-bar-value.is-present{color:#1f7a4f}.attendance-chart-bar-value.is-absent{color:#8a6116}.attendance-chart-empty{color:var(--color-text-muted);margin:0;padding:0 1.35rem 1.35rem}@keyframes attendance-chart-grow{0%{opacity:.3;transform:scaleX(.4)}to{opacity:1;transform:scaleX(1)}}@keyframes attendance-chart-sheen{0%{transform:translate(-120%)}to{transform:translate(220%)}}.attendance-report-card{background:var(--gradient-panel);padding:0;overflow:hidden}.attendance-report-header{background:linear-gradient(#fffcf3eb,#fff4d6b3);border-bottom:1px solid #b99a5429;align-content:center;min-height:88px;padding:1.15rem 1.35rem 1rem;display:grid}.attendance-report-title{text-wrap:balance;margin:0;font-size:1rem;line-height:1.25}.attendance-report-table{display:grid}.attendance-report-row{align-items:center;gap:.75rem;padding:.9rem 1.35rem;display:grid}.attendance-report-row-head{background:var(--gradient-ink);color:#fff3cf;text-transform:uppercase;letter-spacing:.02em;min-height:64px;font-size:.74rem;font-weight:800}.attendance-report-row-head span{text-wrap:balance;overflow-wrap:anywhere;line-height:1.2}.attendance-report-body .attendance-report-row{background:#fffdf6c7;border-top:1px solid #b99a5424}.attendance-check-cell{text-align:center}.attendance-check-cell input{width:18px;height:18px;accent-color:var(--color-accent)}.attendance-observation-input{width:100%;min-width:180px;color:var(--color-text);background:linear-gradient(#fffdf8fa,#fff8e5e6);border:1px solid #b99a5433;border-radius:14px;padding:.72rem .9rem;transition:border-color .16s,box-shadow .16s,background .16s;box-shadow:inset 0 1px #ffffffe6}.attendance-observation-input::placeholder{color:#705c3ab8}.attendance-observation-input:hover{background:linear-gradient(#fffdf8,#fff7def5);border-color:#b99a5457}.attendance-observation-input:focus{background:#fffef9;border-color:#c79a3194;outline:none;box-shadow:0 0 0 3px #d6ad5229,inset 0 1px #fffffff5}.attendance-mobile-observation{margin-top:0}.attendance-recovery-intro{gap:6px;margin-bottom:18px;display:grid}.attendance-recovery-intro p:last-child{color:var(--color-text-soft);max-width:56ch;line-height:1.45}.table-panel{background:var(--gradient-panel);padding:24px}.data-table{border-collapse:separate;border-spacing:0;width:100%;margin-top:18px}.data-table th,.data-table td{text-align:left;vertical-align:top;border-bottom:1px solid #b99a542e;padding:15px 12px}.data-table thead th{background:var(--gradient-ink);color:#fff3cf;letter-spacing:0;text-transform:uppercase;font-size:.78rem}.data-table tbody tr:hover td{background:#fff0c966}.attendance-mobile-list{display:none}@media (width<=720px){.attendance-report-row{grid-template-columns:1fr!important}.attendance-report-row-head{display:none}.attendance-analytics-toggle{flex-direction:column;align-items:flex-start}.attendance-chart-bars{grid-template-columns:1fr}.attendance-chart-title-line,.attendance-chart-legend{flex-direction:column;align-items:flex-start}.attendance-chart-bar-value{text-align:left;min-width:0}.attendance-page-header{flex-direction:column;align-items:stretch}.attendance-report-body .attendance-report-row span:before{content:attr(data-label);color:var(--color-text-muted);text-transform:uppercase;margin-bottom:.25rem;font-size:.74rem;font-weight:800;display:block}.attendance-filters{grid-template-columns:1fr;justify-content:stretch;row-gap:1rem}.attendance-selector,.attendance-selector-copy{flex-direction:column;align-items:flex-start}.attendance-chip-group{grid-template-columns:1fr;padding-bottom:4px;padding-left:4px;display:grid}.attendance-quick-filters-copy{padding-left:4px}.attendance-chip,.attendance-filter-field-date,.attendance-filter-field-schedule{width:100%}.attendance-filter-field{margin-bottom:2px}.attendance-filter-date,.attendance-filter-schedule{width:100%;min-width:0;max-width:none}.attendance-desktop-table{display:none}.attendance-mobile-list{gap:.85rem;margin-top:1rem;display:grid}.attendance-mobile-card{border-radius:var(--radius-md);background:#fffdf6e0;border:1px solid #b99a5438;gap:.85rem;padding:1rem;display:grid}.attendance-mobile-main,.attendance-mobile-check{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.attendance-mobile-main strong{font-size:1rem;display:block}.attendance-mobile-main small{color:var(--color-text-muted);font-weight:700}.attendance-mobile-check{border-top:1px solid #b99a542e;padding-top:.85rem}.attendance-mobile-check span{color:var(--color-text);font-weight:800}.attendance-mobile-check input{width:24px;height:24px;accent-color:var(--color-accent)}}.expense-summary-grid,.expense-filter-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.expense-hero,.expense-filter-heading,.expense-list-header,.expense-breakdown-header{justify-content:space-between;gap:1rem;display:flex}.expense-hero{align-items:stretch}.expense-hero-highlight,.expense-breakdown-highlight{border-radius:var(--radius-sm);background:#fff9e7e6;border:1px solid #c79a3138;min-width:240px;padding:1rem 1.1rem}.expense-hero-highlight span,.expense-breakdown-highlight span,.expense-breakdown-highlight small,.expense-list-meta,.expense-filter-copy,.expense-table-note{color:var(--color-text-soft)}.expense-hero-highlight span,.expense-breakdown-highlight span{text-transform:uppercase;font-size:.8rem;font-weight:700;display:block}.expense-hero-highlight strong,.expense-breakdown-highlight strong{margin:.35rem 0;display:block}.expense-filters,.expense-breakdown,.expense-empty-state,.expense-visual-panel,.expense-monthly-control{padding:1.5rem}.expense-filter-heading,.expense-list-header,.expense-breakdown-header{align-items:flex-start;margin-bottom:1rem}.expense-category-badge{background:var(--color-accent-soft);color:var(--color-accent-strong);border:1px solid #c79a3138;border-radius:999px;padding:.35rem .75rem;font-size:.82rem;font-weight:800;display:inline-flex}.expense-breakdown{background:linear-gradient(#fffdf6f2,#fff5dcd1);flex-direction:column;gap:.75rem;min-height:148px;display:flex}.expense-summary-card strong{font-size:1.7rem;line-height:1}.expense-summary-card{background:linear-gradient(#fffdf6f2,#fff5dcd1);border:1px solid #b99a5438;min-height:148px;padding:24px}.expense-summary-label{color:var(--color-text-soft);letter-spacing:.04em;text-transform:uppercase;font-size:.82rem;font-weight:800}.expense-breakdown-copy{gap:.3rem;display:grid}.expense-breakdown-highlight{width:min(100%,320px);min-width:0}.expense-breakdown-highlight strong,.expense-breakdown-highlight small{overflow-wrap:anywhere;text-wrap:pretty}.expense-breakdown-highlight strong{line-height:1.25}.expense-breakdown-highlight small{line-height:1.45}.expense-list-header{border-bottom:1px solid #b99a542e;padding:0 0 1rem}.expense-header-actions{align-items:stretch}.expense-header-actions .secondary-button,.expense-header-actions .primary-button{white-space:nowrap;justify-content:center;align-items:center;gap:8px;width:168px;min-width:168px;min-height:46px;margin-top:0;display:inline-flex}.expense-export-button{color:#f3fff8;background:linear-gradient(135deg,#1d6f42 0%,#107c41 52%,#0b5f32 100%);border-color:#0b5f326b;box-shadow:0 12px 24px #107c4133}.expense-export-button:hover{background:linear-gradient(135deg,#237d4b 0%,#12924c 52%,#0d6f3b 100%)}.expense-fab{z-index:20;color:#fff8f1;background:var(--gradient-ink);border:1px solid #e8c65a61;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 #22190b47}.expense-fab:hover{transform:translateY(-1px);box-shadow:0 22px 38px #5c291252}.expense-table-note{margin-top:.3rem;font-size:.88rem;display:block}.expense-breakdown-empty{color:var(--color-text-soft);background:#fffbeedb;border:1px dashed #b99a5447;border-radius:16px;padding:14px 16px}.expense-empty-state h3{margin-bottom:.4rem}.expense-empty-state .primary-button{width:fit-content}.expense-form-intro{margin-bottom:.5rem}.expense-insights-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.expense-monthly-control{gap:1rem;display:grid}.expense-control-header,.expense-control-resume{justify-content:space-between;gap:1rem;display:flex}.expense-control-header{align-items:flex-start}.expense-period-status,.expense-required-item{border-radius:999px;align-items:center;gap:.45rem;font-size:.85rem;font-weight:800;display:inline-flex}.expense-period-status{padding:.45rem .8rem}.expense-period-status.is-open{color:#1f7a4d;background:#298e5a1f}.expense-period-status.is-closed{color:#a74125;background:#d85a361f}.expense-control-resume{border-radius:var(--radius-sm);background:#fff9e78f;border:1px solid #b99a542e;padding:1rem}.expense-control-resume div{gap:.3rem;display:grid}.expense-control-resume span,.expense-closure-note{color:var(--color-text-soft)}.expense-closure-audit{gap:.35rem;display:grid}.expense-control-resume strong{font-size:1.25rem}.expense-required-grid{flex-wrap:wrap;gap:.65rem;display:flex}.expense-required-item{border:1px solid #0000;padding:.45rem .75rem}.expense-required-item.is-complete{color:#1f7a4d;background:#298e5a1a;border-color:#298e5a2e}.expense-required-item.is-missing{color:#a74125;background:#d85a361a;border-color:#d85a362e}.expense-bar-list{gap:.85rem;margin-top:1rem;display:grid}.expense-bar-row{gap:.4rem;display:grid}.expense-bar-label{justify-content:space-between;gap:.75rem;display:flex}.expense-bar-track,.expense-month-track{background:#b99a5429;border-radius:999px;overflow:hidden}.expense-bar-track{height:12px}.expense-bar-fill,.expense-month-fill{background:linear-gradient(135deg,#c79a31f2,#d85a36d1)}.expense-bar-fill{height:100%}.expense-month-chart{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:.65rem;min-height:230px;margin-top:1rem;display:grid}.expense-month-column{justify-items:center;gap:.45rem;display:grid}.expense-month-value{color:var(--color-text-soft);text-align:center;font-size:.78rem}.expense-month-track{align-items:end;width:100%;height:140px;display:flex}.expense-month-fill{border-radius:999px 999px 0 0;width:100%}.expense-history-panel{gap:1rem;padding:1.5rem;display:grid}.expense-history-header,.expense-history-highlights,.expense-history-card-header{justify-content:space-between;gap:.75rem;display:flex}.expense-history-header,.expense-history-card-header{align-items:flex-start}.expense-history-highlights{color:var(--color-text-soft);flex-wrap:wrap;font-size:.9rem}.expense-history-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem;display:grid}.expense-history-card{border-radius:var(--radius-sm);background:#fff9e773;border:1px solid #b99a542e;gap:.35rem;padding:1rem;display:grid}.expense-history-card small{color:var(--color-text-soft)}@media (width<=900px){.expense-hero,.expense-filter-heading,.expense-list-header,.expense-breakdown-header,.expense-control-header,.expense-control-resume,.expense-history-header,.expense-history-highlights,.expense-history-card-header{flex-direction:column}.expense-month-chart{grid-template-columns:repeat(6,minmax(0,1fr))}.expense-fab{bottom:22px;right:22px}}.professors-hero{grid-template-columns:minmax(0,1fr) minmax(240px,320px);align-items:start;gap:16px;display:grid}.professors-hero-note,.professor-breakdown{border-radius:var(--radius-sm);background:#fffbf1d1;border:1px solid #b99a5438;padding:18px}.professors-hero-note span{text-transform:uppercase;color:var(--color-accent);font-size:.8rem;font-weight:700;display:block}.professors-hero-note strong{margin:6px 0;display:block}.professors-hero-note small{color:var(--color-text-soft)}.professor-summary-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.professor-summary-card strong{font-size:1.4rem}.professor-check-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.professor-check-intro,.professor-check-card{padding:20px}.professor-check-intro-highlight{background:radial-gradient(circle at 100% 0,#c2d92f29,#0000 28%),linear-gradient(135deg,#fffbf1f2,#fff7e5e0);grid-column:1/-1}.professor-check-intro strong,.professor-check-intro span{display:block}.professor-check-intro strong{margin-top:.5rem;font-size:1.2rem}.professor-check-intro span,.professor-check-intro small{color:var(--color-text-soft)}.professor-check-intro-top,.professor-check-date-row,.professor-check-card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.professor-check-date-row{margin-top:14px}.professor-check-date-row span{text-align:right}.professor-check-live-chip{background:#ffffffb3;border:1px solid #b99a5433;border-radius:16px;justify-content:center;align-items:center;gap:10px;min-width:110px;padding:12px 14px;display:inline-flex}.professor-check-live-dot{background:var(--color-lime);border-radius:999px;width:10px;height:10px;animation:1.8s ease-in-out infinite professor-live-pulse;box-shadow:0 0 0 6px #c2d92f29}.professor-check-summary-strip{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:18px;display:grid}.professor-check-summary-pill{background:#ffffffc7;border:1px solid #b99a5429;border-radius:16px;padding:14px 16px}.professor-check-summary-pill span,.professor-check-summary-pill strong{display:block}.professor-check-summary-pill span{color:var(--color-text-soft);font-size:.8rem}.professor-check-summary-pill strong{margin-top:8px;font-size:1.5rem;line-height:1}.professor-check-summary-pill.is-pending strong{color:#8a6a1d}.professor-check-summary-pill.is-completed strong{color:#1f6f43}.professor-check-card{flex-direction:column;gap:.75rem;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;position:relative;overflow:hidden}.professor-check-card:before{content:"";background:#b99a5440;height:4px;position:absolute;inset:0 0 auto}.professor-check-card.is-pending:before{background:#c89517}.professor-check-card.is-completed:before{background:#1f6f43}.professor-check-card:hover{box-shadow:var(--color-shadow-soft);transform:translateY(-2px)}.professor-check-badge{letter-spacing:.02em;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:8px 12px;font-size:.76rem;font-weight:800;display:inline-flex}.professor-check-badge.is-pending{color:#8a6a1d;background:#c8951724}.professor-check-badge.is-completed{color:#1f6f43;background:#1f6f4324}.professor-check-status{align-items:center;gap:.5rem;margin:0;font-weight:700;display:inline-flex}.professor-check-status.is-pending{color:#8a6a1d}.professor-check-status.is-completed{color:#1f6f43}.professor-check-dot{background:currentColor;border-radius:999px;width:.7rem;height:.7rem}.professor-check-detail{color:var(--color-text-soft);margin:0}.professor-check-teacher{color:var(--color-text-soft);font-weight:700}.professor-check-action{border-radius:var(--radius-sm);border:1px solid #0000;width:100%;padding:.8rem 1rem;font-size:.98rem;font-weight:700;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s,color .18s}.professor-check-action.is-pending{color:#f8fffb;text-shadow:0 1px #08261329;background:linear-gradient(135deg,#2caa63,#1f8f53);border-color:#14683942;box-shadow:0 14px 28px #1f8f5338}.professor-check-action.is-pending:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 18px 32px #1f8f5347}.professor-check-action.is-pending:focus-visible{outline-offset:3px;outline:3px solid #2caa633d}.professor-check-action.is-completed{color:#1f6f43;background:#1f6f431f;border-color:#1f6f4333}.professor-check-action:disabled{opacity:.72}.professor-check-empty,.professor-check-finished,.professor-check-completed{grid-column:1/-1}.professor-check-empty h3,.professor-check-empty p{margin:0}.professor-check-empty p+p,.professor-check-empty h3+p{margin-top:10px}.professor-check-completed-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.professor-check-completed-copy{min-width:0;padding-left:4px}.professor-check-completed-head h3,.professor-check-completed-head p{margin:0}.professor-check-completed-head p:last-child{color:var(--color-text-soft);margin-top:8px}.professor-check-icon-button{width:42px;height:42px;color:var(--color-accent);background:#ffffffdb;border:1px solid #b99a5433;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;transition:transform .18s,box-shadow .18s,border-color .18s;display:inline-flex;box-shadow:0 8px 18px #684f1814}.professor-check-icon-button:hover{border-color:#b99a5461;transform:translateY(-1px);box-shadow:0 12px 24px #684f181f}.professor-check-completed-list{gap:10px;margin-top:16px;display:grid}.professor-check-completed-row{background:#ffffffb8;border:1px solid #b99a5424;border-radius:14px;grid-template-columns:minmax(100px,140px) minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;display:grid}.professor-check-completed-meta strong,.professor-check-completed-meta small{display:block}.professor-check-completed-meta small{color:var(--color-text-soft);margin-top:4px}.professor-check-completed-row span,.professor-check-completed-row small{display:block}.professor-check-completed-subject{gap:4px;display:grid}.professor-check-completed-subject small{color:var(--color-text-soft)}.professor-check-completed-times{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:inline-flex}.professor-check-time-chip{text-align:left;background:#ffffffeb;border:1px solid #b99a5429;border-radius:12px;min-width:108px;padding:8px 10px}.professor-check-time-chip span,.professor-check-time-chip strong{display:block}.professor-check-time-chip span{letter-spacing:.03em;text-transform:uppercase;color:var(--color-text-soft);font-size:.72rem;font-weight:800}.professor-check-time-chip strong{margin-top:4px;font-size:.98rem;line-height:1}.professor-check-time-chip.is-entry strong{color:#1f6f43}.professor-check-time-chip.is-exit strong{color:var(--color-accent)}.professor-breakdown{flex-direction:column;gap:.75rem;display:flex}@media (width<=900px){.professors-hero{grid-template-columns:1fr}.professor-check-intro-top,.professor-check-date-row,.professor-check-card-head{flex-direction:column;align-items:flex-start}.professor-check-date-row span{text-align:left}.professor-check-live-chip{justify-content:flex-start;width:100%}.professor-check-badge{white-space:normal}.professor-check-completed-head,.professor-check-completed-row{flex-direction:column;grid-template-columns:1fr}.professor-check-completed-times{justify-content:flex-start}}@keyframes professor-live-pulse{0%,to{transform:scale(1);box-shadow:0 0 #c2d92f4d}50%{transform:scale(1.08);box-shadow:0 0 0 8px #c2d92f00}}.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-pagination,.student-table-wrap,.student-detail{padding:24px}.students-header{box-shadow:var(--color-shadow-soft);background:linear-gradient(135deg,#fffdf6f5,#fff0c9c7)}.students-header-copy{gap:10px;padding-top:6px;padding-left:12px;display:grid}.students-header-copy h1{margin:0;line-height:1}.student-form{gap:24px;padding:0}.student-form>.inline-actions{z-index:2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#fffdf76b,#fffdf7eb);border-top:1px solid #b99a5424;justify-content:flex-end;margin:0 -28px -28px;padding:14px 28px 18px;position:sticky;bottom:-28px}.student-form>.inline-actions .primary-button{margin-top:0}.student-form>.inline-actions .secondary-button,.student-form>.inline-actions .primary-button{box-shadow:none}.student-form-modal-panel{width:100%;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;margin:0}.detail-grid,.form-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.detail-block,.form-section{border-radius:var(--radius-md);box-shadow:var(--color-shadow-soft);background:linear-gradient(#fffdf6eb,#fff7e2a8);border:1px solid #b99a5438;padding:20px}.detail-block{border-radius:var(--radius-md);background:linear-gradient(#fffdf6e6,#fff6e0b8);border:1px solid #b99a5438;padding:18px}.detail-block h3,.form-section h3{margin-bottom:6px}.form-section h3{font-size:1.4rem}.form-section-lead{max-width:58ch;color:var(--color-text-soft);margin-bottom:18px;font-size:.94rem;line-height:1.45}.form-section:first-of-type{position:relative;overflow:hidden}.form-section:first-of-type:before{content:"";background:var(--gradient-gold);height:4px;position:absolute;inset:0 0 auto}.compact-field{margin-top:0}.full-width{grid-column:1/-1}.field-help{color:var(--color-text-soft)}.field-link{width:fit-content;color:var(--color-accent);font-weight:800;text-decoration:none}.field-link:hover{text-decoration:underline}.assigned-class-builder{border-radius:var(--radius-md);background:#fffdf69e;border:1px solid #b99a5438;gap:18px;padding:18px;display:grid}.assigned-class-builder .secondary-button{justify-self:start;margin:0}.agenda-picker-block{gap:10px;display:grid}.agenda-picker-block>strong{color:var(--color-text);font-size:.92rem}.schedule-choice-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;display:grid}.schedule-day-groups{gap:12px;display:grid}.schedule-day-group{border-radius:var(--radius-sm);background:#fffffbd6;border:1px solid #b99a5438}.schedule-day-group-header{gap:3px;display:grid}.schedule-day-group-header small{color:var(--color-text-soft)}.schedule-day-group{padding:12px}.schedule-day-group-header{text-transform:capitalize;margin-bottom:12px}.schedule-day-group .schedule-choice-grid{max-height:220px;padding-right:4px;overflow:auto}.schedule-choice{border-radius:var(--radius-sm);color:var(--color-text);background:#fffffbd6;border:1px solid #b99a5438;align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.schedule-choice span{gap:3px;line-height:1.3;display:grid}.schedule-choice small{color:var(--color-text-soft)}.schedule-choice-selected{background:linear-gradient(#fff1c8f5,#ffe3a4e0);border-color:#714c0eb8;box-shadow:0 0 0 2px #c2902938}.schedule-choice-selected strong{color:#4b2f07;font-size:1.02rem}.schedule-choice-selected small{color:#6a4308;font-weight:800}.schedule-choice-low{background:#fff0c5b8;border-color:#9b670861}.schedule-choice-low small{color:var(--color-warning);font-weight:800}.schedule-choice-full{color:var(--color-text-soft);background:#ccbea23d}.schedule-choice-full small{color:var(--color-danger);font-weight:800}.assigned-class-list{gap:10px;margin-top:14px;display:grid}.assigned-class-row{border-radius:var(--radius-sm);background:#fffdf6c7;border:1px solid #b99a5438;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.assigned-class-row div{gap:2px;display:grid}.assigned-class-row span{color:var(--color-text-soft);font-size:.92rem}.student-empty,.student-search,.student-pagination,.student-table-wrap,.student-detail{background:var(--gradient-panel)}.student-pagination,.student-pagination-actions{gap:12px;display:flex}.student-pagination{justify-content:space-between;align-items:center}.student-pagination-copy{gap:4px;display:grid}.student-pagination strong{font-size:.95rem}.student-pagination small{color:var(--color-text-soft);line-height:1.4}.feedback-error{color:var(--color-danger);background:var(--color-danger-soft);border-color:#9e2f2f2e}.student-fab{z-index:20;color:#fff8f1;background:var(--gradient-ink);border:1px solid #e8c65a61;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 #22190b47}.student-fab:hover{transform:translateY(-1px);box-shadow:0 22px 38px #5c291252}@media (width<=900px){.student-form-modal-panel{width:100%;margin-left:0;margin-right:0}.form-section{padding:16px}.students-header,.section-header,.inline-actions,.student-pagination,.student-actions,.assigned-class-row{flex-direction:column;align-items:stretch}.assigned-class-builder .secondary-button{justify-self:stretch}.student-fab{bottom:22px;right:22px}.students-header-copy{padding-left:6px}}@media (width<=640px){.form-grid{grid-template-columns:1fr}.assigned-class-builder{padding:14px}.schedule-choice-grid{grid-template-columns:1fr}.schedule-day-group .schedule-choice-grid{max-height:260px}.student-form>.inline-actions{margin:0 -18px -18px;padding:14px 18px 18px;bottom:-18px}}.student-table{border-collapse:separate;border-spacing:0;width:100%;overflow:hidden}.student-table th,.student-table td{text-align:left;vertical-align:top;border-bottom:1px solid #b99a542e;padding:15px 12px}.student-table thead th{z-index:1;letter-spacing:.08em;text-transform:uppercase;color:#fff3cf;background:linear-gradient(#241e12fa,#49391ff5);border-bottom:1px solid #e8c65a3d;padding:18px 14px;font-size:.78rem;font-weight:800;position:sticky;top:0;box-shadow:inset 0 -1px #ffecbe14}.student-table tbody tr:hover>td{background:#fff0c96b}.student-table tbody tr.student-row-inactive>td{color:var(--color-text-soft);background:#ccbea224}.student-table tbody tr.student-row-inactive:hover>td{background:#ccbea238}.table-action,.student-status,.checkbox-pill{border-radius:999px}.table-action{cursor:pointer;color:var(--color-text);background:#fffffbf2;border:1px solid #b99a5452;align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.accordion-row td{background:linear-gradient(#fffaefe6,#fff1ccb8);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;font-weight:800;display:inline-flex}.medical-certificate-badge{background:var(--color-success-bg);color:var(--color-success-text);border:1px solid #23543b1f;border-radius:999px;gap:2px;padding:6px 10px;font-size:.85rem;font-weight:800;display:inline-grid}.medical-certificate-badge small{color:inherit;font-size:.72rem;font-weight:600}.medical-certificate-vencido,.medical-certificate-sin-cargar{color:var(--color-danger);background:var(--color-danger-soft);border-color:#9e2f2f2e}.medical-certificate-por-vencer,.medical-certificate-sin-archivo,.medical-certificate-sin-vencimiento{color:var(--color-warning);background:var(--color-warning-soft);border-color:#9b67082e}.student-status-inactivo{background:var(--color-danger-soft);color:var(--color-danger);border:1px solid #9e2f2f2e}.student-status-suspendido{background:var(--color-warning-soft);color:var(--color-warning);border:1px solid #9b67082e}.form-grid textarea,.form-grid select,.field input[type=file]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fffdf6f0;padding:12px 14px}.checkbox-grid{flex-wrap:wrap;gap:10px;display:flex}.checkbox-pill{background:#fffffbe6;border:1px solid #b99a5447;align-items:center;gap:8px;min-width:0;padding:10px 12px;display:inline-flex}.checkbox-pill span{overflow-wrap:anywhere}.student-actions{flex-wrap:wrap}
