:root{--color-primary:#1f8a70;--color-primary-dark:#0f2925;--color-primary-light:#e8f7f2;--color-bg:#f4f7f6;--color-surface:#fff;--color-text:#14221f;--color-text-secondary:#6b7c77;--color-border:#e2ebe7;--color-success:#1f8a70;--color-success-bg:#e8f7f2;--color-warning:#e89a3c;--color-warning-bg:#fff6e9;--color-error:#e05a5a;--color-error-bg:#fdecec;--color-info:#4c8ddb;--color-info-bg:#eaf2fb;--color-sidebar:#102c28;--color-sidebar-soft:#163d36;--color-accent:#2bb673;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--shadow-sm:0 1px 2px #102c280a;--shadow-md:0 12px 28px #102c2814;--sidebar-width:248px;--sidebar-collapsed-width:78px;--header-height:68px;--font-sans:"Plus Jakarta Sans", "Segoe UI", sans-serif;--font-display:"Sora", "Plus Jakarta Sans", sans-serif;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45}*,:before,:after{box-sizing:border-box}html{overscroll-behavior:none;height:100dvh}html,body,#root{min-height:100dvh;margin:0}body{background:var(--color-bg);color:var(--color-text);overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}@media (display-mode:standalone){html,body{overscroll-behavior:none;-webkit-user-select:none;user-select:none}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text}.app-footer{padding-bottom:calc(12px + env(safe-area-inset-bottom,0))}}h1,h2,h3,.page-title,.brand-name,.header-title{font-family:var(--font-display)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:linear-gradient(180deg, #163d36 0%, var(--color-sidebar) 55%, #0b1f1c 100%);color:#fff;z-index:40;flex-direction:column;transition:width .22s,transform .22s;display:flex;position:fixed;inset:0 auto 0 0;overflow:hidden}.sidebar.is-collapsed{width:var(--sidebar-collapsed-width)}.sidebar.is-collapsed .brand-text,.sidebar.is-collapsed .nav-label,.sidebar.is-collapsed .sidebar-user-meta,.sidebar.is-collapsed .brand-tagline{display:none}.sidebar.is-collapsed .sidebar-brand{justify-content:center;padding:16px 10px}.sidebar.is-collapsed .sidebar-link{justify-content:center;padding:12px}.sidebar.is-collapsed .sidebar-link-icon{background:0 0;border-radius:0;width:auto;height:auto}.sidebar.is-collapsed .sidebar-user-chip{justify-content:center;padding:8px}.sidebar.is-collapsed .sidebar-bottom{padding:10px}.sidebar.is-collapsed .sidebar-mountains{opacity:.5}.sidebar-backdrop{display:none}.sidebar-brand{z-index:2;align-items:center;gap:12px;padding:22px 20px 18px;display:flex;position:relative}.brand-mark{color:#8ff0c2;background:#2bb67333;border:1px solid #2bb67359;border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}.brand-mark.large{width:58px;height:58px}.brand-name{letter-spacing:-.02em;margin:0;font-size:16px;font-weight:700}.brand-tagline{opacity:.72;max-width:140px;margin:2px 0 0;font-size:10px;line-height:1.3}.collapse-btn{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;background:#fff;border-radius:10px;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid}.collapse-btn:hover{color:var(--color-primary);background:var(--color-primary-light);border-color:#b7e4d4}.desktop-only{display:grid}.mobile-only{display:none}.sidebar-close{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:8px;margin-left:auto;padding:6px;display:none}.school-switcher{z-index:2;padding:0 14px 12px;position:relative}.school-switcher label{letter-spacing:.06em;text-transform:uppercase;color:#ffffff8c;margin-bottom:6px;font-size:10px;font-weight:650;display:block}.school-switcher select{color:#fff;background:#ffffff14;border:1px solid #ffffff24;border-radius:10px;outline:none;width:100%;padding:9px 10px;font-size:12.5px;font-weight:600}.school-switcher select option{color:#102c28}.sidebar.is-collapsed .school-switcher{display:none}.sidebar-nav{z-index:2;flex-direction:column;flex:1;gap:4px;padding:8px 14px 18px;display:flex;position:relative;overflow:auto}.session-select{z-index:6;position:relative}.session-select-trigger{color:#14221f;cursor:pointer;background:#fff;border:1px solid #e2ebe7;border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:0 12px;font-size:13px;font-weight:650;display:inline-flex;box-shadow:0 4px 14px #0f29250a}.session-select-trigger:hover,.session-select-trigger.is-open{border-color:#b7e4d4}.session-select-trigger:disabled{opacity:.55;cursor:not-allowed}.session-select-icon,.session-select-chevron{color:#6b7c77}.session-select-trigger.is-open .session-select-chevron{transform:rotate(180deg)}.session-select-panel{z-index:260;background:#fff;border:1px solid #e2ebe7;border-radius:14px;gap:4px;width:min(280px,100vw - 32px);padding:8px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 40px #0f29251f}.session-select-option{text-align:left;cursor:pointer;color:#14221f;background:0 0;border:none;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.session-select-option:hover{background:#f3fbf8}.session-select-option.is-selected{background:#e8f7f2}.session-select-option strong{font-size:13px;display:block}.session-select-option small{color:#6b7c77;margin-top:2px;font-size:11px;display:block}.renew-drawer{gap:14px;display:grid}.renew-path{color:#0f766e;background:#e8f7f2;border-radius:999px;align-items:center;gap:8px;width:fit-content;padding:8px 12px;font-size:13px;font-weight:650;display:inline-flex}.renew-path strong{color:#14221f}.renew-toolbar-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.renew-apply-bar{background:#f7fbfa;border:1px solid #e2ebe7;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.renew-apply-meta{color:#6b7c77;margin:0;font-size:12px;font-weight:650}.renew-apply-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.renew-apply-controls .select-field{min-width:160px}.renew-chip-btn{color:#14221f;cursor:pointer;background:#fff;border:1px solid #d5e3dd;border-radius:999px;min-height:36px;padding:0 12px;font-size:12px;font-weight:700}.renew-chip-btn:hover{background:#f3fbf8;border-color:#1f8a70}.renew-groups{gap:12px;display:grid}.renew-group{background:#fff;border:1px solid #e2ebe7;border-radius:16px;padding:12px}.renew-group-head{border-bottom:1px solid #eef3f1;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:10px;display:flex}.renew-group-title{align-items:center;gap:10px;min-width:0;display:flex}.renew-group-title strong{color:#14221f;font-size:14px;display:block}.renew-group-title span{color:#6b7c77;margin-top:2px;font-size:11px;font-weight:650;display:block}.renew-check-btn{cursor:pointer;background:#fff;border:1.5px solid #c5d5cf;border-radius:6px;flex-shrink:0;width:18px;height:18px;position:relative}.renew-check-btn.is-on{background:#1f8a70;border-color:#1f8a70}.renew-check-btn.is-on:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}.renew-group-select{width:min(160px,100%)}.renew-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.renew-row{background:#fbfcfc;border:1px solid #e8efec;border-radius:12px;grid-template-columns:minmax(0,1.5fr) minmax(120px,.85fr) 110px;align-items:center;gap:10px;padding:10px 12px;display:grid}.renew-row.is-off{opacity:.42}.renew-check{align-items:center;gap:10px;min-width:0;display:flex}.renew-check input{flex-shrink:0}.renew-avatar{color:#1f8a70;background:#e8f7f2;border-radius:10px;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:13px;font-weight:750;display:grid}.renew-student{min-width:0}.renew-student strong{color:#14221f;white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.renew-student small{color:#6b7c77;margin-top:2px;font-size:11px;font-weight:650;display:block}.renew-arrow{color:#1f8a70;margin:0 5px}.renew-fee-field{gap:4px;display:grid}.renew-fee-field>span{letter-spacing:.04em;text-transform:uppercase;color:#6b7c77;font-size:10px;font-weight:700}.renew-fee{min-height:38px}.renew-empty{text-align:center;color:var(--color-text-secondary);margin:0;padding:24px 12px;font-size:13px}.session-history-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.session-history-item{border:1px solid var(--color-border);background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.session-history-item strong{font-size:13px;display:block}.session-history-item small{color:var(--color-text-secondary);margin-top:2px;font-size:11px;display:block}@media (width<=720px){.renew-toolbar-grid{grid-template-columns:1fr}.renew-apply-bar{align-items:stretch}.renew-apply-controls{width:100%}.renew-apply-controls .select-field,.renew-group-select{width:100%;min-width:0}.renew-group-head{flex-direction:column;align-items:stretch}.renew-row{grid-template-columns:1fr}}.month-picker{z-index:5;position:relative}.month-picker-trigger{color:#14221f;cursor:pointer;background:#fff;border:1px solid #e2ebe7;border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:0 12px 0 14px;font-size:13px;font-weight:650;transition:border-color .15s,box-shadow .15s;display:inline-flex;box-shadow:0 4px 14px #0f29250a}.month-picker-trigger:hover,.month-picker-trigger.is-open{border-color:#b7e4d4;box-shadow:0 6px 18px #0f292514}.month-picker-cal{color:#6b7c77}.month-picker-chevron{color:#6b7c77;transition:transform .15s}.month-picker-trigger.is-open .month-picker-chevron{transform:rotate(180deg)}.month-picker-panel{z-index:260;background:#fff;border:1px solid #e2ebe7;border-radius:16px;width:min(280px,100vw - 32px);padding:12px;animation:.16s month-picker-in;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 40px #0f29251f}.month-picker-panel.is-portal,.session-select-panel.is-portal{z-index:260;max-height:min(70vh,420px);position:fixed;right:auto;overflow:auto}@keyframes month-picker-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.month-picker-year-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.month-picker-year-row strong{color:#14221f;font-size:14px}.month-picker-arrow{color:#14221f;cursor:pointer;background:#f7fbfa;border:1px solid #e2ebe7;border-radius:8px;place-items:center;width:30px;height:30px;display:grid}.month-picker-arrow:hover:not(:disabled){background:#e8f7f2;border-color:#b7e4d4}.month-picker-arrow:disabled{opacity:.4;cursor:not-allowed}.month-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.month-picker-option{color:#14221f;cursor:pointer;background:#f7fbfa;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:4px;min-height:38px;font-size:13px;font-weight:650;display:inline-flex}.month-picker-option:hover{background:#e8f7f2;border-color:#b7e4d4}.month-picker-option.is-current:not(.is-selected){border-color:#cde9df}.month-picker-option.is-selected{color:#fff;background:#1f8a70;border-color:#1f8a70}.month-picker-option.is-disabled,.month-picker-option:disabled{opacity:.28;cursor:not-allowed;color:#8a9893;background:#f3f5f4;border-color:#0000}.month-picker-today{color:#1f8a70;cursor:pointer;background:0 0;border:none;width:100%;margin-top:10px;padding:6px 0 2px;font-size:12px;font-weight:700}.month-picker-today:hover{text-decoration:underline}.week-picker{background:#fff;border:1px solid #e2ebe7;border-radius:12px;padding:8px 10px;box-shadow:0 4px 14px #0f292508}.week-picker-toolbar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.week-picker-arrow{color:#14221f;cursor:pointer;background:#f7fbfa;border:1px solid #e2ebe7;border-radius:8px;place-items:center;width:28px;height:28px;transition:background .15s,border-color .15s;display:grid}.week-picker-arrow:hover{background:#e8f7f2;border-color:#b7e4d4}.week-picker-label{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.week-picker-label strong{color:#14221f;font-size:12px}.week-picker-label .text-link{font-size:12px}.week-picker-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.week-day{color:#4d635c;cursor:pointer;background:#f7fbfa;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:1px;padding:5px 2px;transition:background .15s,border-color .15s,color .15s;display:flex}.week-day:hover{background:#eef7f3;border-color:#d3e8e0}.week-day.is-today:not(.is-selected){color:#0f4f42;border-color:#b7e4d4}.week-day.is-selected{color:#fff;background:#1f8a70;border-color:#0000;box-shadow:0 4px 10px #1f8a7033}.week-day-name{letter-spacing:.02em;text-transform:uppercase;opacity:.8;font-size:10px;font-weight:700}.week-day-num{font-size:13px;font-weight:800;line-height:1.1}@media (width<=640px){.week-picker{padding:6px 8px}.week-picker-days{gap:3px}.week-day{padding:4px 1px}.week-day-num{font-size:12px}}.admin-page .page-header h1,.admin-page .dash-welcome h1,.sc-page .page-header h1{letter-spacing:-.02em}.admin-page{--admin-ink:#14221f;--admin-muted:#6b7c77;--admin-line:#14221f14;--admin-soft:#f3f7f5;--admin-green:#1f8a70}.admin-page.is-soft-loading,.sc-page.is-soft-loading{opacity:.92;pointer-events:none;transition:opacity .15s}.admin-hero{color:#f4fffb;background:radial-gradient(circle at 92% 0,#ffffff29,#0000 32%),linear-gradient(135deg,#1f8a70 0%,#146b57 48%,#0f2925 100%);border-radius:22px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:18px;padding:28px 28px 26px;animation:.45s both admin-fade-up;display:flex;box-shadow:0 18px 40px #0f292529}.admin-hero-eyebrow{letter-spacing:.14em;text-transform:uppercase;opacity:.78;margin:0;font-size:12px;font-weight:800}.admin-hero h1{letter-spacing:-.04em;margin:8px 0 0;font-size:34px;line-height:1.05}.admin-hero-copy>p:last-child{opacity:.9;max-width:38ch;margin:10px 0 0;font-size:14px;line-height:1.5}.admin-hero-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.admin-hero .btn{color:#0f4f42;background:#fff;border:0;box-shadow:0 8px 18px #081c181f}.admin-hero .btn:hover:not(:disabled){background:#f3fffb}.admin-hero-link{color:#f4fffb;opacity:.92;align-items:center;gap:6px;padding:10px 4px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.admin-hero-link:hover{opacity:1;text-underline-offset:3px;text-decoration:underline}.admin-metrics{border:1px solid var(--admin-line);background:linear-gradient(180deg, #fffffff5, #f7fbf9f5), var(--admin-soft);border-radius:18px;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-bottom:18px;animation:.5s 50ms both admin-fade-up;display:grid;overflow:hidden}.admin-metrics>div{border-right:1px solid var(--admin-line);padding:18px 20px}.admin-metrics>div:last-child{border-right:0}.admin-metrics span{letter-spacing:.06em;text-transform:uppercase;color:var(--admin-muted);font-size:11px;font-weight:700;display:block}.admin-metrics strong{letter-spacing:-.03em;color:var(--admin-ink);margin-top:8px;font-size:26px;line-height:1;display:block}.admin-metrics small{color:var(--admin-muted);margin-top:8px;font-size:12px;display:block}.admin-metrics>div.is-warn strong{color:#c2410c}.admin-grid{grid-template-columns:minmax(0,1.45fr) minmax(280px,.9fr);align-items:start;gap:16px;animation:.55s .1s both admin-fade-up;display:grid}.admin-panel{border:1px solid var(--admin-line);background:#ffffffe0;border-radius:18px;min-width:0;padding:18px 18px 10px}.admin-empty-panel{padding:28px 18px}.admin-panel-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.admin-panel-head h2{letter-spacing:-.02em;color:var(--admin-ink);margin:0;font-size:18px}.admin-panel-head p{color:var(--admin-muted);margin:4px 0 0;font-size:13px}.admin-count{color:var(--admin-muted);background:var(--admin-soft);border-radius:999px;flex-shrink:0;padding:5px 10px;font-size:12px;font-weight:700}.admin-school-list,.admin-pay-list{flex-direction:column;max-height:560px;margin:8px -6px 0;padding:0 6px 8px;display:flex;overflow:auto}.admin-school-row{border-top:1px solid var(--admin-line);color:inherit;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 8px;text-decoration:none;transition:background .15s,padding-left .15s;display:grid}.admin-school-row:first-child{border-top:0}.admin-school-row:hover{background:#1f8a700d;border-radius:12px;padding-left:12px}.admin-school-row-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-school-row-title strong{color:var(--admin-ink);letter-spacing:-.01em;font-size:15px}.admin-school-row-main p{color:var(--admin-muted);margin:4px 0 0;font-size:12px}.admin-school-modules-line{color:#4f7368!important}.admin-school-row-side{text-align:right;min-width:112px}.admin-school-row-side strong{color:var(--admin-green);letter-spacing:-.02em;font-size:15px;display:block}.admin-school-row-side span{color:var(--admin-muted);margin-top:3px;font-size:12px;display:block}.admin-school-row-side em{color:var(--admin-green);opacity:0;align-items:center;gap:4px;margin-top:8px;font-size:12px;font-style:normal;font-weight:700;transition:opacity .15s,transform .15s;display:inline-flex;transform:translate(-4px)}.admin-school-row:hover .admin-school-row-side em{opacity:1;transform:translate(0)}.admin-school-row.tone-neutral{opacity:.78}.admin-pay-row{border-top:1px solid var(--admin-line);justify-content:space-between;align-items:center;gap:12px;padding:14px 4px;display:flex}.admin-pay-row:first-child{border-top:0}.admin-pay-row strong{color:var(--admin-ink);font-size:14px;display:block}.admin-pay-row span{color:var(--admin-muted);margin-top:3px;font-size:12px;display:block}.admin-pay-row em{color:var(--admin-green);white-space:nowrap;font-size:15px;font-style:normal;font-weight:800}.admin-attention{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;align-items:center;gap:10px;margin:8px 0 10px;padding:12px 14px;display:flex}.admin-attention p{flex:1;margin:0;font-size:13px;font-weight:600}.admin-attention a{color:#9a3412;font-size:13px;font-weight:800;text-decoration:none}.admin-attention a:hover{text-decoration:underline}@keyframes admin-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=980px){.admin-grid{grid-template-columns:1fr}.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-metrics>div:nth-child(2){border-right:0}.admin-metrics>div:first-child,.admin-metrics>div:nth-child(2){border-bottom:1px solid var(--admin-line)}}@media (width<=720px){.admin-hero{align-items:flex-start;padding:22px 18px}.admin-hero h1{font-size:28px}.admin-hero-actions{width:100%}.admin-metrics{grid-template-columns:1fr 1fr}.admin-school-row{grid-template-columns:1fr;gap:10px}.admin-school-row-side{text-align:left;flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-school-row-side strong,.admin-school-row-side span,.admin-school-row-side em{margin-top:0}.admin-school-row-side em{opacity:1;transform:none}}.form-section-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted,#6b7280);margin-top:4px;font-size:12px;font-weight:700}.sc-muted{color:#6b7c77;font-size:13px}.reports-grid{grid-template-columns:minmax(260px,.9fr) minmax(0,1.3fr);align-items:start;gap:16px;margin-bottom:16px;display:grid}.reports-scroll-wrap{max-height:460px;overflow:auto}.reports-inline-meter{gap:6px;min-width:90px;display:grid}.reports-inline-meter .progress-block{margin:0}.reports-inline-meter .progress-track{height:6px}.reports-strength-table th,.reports-att-table th,.reports-fee-table th{letter-spacing:.04em;text-transform:uppercase;color:#6b7c77;font-size:11px}.reports-page .reports-strength-table td,.reports-page .reports-att-table td,.reports-page .reports-fee-table td{vertical-align:middle}.fee-report-count{color:#6b7c77;background:#f4f7f6;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.fee-report-list{flex-direction:column;gap:12px;display:flex}.fee-report-card{background:#fff;border:1px solid #e2ebe7;border-radius:14px;padding:14px 16px;box-shadow:inset 3px 0 #d7e3df}.fee-report-card.tone-success{background:linear-gradient(90deg,#1f8a700a,#fff 40%);box-shadow:inset 3px 0 #1f8a70}.fee-report-card.tone-warning{background:linear-gradient(90deg,#e89a3c0d,#fff 40%);box-shadow:inset 3px 0 #e89a3c}.fee-report-card.tone-error{background:linear-gradient(90deg,#e05a5a0a,#fff 40%);box-shadow:inset 3px 0 #e05a5a}.fee-report-top{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.fee-report-top strong{color:#14221f;font-size:15px;display:block}.fee-report-top p{color:#6b7c77;margin:4px 0 0;font-size:12px}.fee-report-amounts{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.fee-report-amounts>div{background:#f7fbfa;border:1px solid #e2ebe7;border-radius:10px;padding:10px 12px}.fee-report-amounts span{letter-spacing:.04em;text-transform:uppercase;color:#6b7c77;margin-bottom:4px;font-size:10px;font-weight:700;display:block}.fee-report-amounts strong{color:#14221f;font-size:14px}.fee-report-amounts strong.is-paid{color:#1f8a70}.fee-report-amounts strong.is-pending{color:#c45b2d}@media (width<=900px){.fee-report-amounts{grid-template-columns:repeat(2,minmax(0,1fr))}}.report-list{flex-direction:column;gap:10px;display:flex}.report-list-item{background:#fff;border:1px solid #e7f0ec;border-radius:12px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.report-list-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.report-list-item strong{color:#14221f;font-size:13px;display:block}.report-list-item span{color:#6b7c77;margin-top:2px;font-size:11px;display:block}.report-list-top em{color:#0f766e;flex-shrink:0;font-size:13px;font-style:normal;font-weight:800}.header-title-block{flex:1;min-width:0;margin-left:4px}.header-title{color:#14221f;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:15px;font-weight:700;overflow:hidden}.header-subtitle{color:#6b7c77;white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:12px;overflow:hidden}.att-filters{grid-template-columns:1.4fr 1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.att-filters .form-field{margin:0}.filters-bar{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.filters-bar.is-inline{margin-bottom:0}.filters-bar-row.filters-bar-inline.cols-2{grid-template-columns:minmax(0,1.7fr) minmax(200px,.9fr);align-items:end}.filters-bar-row.filters-bar-inline.cols-3{grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(140px,.8fr));align-items:end}.filters-bar-row.filters-bar-inline.cols-4{grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(130px,.75fr));align-items:end}.filters-bar-search-row{grid-template-columns:1fr;gap:10px;display:grid}.filters-bar-row{grid-template-columns:minmax(180px,2fr) repeat(auto-fit,minmax(150px,1fr));align-items:end;gap:12px;display:grid}.filters-bar-row.filters-bar-controls{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.filters-bar-row.cols-2{grid-template-columns:minmax(220px,1.6fr) minmax(160px,1fr)}.filters-bar-row.cols-2.filters-bar-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.filters-bar-row.cols-3.filters-bar-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.filters-bar-row.cols-3{grid-template-columns:minmax(150px,.9fr) minmax(220px,1.5fr) minmax(160px,1fr)}.filters-bar-row.cols-4{grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(140px,1fr))}.filters-bar-row.cols-4.filters-bar-controls{grid-template-columns:repeat(4,minmax(0,1fr))}.filters-bar-search,.filters-bar-select,.filters-bar-date{min-width:0;margin:0}.filters-bar-date .form-input[type=date]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;width:100%;min-width:0;min-height:42px;padding:10px 12px;font-size:14px;line-height:1.2}.filters-bar-date .form-input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.7;margin-left:4px}.filters-bar-controls .select-field,.filters-bar-controls .multi-select-field{min-width:0}.filters-bar-controls .select-trigger{width:100%;min-width:0}.filters-bar-meta{color:#6b7c77;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.filters-bar-meta .clear-btn{align-items:center;gap:4px;display:inline-flex}.list-pagination{border-top:1px solid #e2ebe7;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:12px;display:flex}.list-pagination-meta{color:#6b7c77;font-size:12px;font-weight:600}.list-pagination-actions{align-items:center;gap:8px;display:inline-flex}.list-pagination-page{text-align:center;color:#314843;font-variant-numeric:tabular-nums;min-width:52px;font-size:12px;font-weight:700}.select-field,.select-control{position:relative}.select-trigger{border:1px solid var(--color-border);background:var(--color-surface);width:100%;min-height:44px;color:var(--color-text);border-radius:var(--radius-sm);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.select-control.is-open .select-trigger,.select-trigger:focus-visible{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 4px #1f8a7024}.select-control.is-error .select-trigger{border-color:var(--color-error)}.select-control.is-disabled .select-trigger{opacity:.65;cursor:not-allowed;background:#f7faf9}.select-value{color:#14221f;white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.select-placeholder{color:#8a9a95;white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.select-trigger-actions{color:#6b7c77;flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.select-clear{color:#6b7c77;border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.select-clear:hover{color:#14221f;background:#eef4f2}.select-chevron{transition:transform .15s}.select-chevron.is-open{transform:rotate(180deg)}.select-menu{z-index:120;background:#fff;border:1px solid #dce7e3;border-radius:14px;animation:.14s select-pop;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden;box-shadow:0 14px 34px #0f292524}.select-menu.is-portal{z-index:320;flex-direction:column;display:flex;position:fixed;right:auto}.select-menu.is-portal .select-options{flex:auto;min-height:0;max-height:none;overflow:auto}.select-menu.is-portal .multi-select-foot,.select-menu.is-portal .select-search{flex-shrink:0}@keyframes select-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.select-search{color:#6b7c77;background:#f8fbfa;border-bottom:1px solid #e6efec;align-items:center;gap:8px;padding:10px 12px;display:flex}.select-search input{color:#14221f;background:0 0;border:0;outline:none;width:100%;font-size:13px}.select-search input::placeholder{color:#8a9a95}.select-options{max-height:240px;margin:0;padding:6px;list-style:none;overflow:auto}.select-option{color:#14221f;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:13px;display:flex}.select-option:hover,.select-option.is-active{background:#eef7f3}.select-option.is-selected{color:#0f4f42;background:#e8f7f2;font-weight:700}.select-empty{color:#6b7c77;text-align:center;padding:14px 12px;font-size:13px}.multi-select-menu{min-width:240px}.multi-select-option{gap:10px!important}.multi-select-check{color:#fff;background:#fff;border:1.5px solid #c9d8d2;border-radius:6px;flex-shrink:0;place-items:center;width:20px;height:20px;display:inline-grid}.multi-select-check.is-on{background:#1f8a70;border-color:#1f8a70}.multi-select-label{text-align:left;flex:1;min-width:0}.multi-select-count{color:#0f766e;background:#eef7f3;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:24px;height:22px;padding:0 7px;font-size:11px;font-weight:800;display:inline-flex}.multi-select-option.is-selected .multi-select-count{background:#fff}.multi-select-foot{background:#f8fbfa;border-top:1px solid #e6efec;gap:8px;padding:10px;display:flex}.multi-select-foot-btn{color:#24574c;cursor:pointer;background:#fff;border:1px solid #dce8e3;border-radius:10px;flex:1;min-height:36px;font-size:12px;font-weight:750}.multi-select-foot-btn:disabled{opacity:.45;cursor:not-allowed}.multi-select-foot-btn.is-muted{color:#6b7c77}.multi-select-foot-btn.is-primary{color:#fff;background:#1f8a70;border-color:#1f8a70}.multi-select-foot-btn.is-primary:hover{background:#187a62}.select-sheet-root{display:none}.att-snap-list{flex-direction:column;gap:10px;max-height:420px;padding-right:2px;display:flex;overflow:auto}.att-snap-card{background:#fff;border:1px solid #e2ebe7;border-radius:14px;padding:12px 14px;box-shadow:inset 3px 0 #d7e3df}.att-snap-card.tone-success{background:linear-gradient(90deg,#1f8a700d,#fff 42%);box-shadow:inset 3px 0 #1f8a70}.att-snap-card.tone-warning{background:linear-gradient(90deg,#e89a3c0f,#fff 42%);box-shadow:inset 3px 0 #e89a3c}.att-snap-card.tone-error{background:linear-gradient(90deg,#e05a5a0d,#fff 42%);box-shadow:inset 3px 0 #e05a5a}.att-snap-main{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.att-snap-main strong{color:#14221f;font-size:14px;display:block}.att-snap-main p{color:#6b7c77;margin:3px 0 0;font-size:12px}.att-snap-stats{color:#6b7c77;flex-wrap:wrap;gap:8px 14px;margin-bottom:10px;font-size:12px;display:flex}.att-snap-stats b{color:#14221f;font-weight:700}.sc-top-filters,.sc-users-filters{background:#fff;border:1px solid #e2ebe7;border-radius:14px;padding:12px 14px}.sc-top-filters .filters-bar,.sc-users-filters .filters-bar{margin-bottom:0}.sc-users-filters{margin:0 0 14px}.report-kpi-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.report-kpi-row>div{background:#f7fbfa;border:1px solid #e2ebe7;border-radius:12px;padding:12px}.report-kpi-row span{text-transform:uppercase;letter-spacing:.04em;color:#6b7c77;margin-bottom:4px;font-size:11px;font-weight:700;display:block}.report-kpi-row strong{color:#14221f;font-size:18px}.calendar-filters{z-index:40;position:relative;overflow:visible}.calendar-filters.card{overflow:visible}.calendar-layout{grid-template-columns:minmax(0,1.15fr) minmax(340px,.95fr);align-items:start;gap:16px;display:grid}.calendar-toolbar{background:linear-gradient(#f8fcfa,#fff);border-bottom:1px solid #e2ebe7;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.calendar-month-label{align-items:center;gap:10px;display:flex}.calendar-month-label strong{color:#14221f;font-size:16px}.calendar-month-label button{color:#0f766e;cursor:pointer;background:#e8f7f2;border:1px solid #d5e8e1;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:700}.calendar-weekdays{grid-template-columns:repeat(7,1fr);gap:6px;padding:10px 12px 0;display:grid}.calendar-weekdays div{text-align:center;letter-spacing:.04em;text-transform:uppercase;color:#6b7c77;padding:6px 0;font-size:11px;font-weight:700}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;padding:8px 12px 12px;display:grid}.calendar-cell{text-align:left;cursor:pointer;background:#fff;border:1px solid #e2ebe7;border-radius:12px;flex-direction:column;justify-content:space-between;gap:6px;min-height:78px;padding:8px;transition:border-color .15s,background .15s,transform .12s;display:flex}.calendar-cell.is-empty{cursor:default;background:0 0;border-color:#0000}.calendar-cell:hover:not(.is-empty){background:#f7fbfa;border-color:#1f8a70;transform:translateY(-1px)}.calendar-cell.is-today .calendar-day-num{color:#fff;background:#0f766e;border-radius:999px;place-items:center;width:24px;height:24px;display:inline-grid}.calendar-cell.is-selected{background:#e8f7f2;border-color:#1f8a70;box-shadow:0 0 0 2px #1f8a7026}.calendar-cell.has-marks .calendar-day-num{color:#0f3d36}.calendar-day-num{color:#14221f;font-size:13px;font-weight:800}.calendar-cell-meta{justify-content:space-between;align-items:center;gap:4px;display:flex}.calendar-mini-stats{gap:4px;display:inline-flex}.calendar-mini-stats b{border-radius:6px;place-items:center;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-style:normal;font-weight:800;display:inline-grid}.calendar-mini-stats b.is-present{color:#047857;background:#ecfdf5}.calendar-mini-stats b.is-absent{color:#b91c1c;background:#fef2f2}.calendar-chip{white-space:nowrap;border-radius:999px;width:fit-content;max-width:100%;padding:2px 6px;font-size:10px;font-weight:800;line-height:1.2;display:inline-flex}.calendar-chip.is-due{color:#b45309;background:#fffbeb}.calendar-dots{gap:4px;min-height:8px;display:flex}.calendar-dots .dot,.calendar-legend .dot{border-radius:50%;width:8px;height:8px;display:inline-block}.dot.present{background:#1f8a70}.dot.absent{background:#e05a5a}.dot.due{background:#e89a3c}.calendar-legend{color:#6b7c77;flex-wrap:wrap;gap:14px;padding:0 16px 14px;font-size:12px;font-weight:600;display:flex}.calendar-legend span{align-items:center;gap:6px;display:inline-flex}.calendar-side{overflow:hidden}.calendar-side-head{background:linear-gradient(135deg,#f3fbf8,#f7fbfa);border-bottom:1px solid #e2ebe7;grid-template-columns:auto 1fr;align-items:center;gap:12px;padding:14px 16px;display:grid}.calendar-side-head-copy strong{color:#0f3d36;font-size:16px;font-weight:800;display:block}.calendar-side-head-copy p{color:#6b7c77;margin:3px 0 0;font-size:12px;font-weight:600}.calendar-side-tabs{background:#fff;border-bottom:1px solid #e2ebe7;grid-template-columns:1fr 1fr;gap:0;display:grid}.calendar-side-tabs button{color:#6b7c77;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;justify-content:center;align-items:center;gap:8px;padding:12px 10px;font-size:13px;font-weight:700;display:inline-flex}.calendar-side-tabs button em{color:#314843;background:#eef4f2;border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-style:normal;font-weight:800;display:inline-grid}.calendar-side-tabs button.is-active{color:#0f766e;background:#f3fbf8;border-bottom-color:#0f766e}.calendar-side-tabs button.is-active em{color:#047857;background:#d1fae5}.calendar-side-body{max-height:min(70vh,640px);padding:14px 16px 16px;overflow:auto}.calendar-due-total{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;margin:0 0 12px;padding:8px 10px;font-size:12px;font-weight:600}.calendar-due-total strong{font-weight:800}.calendar-day-list{gap:12px;display:grid}.calendar-day-group{background:#fff;border:1px solid #e2ebe7;border-radius:14px;overflow:hidden}.calendar-day-group .students-group-head{background:#f3fbf8;border-bottom:1px solid #dce8e3;padding:10px 12px}.calendar-day-group ul{margin:0;padding:0;list-style:none}.calendar-day-group li{border-bottom:1px solid #f0f4f2;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.calendar-day-group li:last-child{border-bottom:0}.calendar-day-group li.is-absent{background:#fff7f7}.calendar-day-row-meta{flex-shrink:0;align-items:center;gap:8px;display:flex}.calendar-event-list{flex-direction:column;gap:8px;display:flex}.calendar-event-item{background:#fff;border:1px solid #e2ebe7;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.calendar-event-item strong{color:#14221f;font-size:13px;display:block}.calendar-event-item span{color:#6b7c77;font-size:12px}@media (width<=980px){.reports-grid,.calendar-layout,.report-kpi-row,.att-filters,.filters-bar-row:not(.filters-bar-controls),.filters-bar-row.cols-2:not(.filters-bar-controls),.filters-bar-row.cols-3:not(.filters-bar-controls),.filters-bar-row.cols-4:not(.filters-bar-controls){grid-template-columns:1fr}.header-subtitle{display:none}}.sc-metrics-strip{background:#ffffffe6;border:1px solid #14221f14;border-radius:16px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px;display:grid;overflow:hidden}.sc-metrics-strip>div{border-right:1px solid #14221f14;padding:14px 18px}.sc-metrics-strip>div:last-child{border-right:0}.sc-metrics-strip span{letter-spacing:.05em;text-transform:uppercase;color:#6b7c77;font-size:11px;font-weight:700;display:block}.sc-metrics-strip strong{letter-spacing:-.03em;color:#14221f;margin-top:6px;font-size:22px;display:block}.sc-toggle{cursor:pointer;background:#fff;border:1px solid #e2ebe7;border-radius:999px;align-items:center;gap:8px;min-height:32px;padding:4px 10px 4px 4px;display:inline-flex}.sc-toggle:disabled{opacity:.6;cursor:not-allowed}.sc-toggle-track{background:#d7e3df;border-radius:999px;width:34px;height:20px;transition:background .15s;position:relative}.sc-toggle-thumb{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000026}.sc-toggle.is-on .sc-toggle-track{background:#1f8a70}.sc-toggle.is-on .sc-toggle-thumb{transform:translate(14px)}.sc-toggle-label{color:#14221f;text-align:left;min-width:56px;font-size:12px;font-weight:700}.sc-toggle.is-off .sc-toggle-label{color:#6b7c77}.sc-table tr.is-dimmed td{opacity:.7}.sc-shell{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:16px;min-height:560px;display:grid}.sc-rail{background:#fff;border:1px solid #14221f14;border-radius:18px;position:sticky;top:12px;overflow:hidden}.sc-rail-head{padding:16px 16px 8px}.sc-rail-head h3{letter-spacing:-.02em;color:#14221f;margin:0;font-size:15px;font-weight:750}.sc-rail-head p{color:#6b7c77;margin:3px 0 0;font-size:12px}.sc-rail-filters{padding:0 12px 10px}.sc-rail-filters .filters-bar{box-shadow:none;background:0 0;border:0;margin:0;padding:0}.sc-rail-list{border-top:1px solid #14221f0f;max-height:calc(100vh - 260px);overflow:auto}.sc-rail-empty{margin:0;padding:20px 16px}.sc-rail-item{text-align:left;cursor:pointer;background:#fff;border:none;border-bottom:1px solid #f1f5f3;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:13px 16px;transition:background .15s,padding-left .15s;display:flex}.sc-rail-item:hover{background:#f7fbfa;padding-left:18px}.sc-rail-item.is-active{background:#1f8a7014;box-shadow:inset 3px 0 #1f8a70}.sc-rail-item-main{min-width:0}.sc-rail-item-main strong{color:#14221f;white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;display:block;overflow:hidden}.sc-rail-item-main span{color:#6b7c77;margin-top:3px;font-size:12px;display:block}.sc-main{background:#fff;border:1px solid #14221f14;border-radius:18px;min-width:0;padding:22px}.sc-empty{padding:48px 10px}.sc-hero{border-bottom:1px solid #eef3f1;justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:18px;display:flex}.sc-hero-title{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sc-hero-title h2{color:#14221f;letter-spacing:-.03em;margin:0;font-size:24px}.sc-hero-copy>p{color:#6b7c77;margin:6px 0 0;font-size:13px}.sc-hero-meta{align-items:baseline;gap:10px;display:flex;color:#3d5a52!important;margin-top:8px!important;font-size:13px!important}.sc-hero-meta span{letter-spacing:.05em;text-transform:uppercase;color:#6b7c77;flex-shrink:0;min-width:64px;font-size:11px;font-weight:750}.sc-hero-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.sc-detail-metrics{border:1px solid #14221f14;border-radius:14px;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:16px 0 18px;display:grid;overflow:hidden}.sc-detail-metrics>div{background:#fbfdfa;border-right:1px solid #14221f14;padding:14px 14px 12px}.sc-detail-metrics>div:last-child{border-right:0}.sc-detail-metrics span{letter-spacing:.04em;text-transform:uppercase;color:#6b7c77;margin-bottom:6px;font-size:11px;font-weight:700;display:block}.sc-detail-metrics strong{color:#14221f;font-size:15px;display:block}.sc-inline-link{color:#1f8a70;cursor:pointer;background:0 0;border:0;margin-top:6px;padding:0;font-size:12px;font-weight:700}.sc-inline-link:hover{text-decoration:underline}.sc-users-block{border:1px solid #14221f14;border-radius:14px;overflow:hidden}.sc-users-head{background:#fbfdfa;border-bottom:1px solid #14221f0f;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.sc-users-head h3{letter-spacing:-.02em;color:#14221f;margin:0;font-size:15px}.sc-users-head p{color:#6b7c77;margin:3px 0 0;font-size:12px}.sc-users-empty{text-align:center;padding:28px 16px}.sc-users-empty p{color:#6b7c77;margin:0 0 12px}.sc-user-list{flex-direction:column;display:flex}.sc-user-row{border-top:1px solid #f1f5f3;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}.sc-user-row:first-child{border-top:0}.sc-user-row.is-dimmed{opacity:.72}.sc-user-row-main{min-width:0}.sc-user-row-main p{flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0 0;display:flex}.sc-user-role{color:#6b7c77;background:#f4f7f6;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.sc-user-row-side{flex-shrink:0;align-items:center;gap:10px;display:flex}.sc-table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;width:100%;max-width:100%;overflow:auto visible}.school-admin-form{flex-direction:column;gap:16px;display:flex}.school-form-section{background:#fbfdfa;border:1px solid #14221f14;border-radius:14px;padding:16px}.school-form-section>header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.school-form-section>header h3{letter-spacing:-.02em;color:#14221f;margin:0;font-size:15px}.school-form-section>header p{color:#6b7c77;margin:4px 0 0;font-size:12px}.school-form-section-actions{flex-shrink:0;gap:8px;display:flex}.school-form-actions{background:linear-gradient(#fff0,#fff 28%);margin:0 -4px;padding:12px 4px 2px;position:sticky;bottom:0}.school-admin-form .form-grid{gap:14px}.school-admin-form .class-check-grid{max-height:none;margin:0;padding:0}.school-admin-form .school-module-grid{margin-top:0}.sc-table{border-collapse:collapse;width:100%}.sc-table th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:#6b7c77;background:#fff;border-bottom:1px solid #eef3f1;padding:11px 14px;font-size:11px;font-weight:700}.sc-table td{vertical-align:middle;color:#14221f;border-bottom:1px solid #f1f5f3;padding:12px 14px;font-size:13px}.sc-table tr:last-child td{border-bottom:none}.sc-user-name{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sc-code{background:#f4f7f6;border-radius:6px;padding:3px 7px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}.sc-secret{align-items:center;gap:6px;display:inline-flex}.sc-password-cell{align-items:center;gap:8px;display:inline-flex}.sc-secret code{background:#f4f7f6;border-radius:6px;padding:3px 7px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}.sc-secret button,.sc-row-actions button{color:#6b7c77;cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;width:28px;height:28px;display:inline-grid}.sc-secret button:hover,.sc-row-actions button:hover{color:#1f8a70;background:#e8f7f2}.sc-row-actions{justify-content:flex-end;gap:2px;display:flex}@media (width<=980px){.sc-shell{grid-template-columns:1fr}.sc-rail{position:static}.sc-rail-list{max-height:220px}.sc-metrics-strip{grid-template-columns:1fr 1fr}.sc-metrics-strip>div:nth-child(2){border-right:0}.sc-metrics-strip>div:first-child,.sc-metrics-strip>div:nth-child(2){border-bottom:1px solid #14221f14}.sc-detail-metrics{grid-template-columns:1fr 1fr}.sc-detail-metrics>div{border-bottom:1px solid #14221f14}.sc-detail-metrics>div:nth-child(2n){border-right:0}.sc-hero{flex-direction:column}.sc-hero-actions{justify-content:flex-start}.sc-user-row{flex-direction:column;align-items:flex-start}}.row-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.cell-main{flex-direction:column;gap:2px;display:flex}.cell-main span{color:var(--text-muted,#6b7280);font-size:12px}.is-active-row{background:#1f8a700f}.sidebar-section-label{letter-spacing:.08em;text-transform:uppercase;color:#ffffff6b;z-index:2;margin:0;padding:0 20px 8px;font-size:11px;font-weight:750;display:none;position:relative}.sidebar-link{color:#ffffffc7;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:11px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:13px;font-weight:550;transition:background .15s,color .15s;display:flex}.sidebar-link-icon{width:30px;height:30px;color:inherit;background:#ffffff0f;border-radius:9px;flex-shrink:0;place-items:center;display:inline-grid}.sidebar-link:hover{color:#fff;background:#ffffff14}.sidebar-link.is-active{color:#b7f5d4;background:#2bb67338;font-weight:700;box-shadow:inset 0 0 0 1px #2bb67340}.sidebar-bottom{z-index:2;flex-direction:column;gap:10px;padding:12px 14px 18px;display:flex;position:relative}.sidebar-user-chip{background:#ffffff0f;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.sidebar-user-meta .user-name,.sidebar-user-meta .user-role{color:#fff}.sidebar-user-meta .user-role{opacity:.7}.logout-link{color:#ffffffbf}.logout-link:hover{color:#ffb4b4;background:#e05a5a29}.sidebar-mountains{pointer-events:none;z-index:1;height:120px;position:absolute;bottom:0;left:0;right:0}.sidebar-mountains svg{width:100%;height:100%;display:block}.app-main{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-width:0;transition:margin-left .22s;display:flex}.app-shell.sidebar-collapsed .app-main{margin-left:var(--sidebar-collapsed-width)}.app-header{min-height:var(--header-height);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border);z-index:50;background:#fffffff5;align-items:center;gap:12px;padding:0 24px;display:flex;position:sticky;top:0}.mobile-bottom-nav{display:none}.header-right,.header-user{align-items:center;gap:12px;display:flex}.header-right{margin-left:auto}.header-user-link{color:inherit;border:1px solid #0000;border-radius:14px;padding:6px 10px 6px 6px;text-decoration:none;transition:background .15s,border-color .15s}.header-user-link:hover{background:#f7fbfa;border-color:#e2ebe7}.header-settings-icon{color:#3d5a52;background:#f1f5f4;border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.header-user-link:hover .header-settings-icon{color:#0f766e;background:#e8f7f2}.header-notify{position:relative}.header-notify-btn{color:#14221f;cursor:pointer;background:#f7fbfa;border:1px solid #e2ebe7;border-radius:12px;place-items:center;width:40px;height:40px;transition:background .15s,border-color .15s;display:grid;position:relative}.header-notify-btn:hover,.header-notify-btn.is-open{color:#0f4f42;background:#e8f7f2;border-color:#b7e4d4}.header-notify-dot{color:#fff;background:#e05a5a;border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:800;display:inline-flex;position:absolute;top:-4px;right:-4px}.header-notify-handle{display:none}.header-notify-panel{z-index:85;background:#fff;border:1px solid #e2ebe7;border-radius:16px;flex-direction:column;width:min(360px,100vw - 24px);display:flex;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 18px 40px #0f292524}.header-notify-head{background:#f8fbfa;border-bottom:1px solid #e6efec;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 14px 12px;display:flex}.header-notify-head-copy strong,.header-notify-head strong{color:#14221f;font-size:14px;display:block}.header-notify-head-copy span,.header-notify-head span{color:#6b7c77;margin-top:2px;font-size:12px;display:block}.header-notify-head-actions{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.header-notify-live,.header-notify-head em{color:#1f8a70;background:#e8f7f2;border-radius:999px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-style:normal;font-weight:700;display:inline-flex}.header-notify-markall{color:#0f766e;cursor:pointer;background:#fff;border:1px solid #dce8e3;border-radius:999px;align-items:center;gap:4px;min-height:28px;padding:0 10px;font-size:11px;font-weight:750;display:inline-flex}.header-notify-markall:hover:not(:disabled){background:#e8f7f2;border-color:#b7e4d4}.header-notify-markall:disabled{opacity:.6;cursor:wait}.header-notify-close{color:#4b5c57;cursor:pointer;background:#fff;border:1px solid #e2ebe7;border-radius:10px;place-items:center;width:32px;height:32px;padding:0;display:inline-grid}.header-notify-close:hover{color:#0f766e;background:#e8f7f2;border-color:#b7e4d4}.header-notify-list{flex-direction:column;flex:1;gap:6px;max-height:360px;margin:0;padding:8px;list-style:none;display:flex;overflow:auto}.header-notify-item{border:1px solid #0000;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:flex-start;gap:10px;padding:10px;text-decoration:none;transition:background .15s,border-color .15s,opacity .15s;display:grid}.header-notify-item:hover{background:#f7fbfa;border-color:#e2ebe7}.header-notify-item.is-read{opacity:.62}.header-notify-unread{background:#1f8a70;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.header-notify-icon{border-radius:9px;flex-shrink:0;place-items:center;width:30px;height:30px;display:grid}.header-notify-item.tone-error .header-notify-icon{color:#c23b3b;background:#fdecec}.header-notify-item.tone-warning .header-notify-icon{color:#c47a20;background:#fff1e0}.header-notify-item.tone-info .header-notify-icon{color:#2f6fed;background:#e8f1ff}.header-notify-copy strong{color:#14221f;font-size:13px;line-height:1.3;display:block}.header-notify-copy small{color:#6b7c77;margin-top:3px;font-size:11px;display:block}.header-notify-empty{text-align:center;color:#6b7c77;flex:1;place-items:center;gap:8px;padding:28px 16px;font-size:13px;display:grid}.header-notify-empty-icon{color:#1f8a70;background:#f3fbf8;border-radius:14px;place-items:center;width:44px;height:44px;margin-bottom:2px;display:grid}.header-notify-foot{background:#f8fbfa;border-top:1px solid #e6efec;flex-shrink:0;justify-content:space-between;gap:8px;padding:10px 14px;display:flex}.header-notify-foot a{color:#0f4f42;font-size:12px;font-weight:700;text-decoration:none}.header-notify-foot a:hover{color:#1f8a70}.header-notify-sheet-root{display:none}.menu-btn{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;width:42px;height:42px;color:var(--color-text);border-radius:12px;place-items:center;display:none}.header-search{border:1px solid var(--color-border);max-width:520px;color:var(--color-text-secondary);background:#fff;border-radius:14px;flex:1;align-items:center;gap:10px;padding:10px 14px;display:flex}.header-search input{color:var(--color-text);background:0 0;border:none;outline:none;flex:1;font-size:14px}.header-search kbd{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary);border-radius:8px;padding:4px 8px;font-size:11px;font-weight:700}.header-date{border:1px solid var(--color-border);color:var(--color-text-secondary);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:600;display:inline-flex}.header-icon-btn{border:1px solid var(--color-border);width:42px;height:42px;color:var(--color-text-secondary);cursor:pointer;background:#fff;border-radius:12px;place-items:center;display:grid;position:relative}.header-icon-btn:hover{color:var(--color-primary);background:var(--color-primary-light);border-color:#b7e4d4}.notif-count{background:var(--color-accent);color:#fff;border:2px solid #fff;border-radius:999px;place-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:800;display:grid;position:absolute;top:6px;right:6px}.user-avatar{background:linear-gradient(145deg, var(--color-primary), #0f4f42);color:#fff;border-radius:999px;place-items:center;width:42px;height:42px;font-weight:700;display:grid;box-shadow:0 8px 18px #1f8a7040}.user-avatar.sm{width:34px;height:34px;box-shadow:none;font-size:12px}.user-name{margin:0;font-size:13px;font-weight:700}.user-role{color:var(--color-text-secondary);margin:0;font-size:11px}.app-content{width:100%;padding:20px 22px}.page{width:100%;max-width:none}.stat-grid,.stat-grid.four,.dashboard-grid,.dash-middle,.dash-tables,.detail-grid,.settings-grid,.quick-actions{width:100%}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.page-title{letter-spacing:-.03em;margin:0;font-size:22px;font-weight:700}.page-subtitle{color:var(--color-text-secondary);margin:4px 0 0;font-size:13px}.page-actions{flex-wrap:wrap;gap:8px;display:flex}.facility-banner{color:#fff;background:radial-gradient(circle at 100% 0,#ffffff29,#0000 35%),linear-gradient(135deg,#1f8a70 0%,#146b57 55%,#0f2925 100%);border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;padding:22px 24px;display:flex;box-shadow:0 16px 40px #102c2833}.facility-banner-main{align-items:center;gap:16px;display:flex}.facility-banner-icon{color:#fff;background:#ffffff29;border:1px solid #fff3;border-radius:14px;flex-shrink:0;place-items:center;width:52px;height:52px;display:grid}.facility-banner-eyebrow{letter-spacing:.05em;text-transform:uppercase;opacity:.85;margin:0;font-size:12px;font-weight:700}.facility-banner h3{letter-spacing:-.03em;margin:4px 0 0;font-size:22px}.facility-banner p:last-child{opacity:.9;margin:4px 0 0;font-size:14px}.facility-banner-chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:#ffffff29;border:1px solid #ffffff2e;border-radius:999px;align-items:center;padding:8px 12px;font-size:12px;font-weight:700;display:inline-flex}.chip-primary,.chip-success,.chip-warning{color:#fff}.card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#ffffffeb;border:1px solid #e2e8f0f2;min-width:0;max-width:100%;overflow:hidden}.card-padded{padding:20px}.card-header{justify-content:space-between;align-items:center;gap:12px;min-width:0;margin-bottom:16px;display:flex}.card-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:14px;font-weight:700;overflow:hidden}.stat-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:22px;display:grid}.stat-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card{box-shadow:var(--shadow-sm);border:1px solid #0000;border-radius:14px;flex-direction:column;justify-content:space-between;min-height:118px;padding:14px;transition:transform .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.stat-card:before{content:"";width:4px;position:absolute;inset:0 auto 0 0}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.stat-card.is-clickable{cursor:pointer;text-align:left;font:inherit;appearance:none;width:100%}.stat-card.is-clickable:focus-visible{outline:2px solid var(--color-primary,#1f8a70);outline-offset:2px}.stat-card-top{justify-content:space-between;align-items:center;display:flex}.stat-dot{opacity:.7;border-radius:50%;width:8px;height:8px}.stat-label{color:var(--color-text-secondary);margin:0;font-size:12px;font-weight:650}.stat-value{letter-spacing:-.03em;color:var(--color-text);margin:6px 0 0;font-size:22px;font-weight:750}.stat-hint{color:var(--color-text-secondary);margin:6px 0 0;font-size:11px}.stat-icon{border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.stat-primary{border-color:var(--color-border);background:#fff}.stat-primary:before,.stat-primary .stat-dot{background:var(--color-primary)}.stat-primary .stat-icon{background:var(--color-primary-light);color:var(--color-primary)}.stat-success{border-color:var(--color-border);background:#fff}.stat-success:before,.stat-success .stat-dot{background:var(--color-success)}.stat-success .stat-icon{background:var(--color-success-bg);color:var(--color-success)}.stat-error{border-color:var(--color-border);background:#fff}.stat-error:before,.stat-error .stat-dot{background:var(--color-error)}.stat-error .stat-icon{background:var(--color-error-bg);color:var(--color-error)}.stat-warning{border-color:var(--color-border);background:#fff}.stat-warning:before,.stat-warning .stat-dot{background:var(--color-warning)}.stat-warning .stat-icon{background:var(--color-warning-bg);color:var(--color-warning)}.stat-info{border-color:var(--color-border);background:#fff}.stat-info:before,.stat-info .stat-dot{background:var(--color-info)}.stat-info .stat-icon{background:var(--color-info-bg);color:var(--color-info)}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.dashboard-span{grid-column:1/-1}.list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.list-item{background:var(--color-bg);border:1px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.list-item:hover{border-color:var(--color-border);background:#fff}.list-person{align-items:center;gap:12px;min-width:0;display:flex}.avatar-soft{background:var(--color-primary-light);width:40px;height:40px;color:var(--color-primary);border-radius:12px;flex-shrink:0;place-items:center;font-weight:750;display:grid}.avatar-soft.tone-info{background:var(--color-info-bg);color:var(--color-info)}.list-title{margin:0;font-size:14px;font-weight:700}.list-meta{color:var(--color-text-secondary);margin:2px 0 0;font-size:12px}.list-amount{color:var(--color-success);background:var(--color-success-bg);border-radius:999px;padding:6px 10px;font-size:13px;font-weight:800}.text-link{color:var(--color-primary);font-size:13px;font-weight:700}.text-link:hover{color:var(--color-primary-dark)}.form-field{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--color-text);font-size:13px;font-weight:700}.form-input,.form-select,.form-textarea{border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);border-radius:var(--radius-sm);outline:none;padding:11px 13px;transition:border-color .15s,box-shadow .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px #4f46e51f}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{color:#4b5c57;cursor:default;background:#f5f8f7}.form-input.is-error,.form-select.is-error{border-color:var(--color-error)}.form-input.compact{min-width:120px;padding:8px 10px}.form-error{color:var(--color-error);margin:0;font-size:12px}.form-hint{color:var(--color-text-secondary);margin:0;font-size:12px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-span-2{grid-column:span 2}.form-stack{flex-direction:column;gap:16px;display:flex}.form-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.btn{cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;font-weight:700;transition:transform .15s,background .15s,box-shadow .15s;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-md{padding:9px 14px;font-size:13px}.btn-sm{padding:7px 11px;font-size:12px}.btn-full{width:100%}.btn-primary{color:#fff;background:linear-gradient(135deg,#1f8a70,#146b57);box-shadow:0 10px 20px #1f8a7038}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 24px #1f8a7047}.btn-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-primary-light);color:#0f4f42;border-color:#b7e4d4}.btn-danger{background:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-ghost{color:var(--color-text-secondary);background:0 0;padding:6px}.btn-ghost:hover:not(:disabled){background:var(--color-bg);color:var(--color-text)}.search-input{width:100%;position:relative}.search-input input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);outline:none;width:100%;padding:11px 12px 11px 38px}.search-input input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px #4f46e51f}.search-icon{color:var(--color-text-secondary);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.filters-row{grid-template-columns:2fr repeat(3,minmax(140px,1fr));align-items:end;gap:12px;margin-bottom:16px;display:grid}.table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;border:1px solid var(--color-border);border-radius:14px;width:100%;max-width:100%;overflow:auto hidden}.table{border-collapse:collapse;width:100%;min-width:640px}.table th,.table td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle;padding:10px 12px;font-size:13px}.table th{color:#3f5c55;text-transform:uppercase;letter-spacing:.04em;background:linear-gradient(#f7fbfa,#f3f8f6);font-size:11px;font-weight:750}.table tbody tr:hover{background:#fafbff}.table tr:last-child td{border-bottom:none}.cell-stack{flex-direction:column;gap:2px;display:flex}.cell-title{font-weight:700}.cell-meta{color:var(--color-text-secondary);font-size:12px}.action-row{gap:6px;display:flex}.icon-btn{border:1px solid var(--color-border);background:var(--color-surface);width:34px;height:34px;color:var(--color-text-secondary);cursor:pointer;border-radius:10px;place-items:center;display:inline-grid}.icon-btn:hover{color:var(--color-primary);background:var(--color-primary-light);border-color:#c7d2fe}.icon-btn.danger:hover{color:var(--color-error);background:var(--color-error-bg);border-color:#fecaca}.badge{border-radius:999px;align-items:center;padding:5px 10px;font-size:12px;font-weight:750;display:inline-flex}.badge-success{background:var(--color-success-bg);color:var(--color-success)}.badge-warning{background:var(--color-warning-bg);color:#b45309}.badge-error{background:var(--color-error-bg);color:var(--color-error)}.badge-info{background:var(--color-info-bg);color:var(--color-info)}.empty-state,.loading-state,.error-state{text-align:center;color:var(--color-text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:40px 16px;display:flex}.empty-icon,.error-icon{background:var(--color-primary-light);width:58px;height:58px;color:var(--color-primary);border-radius:16px;place-items:center;margin-bottom:4px;display:grid}.error-icon{background:var(--color-error-bg);color:var(--color-error)}.empty-title,.error-state h3{color:var(--color-text);margin:0;font-size:16px}.empty-description,.error-state p,.loading-state p{max-width:360px;margin:0;font-size:14px}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}html.overlay-open,body.overlay-open{overscroll-behavior:none;touch-action:manipulation;overflow:hidden}.modal-overlay{overscroll-behavior:none;z-index:300;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);box-sizing:border-box;background:#0f172a73;width:100%;max-width:100%;animation:.18s modal-fade-in;position:fixed;inset:0;overflow:hidden}.modal-overlay.is-drawer{justify-content:flex-end;align-items:stretch;padding:0;display:flex}.modal-overlay.is-center{box-sizing:border-box;place-items:center;padding:16px;display:grid}.modal{box-sizing:border-box;overscroll-behavior:contain;background:var(--color-surface);width:min(100%,560px);max-width:100%;max-height:min(90vh,840px);box-shadow:var(--shadow-md);border:1px solid var(--color-border);border-radius:18px;overflow:hidden auto}.modal.modal-drawer{border:0;border-left:1px solid var(--color-border);border-radius:0;flex-direction:column;width:min(100%,480px);height:100%;max-height:100%;animation:.22s modal-slide-right;display:flex;box-shadow:-12px 0 40px #0f221f24}.modal.modal-drawer.modal-sm{width:min(100%,400px)}.modal.modal-drawer.modal-md{width:min(100%,480px)}.modal.modal-drawer.modal-lg{width:min(100%,640px)}.modal.modal-drawer.modal-xl,.modal.modal-drawer.modal-wide,.modal-lg{width:min(100%,760px)}.modal-xl,.modal-wide{width:min(100%,860px)}.modal-sm{width:min(100%,440px)}.modal-header,.modal-footer{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.modal-footer{border-bottom:none;border-top:1px solid var(--color-border);justify-content:flex-end}.modal-title{margin:0;font-size:18px}.modal-sheet-handle{display:none}.modal-close-btn{border:1px solid var(--color-border);color:#4b5c57;cursor:pointer;background:#f4f8f6;border-radius:10px;flex-shrink:0;place-items:center;width:34px;height:34px;padding:0;display:inline-grid}.modal-close-btn:hover{color:#0f766e;background:#e8f7f2;border-color:#b7e4d4}.modal-body{flex:1;padding:20px;overflow:auto}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-right{0%{opacity:.85;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@media (width<=640px){.modal.modal-drawer,.modal.modal-drawer.modal-sm,.modal.modal-drawer.modal-md,.modal.modal-drawer.modal-lg,.modal.modal-drawer.modal-xl,.modal.modal-drawer.modal-wide{width:100%;max-width:100%}}.stats-drawer-sub{color:var(--color-text-secondary);margin:0 0 14px;font-size:13px}.stats-drawer-filters{margin-bottom:14px}.stats-drawer-filters .filters-bar-row{grid-template-columns:1.4fr 1fr}.stats-drawer-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.stats-drawer-item{border:1px solid var(--color-border);background:#fff;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.stats-drawer-avatar{color:#1f8a70;background:#e8f7f2;border-radius:10px;place-items:center;width:34px;height:34px;font-size:13px;font-weight:750;display:grid}.stats-drawer-item.tone-warning .stats-drawer-avatar{color:#c47a20;background:#fff1e0}.stats-drawer-item.tone-error .stats-drawer-avatar{color:#c23b3b;background:#fdecec}.stats-drawer-item.tone-info .stats-drawer-avatar{color:#2f6fed;background:#e8f1ff}.stats-drawer-item.tone-success .stats-drawer-avatar{color:#1f8a70;background:#e8f7f2}.stats-drawer-main{min-width:0}.stats-drawer-main a,.stats-drawer-main>span{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;text-decoration:none;display:block;overflow:hidden}.stats-drawer-main a:hover{color:#1f8a70}.stats-drawer-main small{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;display:block;overflow:hidden}.stats-drawer-right{color:var(--color-text);white-space:nowrap;font-size:12px;font-weight:750}.confirm-message{color:var(--color-text-secondary);margin:0;line-height:1.6}.toast-container{z-index:60;flex-direction:column;gap:8px;width:min(360px,100vw - 32px);display:flex;position:fixed;top:20px;right:20px}.toast{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-size:14px;font-weight:600;display:flex}.toast-success{background:var(--color-success-bg);color:var(--color-success);border-color:#bbf7d0}.toast-error{background:var(--color-error-bg);color:var(--color-error);border-color:#fecaca}.toast-info{background:var(--color-info-bg);color:var(--color-info);border-color:#bfdbfe}.toast-close{color:inherit;cursor:pointer;background:0 0;border:none;place-items:center;margin-left:auto;display:grid}html.login-lock,body.login-lock{overscroll-behavior:none;height:100svh;max-height:100svh;overflow:hidden}body.login-lock #root{height:100svh;max-height:100svh;overflow:hidden}.login-page{box-sizing:border-box;background:#f4f7f6;place-items:center;width:100%;height:100svh;min-height:100svh;max-height:100svh;padding:24px;display:grid;position:relative;overflow:hidden}.login-bg{pointer-events:none;background:radial-gradient(70% 50% at 20% 0,#1f8a702e,#0000 55%),radial-gradient(60% 45% at 90% 100%,#102c281a,#0000 50%),linear-gradient(#eaf6f2 0%,#f4f7f6 45%,#f7faf9 100%);position:absolute;inset:0}.login-card{z-index:1;box-sizing:border-box;overscroll-behavior:contain;background:#fff;border:1px solid #e2ebe7;border-radius:20px;width:min(100%,420px);max-height:100%;padding:36px 32px 32px;position:relative;overflow:auto;box-shadow:0 18px 50px #102c2814}.login-brand{text-align:center;margin-bottom:28px}.login-brand-mark{color:#fff;background:linear-gradient(160deg,#1f8a70,#146b57);border-radius:14px;place-items:center;width:52px;height:52px;margin:0 auto 14px;display:grid;box-shadow:0 8px 20px #1f8a7047}.login-brand h1{letter-spacing:-.03em;color:#102c28;margin:0;font-size:28px}.login-brand p{color:#6b7c77;margin:6px 0 0;font-size:13px}.login-form{flex-direction:column;gap:14px;width:100%;display:flex}.login-form-header{margin-bottom:4px}.login-form-header h2{letter-spacing:-.02em;color:#14221f;margin:0;font-size:18px}.login-form-header p{color:#6b7c77;margin:6px 0 0;font-size:13px}.login-form .form-input::placeholder{color:#9aa8a3}.login-input-wrap{align-items:center;display:flex;position:relative}.login-input-wrap .form-input{width:100%;padding-left:40px;padding-right:42px}.login-input-icon{color:#6b7c77;pointer-events:none;z-index:1;position:absolute;left:12px}.login-eye-btn{color:#6b7c77;cursor:pointer;z-index:1;background:0 0;border:none;border-radius:8px;place-items:center;width:32px;height:32px;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.login-eye-btn:hover{color:#1f8a70;background:#e8f7f2}.login-input-wrap.is-error .form-input{border-color:#e05a5a}.login-input-wrap:focus-within .login-input-icon{color:#1f8a70}.login-form .btn{min-height:44px;margin-top:6px}@media (height<=700px){.login-page{padding:10px 14px}.login-card{padding:16px 16px 14px}.login-brand{margin-bottom:10px}.login-brand-mark{width:40px;height:40px;margin-bottom:8px}.login-brand h1{font-size:20px}.login-brand p{display:none}.login-form{gap:8px}.login-form-header p{display:none}.login-form .btn{min-height:42px;margin-top:2px}}.detail-grid,.settings-grid,.school-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.school-users-page .card-header{flex-wrap:nowrap}.school-users-page .card-title{white-space:nowrap;flex-shrink:0}.school-users-search{flex-shrink:0;width:220px;max-width:40vw}.school-users-search input{padding-top:8px;padding-bottom:8px}.school-users-table .school-users-email{overflow-wrap:anywhere;word-break:break-word}.school-users-table .sc-user-name{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.school-users-table .sc-password-cell{flex-wrap:wrap;max-width:100%}.students-group-row td{background:#f3fbf8;border-bottom:1px solid #dce8e3!important;padding:10px 14px!important}.students-group-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.students-group-head strong{color:#0f766e;font-size:13px;font-weight:800}.students-group-head span{color:#6b7c77;background:#fff;border:1px solid #dce8e3;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.profile-edit-link{color:var(--color-primary);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:600;display:inline-flex}.profile-edit-link:hover{color:var(--color-primary-dark);text-decoration:underline}.profile-card-actions{align-items:center;gap:8px;display:flex}.school-profile-hero{background:linear-gradient(#f3fbf8 0%,#fff 60%);border:1px solid #dce8e3;border-radius:18px;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;padding:16px;display:flex;box-shadow:0 8px 24px #102c280d}.school-profile-hero-main{flex:1;align-items:flex-start;gap:12px;min-width:0;display:flex}.school-profile-icon{color:#0f766e;background:#e8f7f2;border:1px solid #d5ebe3;border-radius:14px;flex-shrink:0;place-items:center;width:48px;height:48px;display:grid}.school-profile-copy{min-width:0}.school-profile-title-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.school-profile-name{letter-spacing:-.02em;color:#102c28;margin:0;font-size:20px;font-weight:800;line-height:1.2}.school-profile-meta{color:#6b7c77;margin:4px 0 0;font-size:13px;font-weight:600}.school-profile-hero-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.school-profile-hint{margin-top:12px}.school-profile-form-actions{display:none}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-grid-2 .form-span-2{grid-column:1/-1}.detail-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;margin:0;display:grid}.detail-list div{flex-direction:column;gap:4px;display:flex}.detail-list dt{color:var(--color-text-secondary);font-size:12px;font-weight:700}.detail-list dd{margin:0;font-size:14px;font-weight:600}.detail-span{grid-column:1/-1}.mini-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.mini-stats>div{background:var(--color-bg);border:1px solid var(--color-border);border-radius:14px;padding:14px}.mini-stats .stat-value{font-size:18px}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.text-warning{color:#b45309}.status-toggle{border:1px solid var(--color-border);background:#fff;border-radius:12px;display:inline-flex;overflow:hidden}.toggle-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:8px 12px;font-size:13px;font-weight:700}.toggle-btn.is-active.success{background:var(--color-success-bg);color:var(--color-success)}.toggle-btn.is-active.error{background:var(--color-error-bg);color:var(--color-error)}.payment-summary{background:linear-gradient(135deg, var(--color-primary-light), var(--color-info-bg));color:var(--color-text);border:1px solid #b7e4d4;border-radius:14px;padding:14px 16px}.helper-text{color:var(--color-text-secondary);font-size:13px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-16{margin-bottom:16px}.quick-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:22px;display:grid}.quick-action{border:1px solid var(--color-border);box-shadow:var(--shadow-sm);background:#fff;border-radius:14px;align-items:center;gap:12px;padding:14px 16px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.quick-action:hover{box-shadow:var(--shadow-md);border-color:#c7d2fe;transform:translateY(-2px)}.quick-action svg:first-child{color:var(--color-primary)}.quick-action strong{font-size:14px;display:block}.quick-action span{color:var(--color-text-secondary);font-size:12px}.quick-action svg:last-child{color:var(--color-text-secondary);margin-left:auto}.progress-block{flex-direction:column;gap:6px;display:flex}.progress-meta{color:var(--color-text-secondary);justify-content:space-between;gap:8px;font-size:12px;display:flex}.progress-track{background:#eef2ff;border-radius:999px;height:8px;overflow:hidden}.progress-fill{border-radius:inherit;height:100%;transition:width .25s}.progress-fill.tone-primary{background:linear-gradient(90deg, var(--color-primary), var(--color-primary-dark))}.progress-fill.tone-success{background:var(--color-success)}.progress-fill.tone-warning{background:var(--color-warning)}.progress-fill.tone-error{background:var(--color-error)}.progress-fill.tone-info{background:var(--color-info)}.health-stack{flex-direction:column;gap:16px;display:flex}.health-note{color:var(--color-text-secondary);background:var(--color-bg);border-radius:12px;padding:10px 12px;font-size:13px}.bar-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.bar-list-top{justify-content:space-between;margin-bottom:6px;font-size:13px;display:flex}.mini-bar{background:var(--color-primary-light);border-radius:999px;height:8px;overflow:hidden}.mini-bar span{background:linear-gradient(90deg, var(--color-primary), var(--color-info));border-radius:inherit;height:100%;display:block}.skeleton-wrap{flex-direction:column;gap:14px;display:flex}.skeleton-banner,.skeleton-card,.skeleton-row{background:linear-gradient(90deg,#eef2ff 25%,#f8fafc 50%,#eef2ff 75%) 0 0/200% 100%;border-radius:14px;animation:1.2s linear infinite shimmer}.skeleton-banner{height:120px}.skeleton-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.skeleton-card{height:110px}.skeleton-row{height:52px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.compact-stats .stat-card{min-height:120px}.filter-toolbar{color:var(--color-text-secondary);flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.clear-btn{cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;display:inline-flex}.soft-pill{background:var(--color-primary-light);color:#0f4f42;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.unsaved-pill{background:var(--color-warning-bg);color:#b45309;border:1px solid #fde68a;border-radius:999px;align-items:center;padding:8px 12px;font-size:12px;font-weight:700;display:inline-flex}.attendance-toolbar{background:linear-gradient(135deg, var(--color-primary-light), #eaf2fb);border:1px solid #b7e4d4;border-radius:14px;grid-template-columns:1.4fr auto;align-items:end;gap:16px;margin-bottom:16px;padding:14px;display:grid}.attendance-history{gap:18px;display:grid}.attendance-history-day{background:#fff;border:1px solid #d5e3dd;border-radius:14px;overflow:hidden;box-shadow:0 1px #0f3d360a}.attendance-history-day-head{background:#f7fbfa;border-bottom:1px solid #e2ede8;grid-template-columns:auto 1fr;align-items:center;gap:14px;padding:12px 14px;display:grid}.attendance-history-cal{color:#fff;text-align:center;box-sizing:border-box;background:linear-gradient(165deg,#1f8a70 0%,#146b57 100%);border-radius:11px;flex-shrink:0;place-content:center;width:46px;min-width:46px;height:46px;min-height:46px;padding:4px 3px;line-height:1;display:grid;box-shadow:0 4px 10px #146b5738}.attendance-history-cal em{letter-spacing:-.03em;font-size:17px;font-style:normal;font-weight:800;line-height:1}.attendance-history-cal span{letter-spacing:.02em;opacity:.92;text-transform:uppercase;white-space:nowrap;margin-top:2px;font-size:8px;font-weight:700;line-height:1.15;display:block}.attendance-history-summary p{color:#314843;margin:0;font-size:13px}.attendance-history-summary strong{color:#0f3d36;font-size:18px;font-weight:800}.attendance-history-summary-line{flex-wrap:wrap;align-items:center;gap:6px;font-weight:700;display:flex;margin-top:4px!important;font-size:12px!important}.attendance-history-summary-line .dot{color:#a3b5af}.attendance-history-summary-line .is-present{color:#047857}.attendance-history-summary-line .is-absent{color:#b91c1c}.attendance-history-summary-line .is-rate{color:#1d4ed8}.attendance-history-day .table-wrap{border:0;border-radius:0;margin:0}.attendance-history-table th{letter-spacing:.04em;text-transform:uppercase;color:#6b7c77;background:#fbfdfc;font-size:11px}.attendance-history-table td{vertical-align:middle}.attendance-year-rate{font-variant-numeric:tabular-nums;border-radius:8px;justify-content:center;min-width:48px;padding:4px 8px;font-size:13px;font-weight:800;display:inline-flex}.attendance-year-rate.is-high{color:#047857;background:#ecfdf5}.attendance-year-rate.is-mid{color:#b45309;background:#fffbeb}.attendance-year-rate.is-low{color:#b91c1c;background:#fef2f2}@media (width<=720px){.attendance-history-day-head{grid-template-columns:auto 1fr;gap:10px;padding:10px 12px}.attendance-history-cal{border-radius:9px;width:38px;min-width:38px;height:38px;min-height:38px;padding:3px 2px;box-shadow:0 2px 6px #146b572e}.attendance-history-cal em{font-size:14px}.attendance-history-cal span{letter-spacing:0;margin-top:1px;font-size:7px}.calendar-side-head{gap:10px;padding:12px 14px}.calendar-side-head-copy strong{font-size:14px}.calendar-side-head-copy p{font-size:11px}.attendance-history-table tbody tr.students-group-row{box-shadow:none;background:#e8f7f2;border:0;border-radius:10px;margin-top:4px;padding:8px 10px;display:block}.attendance-history-table tbody tr.students-group-row:before,.attendance-history-table tbody tr.students-group-row td:before{display:none}.attendance-history-table tbody tr.students-group-row td{background:0 0;display:block;border:0!important;padding:0!important}}.row-absent{background:#fff7f7}.row-overdue{background:#fffbeb}.avatar-soft.tone-error{background:var(--color-error-bg);color:var(--color-error)}.overdue-chip,.duesoon-chip,.attention-chip{cursor:pointer;border:0;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.overdue-chip,.attention-chip.tone-error{background:var(--color-warning-bg);color:#b45309}.duesoon-chip{color:#1d4ed8;background:#eff6ff}.row-duesoon{background:#f8fbff}.attention-card .card-header{margin-bottom:14px}.attention-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.attention-panel{background:linear-gradient(#fff 0%,#f8fbfa 100%);border:1px solid #e2ebe7;border-radius:16px;flex-direction:column;gap:10px;min-height:240px;padding:12px;display:flex}.attention-panel.tone-error{background:linear-gradient(#fff8f8 0%,#fff 42%);border-color:#f0d4d4}.attention-panel.tone-warning{background:linear-gradient(#fff9f2 0%,#fff 42%);border-color:#f0e0c8}.attention-panel.tone-info{background:linear-gradient(#f5f9ff 0%,#fff 42%);border-color:#d5e3f7}.attention-panel.tone-success{background:linear-gradient(#f3faf7 0%,#fff 42%);border-color:#cde6dd}.attention-panel header{grid-template-columns:auto 1fr auto;align-items:center;gap:10px;display:grid}.attention-icon{border-radius:10px;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid}.attention-panel.tone-error .attention-icon{color:#c23b3b;background:#fdecec}.attention-panel.tone-warning .attention-icon{color:#c47a20;background:#fff1e0}.attention-panel.tone-info .attention-icon{color:#2f6fed;background:#e8f1ff}.attention-panel.tone-success .attention-icon{color:#1f8a70;background:#e8f7f2}.attention-head-text strong{color:#14221f;letter-spacing:-.01em;font-size:13px;display:block}.attention-head-text span{color:#6b7c77;margin-top:2px;font-size:11px;display:block}.attention-count{color:#14221f;background:#eef4f2;border-radius:999px;justify-content:center;align-items:center;min-width:28px;height:28px;padding:0 8px;font-size:12px;font-style:normal;font-weight:800;display:inline-flex}.attention-panel.tone-error .attention-count{color:#c23b3b;background:#fdecec}.attention-panel.tone-warning .attention-count{color:#c47a20;background:#fff1e0}.attention-panel.tone-info .attention-count{color:#2f6fed;background:#e8f1ff}.attention-panel.tone-success .attention-count{color:#1f8a70;background:#e8f7f2}.attention-panel ul{flex-direction:column;flex:1;gap:8px;margin:0;padding:0;list-style:none;display:flex}.attention-panel li{background:#ffffffe0;border:1px solid #e2ebe7e6;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px;display:grid}.attention-avatar{border-radius:9px;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:12px;font-weight:800;display:grid}.attention-avatar.tone-error{color:#c23b3b;background:#fdecec}.attention-avatar.tone-warning{color:#c47a20;background:#fff1e0}.attention-avatar.tone-info{color:#2f6fed;background:#e8f1ff}.attention-avatar.tone-success{color:#1f8a70;background:#e8f7f2}.attention-item-main{min-width:0}.attention-item-main a,.attention-item-main>span{color:#14221f;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;text-decoration:none;display:block;overflow:hidden}.attention-item-main a:hover{color:#1f8a70}.attention-item-main small{color:#6b7c77;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;display:block;overflow:hidden}.attention-amount{color:#14221f;white-space:nowrap;background:#f4f7f6;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800}.attention-amount.is-paid{color:#1f8a70;background:#e8f7f2}.attention-action{color:#2f6fed;background:#e8f1ff;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;text-decoration:none}.attention-action:hover{background:#d9e8ff}.attention-empty{text-align:center;color:#6b7c77;background:#ffffffa6;border:1px dashed #e2ebe7;border-radius:12px;flex:1;place-items:center;margin:0;padding:18px 8px;font-size:12px;display:grid}.attention-footer-link{color:#0f4f42;align-items:center;margin-top:auto;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.attention-footer-link:hover{color:#1f8a70}.detail-tabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.detail-tab{color:#4d635c;cursor:pointer;background:#fff;border:1px solid #e2ebe7;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:700}.detail-tab.is-active{color:#0f4f42;background:#e8f7f2;border-color:#b7e4d4}.student-quick-actions{flex-wrap:wrap;align-items:center;gap:10px;margin:-8px 0 16px;display:flex}.student-profile-hero{background:linear-gradient(#f3fbf8 0%,#fff 55%);border:1px solid #dce8e3;border-radius:18px;margin-bottom:14px;padding:14px 14px 12px;box-shadow:0 8px 24px #102c280d}.student-profile-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.student-back-link{color:#24574c;background:#fff;border:1px solid #dce8e3;border-radius:10px;align-items:center;gap:6px;min-height:34px;padding:0 10px 0 8px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.student-back-link:hover{color:#0f766e;background:#e8f7f2;border-color:#b7e4d4}.student-profile-main{align-items:flex-start;gap:12px;display:flex}.student-profile-avatar{border-radius:16px;flex-shrink:0;width:52px;height:52px;font-size:18px;font-weight:800}.student-profile-copy{flex:1;min-width:0}.student-profile-name{letter-spacing:-.03em;color:#102c28;margin:0;font-size:22px;font-weight:800;line-height:1.15}.student-profile-meta{color:#6b7c77;margin:4px 0 0;font-size:13px;font-weight:600}.student-profile-copy .attention-chip{margin-top:8px}.student-profile-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.student-action-btn{color:#24574c;text-align:center;background:#fff;border:1px solid #dce8e3;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:58px;padding:8px 6px;font-size:11px;font-weight:750;text-decoration:none;display:inline-flex}.student-action-btn:hover{color:#0f766e;background:#e8f7f2;border-color:#b7e4d4}.student-action-btn.is-whatsapp{color:#15803d;background:#eaf8ef;border-color:#b7e4c7}.student-action-btn.is-primary{color:#fff;background:#1f8a70;border-color:#1f8a70}.student-action-btn.is-primary:hover{color:#fff;background:#187a62;border-color:#187a62}.student-detail-list{gap:12px 18px}.call-parent-btn{color:#0f766e;background:#e8f7f2;border:1px solid #b7e4d4;border-radius:10px;align-items:center;gap:6px;min-height:32px;padding:6px 12px;font-size:13px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.call-parent-btn:hover{color:#0b5f58;background:#d8f3ea;border-color:#1f8a70}.whatsapp-parent-btn{color:#15803d;background:#eaf8ef;border-color:#b7e4c7}.whatsapp-parent-btn:hover{color:#166534;background:#dcf5e4;border-color:#22c55e}.fee-row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.receipt-wrap{flex-direction:column;gap:14px;display:flex}.receipt-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.receipt-actions .btn{gap:6px}@media (width<=640px){.receipt-actions{justify-content:stretch}.receipt-actions .btn{flex:calc(50% - 8px)}}.receipt-sheet{background:#fff;border:1px solid #e2ebe7;border-radius:14px;padding:18px}.receipt-brand{flex-direction:column;gap:2px;margin-bottom:10px;display:flex}.receipt-brand strong{color:#0f4f42;font-size:16px}.receipt-brand span,.receipt-meta,.receipt-note{color:#6b7c77;font-size:12px}.receipt-sheet h2{color:#14221f;margin:0 0 4px;font-size:18px}.receipt-list{gap:10px;margin:16px 0;display:grid}.receipt-list>div{border-bottom:1px dashed #e2ebe7;justify-content:space-between;gap:12px;padding-bottom:8px;display:flex}.receipt-list dt{color:#6b7c77;font-size:12px}.receipt-list dd{color:#14221f;text-align:right;margin:0;font-size:13px;font-weight:700}.receipt-amount{color:#1f8a70!important;font-size:16px!important}@media print{body *{visibility:hidden}.receipt-sheet,.receipt-sheet *{visibility:visible}.receipt-sheet{width:100%;box-shadow:none;border:0;position:absolute;top:0;left:0}.no-print,.sidebar,.app-header,.sidebar-backdrop{display:none!important}}.quick-amount-row{flex-wrap:wrap;gap:8px;display:flex}.quick-amount{border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;background:#fff;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700}.quick-amount.is-active,.quick-amount:hover{background:var(--color-primary-light);color:var(--color-primary-dark);border-color:#c7d2fe}.settings-hero{align-items:center;gap:12px;display:flex}.settings-hero h3{margin:0;font-size:18px}.settings-hero p{color:var(--color-text-secondary);margin:4px 0 0;font-size:13px}.settings-icon{background:var(--color-primary-light);width:42px;height:42px;color:var(--color-primary);border-radius:12px;place-items:center;display:grid}.settings-list,.tips-list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.settings-list li{color:var(--color-primary);align-items:flex-start;gap:12px;display:flex}.settings-list strong{color:var(--color-text);display:block}.settings-list p,.tips-list li{color:var(--color-text-secondary);margin:2px 0 0;font-size:13px}.tips-list li{padding-left:14px;position:relative}.tips-list li:before{content:"";background:var(--color-primary);border-radius:50%;width:6px;height:6px;position:absolute;top:7px;left:0}.students-filters{grid-template-columns:2fr repeat(3,minmax(120px,1fr))}.dash-welcome{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.dash-welcome h1{letter-spacing:-.03em;margin:0;font-size:22px}.dash-welcome p{color:var(--color-text-secondary);margin:4px 0 0;font-size:13px}.dash-middle{grid-template-columns:1.2fr 1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.dash-tables{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.quote-box{background:var(--color-primary-light);color:#0f4f42;border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-size:13px;font-weight:600;display:flex}.quote-box p{margin:0}.donut-wrap{align-items:center;gap:16px;display:flex}.donut{border-radius:50%;flex-shrink:0;place-items:center;width:120px;height:120px;display:grid}.donut-hole{text-align:center;background:#fff;border-radius:50%;place-content:center;width:78px;height:78px;display:grid}.donut-hole strong{font-size:18px}.donut-hole span{color:var(--color-text-secondary);font-size:11px}.donut-legend{flex-direction:column;gap:8px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.donut-legend .dot{border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.donut-legend .paid{background:#1f8a70}.donut-legend .partial{background:#e89a3c}.donut-legend .pending{background:#e05a5a}.outstanding-box{background:var(--color-error-bg);color:#b42318;border-radius:12px;justify-content:space-between;align-items:center;margin-top:16px;padding:12px 14px;font-size:13px;display:flex}.compact-table{min-width:0}.compact-table th,.compact-table td{padding:10px 12px;font-size:13px}.app-footer{color:var(--color-text-secondary);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:16px 28px 24px;font-size:12px;display:flex}.nav-soon{letter-spacing:.02em;text-transform:uppercase;color:#9fb4ad;background:#ffffff14;border-radius:999px;flex-shrink:0;margin-left:auto;padding:2px 7px;font-size:10px;font-weight:700}.sidebar-link.is-active .nav-soon{color:#d8f3ea;background:#ffffff1f}.sidebar.is-collapsed .nav-soon{display:none}.class-check-actions{gap:14px;margin:4px 0 10px;display:flex}.class-check-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;max-height:220px;padding:4px 2px 2px;display:grid;overflow:auto}.class-check-item{color:#3d5a52;cursor:pointer;background:#f7fbfa;border:1px solid #e2ebe7;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.class-check-item input{accent-color:#1f8a70}.class-check-item.is-checked{color:#0f766e;background:#e8f7f2;border-color:#1f8a70;font-weight:600}.class-check-item.is-locked{opacity:.75;cursor:default}.access-panel{flex-direction:column;gap:14px;display:flex}.access-panel-meta{color:#6b857c;flex-wrap:wrap;align-items:center;gap:6px;margin:-4px 0 2px;font-size:12px;display:flex}.access-panel-role{color:#23443c;background:#e8f0ed;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.access-panel-meta-sep{opacity:.5}.access-block{background:#fbfdfa;border:1px solid #e2ebe7;border-radius:14px;padding:12px}.access-block-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.access-block-title{letter-spacing:.02em;text-transform:uppercase;color:#23443c;margin:0;font-size:13px;font-weight:700}.access-block-hint{color:#6b857c;margin:3px 0 0;font-size:12px;line-height:1.35}.access-block-actions{flex-shrink:0;gap:6px;display:inline-flex}.access-chip-btn{color:#3d5a52;cursor:pointer;background:#fff;border:1px solid #d7e5df;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;line-height:1.2}.access-chip-btn:hover{color:#0f766e;background:#e8f7f2;border-color:#1f8a70}.access-class-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:6px;display:grid}.access-class-chip{color:#3d5a52;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #e2ebe7;border-radius:10px;align-items:center;gap:6px;min-height:34px;padding:6px 8px;font-size:12px;display:inline-flex}.access-class-chip input{accent-color:#1f8a70;flex-shrink:0;width:14px;height:14px;margin:0}.access-class-chip.is-on{color:#0f766e;background:#e8f7f2;border-color:#1f8a70;font-weight:600}.access-module-list{background:#fff;border:1px solid #e2ebe7;border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.access-module-row{cursor:pointer;border-bottom:1px solid #edf3f0;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;transition:background .12s;display:grid}.access-module-row:last-child{border-bottom:0}.access-module-row:hover{background:#f7fbfa}.access-module-row.is-on{background:#f1faf6}.access-module-row.is-locked{cursor:default;opacity:.88}.access-module-icon{color:#3d5a52;background:#e8f0ed;border-radius:9px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.access-module-row.is-on .access-module-icon{color:#fff;background:#1f8a70}.access-module-copy{flex-direction:column;gap:1px;min-width:0;display:flex}.access-module-title{color:#23443c;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;font-weight:650;line-height:1.25;display:inline-flex}.access-module-desc{color:#6b857c;font-size:11px;line-height:1.3}.access-module-soon,.access-module-required{letter-spacing:.02em;text-transform:uppercase;border-radius:999px;padding:1px 6px;font-size:10px;font-style:normal;font-weight:700}.access-module-soon{color:#9a6b2f;background:#f8eed9}.access-module-required{color:#3d5a52;background:#e8f0ed}.access-module-check{accent-color:#1f8a70;width:16px;height:16px;margin:0}.access-block-foot{color:#7a9189;margin:8px 0 0;font-size:11px}.sc-class-tags{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.sc-module-tags{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.sc-module-tags span{color:#0f766e;background:#e8f7f2;border:1px solid #b7e4d4;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.school-modules-block{background:#fbfdfa;border:1px solid #e2ebe7;border-radius:14px;padding:12px}.school-module-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-top:8px;display:grid}.school-module-chip{color:#3d5a52;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #e2ebe7;border-radius:10px;align-items:center;gap:8px;min-height:38px;padding:8px 10px;font-size:13px;display:inline-flex}.school-module-chip input{accent-color:#1f8a70;margin:0}.school-module-chip.is-on{color:#0f766e;background:#e8f7f2;border-color:#1f8a70;font-weight:600}.school-module-chip.is-locked{opacity:.85;cursor:default}.sc-class-tags span{color:#0f766e;background:#e8f7f2;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.quick-attendance-page{max-width:960px}.qa-steps{flex-wrap:wrap;align-items:center;gap:0;margin-bottom:18px;display:flex}.qa-step-wrap{align-items:center;display:inline-flex}.qa-step-line{background:#d7e3de;width:28px;height:2px;margin:0 4px}.qa-step-line.is-on{background:#1f8a70}.qa-step{color:#6b7c77;background:#eef3f1;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.qa-step-num{background:#fff;border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:grid}.qa-step.is-active{color:#0f766e;background:#e8f7f2;box-shadow:inset 0 0 0 1px #b7e4d5}.qa-step.is-done{color:#0b5f58;background:#d8f3ea}.qa-card{background:linear-gradient(#e8f7f28c,#fff0 90px),#fff;border:1px solid #e2ebe7;border-radius:20px;padding:22px}.qa-card-head{align-items:flex-start;gap:14px;margin-bottom:18px;display:flex}.qa-card-icon{color:#0f766e;background:#e8f7f2;border-radius:12px;flex-shrink:0;place-items:center;width:42px;height:42px;display:grid}.qa-card-head h2{letter-spacing:-.02em;margin:0;font-size:22px}.qa-card-head p{color:#6b7c77;margin:4px 0 0;font-size:13px}.qa-toolbar{grid-template-columns:minmax(180px,220px) minmax(180px,1fr) auto;align-items:end;gap:12px;margin-bottom:14px;display:grid}.qa-field{gap:6px;min-width:0;display:grid}.qa-field span{letter-spacing:.04em;text-transform:uppercase;color:#6b7c77;font-size:12px;font-weight:700}.qa-selected-pill{color:#3d5a52;background:#f4f8f6;border:1px solid #e2ebe7;border-radius:12px;align-items:center;gap:8px;width:100%;min-width:0;min-height:44px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.qa-selected-pill span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.qa-class-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:8px;display:grid}.qa-multi-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin:0;display:flex}.qa-section-row{justify-content:space-between;align-items:center;gap:10px;margin:0 0 10px;display:flex}.qa-section-label{letter-spacing:.04em;text-transform:uppercase;color:#6b7c77;align-items:center;gap:8px;margin:0;font-size:12px;font-weight:800;display:inline-flex}.qa-section-count{color:#0f766e;letter-spacing:0;text-transform:none;background:#e8f7f2;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 7px;font-size:11px;font-weight:800;display:inline-flex}.qa-text-btn{color:#0f766e;cursor:pointer;background:#fff;border:1px solid #dce8e3;border-radius:999px;min-height:34px;padding:0 12px;font-size:12px;font-weight:750}.qa-text-btn:hover:not(:disabled){background:#e8f7f2;border-color:#b7e4d4}.qa-text-btn.is-muted{color:#6b7c77}.qa-text-btn:disabled{opacity:.4;cursor:not-allowed}.qa-class-chip{text-align:left;cursor:pointer;background:#fff;border:1px solid #e2ebe7;border-radius:14px;flex-direction:column;justify-content:space-between;gap:10px;min-height:84px;padding:14px 12px;transition:border-color .15s,background .15s,transform .15s;display:flex;position:relative}.qa-class-chip:hover:not(:disabled){background:#f3fbf8;border-color:#1f8a70;transform:translateY(-1px)}.qa-class-chip strong{color:#14221f;font-size:15px;display:block}.qa-class-count{color:#3d5a52;background:#eef6f3;border-radius:999px;align-self:flex-start;padding:4px 8px;font-size:12px;font-weight:600;display:inline-flex}.qa-class-check{color:#0000;background:#fff;border:1.5px solid #d5e3dd;border-radius:999px;place-items:center;width:22px;height:22px;display:grid;position:absolute;top:10px;right:10px}.qa-class-chip.is-selected{background:#e8f7f2;border-color:#1f8a70;box-shadow:inset 0 0 0 1px #1f8a70}.qa-class-chip.is-selected .qa-class-check{color:#fff;background:#1f8a70;border-color:#1f8a70}.qa-class-chip.is-selected .qa-class-count{color:#0f766e;background:#fff}.qa-student-groups{gap:16px;display:grid}.qa-group-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.qa-group-head strong{color:#14221f;font-size:13px}.qa-group-head span{color:#6b7c77;font-size:12px;font-weight:650}.qa-class-chip.is-empty{opacity:.45;cursor:not-allowed;background:#f7f9f8}.qa-class-chip.is-empty:hover{background:#f7f9f8;border-color:#e2ebe7;transform:none}.qa-hint{color:#8a9a95;margin:0;font-size:12px}.qa-actions-bar{border-top:1px solid #eaf1ee;justify-content:space-between;align-items:center;margin-top:18px;padding-top:16px}.qa-back{color:#3d5a52;cursor:pointer;background:#f5f8f7;border:0;border-radius:10px;align-items:center;gap:4px;padding:8px 10px;font-size:13px;font-weight:600;display:inline-flex}.qa-mark-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.qa-mark-title{flex:1;min-width:140px}.qa-mark-title h2{letter-spacing:-.02em;margin:0;font-size:22px}.qa-mark-title p{color:#6b7c77;margin:2px 0 0;font-size:13px}.qa-mark-stats{flex-wrap:wrap;gap:8px;display:flex}.qa-mark-stats span{border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.qa-mark-stats .is-present{color:#0f766e;background:#e8f7f2}.qa-mark-stats .is-absent{color:#c23b3b;background:#fdecec}.qa-bulk{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.qa-student-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.qa-student-row{background:#fff;border:1px solid #e2ebe7;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.qa-student-row.is-present{border-color:#cde9df}.qa-student-row.is-absent{background:#fff8f8;border-color:#f3c9c9}.qa-student-meta{min-width:0}.qa-student-meta strong{color:#14221f;display:block}.qa-student-meta small{color:#6b7c77}.qa-toggle-group{flex-shrink:0;gap:6px;display:flex}.qa-status-btn{color:#6b7c77;cursor:pointer;background:#f7fbfa;border:1px solid #e2ebe7;border-radius:10px;align-items:center;gap:5px;min-height:36px;padding:7px 10px;font-size:12px;font-weight:700;display:inline-flex}.qa-status-btn.is-present.is-active{color:#0f766e;background:#e8f7f2;border-color:#1f8a70}.qa-status-btn.is-absent.is-active{color:#c23b3b;background:#fdecec;border-color:#e05a5a}.qa-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.qa-actions.sticky,.qa-actions-bar{z-index:5;position:sticky;bottom:12px}.qa-actions.sticky{background:linear-gradient(#fff0,#fff 28%);padding-top:10px}.qa-actions-bar{background:linear-gradient(#fff0,#fff 22%)}.qa-actions-bar .btn{min-width:200px}.qa-done-card{text-align:center;padding:32px 22px}.qa-done-icon{color:#0f766e;background:#e8f7f2;border-radius:50%;place-items:center;width:60px;height:60px;margin:0 auto 12px;display:grid}.qa-done-card h2{margin:0}.qa-done-card>p{color:#6b7c77;margin:6px 0 0}.qa-done-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0;display:grid}.qa-done-stats div{background:#f7fbfa;border:1px solid #eaf1ee;border-radius:14px;padding:14px 8px}.qa-done-stats strong{color:#14221f;font-size:24px;display:block}.qa-done-stats span{color:#6b7c77;font-size:12px}.qa-done-card .qa-actions{justify-content:center}.qa-empty{color:#6b7c77;grid-column:1/-1;margin:0}@media (width<=900px){.qa-toolbar{grid-template-columns:1fr 1fr}.qa-multi-actions{grid-column:1/-1;justify-content:flex-start}}@media (width<=640px){.qa-actions-bar{flex-direction:column;align-items:stretch}.qa-actions-bar .btn{width:100%;min-width:0}.qa-mark-head{align-items:flex-start}.qa-student-row{flex-direction:row;align-items:center}.qa-toggle-group{width:auto}.qa-status-btn{justify-content:center;min-width:44px;padding:7px 10px}}.coming-soon-badge{color:#0f766e;letter-spacing:.04em;text-transform:uppercase;background:#e8f7f2;border-radius:999px;align-items:center;margin-bottom:14px;padding:5px 10px;font-size:11px;font-weight:700;display:inline-flex}.coming-soon-page{place-items:center;min-height:60vh;display:grid}.coming-soon-card{text-align:center;border:1px solid var(--color-border);width:min(100%,460px);box-shadow:var(--shadow-sm);background:#fff;border-radius:18px;padding:32px 28px}.coming-soon-icon{background:var(--color-primary-light);width:52px;height:52px;color:var(--color-primary);border-radius:14px;place-items:center;margin:0 auto 14px;display:grid}.coming-soon-card h1{margin:0}.coming-soon-card p{color:var(--color-text-secondary);margin:10px 0 18px}.coming-soon-points{text-align:left;gap:8px;margin:0 0 18px;padding:0;list-style:none;display:grid}.coming-soon-points li{color:#14221f;background:#f7fbfa;border:1px solid #e2ebe7;border-radius:12px;align-items:center;gap:8px;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.coming-soon-points li svg{color:var(--color-primary);flex-shrink:0}.coming-soon-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.avatar-soft{background:var(--color-primary-light);color:var(--color-primary)}.progress-track{background:#e8f2ef}.progress-fill.tone-primary,.progress-fill.tone-success{background:linear-gradient(90deg,#1f8a70,#2bb673)}.mini-bar{background:#e8f2ef}.mini-bar span{background:linear-gradient(90deg,#1f8a70,#4c8ddb)}.table th{color:#3f5c55;background:linear-gradient(#f7fbfa,#f3f8f6)}.form-input:focus,.form-select:focus,.form-textarea:focus,.search-input input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px #1f8a701f}@media (width<=960px){.quick-actions,.skeleton-stats,.attendance-toolbar,.dash-middle,.dash-tables{grid-template-columns:1fr}.header-search,.desktop-only{display:none!important}.mobile-only{display:block!important}.sidebar.is-collapsed{width:var(--sidebar-width)}.sidebar.is-collapsed .brand-text,.sidebar.is-collapsed .nav-label,.sidebar.is-collapsed .sidebar-user-meta{display:block}.sidebar.is-collapsed .sidebar-link{justify-content:flex-start;padding:10px 12px}.app-shell.sidebar-collapsed .app-main{margin-left:0}}@media (width<=1200px){.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=960px){.sidebar{z-index:220;width:min(86vw,300px);height:100dvh;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0);top:0;bottom:0;transform:translate(-100%);box-shadow:12px 0 40px #00000047}.sidebar.is-open{transform:translate(0)}.sidebar-backdrop.is-open{-webkit-backdrop-filter:blur(2px);z-index:210;background:#0a161485;display:block;position:fixed;inset:0}.sidebar-close{display:inline-grid}.sidebar-brand{padding-top:16px}.sidebar-nav{padding-bottom:8px}.sidebar-bottom{padding-bottom:12px}.app-main{margin-left:0}.menu-btn{display:grid}.app-header{padding:calc(8px + env(safe-area-inset-top,0)) 12px 8px;gap:8px;position:fixed;top:0;left:0;right:0;box-shadow:0 8px 24px #102c2814}.app-main{padding-top:calc(var(--header-height) + env(safe-area-inset-top,0))}.header-title-block,.header-user .user-meta,.header-settings-icon{display:none}.app-content{padding-left:14px;padding-right:14px;padding-bottom:calc(88px + env(safe-area-inset-bottom,0))}.app-footer{display:none}.mobile-bottom-nav{z-index:50;-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--color-border);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0));background:#fffffff7;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #102c280f}.mobile-bottom-item{color:#6b7c77;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:52px;font-size:10px;font-weight:700;text-decoration:none;display:inline-flex}.mobile-bottom-item.is-active{color:#0f766e;background:#e8f7f2}.btn,.call-parent-btn,.menu-btn{min-height:40px}.dashboard-grid,.detail-grid,.settings-grid,.school-profile-grid,.form-grid,.form-grid-2{grid-template-columns:1fr}.form-span-2{grid-column:span 1}.filters-row{grid-template-columns:1fr 1fr}.stat-grid,.stat-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.user-meta,.header-date{display:none}}@media (width<=1100px){.attention-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.app-content{padding:16px;padding-bottom:calc(88px + env(safe-area-inset-bottom,0))}.page-title,.dash-welcome h1{font-size:20px}.stat-grid,.stat-grid.four,.filters-row,.mini-stats,.detail-list,.attention-grid{grid-template-columns:1fr}.detail-tabs{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.detail-tab{flex:none}.page-actions:not(.dash-actions){width:100%}.page-actions:not(.dash-actions) .btn,.page-actions:not(.dash-actions) a{flex:1}.page-actions:not(.dash-actions) .month-picker{width:100%}.page-actions:not(.dash-actions) .month-picker-trigger{justify-content:space-between;width:100%}.dash-actions{flex-wrap:nowrap!important}.dash-actions .btn,.dash-actions a{flex:1 1 0!important}.dash-actions .month-picker{flex:0 132px!important;width:132px!important;min-width:118px!important;max-width:42%!important}.table-wrap{margin:0 -4px}.login-page{padding:max(12px, env(safe-area-inset-top,0px)) max(14px, env(safe-area-inset-right,0px)) max(12px, env(safe-area-inset-bottom,0px)) max(14px, env(safe-area-inset-left,0px))}.login-card{border-radius:16px;width:100%;padding:22px 18px 18px;box-shadow:0 12px 32px #102c2812}.login-brand{margin-bottom:16px}.login-brand-mark{border-radius:12px;width:44px;height:44px;margin-bottom:10px}.login-brand-mark svg{width:22px;height:22px}.login-brand h1{font-size:22px}.login-brand p{margin-top:4px;font-size:12px}.login-form{gap:11px}.login-form-header{margin-bottom:2px}.login-form-header h2{font-size:16px}.login-form-header p{margin-top:4px;font-size:12px;line-height:1.35}.login-form .form-label{margin-bottom:4px;font-size:12px}.login-input-wrap .form-input{min-height:42px;font-size:16px}.login-form .btn{min-height:44px;margin-top:4px}.facility-banner{padding:18px}.facility-banner-main{align-items:flex-start}}@media (width<=960px){:root{--header-height:56px;--mobile-nav-height:64px;font-size:13px}.app-shell{min-height:100dvh}.sidebar{border-radius:0 22px 22px 0;box-shadow:16px 0 48px #00000052;z-index:220!important;width:min(82vw,296px)!important;height:100dvh!important;transition:transform .28s cubic-bezier(.22,1,.36,1)!important;top:0!important;bottom:0!important}.sidebar-backdrop.is-open{-webkit-backdrop-filter:blur(4px);z-index:210!important;background:#0812108c!important;inset:0!important}.sidebar-section-label{display:block!important}.sidebar-brand{gap:10px;padding:18px 16px 14px!important}.sidebar-brand .brand-mark{border-radius:12px;width:40px;height:40px}.sidebar-brand .brand-name{font-size:17px}.sidebar-brand .brand-tagline{opacity:.78;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:160px;font-size:11px;display:-webkit-box;overflow:hidden}.sidebar-close{background:#ffffff1f;border-radius:10px;place-items:center;width:34px;height:34px}.sidebar-nav{gap:3px;padding:0 10px 12px!important}.sidebar-link{border-radius:14px;gap:10px;min-height:44px;padding:8px 10px;font-size:13.5px;font-weight:600}.sidebar-link.is-active{background:#2bb67347;box-shadow:inset 0 0 0 1px #8ff0c247}.sidebar-link.is-active .sidebar-link-icon{color:#b7f5d4;background:#2bb67359}.sidebar-bottom{gap:8px;padding:10px 12px calc(14px + env(safe-area-inset-bottom,0px))!important}.sidebar-user-chip{background:#ffffff14;border:1px solid #ffffff14;border-radius:14px;padding:10px 12px}.logout-link{border-radius:14px;min-height:44px}.modal-overlay{-webkit-backdrop-filter:blur(5px);overscroll-behavior:none;background:#0a161480!important;width:100%!important;max-width:100%!important;overflow-x:hidden!important}.modal-overlay.is-drawer,.modal-overlay.is-center{justify-content:stretch!important;align-items:flex-end!important;padding:0!important;display:flex!important}.modal,.modal.modal-center,.modal.modal-drawer,.modal.modal-drawer.modal-sm,.modal.modal-drawer.modal-md,.modal.modal-drawer.modal-lg,.modal.modal-drawer.modal-xl,.modal.modal-drawer.modal-wide,.modal.modal-sm,.modal.modal-md,.modal.modal-lg,.modal.modal-xl{padding-bottom:env(safe-area-inset-bottom,0px);overscroll-behavior:contain;left:0;right:0;box-sizing:border-box!important;border:0!important;border-radius:22px 22px 0 0!important;flex-direction:column!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:min(92dvh,100%)!important;margin:0!important;animation:.28s cubic-bezier(.22,1,.36,1) modal-sheet-up!important;display:flex!important;overflow:hidden!important;box-shadow:0 -12px 40px #102c2833!important}.modal-sheet-handle{background:#d5e3de;border-radius:999px;flex-shrink:0;width:40px;height:4px;margin:10px auto 0;display:block}.modal-header{border-bottom-color:#e7f0ec;padding:12px 16px!important}.modal-title{letter-spacing:-.02em;color:#102c28;font-weight:800;font-size:16px!important}.modal-close-btn{border-radius:10px;width:32px;height:32px}.modal-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;min-width:0;overflow-x:hidden;padding:14px 16px 18px!important}.modal-body .form-grid,.modal-body .detail-grid,.modal-body .form-field,.modal-body input,.modal-body select,.modal-body textarea,.modal-body .select-field,.modal-body .multi-select-field{min-width:0;max-width:100%}.modal-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))!important}.modal-body .form-actions{background:linear-gradient(#fff0 0%,#fff 28%);gap:8px;margin-top:8px;padding-top:12px;position:sticky;bottom:0}.modal-body .form-actions .btn{flex:1 1 0;min-height:42px}@keyframes modal-sheet-up{0%{opacity:.88;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.app-header{min-height:var(--header-height);border-bottom:1px solid #e2ebe7;gap:8px;height:auto;top:0;left:0;right:0;box-shadow:0 4px 18px #102c2812;z-index:80!important;padding:calc(6px + env(safe-area-inset-top,0px)) 12px 6px!important;background:#fffffffa!important;position:fixed!important}.app-main{min-height:100dvh;padding-top:calc(var(--header-height) + env(safe-area-inset-top,0px))!important;margin-left:0!important}.menu-btn,.header-title-block,.header-user .user-meta,.header-settings-icon,.app-footer{display:none!important}.header-right{justify-content:flex-end;gap:8px;width:100%}.session-select{flex:none;max-width:118px;margin-right:auto}.session-select-trigger{border-radius:12px;gap:5px;width:auto;max-width:118px;min-height:34px;padding:5px 8px;font-size:12px}.session-select-icon,.session-select-chevron{flex-shrink:0;width:14px;height:14px}.session-select-option small{display:none}.header-notify-btn,.user-avatar{width:36px;height:36px}.app-content{padding:12px 12px calc(var(--mobile-nav-height) + 16px + env(safe-area-inset-bottom,0px))!important}.mobile-bottom-nav{min-height:var(--mobile-nav-height);-webkit-backdrop-filter:blur(18px);padding:4px 4px calc(4px + env(safe-area-inset-bottom,0px));border-top:1px solid #e2ebe7;grid-auto-columns:1fr;grid-auto-flow:column;bottom:0;left:0;right:0;box-shadow:0 -6px 20px #102c2814;z-index:90!important;background:#fffffffa!important;display:grid!important;position:fixed!important}.mobile-bottom-item{letter-spacing:.01em;gap:3px;min-height:52px;font-size:10px}.mobile-bottom-item.is-active{color:#0f766e;background:#e8f7f2}.dash-welcome{gap:10px;margin-bottom:12px}.dash-welcome h1,.page-title{letter-spacing:-.02em;line-height:1.25;font-size:17px!important}.dash-welcome p,.page-subtitle{line-height:1.35;margin-top:2px!important;font-size:11.5px!important}.page-actions,.dash-actions{align-items:center;gap:6px;width:100%;flex-wrap:nowrap!important;display:flex!important}.dash-actions .month-picker{flex:0 132px;width:132px;min-width:118px;max-width:42%}.dash-actions .month-picker-trigger{border-radius:10px;justify-content:flex-start;gap:4px;width:100%;height:34px;min-height:34px;padding:0 8px;font-size:11px}.dash-actions .month-picker-trigger>span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.dash-actions .month-picker-cal,.dash-actions .month-picker-chevron{flex-shrink:0;width:13px;height:13px}.dash-actions .month-picker-chevron{margin-left:auto}.dash-actions .btn{white-space:nowrap;border-radius:10px;flex:1 1 0;justify-content:center;gap:4px;width:auto;min-width:0;height:34px;min-height:34px;padding:0 8px;font-size:11px}.dash-actions .mobile-only{display:inline!important}.page-actions .month-picker-trigger,.page-actions .btn{border-radius:10px}.stat-grid,.stat-grid.four,.compact-stats{margin-bottom:12px;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}.stat-card{border-radius:14px;min-height:0!important;padding:10px 10px 11px!important}.stat-card:hover{transform:none}.stat-card:before{width:3px}.card{border-radius:14px}.card-header h3,.card-title{font-size:13px}.filters-bar,.filters-row{gap:8px}.btn,.table-wrap{border-radius:12px}html,body,#root,.app-shell,.app-main,.app-content,.page,.dash-tables,.dash-middle,.dashboard-grid,.detail-grid{max-width:100%;overflow-x:clip}.app-content,.page,.dash-tables,.card{min-width:0}.card-header{margin-bottom:10px}.card-header .text-link{flex-shrink:0;font-size:12px}.table-wrap,.sc-table-wrap{border-radius:12px;max-width:100%;margin:0}.table{min-width:520px}.compact-table{border-collapse:separate;border-spacing:0;width:100%;min-width:0!important}.compact-table thead{display:none}.compact-table tbody{flex-direction:column;gap:8px;display:flex}.compact-table tbody tr{background:#fff;border:1px solid #dce8e3;border-radius:14px;grid-template-columns:1fr 1fr;align-items:start;gap:6px 10px;padding:10px 10px 8px 12px;display:grid;position:relative;overflow:hidden;box-shadow:0 4px 12px #102c280b}.compact-table tbody tr:before{content:"";background:linear-gradient(#1f8a70 0%,#2bb673 100%);width:3px;position:absolute;top:0;bottom:0;left:0}.compact-table tbody tr.row-overdue:before,.compact-table tbody tr.row-absent:before{background:linear-gradient(#e05a5a 0%,#f08989 100%)}.compact-table tbody tr.row-duesoon:before{background:linear-gradient(#e89a3c 0%,#f0c27a 100%)}.compact-table tbody td{color:#14221f;flex-flow:wrap;align-items:baseline;gap:4px 6px;min-width:0;max-width:100%;font-size:12px;font-weight:650;line-height:1.25;display:flex;overflow:hidden;border:0!important;margin:0!important;padding:0!important}.compact-table tbody td:before{content:attr(data-label);letter-spacing:.03em;text-transform:uppercase;color:#8a9893;flex:none;font-size:10px;font-weight:800;line-height:1.2;display:inline}.compact-table tbody td:first-child{flex-direction:column;grid-column:1/-1;gap:0;padding-bottom:2px!important}.compact-table tbody td:first-child:before{display:none}.compact-table tbody td[data-label=Action],.compact-table tbody td[data-label=Actions]{flex-direction:row;grid-column:1/-1;border-top:1px solid #e7f0ec!important;margin-top:0!important;padding-top:6px!important}.compact-table tbody td[data-label=Action]:before,.compact-table tbody td[data-label=Actions]:before{display:none}.compact-table .list-person{align-items:center;gap:8px;width:100%;min-width:0}.compact-table .avatar-soft{color:#0f766e;background:#e8f7f2;border-radius:10px;width:32px;height:32px;font-size:12px;font-weight:800;box-shadow:inset 0 0 0 1px #1f8a701f}.compact-table .cell-title{letter-spacing:-.02em;color:#102c28;font-size:13px;font-weight:800}.compact-table .cell-meta{color:#6b7c77;font-size:10.5px}.compact-table .cell-stack,.compact-table .cell-title,.compact-table strong,.compact-table span{overflow-wrap:anywhere;word-break:break-word;max-width:100%}.compact-table .cell-stack{flex-direction:column;gap:2px;min-width:0;display:flex}.compact-table .soft-pill{color:#0f766e;background:#eef7f3;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:750}.compact-table .action-row,.compact-table .fee-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;width:100%;display:flex}.compact-table .icon-btn{color:#24574c;background:#f7fbfa;border:1px solid #dce8e3;border-radius:9px;width:30px;height:30px}.compact-table .icon-btn:hover{color:#0f766e;background:#e8f7f2;border-color:#b7e4d4}.compact-table .icon-btn.danger{color:#c24747}.compact-table .icon-btn.danger:hover{background:#fdecec;border-color:#f3c1c1}.compact-table .fee-row-actions .btn,.compact-table .fee-row-actions .call-parent-btn{border-radius:9px;min-height:30px;padding:0 10px;font-size:11px}.compact-table .badge,.compact-table .status-badge{border-radius:999px;padding:2px 7px;font-size:10px;font-weight:750}.compact-table .progress-block{display:none!important}.stat-card{border-radius:12px;padding:8px 9px!important}.stat-icon{border-radius:8px;width:26px!important;height:26px!important}.stat-icon svg{width:13px;height:13px}.stat-label{font-size:10px!important}.stat-value{margin-top:2px!important;font-size:15px!important}.stat-hint{margin-top:2px!important;font-size:9.5px!important}.stat-grid,.stat-grid.four,.compact-stats{margin-bottom:10px;gap:6px!important}.card-padded{padding:12px!important}.compact-table .status-toggle{width:100%}.compact-table .form-input.compact{border-radius:10px;width:100%;max-width:100%;min-height:34px}.compact-table tbody td[data-label=Fee],.compact-table tbody td[data-label=Pending],.compact-table tbody td[data-label=Total],.compact-table tbody td[data-label=Paid],.compact-table tbody td[data-label=Amount]{font-variant-numeric:tabular-nums;font-weight:800}.page-header{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:14px}.page-header-copy{min-width:0}.page-subtitle{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.toolbar-actions,.page-header>.page-actions.toolbar-actions{gap:6px;width:100%;flex-wrap:nowrap!important;display:flex!important}.toolbar-actions .btn,.toolbar-actions>a{flex:1 1 0;min-width:0}.toolbar-actions>a .btn,.toolbar-actions .btn{white-space:nowrap;border-radius:10px;justify-content:center;width:100%;height:34px;min-height:34px;padding:0 8px;font-size:11px}.toolbar-actions .mobile-only{display:inline!important}.filters-bar-search-row{gap:8px}.filters-bar-row.filters-bar-controls,.filters-bar-row.cols-2.filters-bar-controls{align-items:end;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.filters-bar-row.cols-3.filters-bar-controls,.filters-bar-row.cols-4.filters-bar-controls{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.filters-bar-row.filters-bar-inline.cols-2{grid-template-columns:minmax(0,1.3fr) minmax(120px,.9fr)!important;gap:8px!important}.filters-bar-date .form-label,.filters-bar-select .form-label{margin-bottom:5px;font-size:12px}.filters-bar-date .form-input[type=date]{min-height:44px;padding:10px;font-size:15px}.filters-bar-controls .select-control{border-radius:10px;min-height:44px}.filters-bar-controls .select-trigger{min-height:44px;padding:8px 12px;font-size:13px}.filters-bar-controls .select-value,.filters-bar-controls .select-placeholder{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=380px){.filters-bar-row.filters-bar-controls,.filters-bar-row.cols-2.filters-bar-controls,.filters-bar-row.cols-3.filters-bar-controls,.filters-bar-row.cols-4.filters-bar-controls{grid-template-columns:1fr!important}}.select-sheet-root{z-index:320;overscroll-behavior:none;width:100%;max-width:100%;display:block;position:fixed;inset:0;overflow:hidden}.select-sheet-backdrop{-webkit-backdrop-filter:blur(4px);cursor:pointer;background:#0a161480;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.select-sheet{box-sizing:border-box;width:100%;max-width:100%;max-height:min(78dvh,560px);padding-bottom:env(safe-area-inset-bottom,0px);overscroll-behavior:contain;background:#fff;border-radius:22px 22px 0 0;flex-direction:column;animation:.28s cubic-bezier(.22,1,.36,1) select-sheet-up;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 -12px 40px #102c2833}.select-sheet-handle{background:#d5e3de;border-radius:999px;flex-shrink:0;width:40px;height:4px;margin:10px auto 0}.select-sheet-header{border-bottom:1px solid #e7f0ec;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px 10px;display:flex}.select-sheet-title{letter-spacing:-.02em;color:#102c28;margin:0;font-size:16px;font-weight:800}.select-sheet-close{color:#4b5c57;cursor:pointer;background:#f4f8f6;border:1px solid #e2ebe7;border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;padding:0;display:inline-grid}.select-sheet .select-search{background:#f7fbfa;border:1px solid #e2ebe7;border-radius:12px;margin:10px 12px 0}.select-sheet .select-options{padding:8px 10px calc(10px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch;flex:1;max-height:none;overflow:auto}.select-sheet .select-option{border-radius:12px;min-height:46px;padding:12px 14px;font-size:14px;font-weight:600}.select-sheet .select-option.is-selected{color:#0f766e;background:#e8f7f2}.select-sheet .select-empty{padding:28px 12px}.select-sheet .multi-select-foot{padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:#fff}.select-sheet .multi-select-foot-btn{border-radius:12px;min-height:42px}@keyframes select-sheet-up{0%{opacity:.9;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.filters-bar-meta{margin-top:2px;font-size:11px}.table-wrap .table:not(.compact-table){min-width:560px}.students-table tbody tr{grid-template-columns:1fr auto;align-items:center;gap:8px 10px;padding:12px 12px 10px 14px}.students-table tbody td.desktop-only-cell,.students-table tbody td[data-label=ID],.students-table tbody td[data-label=Class],.students-table tbody td[data-label=Parent],.students-table tbody td[data-label=Status]{display:none!important}.students-table tbody td[data-label=Student]{grid-column:1/-1;padding-bottom:0!important}.students-table tbody td[data-label=Student]:before,.students-table tbody td[data-label=Fee]:before,.students-table tbody td[data-label=Actions]:before{display:none}.students-table .list-person{align-items:flex-start;gap:10px}.students-table .avatar-soft{border-radius:11px;width:36px;height:36px;margin-top:1px}.students-table .cell-stack{flex:1;min-width:0}.students-table .cell-title{font-size:14px}.students-table .students-card-meta{color:#6b7c77;margin-top:2px;line-height:1.35;display:block!important}.students-table .students-card-tags{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;margin-left:auto;display:flex!important}.students-table .students-card-tags .soft-pill,.students-table .students-card-tags .badge,.students-table .students-card-tags .status-badge{white-space:nowrap;font-size:10px}.students-table tbody td[data-label=Fee]{color:#102c28;grid-column:1;align-items:center;font-size:13px;font-weight:800;border-top:1px solid #e7f0ec!important;padding-top:8px!important}.students-table tbody td[data-label=Actions]{grid-column:2;justify-content:flex-end;align-items:center;border-top:1px solid #e7f0ec!important;margin-top:0!important;padding-top:8px!important}.students-table .action-row{justify-content:flex-end;width:auto}.students-table tbody tr.students-group-row,.attendance-table tbody tr.students-group-row,.fees-table tbody tr.students-group-row,.reports-att-table tbody tr.students-group-row,.reports-fee-table tbody tr.students-group-row,.calendar-day-table tbody tr.students-group-row{box-shadow:none;background:#e8f7f2;border:0;border-radius:10px;margin-top:4px;padding:8px 10px;display:block}.students-table tbody tr.students-group-row:before,.attendance-table tbody tr.students-group-row:before,.fees-table tbody tr.students-group-row:before,.reports-att-table tbody tr.students-group-row:before,.reports-fee-table tbody tr.students-group-row:before,.calendar-day-table tbody tr.students-group-row:before{display:none}.students-table tbody tr.students-group-row td,.attendance-table tbody tr.students-group-row td,.fees-table tbody tr.students-group-row td,.reports-att-table tbody tr.students-group-row td,.reports-fee-table tbody tr.students-group-row td,.calendar-day-table tbody tr.students-group-row td{background:0 0;display:block;border:0!important;padding:0!important}.students-table tbody tr.students-group-row td:before,.attendance-table tbody tr.students-group-row td:before,.fees-table tbody tr.students-group-row td:before,.reports-att-table tbody tr.students-group-row td:before,.reports-fee-table tbody tr.students-group-row td:before,.calendar-day-table tbody tr.students-group-row td:before{display:none}.calendar-page .calendar-cell{border-radius:10px;min-height:58px;padding:6px}.calendar-page .calendar-side-head{padding:12px}.calendar-page .calendar-side-body{max-height:none;padding:12px}.calendar-page .calendar-day-group li{flex-direction:column;align-items:flex-start}.calendar-page .calendar-day-row-meta{justify-content:space-between;width:100%}.reports-page .reports-scroll-wrap{max-height:none}.student-details-page .student-profile-hero{border-radius:16px;margin-bottom:12px;padding:12px}.student-details-page .student-profile-top{margin-bottom:10px}.student-details-page .student-profile-avatar{border-radius:13px;width:44px;height:44px;font-size:15px}.student-details-page .student-profile-name{font-size:18px}.student-details-page .student-profile-meta{font-size:12px}.student-details-page .student-profile-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:12px}.student-details-page .student-action-btn{border-radius:12px;gap:3px;min-height:52px;padding:7px 4px;font-size:10px}.student-details-page .detail-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:6px;margin-bottom:12px;padding-bottom:2px;display:flex;overflow-x:auto}.student-details-page .detail-tabs::-webkit-scrollbar{display:none}.student-details-page .detail-tab{white-space:nowrap;border-radius:999px;flex:1 0 auto;min-height:34px;padding:6px 12px;font-size:12px}.student-details-page .student-detail-list{grid-template-columns:1fr;gap:0}.student-details-page .student-detail-list>div{border-bottom:1px solid #eef3f1;grid-template-columns:96px 1fr;align-items:center;gap:8px;padding:9px 0;display:grid}.student-details-page .student-detail-list>div:last-child{border-bottom:0;padding-bottom:2px}.student-details-page .student-detail-list dt{color:#8a9893;letter-spacing:.01em;font-size:11px;font-weight:750}.student-details-page .student-detail-list dd{color:#14221f;text-align:right;overflow-wrap:anywhere;font-size:13px;font-weight:700}.student-details-page .student-detail-list .detail-span{grid-column:auto}.student-details-page .mini-stats{gap:8px}.student-details-page .mini-stats>div{border-radius:12px;padding:10px 8px}.student-details-page .mini-stats .stat-value{font-size:15px}.student-details-page .mini-stats .stat-label{font-size:10px}.student-details-page .session-history-item{gap:8px;padding:10px}.student-details-page .card-padded{padding:12px}.student-detail-table tbody tr{grid-template-columns:1fr 1fr}.student-details-page .student-profile-actions:has(>:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.student-details-page .student-profile-actions:has(>:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.student-details-page .student-profile-actions:has(>:only-child){grid-template-columns:1fr}.school-profile-page .school-profile-hero{border-radius:16px;flex-direction:column;align-items:stretch;gap:12px;margin-bottom:12px;padding:12px}.school-profile-page .school-profile-icon{border-radius:12px;width:42px;height:42px}.school-profile-page .school-profile-name{font-size:17px}.school-profile-page .school-profile-meta{font-size:12px}.school-profile-page .school-profile-hero-actions{width:100%}.school-profile-page .school-profile-hero-actions .btn{flex:1;min-height:38px}.school-profile-page .school-profile-hero-actions{grid-template-columns:1fr;display:grid}.school-profile-page .school-profile-hero-actions:has(>:nth-child(2)){grid-template-columns:1fr 1fr}.school-profile-page .school-profile-list{grid-template-columns:1fr;gap:0}.school-profile-page .school-profile-list>div{border-bottom:1px solid #eef3f1;grid-template-columns:110px 1fr;align-items:start;gap:8px;padding:9px 0;display:grid}.school-profile-page .school-profile-list>div:last-child{border-bottom:0;padding-bottom:2px}.school-profile-page .school-profile-list dt{color:#8a9893;font-size:11px;font-weight:750}.school-profile-page .school-profile-list dd{color:#14221f;text-align:right;overflow-wrap:anywhere;font-size:13px;font-weight:700}.school-profile-page .school-profile-list .detail-span{grid-column:auto}.school-profile-page .school-profile-form{gap:10px;grid-template-columns:1fr!important}.school-profile-page .school-profile-form .form-span-2{grid-column:1/-1}.school-profile-page .school-profile-form-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:4px;display:grid!important}.school-profile-page .school-profile-form-actions .btn{width:100%;min-height:42px}.school-profile-page .card-padded{padding:12px}.school-profile-page .form-hint{margin-top:10px;font-size:11px}.quick-attendance-page{max-width:none}.quick-attendance-page .page-header{gap:8px;margin-bottom:8px}.quick-attendance-page .page-subtitle{display:none}.quick-attendance-page .page-title{font-size:17px!important}.quick-attendance-page .qa-steps{grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:0;width:100%;margin-bottom:8px;display:grid}.quick-attendance-page .qa-step-wrap{display:contents}.quick-attendance-page .qa-step{justify-content:center;gap:4px;min-height:30px;padding:4px 6px;font-size:10px}.quick-attendance-page .qa-step-num{width:18px;height:18px;font-size:10px}.quick-attendance-page .qa-step-line{width:100%;min-width:10px;margin:0 2px}.quick-attendance-page .qa-card{border-radius:14px;padding:10px}.quick-attendance-page .qa-card-head{align-items:center;gap:8px;margin-bottom:10px}.quick-attendance-page .qa-card-icon{border-radius:9px;width:32px;height:32px}.quick-attendance-page .qa-card-head h2{font-size:15px}.quick-attendance-page .qa-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px;margin-bottom:8px}.quick-attendance-page .qa-field{grid-column:1}.quick-attendance-page .qa-field span{margin-bottom:2px;font-size:10px}.quick-attendance-page .qa-field .form-input{border-radius:10px;min-height:36px;padding:6px 10px;font-size:13px}.quick-attendance-page .qa-selected-pill.is-empty-selection{display:none}.quick-attendance-page .qa-selected-pill.has-selection{border-radius:10px;grid-column:1/-1;min-height:34px;padding:0 10px;font-size:11px}.quick-attendance-page .qa-multi-actions{grid-column:2;align-items:end;gap:4px;width:auto;padding-bottom:0;display:flex}.quick-attendance-page .qa-text-btn{white-space:nowrap;border-radius:10px;width:auto;min-height:36px;padding:0 10px;font-size:11px}.quick-attendance-page .qa-section-row{gap:6px;margin-bottom:6px}.quick-attendance-page .qa-section-label{gap:6px;font-size:10px}.quick-attendance-page .qa-section-count{min-width:18px;height:18px;padding:0 5px;font-size:10px}.quick-attendance-page .qa-empty-toggle{min-height:28px;padding:0 8px;font-size:10px}.quick-attendance-page .qa-class-grid{grid-template-columns:1fr;gap:6px}.quick-attendance-page .qa-class-chip{border-radius:12px;flex-direction:row;justify-content:flex-start;align-items:center;gap:10px;min-height:0;padding:10px 12px}.quick-attendance-page .qa-class-chip strong{flex:1;min-width:0;padding-right:0;font-size:13px}.quick-attendance-page .qa-class-count{order:3;margin-left:auto;padding:3px 7px;font-size:10px}.quick-attendance-page .qa-class-check{flex-shrink:0;order:4;width:22px;height:22px;position:static}.quick-attendance-page .qa-actions-bar,.quick-attendance-page .qa-actions.sticky{bottom:calc(var(--mobile-nav-height,64px) + 6px);border-top:0;margin-top:10px;padding:8px 0 2px}.quick-attendance-page .qa-actions-bar .btn{border-radius:12px;min-height:42px}.quick-attendance-page .qa-mark-head{gap:8px;margin-bottom:10px}.quick-attendance-page .qa-mark-title h2{font-size:16px}.quick-attendance-page .qa-mark-stats{width:100%}.quick-attendance-page .qa-mark-stats span{text-align:center;flex:1}.quick-attendance-page .qa-bulk{grid-template-columns:1fr 1fr;gap:6px;display:grid}.quick-attendance-page .qa-bulk .btn{justify-content:center;width:100%}.quick-attendance-page .qa-student-row{border-radius:12px;gap:8px;padding:10px}.quick-attendance-page .qa-student-meta strong{font-size:13px}.quick-attendance-page .qa-done-card{padding:22px 14px}.quick-attendance-page .qa-done-card .qa-actions{flex-direction:column}.quick-attendance-page .qa-done-card .qa-actions .btn,.quick-attendance-page .qa-done-card .qa-actions a,.quick-attendance-page .qa-done-card .qa-actions a .btn{width:100%}.reports-page .page-header{margin-bottom:10px}.reports-page .stat-grid.compact-stats{margin-bottom:12px;gap:8px!important}.reports-page .reports-grid{gap:10px;margin-bottom:10px}.reports-page .card-padded{padding:12px}.reports-page .report-list{gap:8px}.reports-page .report-list-item{border-radius:12px;gap:6px;padding:10px}.reports-page .report-list-item .progress-block{margin:0}.reports-page .report-list-item .progress-track{height:6px}.reports-page .report-kpi-row{gap:6px;margin-bottom:10px;grid-template-columns:repeat(3,minmax(0,1fr))!important}.reports-page .report-kpi-row>div{text-align:center;border-radius:10px;padding:8px 6px}.reports-page .report-kpi-row span{margin-bottom:2px;font-size:9px}.reports-page .report-kpi-row strong{font-size:14px}.reports-page .att-snap-list{gap:8px;max-height:none}.reports-page .att-snap-card{border-radius:12px;padding:10px}.reports-page .att-snap-main strong{font-size:13px}.reports-page .att-snap-main p{font-size:11px}.reports-page .att-snap-stats{gap:6px;font-size:11px}.reports-page .fee-report-list{gap:8px}.reports-page .fee-report-card{border-radius:12px;padding:10px 12px}.reports-page .fee-report-top{margin-bottom:8px}.reports-page .fee-report-top strong{font-size:13px}.reports-page .fee-report-amounts{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:8px}.reports-page .fee-report-amounts>div{border-radius:9px;padding:8px}.reports-page .fee-report-amounts span{font-size:9px}.reports-page .fee-report-amounts strong{font-size:12px}.reports-page .fee-report-count{padding:3px 8px;font-size:10px}.reports-page .filters-bar{margin-bottom:10px}.header-notify-sheet-root{z-index:330;overscroll-behavior:none;width:100%;max-width:100%;display:block;position:fixed;inset:0;overflow:hidden}.header-notify-sheet-backdrop{-webkit-backdrop-filter:blur(4px);cursor:pointer;background:#0a161485;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.header-notify-panel.is-sheet{box-sizing:border-box;overscroll-behavior:contain;z-index:1;width:100%;max-width:100%;max-height:min(88dvh,720px);padding-bottom:env(safe-area-inset-bottom,0px);border:0;border-radius:22px 22px 0 0;animation:.28s cubic-bezier(.22,1,.36,1) notify-sheet-up;position:absolute;inset:auto 0 0;overflow:hidden;box-shadow:0 -14px 40px #102c2838}.header-notify-panel.is-sheet .header-notify-handle{background:#d5e3de;border-radius:999px;flex-shrink:0;width:40px;height:4px;margin:10px auto 0;display:block}.header-notify-panel.is-sheet .header-notify-head{background:#fff;align-items:center;padding:12px 14px}.header-notify-panel.is-sheet .header-notify-head-copy strong{letter-spacing:-.02em;color:#102c28;font-size:17px;font-weight:800}.header-notify-panel.is-sheet .header-notify-live{display:none}.header-notify-panel.is-sheet .header-notify-list{-webkit-overflow-scrolling:touch;gap:8px;max-height:none;padding:10px 12px}.header-notify-panel.is-sheet .header-notify-item{background:#fff;border-color:#e7f0ec;border-radius:14px;align-items:center;min-height:64px;padding:12px;box-shadow:0 2px 8px #102c280a}.header-notify-panel.is-sheet .header-notify-item:not(.is-read){background:#f7fbfa;border-color:#d5ebe3}.header-notify-panel.is-sheet .header-notify-item.is-read{opacity:.78}.header-notify-panel.is-sheet .header-notify-icon{border-radius:12px;width:36px;height:36px}.header-notify-panel.is-sheet .header-notify-copy strong{font-size:13.5px;font-weight:750}.header-notify-panel.is-sheet .header-notify-copy small{margin-top:4px;font-size:11.5px;line-height:1.35}.header-notify-panel.is-sheet .header-notify-unread{width:9px;height:9px;margin-top:0}.header-notify-panel.is-sheet .header-notify-foot{padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:#fff;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.header-notify-panel.is-sheet .header-notify-foot a{color:#0f766e;background:#e8f7f2;border-radius:12px;justify-content:center;align-items:center;min-height:38px;font-size:12px;display:inline-flex}.header-notify-markall span{display:inline}@keyframes notify-sheet-up{0%{opacity:.9;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.school-users-page .card-header{flex-wrap:wrap;gap:8px;margin-bottom:8px}.school-users-page .card-title{display:none}.school-users-search{flex:100%;width:100%;max-width:none}.school-users-table tbody tr{grid-template-columns:1fr auto;gap:6px 8px;padding:10px 10px 8px 12px}.school-users-table tbody td[data-label=Classes],.school-users-table tbody td[data-label=Access],.school-users-table tbody td.desktop-only-cell{display:none!important}.school-users-table tbody td[data-label=User]{grid-column:1/-1}.school-users-table tbody td[data-label=Type],.school-users-table tbody td[data-label=Status],.school-users-table tbody td[data-label=Actions]{align-items:center}.school-users-table tbody td[data-label=Type]:before,.school-users-table tbody td[data-label=Status]:before,.school-users-table tbody td[data-label=Actions]:before{display:none}.school-users-table tbody td[data-label=Type]{grid-column:1}.school-users-table tbody td[data-label=Status]{grid-column:2;justify-content:flex-end}.school-users-table tbody td[data-label=Actions]:not(:has(.action-row)){display:none}.school-users-table tbody td[data-label=Actions]:has(.action-row){grid-column:1/-1;justify-content:flex-start;border-top:1px solid #e7f0ec!important;padding-top:6px!important}.school-users-table .school-users-actions{justify-content:flex-start;align-items:center;gap:6px;width:100%}.school-users-table .school-users-pass-mobile{align-items:center;margin-right:auto;display:inline-flex!important}.school-users-table .school-users-meta{margin-top:1px;display:block!important}.school-users-table .sc-secret{gap:4px}.school-users-table .sc-secret code{padding:2px 6px;font-size:11px}.school-users-table .sc-toggle{gap:6px;width:auto;min-height:28px;padding:2px 8px 2px 3px}.school-users-table .sc-toggle-track{width:28px;height:16px}.school-users-table .sc-toggle-thumb{width:12px;height:12px}.school-users-table .sc-toggle.is-on .sc-toggle-thumb{transform:translate(12px)}.school-users-table .sc-toggle-label{min-width:0;font-size:11px}.school-users-page .page-actions .btn{width:100%}}
