:root{--font-display: "Zilla Slab", Georgia, "Times New Roman", serif;--font-ui: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, Menlo, monospace;--primary: #1e88e5;--primary-deep: #1565c0;--primary-soft: #e3f2fd;--primary-mid: #64b5f6;--ink: #0f2436;--ink-muted: #5c7388;--paper: #f5f9fc;--surface: #ffffff;--line: #d7e5f0;--line-soft: #eaf2f8;--ok: #1b7a3d;--ok-soft: #e7f6ec;--warn: #c77700;--warn-soft: #fff4e0;--danger: #b42318;--danger-soft: #fdf0ef;--sidebar: #0f2436;--sidebar-mid: #163044;--radius: 14px;--radius-sm: 9px;--sidebar-width: 248px;--shadow-xs: 0 1px 2px rgba(15, 36, 54, .04);--shadow-sm: 0 2px 8px rgba(15, 36, 54, .045);--shadow-md: 0 10px 28px rgba(15, 36, 54, .06);--shadow-card: 0 1px 2px rgba(15, 36, 54, .03), 0 8px 20px rgba(15, 36, 54, .04)}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-ui);color:var(--ink);background:var(--paper);line-height:1.45;-webkit-font-smoothing:antialiased}button,input,select{font-family:inherit}a{color:var(--primary-deep)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:none;border-radius:var(--radius-sm);padding:.7rem 1.15rem;font-size:.875rem;font-weight:600;letter-spacing:.01em;cursor:pointer;text-decoration:none;transition:background .15s ease,border-color .15s ease,box-shadow .15s,opacity .15s}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-xs)}.btn-primary:hover:not(:disabled){background:var(--primary-deep);box-shadow:var(--shadow-sm)}.btn-secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-xs)}.btn-secondary:hover:not(:disabled){background:var(--primary-soft);border-color:var(--primary-mid)}.btn-compact{padding:.45rem .75rem;font-size:.8rem}.btn-ghost{background:transparent;color:#ffffffbf;border:1px solid rgba(255,255,255,.15);width:100%}.btn-ghost:hover:not(:disabled){background:#ffffff0f;color:#fff}.auth-page{min-height:100vh;display:grid;place-items:center;padding:2rem 1.25rem;background:radial-gradient(900px 480px at 10% -10%,#d7ecff 0%,transparent 55%),var(--paper)}.auth-card{width:min(400px,100%);background:var(--surface);border:1px solid var(--line-soft);border-radius:18px;padding:2.15rem 1.85rem 1.85rem;box-shadow:var(--shadow-md)}.auth-brand{display:flex;align-items:center;gap:.55rem;margin-bottom:1.1rem}.brand-mark{width:12px;height:12px;background:var(--primary-mid);transform:rotate(45deg);border-radius:2px;flex-shrink:0}.auth-brand .wordmark{font-family:var(--font-display);font-size:1.75rem;font-weight:700;color:var(--primary-deep);margin:0}.auth-card h1{font-family:var(--font-display);margin:0 0 .35rem;font-size:1.45rem;font-weight:600}.auth-card .lead{margin:0 0 1.4rem;color:var(--ink-muted);font-size:.92rem}.form-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.95rem}.form-field span{font-size:.8rem;font-weight:600;color:var(--ink-muted)}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);border-radius:var(--radius-sm);padding:.7rem .85rem;font-size:.95rem;font-family:inherit;background-color:var(--surface)}.form-field textarea{resize:vertical;min-height:6rem}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid color-mix(in srgb,var(--primary) 40%,transparent);border-color:var(--primary)}.password-input-wrap{position:relative}.password-input-wrap input{width:100%;padding-right:2.75rem}.password-toggle{position:absolute;top:50%;right:.55rem;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:6px;background:transparent;color:var(--ink-muted);cursor:pointer}.password-toggle:hover{color:var(--primary-deep);background:color-mix(in srgb,var(--primary-soft) 65%,transparent)}.password-toggle:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 40%,transparent);outline-offset:1px}.auth-footer{margin-top:1.15rem;font-size:.85rem;text-align:center;color:var(--ink-muted)}.error{color:var(--danger);font-size:.88rem}.muted{color:var(--ink-muted)}.loading-page{min-height:100vh;display:grid;place-items:center;color:var(--ink-muted)}.shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--sidebar-mid) 0%,var(--sidebar) 100%);color:#e8f1f8;display:flex;flex-direction:column;padding:1.5rem .95rem 1.15rem}.sidebar-brand{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;padding:.35rem .5rem 1.35rem .55rem;flex-shrink:0;min-width:0}.sidebar .avatar.sidebar-madrasa-avatar{width:168px;height:168px;font-size:2.1rem;background:#1e88e559;color:#e8f1f8;border:3px solid var(--primary);box-sizing:border-box}.sidebar-brand-name{font-family:var(--font-display);font-size:1.2rem;font-weight:700;margin:0;color:#fff;line-height:1.25;width:168px;text-align:center;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal}.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}.nav-list::-webkit-scrollbar{width:6px}.nav-list::-webkit-scrollbar-thumb{background:#ffffff38;border-radius:999px}.nav-list::-webkit-scrollbar-track{background:transparent}.nav-list a{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:#e8f1f8b3;padding:.68rem .8rem;border-radius:10px;font-size:.875rem;font-weight:500;letter-spacing:.01em}.nav-list a:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.55;flex-shrink:0}.nav-list a:hover{background:#ffffff0d;color:#fff}.nav-list a.active{background:#1e88e547;color:#fff}.nav-list a.active:before{background:var(--primary-mid);opacity:1}.sidebar-foot{padding:.85rem .55rem .15rem;border-top:1px solid rgba(255,255,255,.08);margin-top:.5rem;flex-shrink:0}.sidebar-meta{font-size:.72rem;color:#e8f1f87a;margin-bottom:.85rem}.main{min-width:0;display:flex;flex-direction:column}.content{padding:2.15rem 2.5rem 3.25rem;max-width:1100px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;margin-bottom:.95rem}.page-kicker{font-family:var(--font-ui);font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--primary-deep);margin:0 0 .45rem}.page-title{font-family:var(--font-display);font-size:clamp(1.95rem,2.6vw,2.4rem);font-weight:700;color:var(--ink);margin:0 0 .4rem;letter-spacing:-.025em;line-height:1.12}.page-title .mono{font-weight:600}.page-sub{margin:0;color:var(--ink-muted);font-size:.9rem;line-height:1.4}.page-actions{display:flex;align-items:center;gap:.6rem;flex-shrink:0;padding-top:.55rem}.header-rule{height:7px;margin:.1rem 0 2rem;background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--primary) 28%,#fff),color-mix(in srgb,var(--primary) 28%,#fff) 3px,transparent 3px,transparent 7px);border-radius:1px;opacity:.95}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1.25rem}.stat-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);padding:1.15rem 1.2rem 1.1rem;box-shadow:var(--shadow-card)}.stat-card.alert{background:var(--danger-soft);border-color:#f3c4bf;box-shadow:none}.stat-card .label{font-size:.75rem;font-weight:500;letter-spacing:.01em;color:var(--ink-muted)}.stat-card .value{font-family:var(--font-mono);font-size:1.85rem;font-weight:600;margin-top:.4rem;color:var(--ink);display:flex;align-items:baseline;gap:.45rem;letter-spacing:-.02em}.stat-card.alert .value{color:var(--danger)}.stat-delta{font-family:var(--font-mono);font-size:.78rem;font-weight:600;color:var(--ok)}.stat-delta.down{color:var(--danger)}.panel{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);padding:1.35rem 1.4rem 1.3rem;box-shadow:var(--shadow-card)}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:1.1rem}.panel-head-stack{align-items:flex-start}.teachers-page-stack{display:flex;flex-direction:column;gap:1rem}.teacher-detail-back{color:var(--primary);text-decoration:none;font-size:.9rem;font-weight:600}.teacher-detail-back:hover{text-decoration:underline}.page-title .teacher-detail-hero{display:flex;align-items:center;gap:1rem}.page-title .teacher-detail-hero .avatar{flex-shrink:0}.staff-detail-page-body{display:flex;flex-direction:column;gap:.15rem}.teacher-detail-columns{display:flex;gap:1.25rem;align-items:flex-start;margin-top:1rem}.teacher-students-panel{width:300px;flex-shrink:0;padding:1rem}.teacher-students-panel .detail-section-title{margin-top:0;margin-bottom:.75rem}.teacher-charts-panel{flex:1;display:flex;flex-direction:column;gap:1rem;min-width:0}@media(max-width:900px){.teacher-detail-columns{flex-direction:column}.teacher-students-panel{width:100%}}.staff-detail-page-actions{justify-content:flex-start;margin-top:1.25rem;padding-top:0}.staff-detail-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.45rem;margin-bottom:1.15rem}.staff-student-count{font-size:.9em;font-weight:500}.staff-student-list{list-style:none;margin:0 0 .5rem;padding:0;display:flex;flex-direction:column;gap:.35rem}.staff-student-row{padding:.65rem .75rem;border-radius:10px;border:1px solid var(--line-soft);background:var(--paper)}.staff-student-row-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.65rem;text-align:left;font:inherit;color:inherit;cursor:pointer}.staff-student-row-btn:hover{border-color:var(--primary);background:color-mix(in srgb,var(--primary-soft) 45%,var(--paper))}.staff-student-chevron{color:var(--ink-muted);font-size:1.25rem;line-height:1;flex-shrink:0}.staff-student-name{font-weight:600;font-size:.9rem;color:var(--ink)}.staff-student-meta{font-size:.78rem;margin-top:.1rem}.staff-action-row{display:flex;flex-wrap:wrap;gap:.55rem;margin:0 0 1rem}.staff-action-row-split{justify-content:space-between;align-items:center}.staff-action-row-start{display:flex;flex-wrap:wrap;gap:.55rem}.staff-perms-lead{margin:0 0 .85rem;font-size:.88rem}.staff-perms-list{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.5rem}.staff-perm-row{display:flex;align-items:center;justify-content:space-between;gap:.85rem;padding:.7rem .15rem;border-bottom:1px solid var(--line-soft);cursor:pointer}.staff-perm-row:last-child{border-bottom:none}.staff-perm-title{font-weight:600;font-size:.9rem;color:var(--ink)}.staff-perm-sub{font-size:.78rem;margin-top:.15rem}.staff-perm-row input[type=checkbox]{width:1.05rem;height:1.05rem;flex-shrink:0}.parent-children-hint{margin:-.35rem 0 .65rem;font-size:.82rem}.parent-children-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.55rem}.parent-children-head .detail-section-title{margin:0}.parent-children-list{margin-bottom:.85rem}.parent-child-row{display:flex;align-items:center;gap:.55rem}.parent-child-open{flex:1;min-width:0;display:flex;align-items:center;gap:.65rem;padding:.55rem .65rem;border-radius:10px;border:1px solid var(--line-soft);background:var(--paper);text-align:left;font:inherit;color:inherit;cursor:pointer}.parent-child-open:hover{border-color:var(--primary)}.parent-child-meta{flex:1;min-width:0;display:flex;flex-direction:column}.panel-title{font-family:var(--font-display);font-size:1.2rem;font-weight:600;margin:0;letter-spacing:-.015em}.panel-sub{margin:.2rem 0 0;font-size:.8rem;color:var(--ink-muted)}.grid-2{display:grid;grid-template-columns:1.4fr 1fr;gap:1rem}.overview-panel,.overview-chart-panel{margin-bottom:1rem}.overview-charts{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:1rem}.overview-charts .overview-chart-panel{margin-bottom:0}@media(min-width:1100px){.overview-charts{grid-template-columns:1fr 1fr}}.overview-chart-head{align-items:center}.overview-chart-controls{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.overview-chart-nav{width:auto;min-width:2.1rem;padding:.35rem .55rem;font-size:1.25rem;line-height:1;color:var(--ink)}.overview-chart-range{margin:0}.overview-chart-select{min-width:7.5rem;padding:.45rem 2rem .45rem .75rem;border-radius:999px;font-size:.82rem;font-weight:600;color:var(--ink);background-color:var(--paper);border-color:var(--line)}.overview-chart-wrap{width:100%;min-height:260px}.chart-tooltip{background:var(--surface);border:1px solid var(--line-soft);border-radius:10px;box-shadow:var(--shadow-md);padding:.65rem .85rem;min-width:7rem}.chart-tooltip-date{font-size:.75rem;color:var(--ink-muted);margin-bottom:.2rem}.chart-tooltip-value{font-family:var(--font-mono);font-size:1.05rem;font-weight:600;color:var(--ink);letter-spacing:-.02em}.chart-tooltip-unit{font-family:var(--font-ui);font-size:.78rem;font-weight:500;color:var(--ink-muted)}.chart-tooltip-attendance{min-width:9.5rem}.chart-tooltip-note{font-size:.68rem;color:var(--ink-muted);margin-bottom:.35rem}.chart-tooltip-breakdown{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.chart-tooltip-breakdown li{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.chart-tooltip-breakdown-label{font-size:.78rem;font-weight:600}.chart-tooltip-breakdown-label.ok{color:var(--ok)}.chart-tooltip-breakdown-label.warn{color:var(--warn)}.chart-tooltip-breakdown-label.danger{color:var(--danger)}.chart-tooltip-breakdown-value{font-size:.92rem;font-weight:600;color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.overview-grid{margin-bottom:.25rem}.text-link{font-size:.82rem;font-weight:600;text-decoration:none;color:var(--primary-deep);white-space:nowrap;background:none;border:none;padding:0;margin:0;box-shadow:none;border-radius:0;cursor:pointer;font-family:inherit;-moz-appearance:none;appearance:none;-webkit-appearance:none}.text-link:hover{text-decoration:underline;background:none;border:none;box-shadow:none}.empty-state.quiet{padding:.85rem .15rem .35rem;text-align:left}.attention-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.attention-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;text-decoration:none;color:inherit;border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:.85rem 1rem;background:var(--paper);box-shadow:var(--shadow-xs);transition:border-color .15s ease,background .15s ease}.attention-item:hover{border-color:var(--primary-mid);background:var(--primary-soft)}.attention-item-static:hover{border-color:var(--line-soft);background:var(--paper)}.attention-item.tone-danger{border-color:#f0c2bc;background:var(--danger-soft)}.attention-item.tone-warn{border-color:#f0dbb0;background:#fffaf0}.attention-item.tone-info{border-color:var(--line)}.attention-item-static.tone-info:hover{border-color:var(--line);background:var(--paper)}.attention-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.attention-category-grid.has-priority{margin-top:.85rem}.attention-category-card{border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:.85rem 1rem;background:var(--paper);box-shadow:var(--shadow-xs)}.attention-category-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.attention-category-title{margin:0;font-size:.92rem;font-weight:600;color:var(--ink);letter-spacing:-.01em}.attention-category-sub{margin:.15rem 0 0;font-size:.78rem;color:var(--muted)}.attention-category-list{margin-bottom:0}.attention-student-row{width:100%;font:inherit;text-align:left;cursor:pointer;text-decoration:none;color:inherit;transition:border-color .15s ease,background .15s ease}.attention-student-row:hover{border-color:var(--primary-mid);background:var(--primary-soft)}.attention-category-card.kind-attendance{border-color:#b8d4f0}.attention-category-card.kind-recitation{border-color:#c4b8f0}.attention-category-card.kind-assignment{border-color:#b8e0c8}.attention-category-card.kind-behavior{border-color:#f0d4b8}.attention-issue-intro{margin:0 0 .85rem;font-size:.84rem}.attention-issue-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.attention-issue-item{border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:.85rem 1rem;background:var(--paper)}.attention-issue-item.focus{box-shadow:0 0 0 1px var(--primary-mid)}.attention-issue-item.kind-attendance{border-color:#b8d4f0;background:#f5faff}.attention-issue-item.kind-recitation{border-color:#c4b8f0;background:#f8f6ff}.attention-issue-item.kind-assignment{border-color:#b8e0c8;background:#f4fbf7}.attention-issue-item.kind-behavior{border-color:#f0d4b8;background:#fffaf5}.attention-issue-title{font-size:.9rem;font-weight:600;color:var(--ink)}.attention-issue-detail{margin:.25rem 0 0;font-size:.84rem;color:var(--muted);line-height:1.4}.attention-issue-item .pulse-session-pills{margin-top:.55rem}.score-decline-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.35rem .5rem;margin-top:1rem}.score-decline-step{display:inline-flex;align-items:center;gap:.5rem}.score-decline-circle{width:50px;height:50px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;border:2px solid}.score-decline-circle.tone-ok{color:#15803d;background:#dcfce7;border-color:#15803d73}.score-decline-circle.tone-warn{color:#c2410c;background:#ffedd5;border-color:#c2410c73}.score-decline-circle.tone-danger{color:#b91c1c;background:#fee2e2;border-color:#b91c1c73}.score-decline-arrow{color:var(--ink-muted);font-size:1rem;line-height:1}.attention-title{font-size:.92rem;font-weight:600;color:var(--ink);letter-spacing:-.01em}.attention-detail{margin:.2rem 0 0;font-size:.82rem;color:var(--muted);line-height:1.35}.attention-more{margin-top:.75rem;width:100%;border:1px dashed var(--line);border-radius:var(--radius-sm);background:transparent;color:var(--primary);font:inherit;font-size:.88rem;font-weight:600;padding:.55rem .75rem;cursor:pointer}.attention-more:hover{background:var(--primary-soft);border-color:var(--primary-mid)}.today-meter{margin-bottom:0}.today-progress-stack{display:flex;flex-direction:column;gap:.85rem;margin-top:1.15rem}.today-stats-attendance{margin-bottom:0}.today-meter-label{font-size:.78rem;font-weight:600;color:var(--ink-muted);margin-bottom:.35rem}.today-section-label{font-size:.78rem;font-weight:600;color:var(--ink-muted);margin-top:1rem;margin-bottom:.65rem}.today-meter-top{display:flex;justify-content:space-between;gap:.75rem;font-size:.85rem;margin-bottom:.45rem;color:var(--ink)}.today-bar{height:8px;border-radius:999px;background:var(--line-soft);overflow:hidden}.today-bar-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary-mid),var(--primary));min-width:0;transition:width .25s ease}.today-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.today-stat{text-align:center;padding:.7rem .35rem;border-radius:var(--radius-sm);background:var(--paper);border:1px solid var(--line-soft)}button.today-stat-btn{width:100%;font:inherit;color:inherit;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}button.today-stat-btn:hover{border-color:var(--line);background:#fff;box-shadow:var(--shadow-xs)}button.today-stat-btn:focus-visible{outline:2px solid var(--primary-mid);outline-offset:2px}.pulse-student-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem;max-height:min(60vh,420px);overflow:auto}.pulse-student-row{display:flex;align-items:center;gap:.75rem;padding:.65rem .35rem;border-bottom:1px solid var(--line-soft)}.pulse-student-row:last-child{border-bottom:none}.pulse-student-name{flex:1;min-width:0;font-size:.95rem;font-weight:500;color:var(--ink)}.pulse-session-pills{display:flex;align-items:center;gap:6px;flex-shrink:0}.pulse-session-pill{display:block;width:20px;height:4px;border-radius:4px;border:.5px solid rgba(15,36,54,.12)}.pulse-session-pill.present{background:#1b7a3dcc}.pulse-session-pill.absent{background:#b42318cc}.pulse-session-pill.unmarked{background:#9e9e9ecc}.today-stat-value{font-size:1.2rem;font-weight:600;color:var(--ink)}.today-stat-value.ok{color:var(--ok)}.today-stat-value.warn{color:var(--warn)}.today-stat-value.danger{color:var(--danger)}.today-stat-label{margin-top:.2rem;font-size:.7rem;font-weight:500;color:var(--ink-muted);letter-spacing:.02em}.shortcut-codes{display:flex;flex-direction:column;gap:.65rem;margin-bottom:.95rem}.shortcut-code-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .85rem;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--paper)}.shortcut-label{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:.15rem}.shortcut-value{font-size:.95rem;font-weight:600;color:var(--ink)}.shortcut-billing{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .75rem;padding:.15rem .1rem .25rem}.shortcut-paid{font-size:.8rem}.shortcut-actions{margin-top:.15rem}.activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.activity-list li{display:grid;grid-template-columns:10px 1fr auto;gap:.75rem;align-items:start}.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);margin-top:.4rem}.activity-text{font-size:.9rem;color:var(--ink)}.activity-time{font-size:.78rem;color:var(--ink-muted);white-space:nowrap}.action-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.action-list a,.action-list button{display:block;width:100%;text-align:left;text-decoration:none;background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:.82rem .95rem;font-size:.875rem;font-weight:500;color:var(--ink);cursor:pointer;box-shadow:var(--shadow-xs)}.action-list a:hover,.action-list button:hover{border-color:var(--primary-mid);background:var(--primary-soft)}.toolbar{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;justify-content:space-between;margin-bottom:1.1rem}.toolbar-left,.toolbar-right{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.search-input,.select-input{border:1px solid var(--line);border-radius:var(--radius-sm);padding:.55rem .75rem;font-size:.88rem;background-color:var(--surface);color:var(--ink);min-width:160px}.search-input{min-width:220px}.search-input:focus,.select-input:focus{outline:2px solid color-mix(in srgb,var(--primary) 35%,transparent);border-color:var(--primary)}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;font-size:.68rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-muted);padding:.4rem .55rem .85rem;border-bottom:1px solid var(--line-soft)}.data-table td{padding:.95rem .55rem;border-bottom:1px solid var(--line-soft);font-size:.875rem;vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.person-cell{display:flex;flex-direction:row;align-items:center;gap:.65rem}.person-cell>span:last-child{min-width:0}.level-cell{display:flex;flex-direction:column;gap:.15rem;line-height:1.25}.level-stage{font-size:.78rem;max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.level-progress-cell{display:flex;flex-direction:column;gap:.35rem;min-width:8.5rem;max-width:12rem}.level-progress-label{font-size:.8rem;font-weight:500;color:var(--ink-muted);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.level-progress-bar{height:6px;border-radius:999px;background:color-mix(in srgb,var(--line-soft) 70%,transparent);overflow:hidden}.level-progress-bar>span{display:block;height:100%;border-radius:inherit;background:var(--primary)}.level-progress-cell.farbar .level-progress-bar>span{background:var(--warn, #c77700)}.data-table td.col-center,.data-table thead th.col-center,.data-table th.col-center{text-align:center}.data-table td.col-center .pulse-session-pills{justify-content:center}.score-cell{font-weight:700;font-size:.9rem}.score-cell.tone-ok{color:var(--ok)}.score-cell.tone-warn{color:var(--warn, #c77700)}.score-cell.tone-danger{color:var(--danger)}.score-cell.tone-muted{color:var(--ink-muted);font-weight:500;opacity:.45}.data-table .pulse-session-pills{gap:4px}.data-table .pulse-session-pill{width:14px;height:3px;border-radius:3px}.behavior-dots{display:inline-flex;align-items:center;gap:5px;padding:0;background:transparent}.behavior-dot{width:9px;height:9px;border-radius:50%;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background:#b0b8c0;flex-shrink:0}.behavior-dot.tier-3{background:#2e9b57}.behavior-dot.tier-2{background:#e8910c}.behavior-dot.tier-1{background:#d64545}.behavior-dot.tier-none{background:#c5ccd4}.avatar{width:34px;height:34px;border-radius:50%;background:var(--primary-soft);color:var(--primary-deep);display:grid;place-items:center;font-size:.72rem;font-weight:700;flex-shrink:0}.avatar-img{object-fit:cover;padding:0}.avatar-xl{width:72px;height:72px;font-size:1.15rem}.edit-student-avatar{display:flex;align-items:center;gap:.9rem;margin-bottom:1.1rem;padding-bottom:1rem;border-bottom:1px solid var(--line-soft)}.edit-student-avatar-name{margin:0;font-family:var(--font-display);font-size:1.1rem;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.edit-student-avatar-meta{margin:.2rem 0 0;font-size:.85rem}.edit-student-avatar-btn{display:inline-flex;padding:0;border:none;background:transparent;border-radius:50%;cursor:pointer;font-family:inherit;flex-shrink:0}.edit-student-avatar-btn:disabled{opacity:.6;cursor:not-allowed}.edit-student-avatar-btn:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.edit-student-avatar-btn:hover:not(:disabled) .avatar{box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 28%,transparent)}.edit-student-avatar-btn .avatar-img{pointer-events:none}.edit-student-avatar-btn.is-loading{opacity:.65;cursor:wait}.edit-student-avatar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.45rem}.edit-student-avatar-actions .text-link{background:none;border:none;padding:0;font-family:inherit;font-size:.85rem;cursor:pointer}.edit-student-avatar-actions .text-link:disabled{opacity:.5;cursor:not-allowed}.edit-student-avatar-remove{color:var(--danger)}.settings-madrasa-avatar{margin:0 0 1.15rem;padding-bottom:1.1rem;border-bottom:1px solid var(--line-soft)}.settings-madrasa-avatar .avatar{border:3px solid var(--primary);box-sizing:border-box}.image-crop-modal{display:flex;flex-direction:column;gap:.85rem}.image-crop-viewport{position:relative;width:100%;height:min(52vh,360px);background:#0f2436;border-radius:12px;overflow:hidden}.image-crop-loading{display:flex;align-items:center;justify-content:center;height:100%;margin:0;color:#ffffffb8}.image-crop-zoom{display:flex;align-items:center;gap:.75rem;font-size:.85rem;font-weight:600;color:var(--ink-muted)}.image-crop-zoom input[type=range]{flex:1;accent-color:var(--primary)}.parent-pick-row{justify-content:flex-start}.parent-name-link{font-size:.9rem;white-space:normal}.modal-actions-split{justify-content:space-between;align-items:center}.modal-actions-end{display:flex;gap:.65rem;margin-left:auto}.row-focus td{background:color-mix(in srgb,var(--primary-soft) 55%,transparent)}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:.22rem .6rem;font-size:.74rem;font-weight:600}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-neutral{background:var(--line-soft);color:var(--ink-muted)}.check-ok{color:var(--ok);font-weight:700}.billing-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:var(--ok-soft);border:1px solid #c8e6d0;border-radius:var(--radius);padding:1.15rem 1.3rem;margin-bottom:1.25rem;box-shadow:var(--shadow-xs)}.billing-banner.locked{background:var(--danger-soft);border-color:#f3c4bf}.billing-banner.warn{background:var(--warn-soft);border-color:#f5d9a8}.billing-banner .label{font-size:.8rem;color:var(--ink-muted);margin-bottom:.15rem}.billing-banner .status-text{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--ok)}.billing-banner.locked .status-text{color:var(--danger)}.billing-banner.warn .status-text{color:var(--warn)}.billing-pay-steps{margin:.5rem 0 1rem;padding-left:1.25rem;color:var(--ink);font-size:.9rem;line-height:1.5}.billing-pay-steps li+li{margin-top:.45rem}.billing-flash{margin:-.5rem 0 1rem;padding:.75rem 1rem;border-radius:var(--radius-sm);background:var(--ok-soft);border:1px solid #c8e6d0;color:var(--ok);font-size:.9rem;font-weight:600}.billing-pay-panel{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:1.15rem 1.25rem 1.25rem;margin:-.35rem 0 1.5rem}.billing-pay-panel .panel-title{margin-bottom:.35rem}.billing-pay-meta{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;margin:1rem 0 .35rem}.billing-pay-account{margin-top:.2rem;font-size:1.05rem;font-weight:650;color:var(--ink)}.billing-months{display:flex;flex-wrap:wrap;gap:.5rem;margin:.85rem 0 1rem}.modal-actions-row{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:flex-end;margin-top:.5rem}.empty-state{padding:2rem .5rem;text-align:center;color:var(--ink-muted);font-size:.92rem}.meta-row{display:grid;grid-template-columns:120px 1fr;gap:.4rem 1rem;font-size:.92rem}.meta-row dt{color:var(--ink-muted);font-weight:500}.meta-row dd{margin:0}.code-chip{display:inline-block;background:var(--primary-soft);color:var(--primary-deep);border-radius:8px;padding:.3rem .55rem;font-size:.85rem;font-weight:500}.settings-page{max-width:760px}.settings-block{margin-bottom:2.65rem}.settings-block-title{font-family:var(--font-ui);font-size:.95rem;font-weight:700;color:var(--ink);margin:0 0 .35rem;letter-spacing:-.01em}.settings-rows{border-top:1px solid var(--line-soft);margin-top:.85rem}.settings-row{display:grid;grid-template-columns:168px minmax(0,1fr);gap:1.25rem 1.75rem;align-items:center;padding:1.15rem 0;border-bottom:1px solid var(--line-soft)}.settings-row-toggle{grid-template-columns:1fr auto;align-items:center;gap:1.5rem;padding:1.2rem 0}.settings-label{font-size:.9rem;font-weight:600;color:var(--ink);letter-spacing:-.01em}.settings-label-strong{font-size:.92rem;font-weight:600;color:var(--ink);letter-spacing:-.01em}.settings-desc{margin:.25rem 0 0;font-size:.8125rem;color:var(--ink-muted);max-width:28rem;line-height:1.4}.settings-input{width:100%;max-width:360px;border:1px solid var(--line);border-radius:10px;padding:.78rem .95rem;font-size:.9rem;background-color:var(--surface);color:var(--ink);box-shadow:var(--shadow-xs)}.settings-input:read-only{background-color:var(--surface);color:var(--ink)}.settings-input:focus{outline:2px solid color-mix(in srgb,var(--primary) 32%,transparent);border-color:var(--primary)}select.select-input,select.settings-input,.form-field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:2.35rem;cursor:pointer;background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1.5 1.75L6 6.25L10.5 1.75' stroke='%235c7388' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;background-size:12px 8px}select.select-input::-ms-expand,select.settings-input::-ms-expand,.form-field select::-ms-expand{display:none}select.settings-input{max-width:360px}.settings-value{font-size:.9rem;min-height:2.6rem;display:flex;align-items:center}.settings-hint{margin:.9rem 0 0;font-size:.75rem;line-height:1.4}.toggle{position:relative;width:42px;height:24px;border:none;border-radius:999px;background:#c9d7e4;cursor:pointer;padding:0;flex-shrink:0;transition:background .18s ease}.toggle.on{background:var(--primary)}.toggle-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f243638;transition:transform .18s ease}.toggle.on .toggle-knob{transform:translate(18px)}.danger-box{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;background:var(--danger-soft);border:1px solid #efc4bf;border-radius:12px;padding:1.25rem 1.35rem;margin-top:.85rem}.danger-title{font-size:.92rem;font-weight:700;color:var(--danger);margin-bottom:.3rem;letter-spacing:-.01em}.danger-desc{margin:0;font-size:.8125rem;color:#8f433c;max-width:34rem;line-height:1.45}.btn-danger-outline{background:var(--surface);color:var(--danger);border:1px solid var(--danger);border-radius:9px;padding:.6rem 1.1rem;font-size:.85rem;font-weight:600;cursor:pointer;flex-shrink:0;box-shadow:var(--shadow-xs)}.btn-danger-outline:disabled{opacity:.5;cursor:not-allowed}.btn-danger-outline:hover:not(:disabled){background:#fff5f4}.banner-error{background:var(--danger-soft);border:1px solid #efc4bf;border-radius:var(--radius-sm);padding:.75rem 1rem;margin:0 0 1rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0f243673;display:grid;place-items:center;padding:1.25rem}.confirm-backdrop{z-index:100}.crop-modal-backdrop{z-index:120}.confirm-card{width:min(400px,100%)}.confirm-message{margin:0;color:var(--ink-muted);line-height:1.45;font-size:.95rem}.modal-card{width:min(440px,100%);max-height:min(90vh,720px);overflow:auto;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--line-soft)}.modal-card.wide{width:min(560px,100%)}.modal-card.extra-wide{width:min(820px,96vw);max-height:min(90vh,820px)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem .85rem;border-bottom:1px solid var(--line-soft)}.modal-title{margin:0;font-family:var(--font-display);font-size:1.2rem;font-weight:600}.modal-close{border:none;background:transparent;font-size:1.4rem;line-height:1;color:var(--ink-muted);cursor:pointer;padding:.15rem .35rem}.modal-body{padding:1.15rem 1.25rem 1.35rem}.modal-actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1.1rem;width:100%}.row-actions{display:flex;flex-wrap:wrap;gap:.4rem}.student-pick-list{display:flex;flex-direction:column;gap:.45rem;max-height:220px;overflow:auto;padding:.35rem 0}.check-row{display:flex;align-items:center;gap:.55rem;font-size:.9rem;cursor:pointer}.form-check{margin:.35rem 0 .85rem}.invite-code{font-size:1.35rem;font-weight:600;letter-spacing:.06em;background:var(--primary-soft);color:var(--primary-deep);border-radius:var(--radius-sm);padding:.85rem 1rem;text-align:center;margin:.85rem 0 1rem}.pending-approval-list{list-style:none;margin:.85rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.pending-approval-row{width:100%;display:flex;align-items:center;gap:.75rem;padding:.75rem .85rem;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--paper);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease}.pending-approval-row:hover{border-color:var(--primary-mid);background:var(--primary-soft)}.pending-approval-name{flex:1;font-weight:600;color:var(--ink)}.card-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}.announcement-list{gap:1rem}.announcement-card{border:1px solid var(--line-soft);border-radius:14px;padding:1.05rem 1.15rem;background:var(--surface);box-shadow:var(--shadow-md);transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.announcement-card:hover{box-shadow:0 14px 32px #0f24361a;transform:translateY(-3px);border-color:color-mix(in srgb,var(--primary) 22%,var(--line-soft))}.info-card{border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:1rem 1.1rem;background:var(--paper);box-shadow:var(--shadow-xs)}.info-card-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.65rem;margin-bottom:.45rem}.info-card-title{margin:0;font-size:1.02rem;font-weight:650;letter-spacing:-.01em}.info-card-badges{display:flex;flex-wrap:wrap;gap:.35rem}.info-card-body{margin:0 0 .75rem;font-size:.9rem;color:var(--ink);white-space:pre-wrap;line-height:1.45}.info-card-body.is-clamped{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;white-space:pre-line}.info-card-expand{display:inline-block;margin:-.35rem 0 .75rem;font-size:.85rem}.info-card-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem}.panel-note{margin:0 0 1rem;font-size:.88rem;line-height:1.45}.conversation-card .person-cell{align-items:flex-start;width:100%}.conversation-card-btn{display:block;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.conversation-card-btn:hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--line-soft));box-shadow:var(--shadow-sm);background:color-mix(in srgb,var(--primary) 4%,var(--paper))}.conversation-meta{flex:1;min-width:0}.conversation-top{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline}.conversation-name{font-weight:650;font-size:.95rem}.conversation-sub{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .65rem;margin-top:.35rem}.conversation-preview{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.chat-thread-sub{margin:-.35rem 0 .85rem}.chat-thread{display:flex;flex-direction:column;gap:.65rem;max-height:min(52vh,420px);overflow:auto;padding:.35rem .15rem .75rem;margin-bottom:.85rem;border-bottom:1px solid var(--line-soft)}.chat-bubble{max-width:min(85%,420px);padding:.65rem .85rem;border-radius:14px;border:1px solid var(--line-soft)}.chat-bubble-mine{align-self:flex-end;background:color-mix(in srgb,var(--primary) 12%,var(--paper));border-color:color-mix(in srgb,var(--primary) 28%,var(--line-soft))}.chat-bubble-theirs{align-self:flex-start;background:var(--paper-2, #f7f9fb)}.chat-bubble-name{font-size:.78rem;font-weight:650;margin-bottom:.2rem}.chat-bubble-text{margin:0;white-space:pre-wrap;word-break:break-word;line-height:1.45;font-size:.92rem}.chat-bubble-time{margin-top:.35rem;font-size:.72rem;text-align:right}.chat-composer{display:flex;flex-direction:column;gap:.65rem}.chat-composer-input{width:100%;resize:vertical;min-height:72px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:.75rem .9rem;font:inherit;background:var(--paper);color:inherit}.chat-composer-input:focus{outline:2px solid color-mix(in srgb,var(--primary) 28%,transparent);border-color:var(--primary)}.fab{position:fixed;right:1.5rem;bottom:1.5rem;z-index:40;width:3.5rem;height:3.5rem;border:none;border-radius:999px;background:var(--primary);color:#fff;font-size:1.85rem;font-weight:400;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 24px #0f243647;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.fab:hover{transform:translateY(-1px) scale(1.03);box-shadow:0 10px 28px #0f243657;background:color-mix(in srgb,var(--primary) 88%,#0f2436)}.fab:active{transform:scale(.97)}.compose-search{width:100%;margin-bottom:.85rem}.compose-recipient-list{display:flex;flex-direction:column;gap:1rem;max-height:min(55vh,440px);overflow:auto}.compose-section-title{margin:0 0 .45rem;font-size:.72rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}.compose-recipient{display:flex;align-items:center;gap:.75rem;width:100%;text-align:left;border:1px solid transparent;background:transparent;border-radius:var(--radius-sm);padding:.55rem .45rem;cursor:pointer;font:inherit;color:inherit}.compose-recipient:hover{background:color-mix(in srgb,var(--primary) 6%,var(--paper));border-color:color-mix(in srgb,var(--primary) 18%,transparent)}.compose-recipient-meta{display:flex;flex-direction:column;gap:.1rem;min-width:0}.compose-recipient-name{font-weight:650;font-size:.95rem}.compose-parent-group{display:flex;flex-direction:column}.compose-chevron{margin-left:auto;flex-shrink:0;color:var(--ink-muted);font-size:.85rem;transition:transform .15s ease}.compose-chevron.open{transform:rotate(180deg)}.compose-child-list{display:flex;flex-direction:column;padding:.15rem 0 .35rem .55rem;margin-left:1.1rem;border-left:2px solid var(--line-soft)}.compose-child{padding-left:.65rem}.avatar-sm{width:2rem;height:2rem;font-size:.72rem}.settings-row-actions{align-items:center}.settings-actions{display:flex;gap:.65rem}.settings-hint{margin:.85rem 0 0;font-size:.85rem}@media(max-width:980px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.stat-grid,.grid-2{grid-template-columns:1fr 1fr}.content{padding:1.4rem 1.2rem 2.25rem}}@media(max-width:640px){.stat-grid,.grid-2,.attention-category-grid{grid-template-columns:1fr}.page-header{flex-direction:column}.data-table{display:block;overflow-x:auto}.settings-row,.settings-row-toggle{grid-template-columns:1fr;gap:.45rem}.today-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:1fr}}.avatar-lg{width:52px;height:52px;font-size:.95rem}.student-detail-hero{display:flex;align-items:center;gap:.9rem;margin-bottom:1.15rem}.student-detail-name{font-family:var(--font-display);font-size:1.25rem;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.student-detail-meta{margin:.2rem 0 0;font-size:.85rem}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-bottom:1.15rem}.detail-tile{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:.75rem .85rem}.detail-tile-label{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:.25rem}.detail-tile-value{font-size:.9rem;font-weight:600;color:var(--ink)}.detail-section-title{font-size:.85rem;font-weight:700;margin:0 0 .65rem;color:var(--ink)}.detail-today{margin-bottom:.85rem}.detail-progress-line{margin:0 0 1rem;font-size:.82rem}.detail-sessions{margin-bottom:.5rem}.data-table tbody tr.clickable-row{cursor:pointer}.data-table tbody tr.clickable-row:hover td{background:color-mix(in srgb,var(--primary-soft) 55%,transparent)}.modal-card.sheet{position:relative;max-width:520px;max-height:min(92vh,900px);padding-top:.35rem;overflow:hidden;display:flex;flex-direction:column}.modal-card.sheet .modal-body{overflow-y:auto;padding-top:.25rem;max-height:none;flex:1}.sheet-close{position:absolute;top:.55rem;right:.65rem;z-index:2;border:none;background:transparent;font-size:1.5rem;line-height:1;color:var(--ink-muted);cursor:pointer;padding:.2rem .45rem}.sheet-handle{width:40px;height:4px;border-radius:999px;background:#c9d5e0;margin:.15rem auto .9rem}.student-sheet{padding-bottom:.25rem}.student-detail-hero{display:flex;align-items:center;gap:.85rem;margin-bottom:.95rem;padding-right:1.75rem}.student-detail-hero-text{flex:1;min-width:0}.info-card{background:var(--primary-soft);border-radius:14px;padding:.85rem 1rem;margin-bottom:1.1rem;display:flex;flex-direction:column;gap:.55rem}.info-card-row{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline}.info-card-label{font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--primary-deep)}.info-card-value{font-size:.9rem;font-weight:600;color:var(--ink);text-align:right}.info-card-inline .info-card-row{justify-content:flex-start;gap:.35rem}.info-card-inline .info-card-label:after{content:":"}.info-card-inline .info-card-value{text-align:left;font-weight:500}.progress-card{border-radius:14px;padding:.9rem 1rem;margin-bottom:.75rem}.progress-card-surah{background:#e8f3fc;border:1px solid #cfe4f7}.progress-card-overall{background:#e8f6f1;border:1px solid #c5e8db}.progress-card-revision{background:#f3eef9;border:1px solid #e0d4f0}.progress-card-revision .progress-bar span{background:#7a4fb3}.ayah-pill-revision{color:#5c3d8a;border-color:#e0d4f0}.progress-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.55rem}.progress-card-title{font-size:.95rem;font-weight:700;color:var(--ink)}.progress-card-heading{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem .55rem;min-width:0}.progress-card-pct{font-size:1rem;font-weight:700;color:var(--ink)}.ayah-pill{display:inline-flex;align-items:center;font-size:.72rem;font-weight:600;padding:.18rem .5rem;border-radius:999px;background:#fff;color:var(--primary-deep);border:1px solid #cfe4f7;white-space:nowrap}.progress-bar{height:4px;border-radius:999px;background:#0f243614;overflow:hidden}.progress-bar span{display:block;height:100%;border-radius:inherit;background:var(--primary)}.progress-card-overall .progress-bar span{background:#1b7a3d}.progress-card-caption{margin-top:.4rem;font-size:.72rem;color:var(--ink-muted);font-weight:500}.metric-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-bottom:1.15rem}.metric-row-5{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:640px){.metric-row-5{grid-template-columns:repeat(3,minmax(0,1fr))}}.metric-session-pills{justify-content:center;min-height:1.26rem}.metric-chip{border-radius:12px;padding:.7rem .45rem;text-align:center;background:var(--paper);border:1px solid var(--line-soft)}.metric-chip-value{font-size:1.05rem;font-weight:700;color:var(--ink);line-height:1.2}.metric-chip-label{margin-top:.2rem;font-size:.68rem;font-weight:600;color:var(--ink-muted);letter-spacing:.02em}.metric-chip.tone-ok .metric-chip-value{color:var(--ok)}.metric-chip.tone-warn .metric-chip-value{color:var(--warn)}.metric-chip.tone-danger .metric-chip-value{color:var(--danger)}.metric-chip.tone-blue .metric-chip-value{color:var(--primary-deep)}.metric-chip.tone-purple .metric-chip-value{color:#6a3ea1}.metric-chip.tone-teal .metric-chip-value{color:#0f766e}.metric-chip.tone-muted .metric-chip-value{color:var(--ink-muted)}.history-strip{margin-bottom:1rem}.history-strip-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.55rem}.history-circles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem}.history-circles-btn{width:100%;border:none;background:transparent;padding:0;cursor:pointer;text-align:inherit;font:inherit;color:inherit}.history-day{text-align:center}.history-circle{width:48px;height:48px;margin:0 auto;border-radius:50%;display:grid;place-items:center;font-size:.72rem;font-weight:700;font-family:var(--font-mono);background:#eef3f7;color:var(--ink-muted);border:1px solid var(--line-soft)}.history-circle.tone-ok{background:#e7f6ec;color:var(--ok);border-color:#c8e6d0}.history-circle.tone-warn{background:#fff4e0;color:var(--warn);border-color:#f5d9a8}.history-circle.tone-danger{background:#fdeceb;color:var(--danger);border-color:#f3c4bf}.history-circle.tone-accent{background:#f3eef9;color:#6a3ea1;border-color:#ddd0ef}.history-circle.tone-muted{color:var(--ink-muted)}.history-day-label{margin-top:.3rem;font-size:.68rem;color:var(--ink-muted);font-weight:500}.beginner-note{margin-bottom:1rem;padding:.85rem 1rem;border-radius:12px;background:var(--paper);border:1px solid var(--line-soft)}.farbar-panel{margin-bottom:1.15rem}.farbar-panel-head{margin-bottom:.65rem}.farbar-stage-of{margin:.15rem 0 0;font-size:.82rem}.farbar-progress-card{margin-bottom:.85rem}.farbar-stepper{list-style:none;margin:0 0 .85rem;padding:0;display:flex;flex-direction:column;gap:.35rem}.farbar-step-main{display:flex;align-items:flex-start;gap:.65rem}.farbar-step-circle{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.72rem;font-weight:700;flex-shrink:0;border:1.5px solid var(--line);background:#eef3f7;color:var(--ink-muted)}.farbar-step-circle.tone-done{background:#e8f6ee;border-color:#8fd0a8;color:var(--ok)}.farbar-step-circle.tone-current{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-deep)}.farbar-step-title{font-size:.9rem;font-weight:500;color:var(--ink-muted);padding-top:.2rem}.farbar-step-current .farbar-step-title{font-weight:700;color:var(--primary-deep)}.farbar-step-done .farbar-step-title{color:var(--ink)}.farbar-substeps{list-style:none;margin:.25rem 0 .35rem .85rem;padding:0 0 0 .85rem;border-left:2px solid var(--line-soft);display:flex;flex-direction:column;gap:.3rem}.farbar-substep{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--ink-muted)}.farbar-substep.farbar-step-current{color:var(--primary-deep);font-weight:600}.farbar-substep.farbar-step-done{color:var(--ink)}.farbar-sub-dot{width:8px;height:8px;border-radius:50%;background:#c5d0da;flex-shrink:0}.farbar-sub-dot.tone-done{background:var(--ok)}.farbar-sub-dot.tone-current{background:var(--primary)}.farbar-stage-field{margin-top:.35rem}.farbar-saved{display:block;margin-top:.35rem;font-size:.8rem;color:var(--ok)}.farbar-curriculum-editor .farbar-editor-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.75rem;margin-bottom:.85rem}.farbar-editor-actions{display:flex;flex-wrap:wrap;gap:.45rem}.farbar-editor-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.farbar-editor-item{border:1px solid var(--line-soft);border-radius:10px;padding:.7rem .8rem;background:var(--surface)}.farbar-editor-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.farbar-editor-drag{color:var(--muted);cursor:grab;-webkit-user-select:none;user-select:none;letter-spacing:-.12em}.farbar-editor-row-actions{margin-left:auto;display:flex;flex-wrap:wrap;gap:.35rem}.farbar-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;padding:0;border:none;border-radius:6px;background:transparent;color:var(--ink);cursor:pointer}.farbar-icon-btn:hover:not(:disabled){background:color-mix(in srgb,var(--primary-soft) 70%,transparent);color:var(--primary-deep)}.farbar-icon-btn:disabled{opacity:.35;cursor:not-allowed}.farbar-icon-btn-danger{color:#e53935}.farbar-icon-btn-danger:hover:not(:disabled){background:var(--danger-soft);color:#c62828}.farbar-editor-subs{list-style:none;margin:.85rem 0 0 1.4rem;padding:0;display:flex;flex-direction:column;gap:.25rem}.farbar-editor-subs li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.9rem;color:var(--muted)}.sheet-actions{margin-top:.5rem;padding-top:.75rem;border-top:1px solid var(--line-soft)}.parent-statement .detail-section-title{margin-top:0}.parent-statement-months{margin-top:1.15rem!important}.parent-statement .data-table{margin-bottom:.25rem}.sheet-cta-row{display:grid;grid-template-columns:1fr;gap:.55rem;margin-bottom:.95rem}.picker-list{display:flex;flex-direction:column;gap:.55rem;margin-top:.5rem}.picker-list-item{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;text-align:left;padding:.85rem 1rem;border-radius:12px;border:1px solid var(--line-soft);background:var(--paper);cursor:pointer;font-family:inherit;transition:border-color .15s ease,background .15s ease}.picker-list-item:hover{border-color:var(--primary);background:var(--primary-soft)}.picker-list-title{font-size:.95rem;font-weight:650;color:var(--ink)}.students-page-stack{display:flex;flex-direction:column;gap:1rem}.students-filters-panel{padding:.85rem 1rem}.students-filters-panel .toolbar{margin-bottom:0}.student-roster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.85rem}.student-roster-card{display:flex;flex-direction:column;border:1px solid var(--line-soft);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .2s ease,transform .2s ease}.student-roster-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.roster-card-main{display:flex;flex-direction:column;gap:.85rem;width:100%;padding:1rem 1rem .75rem;border:none;background:transparent;text-align:left;cursor:pointer;font-family:inherit;color:inherit}.roster-card-main:hover{background:#0f243605}.roster-card-header{display:flex;align-items:flex-start;gap:.75rem}.roster-avatar-wrap{position:relative;flex-shrink:0}.roster-attendance-dot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;border:2px solid var(--paper);background:#9e9e9e}.roster-attendance-dot.tone-ok{background:var(--ok)}.roster-attendance-dot.tone-warn{background:var(--warn)}.roster-attendance-dot.tone-danger{background:var(--danger)}.roster-attendance-dot.tone-muted{background:#9e9e9e}.roster-card-identity{min-width:0;flex:1}.roster-card-name{font-size:1.05rem;font-weight:700;color:var(--ink);line-height:1.25}.roster-card-parent,.roster-card-teacher{font-size:.8rem;margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roster-learning-label{font-size:.75rem;font-weight:500}.roster-learning-value{margin-top:.15rem;font-size:.95rem;font-weight:650;color:var(--primary-deep)}.roster-learning-bar-row{display:flex;align-items:center;gap:.5rem;margin-top:.45rem}.roster-progress-bar{flex:1}.roster-progress-pct{font-size:.75rem;font-weight:650;color:var(--primary-deep)}.roster-today-strip{display:flex;align-items:stretch;gap:0;padding:.7rem .35rem;border-radius:12px;background:#0f243609}.roster-today-cell{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:.2rem;min-width:0;padding:0 .2rem}.roster-today-divider{width:1px;align-self:stretch;background:var(--line-soft);flex-shrink:0}.roster-today-value{font-size:1rem;font-weight:700;line-height:1.2;color:var(--ink)}.roster-today-value.tone-ok{color:var(--ok)}.roster-today-value.tone-warn{color:var(--warn)}.roster-today-value.tone-danger{color:var(--danger)}.roster-today-value.tone-muted{color:var(--ink-muted)}.roster-today-pills-slot{display:flex;align-items:center;justify-content:center;min-height:1.2em}.roster-today-label{font-size:.65rem;font-weight:600;color:var(--ink-muted);letter-spacing:.02em}.roster-behavior{display:block;width:100%;margin:0;padding:.75rem 1rem .9rem;border:none;border-top:1px solid var(--line-soft);background:transparent;text-align:left;cursor:pointer;font-family:inherit}.roster-behavior:hover{background:#0f243605}.roster-behavior-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;font-size:.8rem;font-weight:650;color:var(--ink)}.roster-behavior-text{font-size:.85rem;font-weight:500}.roster-behavior-text.tone-ok{color:var(--ok)}.roster-behavior-text.tone-warn{color:var(--warn)}.roster-behavior-text.tone-danger{color:var(--danger)}.roster-behavior-text.tone-muted{color:var(--ink-muted)}.roster-behavior-text.tone-accent{color:var(--primary-deep)}.subview-back{display:inline-block;margin-bottom:.65rem;font-size:.85rem;background:none;border:none;padding:0;cursor:pointer;font-family:inherit}.history-calendar-head{margin-bottom:.75rem}.history-calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.history-calendar-month{font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--ink)}.history-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;margin-bottom:.35rem}.history-calendar-weekday{text-align:center;font-size:.72rem;font-weight:600;color:var(--ink-muted)}.history-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem}.history-cal-cell{aspect-ratio:1;min-height:48px;border-radius:10px;border:1px solid var(--line-soft);background:#f7fafc;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;padding:.2rem;font:inherit;color:inherit}.history-cal-cell.empty{border:none;background:transparent}.history-cal-cell.inactive{opacity:.38;cursor:default}.history-cal-cell.clickable{cursor:pointer}.history-cal-cell.clickable:hover{border-color:var(--primary)}.history-cal-cell.today{box-shadow:inset 0 0 0 1.5px var(--primary)}.history-cal-cell.selected{border-color:var(--primary-deep);background:var(--primary-soft)}.history-cal-cell.has-data.tone-ok{background:#e8f6ee;border-color:#b7e0c5}.history-cal-cell.has-data.tone-warn{background:#fff6e8;border-color:#f0d4a8}.history-cal-cell.has-data.tone-danger{background:#fdeceb;border-color:#f3c4bf}.history-cal-cell.has-data.tone-accent{background:#f3eef9;border-color:#ddd0ef}.history-cal-daynum{font-size:.78rem;font-weight:600;color:var(--ink)}.history-cal-value{font-size:.65rem;font-family:var(--font-mono);font-weight:700;color:var(--ink-muted);line-height:1}.history-cal-cell.has-data.tone-ok .history-cal-value{color:var(--ok)}.history-cal-cell.has-data.tone-warn .history-cal-value{color:var(--warn)}.history-cal-cell.has-data.tone-danger .history-cal-value{color:var(--danger)}.history-cal-cell.has-data.tone-accent .history-cal-value{color:#6a3ea1}.history-calendar-day-detail{margin-top:1rem;padding:.85rem 1rem;border-radius:12px;background:var(--paper);border:1px solid var(--line-soft);min-height:4.5rem}.history-day-detail-date{font-size:.78rem;color:var(--ink-muted);margin-bottom:.35rem}.history-day-detail-value{margin:0;font-size:1.05rem;font-weight:700;color:var(--ink)}.history-day-detail-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.history-day-detail-action{flex-shrink:0;font-size:.92rem;font-weight:600;white-space:nowrap}.history-day-detail-value.tone-ok{color:var(--ok)}.history-day-detail-value.tone-warn{color:var(--warn)}.history-day-detail-value.tone-danger{color:var(--danger)}.history-day-detail-value.tone-accent{color:#6a3ea1}.attendance-session-list{display:flex;flex-direction:column;gap:.35rem}.attendance-session-row{display:flex;justify-content:space-between;font-size:.9rem}.attendance-session-row .ok{color:var(--ok);font-weight:600}.attendance-session-row .danger{color:var(--danger);font-weight:600}.subview-title{font-family:var(--font-display);font-size:1.25rem;font-weight:700;margin:0 0 .25rem;letter-spacing:-.02em}.subview-sub{margin:0 0 .95rem;font-size:.85rem}.session-list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.45rem}.session-list-item{width:100%;text-align:left;border:1px solid var(--line-soft);background:var(--paper);border-radius:12px;padding:.8rem .9rem;cursor:pointer;font-family:inherit;color:inherit}.session-list-item:hover{border-color:var(--primary-mid);background:var(--primary-soft)}.session-list-item.today{border-color:var(--primary);background:color-mix(in srgb,var(--primary-soft) 70%,#fff)}.session-list-main{font-size:.9rem;font-weight:600;color:var(--ink)}.session-list-meta{margin-top:.2rem;font-size:.78rem}.session-meta-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.session-notes{margin:0 0 .85rem;padding:.7rem .85rem;border-radius:10px;background:var(--paper);border:1px solid var(--line-soft);font-size:.85rem;color:var(--ink)}.passage-viewer{margin-top:.35rem;padding:.85rem .5rem .5rem}.passage-ayah{display:flex;align-items:flex-start;gap:.55rem;margin-bottom:1rem}.passage-words{flex:1;font-family:Amiri,Traditional Arabic,serif;font-size:1.35rem;line-height:2.15;color:var(--ink)}.passage-word.wrong{background:#fde2e0;border-radius:4px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.passage-ayah-num{flex-shrink:0;width:28px;height:28px;margin-top:.35rem;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:.72rem;font-family:var(--font-mono);color:var(--ink-muted)}.fee-summary-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.expense-summary-row{grid-template-columns:repeat(3,minmax(0,1fr))}.fee-summary-card{padding:.85rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--surface)}button.fee-summary-card-btn{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}button.fee-summary-card-btn:hover{border-color:var(--primary-mid);background:color-mix(in srgb,var(--primary-soft) 45%,var(--surface));box-shadow:var(--shadow-xs)}button.fee-summary-card-btn:focus-visible{outline:2px solid var(--primary-mid);outline-offset:2px}.fee-summary-card .label{font-size:.72rem;font-weight:500;color:var(--ink-muted);white-space:nowrap}.fee-summary-value{margin-top:.25rem;font-size:1.15rem;font-weight:650;font-variant-numeric:tabular-nums}.fee-summary-value.warn{color:var(--warn)}.fee-summary-sheet{display:flex;flex-direction:column;gap:.75rem;padding:.15rem 0 .35rem;min-height:0}.fee-summary-sheet-head .student-detail-name{margin:0}.fee-summary-sheet-head .muted{margin:.2rem 0 0}.fee-summary-sheet-list{display:flex;flex-direction:column}.fee-summary-sheet-row{display:grid;grid-template-columns:1fr 7.5rem;align-items:end;gap:.75rem;width:100%;padding:.55rem 0 .12rem;border:none;border-bottom:1px solid var(--line-soft);background:transparent;font:inherit;color:inherit;text-align:left;cursor:default}button.fee-summary-sheet-row{cursor:pointer}button.fee-summary-sheet-row:hover .fee-summary-sheet-name{color:var(--primary-deep)}.fee-summary-sheet-name{font-size:.88rem;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fee-summary-sheet-amount{text-align:right;font-size:.88rem;font-variant-numeric:tabular-nums}.fee-summary-sheet-amount.warn,.fee-summary-sheet-total .warn{color:var(--warn)}.fee-summary-sheet-total{display:grid;grid-template-columns:1fr 7.5rem;gap:.75rem;margin-top:.35rem;padding-top:.55rem;border-top:1px solid var(--ink);font-weight:650;font-size:.9rem}.fee-summary-sheet-total span:last-child{text-align:right;font-variant-numeric:tabular-nums}.toolbar-field{display:flex;flex-direction:column;gap:.25rem;min-width:9rem}.fee-filters-panel{margin-bottom:.85rem}.expense-add-form .fee-filters-row{align-items:flex-end}.expense-title-field{flex:1;min-width:12rem}.expense-ledger{max-width:none;padding:1rem 1.15rem .9rem}.expense-month-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.85rem}.expense-month-bar .settings-input{width:auto;min-width:9rem}.expense-ledger-head,.expense-ledger-row,.expense-ledger-other{display:grid;grid-template-columns:1fr 7.5rem;align-items:end;gap:.75rem}.expense-ledger-add-row{border-bottom:none;padding-top:.45rem}.expense-ledger-add{justify-self:start;font-size:1.25rem;width:1.5rem;text-align:left;border:none;background:transparent;color:var(--ink-muted);cursor:pointer;padding:0}.expense-ledger-add:hover:not(:disabled){color:var(--ink)}.expense-ledger-head{font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);padding-bottom:.4rem;border-bottom:1px solid var(--ink)}.expense-ledger-head span:last-child,.expense-ledger-amount,.expense-ledger-input{text-align:right}.expense-ledger-row{padding:.55rem 0 .12rem;border-bottom:1px solid var(--line-soft);font-size:.88rem;line-height:1.2}.expense-ledger-name{color:var(--ink);line-height:1.2;padding-bottom:0}.expense-ledger-input{width:100%;height:1.2em;border:none;border-radius:0;background:transparent;padding:0;margin:0;font-size:.88rem;line-height:1.2;font-variant-numeric:tabular-nums}.expense-ledger-input:focus{outline:none}.expense-ledger-amount{font-variant-numeric:tabular-nums}.expense-ledger-amount-wrap{display:flex;align-items:center;justify-content:flex-end;gap:.35rem}.expense-ledger-name-wrap{display:inline-flex;align-items:center;justify-content:flex-start;gap:.4rem;width:auto;max-width:100%}.expense-ledger-name-wrap .expense-ledger-other-name{flex:0 1 auto;width:8rem;min-width:4rem}.expense-ledger-other-name{border:none;background:transparent;padding:0;font-size:.88rem}.expense-ledger-remove{display:inline-flex;align-items:center;flex-shrink:0;border:none;background:transparent;padding:0;cursor:pointer;color:#e53935}.expense-ledger-remove:disabled{opacity:.4;cursor:not-allowed}.expense-ledger-remove:hover:not(:disabled){color:#c62828}.expense-ledger-other-name:focus{outline:none}.expense-ledger-rule{height:1px;background:var(--line);margin:.35rem 0 .15rem}.expense-ledger-foot{display:grid;grid-template-columns:1fr 7.5rem;align-items:end;gap:.75rem;margin-top:.75rem;padding-top:.55rem;border-top:1px solid var(--ink);font-weight:650;font-size:.9rem}.expense-ledger-foot .expense-ledger-amount{text-align:right}.expense-ledger-balance{margin-top:1.75rem}.expense-ledger-balance .expense-ledger-row{border-bottom:none}.expense-ledger-remaining{font-weight:650;padding-top:.5rem;margin-top:.15rem;border-top:1px solid var(--ink);border-bottom:none}.expense-ledger-amount.warn{color:var(--warn)}button.expense-ledger-salary-row{width:100%;margin:0;background:transparent;cursor:pointer;text-align:left;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;border-top:none;border-left:none;border-right:none}button.expense-ledger-salary-row:hover .expense-ledger-chevron{color:var(--ink)}.expense-ledger-chevron{color:var(--ink-muted);font-size:.88rem;line-height:1;font-weight:400}.salary-sheet{display:flex;flex-direction:column;gap:.85rem;padding:.25rem 0 .5rem;min-height:0}.salary-sheet-head{padding:0 .15rem}.salary-sheet-head .student-detail-name{margin:0}.salary-sheet-head .muted{margin:.2rem 0 0}.salary-sheet-list{display:flex;flex-direction:column;gap:0}.salary-sheet-row{display:grid;grid-template-columns:1fr 7.5rem;align-items:end;gap:.75rem;padding:.55rem 0 .12rem;border-bottom:1px solid var(--line-soft);font-size:.88rem}.salary-sheet-add{margin-top:.35rem}.salary-sheet-total{display:grid;grid-template-columns:1fr 7.5rem;gap:.75rem;margin-top:.35rem;padding-top:.55rem;border-top:1px solid var(--ink);font-weight:650;font-size:.9rem}.salary-sheet-total span:last-child{text-align:right;font-variant-numeric:tabular-nums}.salary-sheet-actions{display:flex;justify-content:center;margin-top:.5rem;padding-bottom:.25rem}.salary-sheet-actions .btn{min-width:11rem;padding-left:2rem;padding-right:2rem}.add-expense-sheet .field{display:flex;flex-direction:column;gap:.3rem}.add-expense-sheet .field>span{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted)}.add-expense-recurrence{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.add-expense-recurrence-btn{border:1px solid var(--line);background:transparent;color:var(--ink-muted);padding:.55rem .75rem;font:inherit;font-size:.88rem;cursor:pointer;border-radius:6px}.add-expense-recurrence-btn.active{border-color:var(--ink);color:var(--ink);font-weight:600}.add-expense-recurrence-btn:disabled{opacity:.5;cursor:not-allowed}.add-expense-recurrence-hint{margin:0;font-size:.8rem}.fee-filters-row{display:flex;flex-wrap:nowrap;align-items:flex-end;gap:.75rem}.fee-search-field{flex:1;min-width:12rem}.fee-table-panel{margin-top:0}@media(max-width:720px){.fee-filters-row{flex-wrap:wrap}.fee-search-field{flex:1 1 100%}}.fee-parent-cell{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.fee-amt-arrears{color:var(--warn)}.fee-amt-paid{color:color-mix(in srgb,var(--ok) 55%,var(--ink-muted))}.fee-amt-remaining{color:color-mix(in srgb,var(--danger) 55%,var(--ink-muted))}.fee-row-actions{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end}.fee-allocation-list{margin:.75rem 0 0;padding-left:1.1rem;display:grid;gap:.35rem}.fee-allocation-list li{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.fee-alloc-tick{color:var(--ok);font-weight:700;font-size:1.05rem;line-height:1}.fee-apply-block{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--line)}.fee-apply-label{margin:0 0 .75rem;font-size:.9rem}.settings-check{display:flex;align-items:flex-start;gap:.5rem;margin:.75rem 0 1rem;font-size:.9rem;color:var(--ink-muted)}.parent-fee-edit{display:flex;gap:.5rem;align-items:center;width:100%}.parent-fee-edit .settings-input{flex:1;min-width:0}.info-card-row-stack{flex-direction:column;align-items:stretch;gap:.45rem}.parent-fee-chip{display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:.28rem .55rem;font-size:.82rem;font-family:var(--font-mono);font-variant-numeric:tabular-nums;cursor:pointer}.parent-fee-chip:hover{border-color:var(--ink-muted)}.parent-fee-chip.unset{font-family:inherit;color:var(--warn);border-color:color-mix(in srgb,var(--warn) 35%,var(--line));background:color-mix(in srgb,var(--warn-soft) 70%,transparent)}@media(max-width:900px){.fee-summary-row{grid-template-columns:1fr}}
