@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poppins-latin-400-normal-cpxAROuN.woff2)format("woff2"),url(/assets/poppins-latin-400-normal-BOb3E3N0.woff)format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/poppins-latin-500-normal-C8OXljZJ.woff2)format("woff2"),url(/assets/poppins-latin-500-normal-DGXqpDMm.woff)format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/poppins-latin-600-normal-zEkxB9Mr.woff2)format("woff2"),url(/assets/poppins-latin-600-normal-BJdTmd5m.woff)format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/poppins-latin-700-normal-Qrb0O0WB.woff2)format("woff2"),url(/assets/poppins-latin-700-normal-BVuQR_eA.woff)format("woff")}@font-face{font-family:Saira Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/saira-condensed-latin-600-normal-0taFJMb7.woff2)format("woff2"),url(/assets/saira-condensed-latin-600-normal-CJ-Ib_yI.woff)format("woff")}@font-face{font-family:Saira Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/saira-condensed-latin-800-normal-Pyk8ZVcZ.woff2)format("woff2"),url(/assets/saira-condensed-latin-800-normal-DACapFM9.woff)format("woff")}@font-face{font-family:Sohoma;src:url(/fonts/sohoma-bold.woff2)format("woff2");font-weight:700 900;font-style:normal;font-display:swap}:root{--spartan-300:#fa9fa3;--spartan-400:#f5656c;--spartan-500:#ec343c;--spartan-600:#d41e27;--spartan-700:#b2161e;--spartan-950:#42070a;--ink-50:#f6f6f6;--ink-100:#e7e7e7;--ink-200:#d1d1d1;--ink-300:#b0b0b0;--ink-400:#888;--ink-500:#6d6d6d;--ink-700:#4f4f4f;--ink-800:#2a2a2a;--ink-850:#1c1c1c;--ink-900:#141414;--ink-950:#0a0a0a;--black:#000;--bg:var(--black);--surface-1:var(--ink-950);--surface-2:var(--ink-900);--surface-3:var(--ink-850);--fg-rgb:255 255 255;--bg-rgb:0 0 0;--panel-rgb:18 18 18;--scheme:dark;--line:#ffffff14;--line-strong:#ffffff29;--text:#f5f5f5;--text-strong:#fff;--on-fill:#fff;--text-muted:var(--ink-300);--text-subtle:var(--ink-400);--primary:var(--spartan-500);--primary-hover:var(--spartan-700);--primary-fill:var(--spartan-600);--primary-soft:#ec343c1f;--danger:var(--spartan-500);--ring:var(--spartan-500);--mark-paid:var(--text);--mark-open:var(--ink-500);--mark-overdue:var(--spartan-500);--success:#4ade80;--radius-0:0;--radius-field:2px;--radius:4px;--skew:-22deg;--chevron:polygon(.6rem 0, 100% 0, calc(100% - .6rem) 100%, 0 100%);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--font-display:"Sohoma", "Saira Condensed", "Arial Narrow", sans-serif;--font-sans:"Poppins", ui-sans-serif, system-ui, sans-serif;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:16px;--text-title:28px;--text-score:clamp(26px, 2.6vw, 40px);--ease:cubic-bezier(.22, 1, .36, 1)}@media (width<=767px){:root{--text-title:22px;--text-score:30px}}:root[data-theme=light]{--spartan-300:#d41e27;--spartan-400:#b2161e;--spartan-500:#d41e27;--spartan-600:#d41e27;--spartan-700:#b2161e;--ink-50:#0a0a0a;--ink-100:#141414;--ink-200:#2a2a2a;--ink-300:#4f4f4f;--ink-400:#5d5d5d;--ink-500:#6d6d6d;--ink-700:#b8b8b8;--ink-800:#e4e4e4;--ink-850:#ececec;--ink-900:#f2f2f2;--ink-950:#f7f7f7;--black:#fff;--bg:#fff;--surface-1:#f8f8f8;--surface-2:#f1f1f1;--surface-3:#e8e8e8;--line:#0000001a;--line-strong:#0003;--text:#111;--text-strong:#0a0a0a;--text-muted:#4a4a4a;--text-subtle:#5d5d5d;--primary-soft:#d41e2714;--mark-paid:#111;--mark-open:#6d6d6d;--mark-overdue:#d41e27;--success:#15803d;--fg-rgb:10 10 10;--bg-rgb:255 255 255;--panel-rgb:255 255 255;--scheme:light}:root{font-family:var(--font-sans);font-size:var(--text-base);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:var(--ink-700) var(--bg);-webkit-tap-highlight-color:transparent}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}::selection{color:var(--on-fill);background:var(--primary)}button,input,select,textarea{font:inherit}button{border-radius:var(--radius-field);min-height:40px;color:var(--on-fill);background:var(--primary-fill);cursor:pointer;transition:background .14s var(--ease), color .14s var(--ease), opacity .14s var(--ease);border:0;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:500;display:inline-flex}button:hover{background:var(--primary-hover)}button:disabled{cursor:not-allowed;opacity:.5}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}input,select{border:1px solid var(--line-strong);border-radius:var(--radius-field);width:100%;min-height:40px;color:var(--text);background:var(--surface-2);color-scheme:var(--scheme);transition:border-color .14s var(--ease);outline:none;padding:0 12px}input:hover,select:hover{border-color:rgb(var(--fg-rgb) / .24)}input:focus,select:focus{border-color:var(--ring);box-shadow:0 0 0 1px var(--ring)}select option{color:var(--text);background:var(--surface-2)}select option:checked,select option:hover{color:var(--text-strong);background:var(--ink-800)}input[type=checkbox]{width:16px;height:16px;min-height:16px;accent-color:var(--primary);box-shadow:none;border:0}a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px}a:hover{-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*{scrollbar-width:thin;scrollbar-color:var(--ink-700) transparent}#root{min-height:100vh}.app-shell{grid-template-rows:auto minmax(0,1fr);grid-template-columns:auto minmax(0,1fr);min-height:100vh;display:grid}.workspace{grid-area:1/2/-1;width:100%;min-width:0;padding:28px}.workspace-header{grid-area:1/2;justify-content:space-between;align-items:center;gap:18px;padding:22px 28px 0;display:flex}.workspace-header h1{margin:4px 0 0;font-size:27px}.workspace-eyebrow,.period-filter-summary span{color:var(--text-muted);font-size:12px}.period-filter,.period-filter-summary,.period-filter-controls,.period-custom-controls{align-items:center;gap:10px;display:flex}.period-filter-summary{min-width:max-content;color:var(--primary)}.period-filter-summary div{gap:3px;display:grid}.period-filter-summary strong{color:var(--text-strong);font-size:13px}.period-filter-controls .select-field{min-width:170px}.period-custom-controls input{width:150px}.page-section{gap:18px;display:grid}.page-toolbar{justify-content:space-between;align-items:center;gap:18px;display:flex}.page-toolbar h2{white-space:nowrap;font-size:28px;line-height:1.1}.toolbar-actions{grid-template-columns:minmax(260px,1.25fr) minmax(170px,.7fr) auto;align-items:center;gap:10px;width:min(760px,100%);display:grid}.toolbar-actions button{white-space:nowrap}.toolbar-actions.compact{grid-template-columns:1fr auto;width:min(360px,100%)}.split{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px;display:grid}.panel{border-radius:var(--radius);background:var(--surface-1);box-shadow:inset 0 0 0 1px var(--line);margin-bottom:18px;padding:18px}.panel-head{min-height:32px;color:var(--text-muted);justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.loading{min-height:200px;color:var(--text);place-items:center;display:grid}.app-loader-container{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:24px;width:100%;min-height:100vh;display:flex}.app-loader-logo-wrapper{justify-content:center;align-items:center;width:120px;height:120px;display:flex;position:relative}.app-loader-logo{z-index:2;width:90px;height:auto;animation:2s ease-in-out infinite logo-pulse}.app-loader-ring{border:3px solid #ec343c14;border-top:3px solid var(--primary);z-index:1;border-radius:50%;width:120px;height:120px;animation:1.2s linear infinite ring-spin;position:absolute}.app-loader-text{color:var(--text-muted);letter-spacing:.05em;font-size:14px;font-weight:500;animation:1.5s ease-in-out infinite alternate text-fade}@keyframes logo-pulse{0%,to{filter:drop-shadow(0 0 3px #ec343c1f);transform:scale(.95)}50%{filter:drop-shadow(0 0 8px #ec343c38);transform:scale(1.05)}}@keyframes ring-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes text-fade{0%{opacity:.5}to{opacity:1}}h1,h2,h3,p{margin:0}h1{max-width:760px;color:var(--text-strong);font-family:var(--font-display);font-size:var(--text-title);letter-spacing:-.005em;text-transform:uppercase;margin-top:8px;font-weight:800;line-height:1}h2{color:var(--text-strong);font-size:var(--text-md);font-weight:600;line-height:1.4}h3{color:var(--text-strong);font-size:var(--text-base);margin-top:12px;font-weight:600}.page-toolbar h2,.listing-head h1{font-family:var(--font-display);text-transform:uppercase;letter-spacing:-.005em;font-weight:800}.score,.metric strong{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.brand{align-items:center;gap:12px;display:flex}.brand.large{justify-content:center;margin-bottom:34px}.brand strong{color:var(--text-strong);font-size:18px;display:block}.brand span,small{color:var(--text-muted);font-size:13px}.mark{border-radius:var(--radius);background:var(--ink-800);width:44px;height:44px;color:var(--bg);place-items:center;font-weight:900;display:grid}.logo-mark{object-fit:contain;background:0 0;border-radius:0;width:156px;height:auto;min-height:44px;padding:0}.auth .logo-mark{width:180px}.secondary{color:var(--text);background:rgb(var(--fg-rgb) / .08);border:1px solid rgb(var(--fg-rgb) / .1)}.secondary,.icon-button,.account-summary div,.empty-state,.field-label textarea,.profile-field{box-shadow:inset 0 0 0 1px var(--line)}.danger{color:var(--spartan-400);background:0 0;box-shadow:inset 0 0 0 1px #ec343c80}.danger:hover{color:var(--on-fill);background:var(--primary-fill)}.icon-button{width:30px;min-width:30px;height:30px;min-height:30px;color:var(--text-muted);background:rgb(var(--fg-rgb) / .045);border:1px solid rgb(var(--fg-rgb) / .1);padding:0}.icon-button:hover{color:var(--text-strong);background:rgb(var(--fg-rgb) / .095)}.icon-button.danger-icon{color:var(--spartan-400);background:#ec343c1a;border-color:#ec343c4d}.icon-button.danger-icon:hover{color:var(--spartan-400);background:#ec343c33}.ghost{width:100%;color:var(--ink-200);border-radius:var(--radius);background:0 0;border:1px solid #0000;justify-content:flex-start;margin-top:auto;padding:12px}.ghost:hover{background:rgb(var(--fg-rgb) / .07);border-color:rgb(var(--fg-rgb) / .09);box-shadow:inset 0 0 0 1px var(--line);transform:none}.sort-button{width:auto;min-height:28px;color:inherit;background:0 0;justify-content:flex-start;padding:0;font-weight:700}.sort-button:hover{color:var(--text-strong);background:0 0;transform:none}.sort-button svg{color:var(--primary)}.view-switcher{border-radius:var(--radius);background:rgb(var(--fg-rgb) / .06);height:42px;box-shadow:inset 0 0 0 1px var(--line);justify-self:start;gap:4px;padding:4px;display:inline-flex}.view-switcher button{width:34px;min-width:34px;height:34px;min-height:34px;color:var(--ink-200);background:0 0;padding:0}.view-switcher button:hover,.view-switcher button.active{color:var(--text-strong);background:#ec343c3d;transform:none}.danger-icon{color:var(--spartan-400);background:#ec343c14}.danger-icon:hover{color:var(--text-strong);background:#ec343c38}.span-2{grid-column:span 2;min-height:46px}.badge{border-radius:var(--radius-field);min-height:24px;color:var(--text);font-size:var(--text-xs);white-space:nowrap;background:0 0;align-items:center;gap:7px;padding:0 8px 0 6px;font-weight:500;display:inline-flex}.badge:before{content:"";width:6px;height:12px;transform:skewX(var(--skew));background:var(--mark-open);flex:none}.badge.approved:before,.badge.active:before{background:var(--mark-paid)}.badge.pending:before{box-shadow:inset 0 0 0 1.5px var(--ink-400);background:0 0}.badge.under_review:before{background:repeating-linear-gradient(0deg, var(--mark-paid) 0 2px, transparent 2px 4px);box-shadow:inset 0 0 0 1px var(--mark-paid)}.badge.overdue:before{background:var(--mark-overdue)}.badge.overdue{color:var(--spartan-400)}.badge.rejected:before,.badge.cancelled:before{box-shadow:inset 0 0 0 1.5px var(--mark-overdue);background:0 0}.badge.rejected,.badge.cancelled{color:var(--spartan-400)}.badge.exempt,.badge.archived,.badge.inactive{color:var(--text-subtle)}.role-badge{box-shadow:inset 0 0 0 1px var(--line-strong);gap:5px;padding:0 8px}.role-badge:before{display:none}.role-admin{color:var(--text-strong);box-shadow:inset 0 0 0 1px var(--primary)}.role-finance,.role-coach,.role-student{color:var(--text-muted)}.method-type-badge{border-radius:var(--radius-field);min-height:24px;color:var(--text-muted);font-size:var(--text-xs);box-shadow:inset 0 0 0 1px var(--line-strong);align-items:center;gap:5px;padding:0 8px;font-weight:500;display:inline-flex}.method-type-bank,.method-type-mpesa,.method-type-emola,.method-type-cash,.method-type-other{background:0 0}.table-meta{color:var(--ink-200);justify-self:end;font-size:15px}.table-card{border-radius:var(--radius);background:rgb(var(--panel-rgb) / .94);width:100%;box-shadow:inset 0 0 0 1px var(--line);overflow-x:auto}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;padding:18px 20px}th{background:rgb(var(--fg-rgb) / .03);color:var(--text-muted);font-size:14px;font-weight:700}td{color:var(--ink-200)}tbody tr+tr td{box-shadow:inset 0 10px 0 -9px rgb(var(--fg-rgb) / .05)}td strong,td small{display:block}.selection-cell{text-align:center;width:52px;min-width:52px}.selection-cell input{margin:0 auto}.modal-layer{z-index:60;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000ad;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow-y:auto}.modal-panel{border:1px solid rgb(var(--fg-rgb) / .1);border-radius:var(--radius);background:rgb(var(--panel-rgb) / .98);width:min(620px,100%);max-height:min(92dvh,860px);box-shadow:0 12px 36px #00000042, inset 0 0 0 1px var(--line);padding:18px;overflow-y:auto}.modal-panel.payment-flow-modal{width:min(860px,100%)}.modal-panel,.account-summary div,.empty-state,.secondary,.field-label textarea,.profile-field,.confirm-icon{border:0}.modal-head{justify-content:space-between;align-items:center;gap:16px;min-height:38px;margin-bottom:14px;display:flex}.modal-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.modal-form button{grid-column:span 2;min-height:46px}.modal-stepper{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px;display:grid}.modal-step{border-radius:var(--radius);min-width:0;color:var(--text-subtle);background:rgb(var(--fg-rgb) / .045);box-shadow:inset 0 0 0 1px var(--line);align-items:center;gap:10px;padding:10px;display:flex}.modal-step span{border-radius:var(--radius-field);width:26px;min-width:26px;height:26px;color:var(--ink-200);background:rgb(var(--fg-rgb) / .08);place-items:center;font-size:12px;font-weight:800;display:grid}.modal-step strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.modal-step.active{color:var(--text-strong);background:#ec343c29;box-shadow:inset 0 0 0 1px #ec343c3d}.modal-step.active span,.modal-step.done span{color:var(--surface-1);background:var(--primary)}.modal-actions{grid-column:span 2;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.modal-actions button{grid-column:auto}.delivery-options{border-radius:var(--radius);background:rgb(var(--fg-rgb) / .045);gap:8px;padding:10px 12px;display:grid}.delivery-options label{color:var(--ink-200);letter-spacing:0;text-transform:none;align-items:center;gap:9px;font-size:13px;font-weight:700;display:flex}.delivery-options input{width:16px;height:16px;margin:0}.access-password{position:relative}.access-password input{padding-right:48px}.access-password .password-toggle{width:36px;min-width:36px;height:36px;min-height:36px;color:var(--text-muted);background:0 0;border:0;padding:0;position:absolute;bottom:5px;right:6px}.access-password .password-toggle:hover{color:var(--text-strong);background:rgb(var(--fg-rgb) / .07);transform:none}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.form-grid button{grid-column:span 2}.fee-bulk-form{align-items:start}.fee-form-summary,.fee-form-note{border-radius:var(--radius);background:rgb(var(--fg-rgb) / .045);box-shadow:inset 0 0 0 1px var(--line);gap:6px;padding:12px 14px;display:grid}.fee-form-summary strong,.fee-form-note strong{color:var(--text-strong);font-size:13px}.fee-form-summary span,.fee-form-note span,.fee-form-note small{color:var(--text-muted);line-height:1.45}.fee-form-note small{font-size:12px}.modal-panel:focus,.crm-drawer:focus{outline:none}.field-label{color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;gap:6px;font-size:12px;font-weight:600;display:grid}.field-label input,.field-label select,.field-label textarea{margin:0}.field-label textarea{resize:vertical;background:rgb(var(--fg-rgb) / .05);border:1px solid rgb(var(--fg-rgb) / .1);border-radius:var(--radius);min-height:76px;color:var(--text);padding:10px 14px;font-family:inherit;font-size:14px;line-height:1.5;transition:border-color .12s}.field-label textarea:focus{border-color:#ec343c80;outline:none}.field-label-full{grid-column:span 2}.select-field{position:relative}.select-trigger{width:100%;min-height:46px;color:var(--text);background:rgb(var(--fg-rgb) / .06);box-shadow:inset 0 0 0 1px var(--line);justify-content:space-between;padding:0 14px}.select-trigger:hover,.select-trigger.open{background:rgb(var(--fg-rgb) / .08);transform:none;box-shadow:0 0 0 2px #ec343c47}.select-trigger span{text-align:left;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.select-menu{z-index:90;border-radius:var(--radius);background:rgb(var(--panel-rgb) / .98);max-height:220px;box-shadow:0 8px 24px #00000038, inset 0 0 0 1px var(--line);gap:4px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.select-menu-portal{z-index:140;position:fixed;top:auto;left:auto;right:auto}.select-menu button{min-height:38px;color:var(--ink-200);text-align:left;background:0 0;justify-content:flex-start;padding:0 10px;font-size:14px;font-weight:600}.select-menu button:hover,.select-menu button.active{color:var(--text-strong);background:#ec343c29;transform:none}.inline-form{border-radius:var(--radius);background:rgb(var(--panel-rgb) / .92);box-shadow:inset 0 0 0 1px var(--line);grid-template-columns:repeat(3,minmax(160px,1fr)) auto;gap:10px;padding:14px;display:grid}.inline-form button{min-width:142px}.plan-form{grid-template-columns:minmax(180px,1.2fr) minmax(220px,1.4fr) minmax(140px,.7fr) minmax(100px,.45fr) minmax(130px,.55fr) auto}.password-field{position:relative}.password-field input{padding-right:48px}.auth-form .password-toggle{width:36px;height:36px;min-height:36px;color:var(--text-muted);background:0 0;border:0;margin:0;padding:0;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.auth-form .password-toggle:hover{color:var(--text);background:rgb(var(--fg-rgb) / .07);transform:translateY(-50%)}.push-notice{z-index:80;border-radius:var(--radius);background:rgb(var(--panel-rgb) / .96);width:min(420px,100vw - 44px);min-height:52px;color:var(--text);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid #ec343c57;justify-content:space-between;align-items:center;gap:14px;padding:10px 12px 10px 16px;animation:.18s ease-out push-in;display:flex;position:fixed;bottom:22px;right:22px;box-shadow:0 10px 28px #00000038}.push-notice,.icon-button,.modal-panel,.account-summary div,.empty-state,.secondary,.field-label textarea,.student-avatar,.profile-field,.confirm-icon,.sidebar,.sidebar a,.nav-link,.ghost{border:0}.push-notice span{line-height:1.4}@keyframes push-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.row-actions{justify-content:flex-end;align-items:center;gap:5px;display:flex}.actions-column{text-align:right}.action-menu{justify-content:flex-end;display:inline-flex;position:relative}.action-menu-trigger{color:var(--ink-200)}.action-menu-panel{z-index:300;border-radius:var(--radius);background:rgb(var(--panel-rgb) / .98);min-width:156px;box-shadow:0 8px 24px #00000038, inset 0 0 0 1px var(--line);gap:4px;padding:6px;display:grid}.action-menu-panel button{min-height:36px;color:var(--ink-200);background:0 0;justify-content:flex-start;padding:0 10px;font-size:13px;font-weight:650}.action-menu-panel button:hover{color:var(--text-strong);background:rgb(var(--fg-rgb) / .07);transform:none}.action-menu-panel button.danger-item{color:var(--spartan-400)}.action-menu-panel button.danger-item:hover{color:var(--spartan-400);background:#ec343c29}.account-summary div,.empty-state{border:1px solid rgb(var(--fg-rgb) / .08);border-radius:var(--radius);background:rgb(var(--fg-rgb) / .04)}.empty-state{text-align:center;align-content:center;place-items:center;gap:8px;min-height:180px;padding:26px;display:grid}.empty-state svg{color:var(--primary)}.account-summary span,.empty-state span{color:var(--text-muted);font-size:13px;line-height:1.5;display:block}.account-summary strong,.empty-state strong{color:var(--text-strong);margin-top:6px;font-size:22px;display:block}.empty-state.standalone{flex-direction:column;grid-column:1/-1;gap:12px;min-height:280px}.empty-state.standalone button{margin-top:8px}.skeleton{background-color:rgb(var(--fg-rgb) / .07);border-radius:4px;display:block;position:relative;overflow:hidden}.skeleton:after{content:"";background-image:linear-gradient(90deg, rgb(var(--fg-rgb) / 0) 0%, rgb(var(--fg-rgb) / .08) 20%, rgb(var(--fg-rgb) / .15) 60%, rgb(var(--fg-rgb) / 0) 100%);animation:1.8s infinite skeleton-shimmer;position:absolute;inset:0;transform:translate(-100%)}.skeleton-text{transform-origin:50%;height:1.1em;margin-top:.25em;margin-bottom:.25em;transform:scaleY(.85)}.skeleton-circular{border-radius:50%!important}.skeleton-rectangular{border-radius:6px}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.btn{border-radius:var(--radius-field);white-space:nowrap;min-height:40px;padding:0 16px;font-weight:500}.btn-sm{min-height:32px;font-size:var(--text-sm);padding:0 12px}.btn-lg{min-height:48px;font-size:var(--text-md);padding:0 22px}.btn-primary{color:var(--on-fill);background:var(--primary-fill);clip-path:var(--chevron);border-radius:0;padding-inline:24px;font-weight:600}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:focus-visible{background:var(--primary-hover);outline:0;box-shadow:inset 0 0 0 2px #fff}.btn-secondary{color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong);background:0 0}.btn-secondary:hover{background:var(--surface-2)}.btn-ghost{color:var(--text-muted);background:0 0}.btn-ghost:hover{color:var(--text-strong);background:var(--surface-2)}.btn-danger{color:var(--spartan-400);background:0 0;box-shadow:inset 0 0 0 1px #ec343c80}.btn-danger:hover{color:var(--on-fill);background:var(--primary-fill)}@media (width<=767px){.btn{min-height:44px}}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);padding-bottom:var(--space-5);border-bottom:1px solid var(--line);display:flex}.page-header-text{gap:var(--space-2);min-width:0;display:grid}.page-header h1{margin:0}.page-header p{color:var(--text-muted);font-size:var(--text-base)}.page-header-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=767px){.page-header{flex-direction:column;align-items:stretch}.page-header-actions>*{flex:1}}.scoreboard{border-bottom:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin:0;display:grid}.scoreboard-item{min-height:0;padding:var(--space-5) var(--space-5) var(--space-5) 0;color:inherit;text-align:left;background:0 0;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:6px;font-weight:400;display:flex}.scoreboard-item+.scoreboard-item{padding-left:var(--space-5);border-left:1px solid var(--line)}.scoreboard-item.clickable{border-radius:0}.scoreboard-item.clickable:hover{background:var(--surface-1)}.scoreboard-item.clickable:hover .score-label{color:var(--text-strong)}.scoreboard .score{color:var(--text-strong);font-size:var(--text-score)}.scoreboard .score.alert{color:var(--primary)}.score-label{color:var(--text-muted);font-size:var(--text-sm)}.score-detail{color:var(--text-subtle);font-size:var(--text-xs)}@media (width<=767px){.scoreboard{grid-template-columns:repeat(2,minmax(0,1fr))}.scoreboard-item:nth-child(odd){border-left:0;padding-left:0}.scoreboard-item:nth-child(n+3){border-top:1px solid var(--line)}}.fee-strip{grid-auto-columns:12px;grid-auto-flow:column;align-items:center;gap:4px;display:inline-grid}.fee-strip.with-labels{grid-auto-columns:28px}.fee-strip-month{justify-items:center;gap:4px;display:grid}.fee-strip-mark{width:7px;height:18px;transform:skewX(var(--skew));box-shadow:inset 0 0 0 1.5px var(--mark-open);display:block}.fee-strip-mark.approved{background:var(--mark-paid);box-shadow:none}.fee-strip-mark.pending{box-shadow:inset 0 0 0 1.5px var(--ink-400)}.fee-strip-mark.under_review{background:repeating-linear-gradient(0deg, var(--mark-paid) 0 2px, transparent 2px 4px);box-shadow:inset 0 0 0 1px var(--mark-paid)}.fee-strip-mark.overdue{background:var(--mark-overdue);box-shadow:none}.fee-strip-mark.rejected{box-shadow:inset 0 0 0 1.5px var(--mark-overdue)}.fee-strip-mark.none,.fee-strip-mark.exempt,.fee-strip-mark.cancelled{box-shadow:none;background:var(--ink-850)}.fee-strip-label{color:var(--text-subtle);text-transform:lowercase;font-size:11px}.ds-page{max-width:1120px;padding:var(--space-10) var(--space-4) 96px;gap:var(--space-10);margin:0 auto;display:grid}.ds-block{gap:var(--space-4);display:grid}.ds-block>h2{color:var(--text-subtle);font-size:var(--text-sm);font-weight:500}.ds-row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.ds-note,.ds-body{color:var(--text-muted);max-width:64ch;line-height:1.6}.ds-fields{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.ds-roster{display:grid;overflow-x:auto}.ds-roster-row{align-items:center;gap:var(--space-5);border-bottom:1px solid var(--line);grid-template-columns:minmax(140px,200px) auto minmax(120px,1fr);padding:10px 0;display:grid}.ds-roster-row>span{color:var(--text-subtle);font-size:var(--text-sm)}.ds-roster-row strong{font-weight:500}.ds-roster-head{padding-bottom:6px}.ds-strip-labels .fee-strip-mark,.ds-strip-hide-labels .fee-strip-label{display:none}.sidebar{background:var(--bg);border-right:1px solid var(--line);flex-direction:column;grid-area:1/1/-1;gap:28px;width:280px;height:100vh;padding:24px;transition:width .3s cubic-bezier(.4,0,.2,1),padding .3s cubic-bezier(.4,0,.2,1);display:flex;position:sticky;top:0;overflow:hidden}.mobile-header,.bottom-nav,.mobile-brand-link,.sidebar-overlay{display:none}.sidebar-brand{justify-content:space-between;align-items:center;gap:8px;padding-bottom:8px;display:flex;position:relative}.sidebar-logo-link{background:0 0;width:auto;min-height:0;padding:0}.sidebar-logo-link:hover{background:0 0;transform:none}.sidebar-logo-full{object-fit:contain;flex-shrink:0;width:132px;height:auto;display:block}.sidebar-logo-icon{object-fit:contain;object-position:left;flex-shrink:0;width:36px;height:36px;display:block}.collapse-toggle{display:none}.sidebar-nav{flex-direction:column;flex:1;gap:18px;display:flex;overflow-y:auto}.nav-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;display:flex}.sidebar a,.nav-link{width:100%;color:var(--ink-200);border-radius:var(--radius);background:0 0;border:1px solid #0000;justify-content:flex-start;padding:12px}.sidebar a:hover,.nav-link:hover{color:var(--text-strong);background:var(--surface-2)}.nav-link{color:var(--text-muted);position:relative}.nav-link.active{color:var(--text-strong);background:0 0;font-weight:600}.nav-link.active:before{content:"";background:var(--primary);width:5px;height:20px;transform:translateY(-50%) skewX(var(--skew));position:absolute;top:50%;left:0}.nav-link.active svg{color:var(--text-strong)}.nav-label{white-space:nowrap;opacity:1;transition:opacity .2s}.sidebar-footer{border-top:1px solid rgb(var(--fg-rgb) / .08);flex-direction:row;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-top:auto;padding-top:20px;display:flex}.user-profile-summary{flex:1;align-items:center;gap:12px;min-width:0;display:flex;overflow:hidden}.user-avatar{background:var(--ink-800);width:40px;min-width:40px;height:40px;color:var(--text-strong);box-shadow:inset 0 0 0 1px rgb(var(--fg-rgb) / .12);-webkit-user-select:none;user-select:none;border-radius:50%;place-items:center;font-size:14px;font-weight:700;display:grid}.user-info{flex-direction:column;min-width:0;display:flex}.user-name{color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.user-role{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.ghost-logout{width:44px;min-width:44px;height:44px;color:var(--text-muted);border-radius:var(--radius);cursor:pointer;box-shadow:none;background:0 0;border:none;justify-content:center;align-items:center;transition:color .2s,background .2s;display:flex}.ghost-logout:hover{color:var(--text-strong);background:#ec343c26}@media (width>=981px){.collapse-toggle{all:unset;border-radius:var(--radius);width:30px;height:30px;color:rgb(var(--fg-rgb) / .35);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.collapse-toggle:hover{background:rgb(var(--fg-rgb) / .08);color:var(--text-strong);transform:none}.collapse-toggle svg{pointer-events:none;opacity:1!important;visibility:visible!important;display:block!important}.sidebar.collapsed{width:68px;padding:20px 14px}.sidebar.collapsed .sidebar-brand{cursor:default;justify-content:center}.sidebar.collapsed .collapse-toggle{all:unset;border-radius:var(--radius);background:rgb(var(--panel-rgb) / .88);width:100%;height:100%;color:rgb(var(--fg-rgb) / 0);opacity:0;cursor:pointer;pointer-events:none;justify-content:center;align-items:center;transition:opacity .2s,color .2s;display:flex;position:absolute;inset:0}.sidebar.collapsed .sidebar-brand:hover .collapse-toggle{opacity:1;color:rgb(var(--fg-rgb) / .9);pointer-events:auto}.sidebar.collapsed .collapse-toggle svg{pointer-events:none;opacity:1!important;visibility:visible!important;display:block!important}.sidebar.collapsed .nav-label{display:none}.sidebar.collapsed .sidebar-nav .nav-link{justify-content:center;padding:12px}.sidebar.collapsed .sidebar-footer{flex-direction:column;align-items:center;gap:12px;padding-top:16px}.sidebar.collapsed .ghost-logout{justify-content:center}}.sidebar-group{flex-direction:column;gap:2px;display:flex}.sidebar-group-title{color:var(--text-subtle);font-size:var(--text-xs);padding:0 12px 6px;font-weight:500}.nav-link{min-height:40px;padding:9px 12px}.nav-link .count{margin-left:auto}.nav-dot{background:var(--primary);border-radius:50%;width:7px;height:7px;position:absolute;top:8px;right:10px}.sidebar-search{border-radius:var(--radius-field);width:100%;min-height:38px;color:var(--text-subtle);background:var(--surface-1);box-shadow:inset 0 0 0 1px var(--line);justify-content:flex-start;gap:10px;padding:0 10px 0 12px;font-weight:400}.sidebar-search:hover{color:var(--text-strong);background:var(--surface-2)}.sidebar-search kbd{border-radius:var(--radius-field);color:var(--text-subtle);background:var(--surface-3);font-family:var(--font-sans);margin-left:auto;padding:1px 6px;font-size:11px}.sidebar.collapsed .sidebar-search{justify-content:center;padding:0}.mobile-header-actions{align-items:center;gap:8px;display:flex}.mobile-header-search{width:40px;min-width:40px;min-height:40px;color:var(--text);background:0 0;padding:0}.mobile-header-search:hover{background:var(--surface-2)}.quick-search{gap:var(--space-3);min-width:min(520px,80vw);display:grid}.quick-search-results{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.quick-search-results li{border-bottom:1px solid var(--line)}.quick-search-item{width:100%;min-height:52px;color:var(--text);text-align:left;background:0 0;border-radius:0;justify-content:stretch;justify-items:start;gap:2px;padding:8px 12px;font-weight:400;display:grid}.quick-search-item span{color:var(--text-subtle);font-size:var(--text-sm)}.quick-search-item.active,.quick-search-item:hover{background:var(--surface-2)}.quick-search-empty,.quick-search-hint{color:var(--text-subtle);font-size:var(--text-sm)}@media (width<=767px){.quick-search{min-width:0}.quick-search-hint{display:none}}.sidebar-nav{scrollbar-width:thin;scrollbar-color:var(--ink-800) transparent}.theme-toggle{border-radius:var(--radius-field);background:var(--surface-1);box-shadow:inset 0 0 0 1px var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:2px;display:grid}.theme-toggle button{border-radius:var(--radius-field);min-height:32px;color:var(--text-subtle);font-size:var(--text-xs);background:0 0;gap:6px;padding:0 6px;font-weight:500}.theme-toggle button:hover{color:var(--text-strong);background:var(--surface-2)}.theme-toggle button.active{color:var(--text-strong);background:var(--surface-3)}.theme-toggle-compact{width:40px;min-width:40px;min-height:40px;color:var(--text);background:0 0;padding:0}.theme-toggle-compact:hover{background:var(--surface-2)}.sidebar.collapsed .sidebar-theme{align-self:center}.listing-shell{grid-template-rows:auto auto minmax(0,1fr) auto;min-height:calc(100dvh - 56px)}.listing-head{grid-row:1;justify-content:space-between;align-items:center;gap:18px;display:flex}.listing-head h1{white-space:nowrap;margin:0;font-size:28px;line-height:1.1}.listing-summary{grid-row:2}.listing-table-card,.listing-card-grid{grid-row:3}.listing-pagination{grid-row:4}.listing-top-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;width:min(1180px,100%);display:flex}.listing-top-actions>button{white-space:nowrap}.listing-top-actions .listing-search{flex:240px}.period-filter.compact,.period-filter.compact .period-filter-controls{display:contents}.period-filter.compact .select-field{min-width:170px}.listing-mobile-actions{display:none}.listing-search{border-radius:var(--radius-field);min-width:0;min-height:42px;color:var(--text-muted);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line-strong);align-items:center;gap:10px;padding:0 12px;display:flex}.listing-search:focus-within{box-shadow:inset 0 0 0 1px var(--ring), 0 0 0 1px var(--ring)}.listing-search input{min-height:42px;box-shadow:none;background:0 0;border:0;padding:0}.listing-search input:focus{box-shadow:none}.listing-modal-filters{gap:10px;display:grid}.listing-summary,.listing-pagination{min-height:42px;color:var(--ink-200);justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.listing-summary:empty{display:none}.bulk-actions,.pagination-actions{align-items:center;gap:8px;display:flex}.listing-pagination-meta{align-items:center;gap:10px;display:flex}.listing-pagination-meta .select-field{min-width:140px}.bulk-actions strong,.pagination-actions strong{color:var(--text-strong);font-size:13px}.bulk-actions button{min-height:34px;padding:0 12px}.listing-table-card{border-radius:var(--radius);background:rgb(var(--panel-rgb) / .82);min-height:0;box-shadow:inset 0 0 0 1px var(--line);align-self:stretch;display:flex;overflow:hidden}.listing-table-scroll{flex:1;min-height:0;overflow:auto}.listing-table-scroll thead{z-index:2;background:rgb(var(--panel-rgb) / .96);box-shadow:inset 0 -1px 0 rgb(var(--fg-rgb) / .06);position:sticky;top:0}.listing-table-scroll tbody tr.selected{background:#ec343c14}.listing-table-scroll tbody tr.clickable-row,.listing-card.clickable-card{cursor:pointer}.listing-table-scroll tbody tr.clickable-row:hover,.listing-card.clickable-card:hover{background:rgb(var(--fg-rgb) / .045)}.listing-card-grid{border-radius:var(--radius);background:rgb(var(--panel-rgb) / .82);min-height:0;box-shadow:inset 0 0 0 1px var(--line);grid-template-columns:repeat(auto-fit,minmax(280px,360px));align-content:start;align-self:stretch;align-items:start;gap:14px;padding:18px;display:grid;overflow:auto}.listing-card{border-radius:var(--radius);background:rgb(var(--panel-rgb) / .82);min-height:0;box-shadow:inset 0 0 0 1px var(--line);gap:12px;padding:18px;display:grid;position:relative}.listing-card.selected{box-shadow:inset 0 0 0 1px #ec343c52}.listing-card>.plan-card,.listing-card>.modality-card,.listing-card>.method-card,.listing-card>.fee-card{min-height:0;box-shadow:none;background:0 0;padding:0}.card-selection{align-items:center;width:fit-content;display:inline-flex;position:absolute;top:18px;right:18px}.card-selection span{display:none}.listing-tabs{justify-content:space-between;align-items:flex-end;gap:var(--space-4);border-bottom:1px solid var(--line);display:flex}.listing-tabs .segmented{border-bottom:0}.listing-shell>.segmented{border-bottom:1px solid var(--line);justify-self:stretch}.listing-total{color:var(--text-subtle);font-size:var(--text-sm);flex:none;padding-bottom:10px}.listing-total strong{color:var(--text-strong);font-family:var(--font-display);font-size:18px;font-weight:800}.student-card-strip{margin-top:var(--space-2)}@media (width<=767px){.listing-tabs{flex-direction:column;align-items:stretch;gap:0}.listing-total{padding:8px 0}}.listing-search input:focus-visible{outline:none}.listing-tabs{min-width:0}.listing-tabs .segmented{flex:auto;min-width:0}.listing-shell{min-width:0}@media (width<=640px){.listing-head{min-width:0}.listing-head h1{min-width:0;font-size:var(--text-title);white-space:normal}.listing-mobile-actions{flex:none}}.metric-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-bottom:18px;display:grid}.metric-grid>.metric+.metric{border-left:1px solid var(--line);padding-left:20px}.panel,.fee-card,.auth-panel{border-radius:var(--radius);background:var(--surface-1);box-shadow:inset 0 0 0 1px var(--line)}.metric{flex-direction:column;gap:8px;min-width:0;padding:20px 16px 18px 0;display:flex}.metric strong{color:var(--text-strong);font-size:var(--text-score);display:block}.metric span{color:var(--text-muted);font-size:var(--text-sm);display:block}.dashboard-view{gap:18px;display:grid}.metric-grid-secondary{border-top:0;margin-top:-19px}.dashboard-chart-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;display:grid}.dashboard-chart-panel{min-width:0;margin-bottom:0}.dashboard-chart-panel .panel-head h2,.collection-health .panel-head h2{color:var(--text-strong);margin:0 0 5px;font-size:18px}.chart-empty{min-height:250px;color:var(--text-muted);place-items:center;font-size:14px;display:grid}.collection-health{margin-bottom:0}.health-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.health-grid div{border-radius:var(--radius);background:rgb(var(--fg-rgb) / .04);gap:8px;padding:14px;display:grid}.health-grid span{color:var(--text-muted);font-size:13px}.health-grid strong{color:var(--text-strong);font-size:21px}.account-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.account-summary div{padding:16px}.fee-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.fee-card{gap:16px;padding:16px;display:grid}.fee-card p,.instructions{color:var(--text-muted);line-height:1.5}.upload-row{gap:10px;display:grid}.pay-fee-trigger{width:fit-content;min-height:34px;color:var(--text);background:rgb(var(--fg-rgb) / .06);border:1px solid rgb(var(--fg-rgb) / .1);padding:0 12px}.pay-fee-trigger:hover{background:#ec343c24;border-color:#ec343c47}.payment-flow,.payment-flow-section,.payment-flow-copy,.payment-flow-summary,.payment-method-picker,.payment-method-card,.payment-fee-card,.payment-method-card-grid,.payment-method-instructions,.proof-selected-file,.proof-selected-pdf,.proof-payment-method{gap:12px;display:grid}.payment-flow{gap:22px}.payment-flow-copy p,.payment-method-option span,.payment-method-option small,.payment-method-card span,.payment-method-instructions p,.proof-selected-file span,.proof-selected-pdf span,.proof-payment-method span,.proof-payment-method p{color:var(--text-muted)}.payment-flow-copy-compact{gap:6px}.payment-method-picker{grid-template-columns:1fr;gap:10px}.payment-flow .modal-stepper{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:0}.payment-flow .modal-step{border-radius:var(--radius);min-height:52px;color:var(--text-subtle);background:rgb(var(--fg-rgb) / .03);box-shadow:inset 0 0 0 1px var(--line);padding:12px 14px;position:relative}.payment-flow .modal-step span{width:24px;min-width:24px;height:24px;color:var(--ink-200);background:rgb(var(--fg-rgb) / .08);font-size:11px}.payment-flow .modal-step strong{letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:700}.payment-flow .modal-step.active{color:var(--text-strong);background:var(--primary-soft);box-shadow:inset 0 0 0 1px #ec343c42}.payment-flow .modal-step.done{color:var(--ink-200);background:rgb(var(--fg-rgb) / .05)}.payment-flow .modal-step.active span,.payment-flow .modal-step.done span{color:var(--surface-1);background:var(--primary)}.payment-method-option{text-align:left;border-radius:var(--radius);width:100%;min-height:164px;color:var(--text);background:var(--surface-2);border:1px solid rgb(var(--fg-rgb) / .06);align-content:start;justify-items:start;gap:10px;padding:16px;transition:background .14s,border-color .14s,transform .14s;display:grid}.payment-method-option:hover,.payment-method-option.selected{background:var(--primary-soft);border-color:#ec343c3d}.payment-method-option-head,.payment-method-card-head,.proof-selected-file-head,.proof-method-pill{align-items:center;gap:10px;display:flex}.payment-method-option-head{grid-template-columns:auto 1fr auto;align-items:center;width:100%;display:grid}.payment-method-option-icon{width:38px;height:38px;color:var(--primary);border-radius:var(--radius-field);background:#ec343c1a;place-items:center;display:grid}.payment-method-option-type{letter-spacing:.08em;text-transform:uppercase;margin-left:2px;font-size:11px;font-weight:700}.payment-method-option-check{border-radius:var(--radius-field);color:#0000;background:rgb(var(--fg-rgb) / .04);width:24px;height:24px;box-shadow:inset 0 0 0 1px var(--line);place-items:center;display:grid}.payment-method-option-check.visible{color:var(--surface-1);background:var(--primary);box-shadow:none}.payment-method-option strong{font-size:15px;line-height:1.3}.payment-method-option span,.payment-method-option small{font-size:14px;line-height:1.35}.payment-method-card,.payment-fee-card,.proof-selected-file,.proof-payment-method{border-radius:var(--radius);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);padding:16px}.payment-method-card-grid,.payment-fee-card dl{grid-template-columns:1fr}.payment-method-card-head,.payment-method-card-title{align-items:flex-start}.payment-method-card-head{justify-content:space-between}.payment-method-card-title{gap:12px;display:flex}.payment-method-card-title>div{gap:4px;display:grid}.payment-method-card-title small{color:var(--text-subtle);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.payment-method-card-title strong{font-size:28px;line-height:1.05}.payment-method-card-title span{color:var(--ink-200)}.payment-method-card-grid div,.payment-fee-card dl div{gap:4px;display:grid}.payment-method-card-grid div{border-radius:var(--radius);background:rgb(var(--fg-rgb) / .035);padding:12px 14px}.payment-method-card-grid span,.payment-method-instructions span{letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.payment-fee-card dl{gap:10px;margin:0;display:grid}.payment-fee-card-head{border-bottom:1px solid rgb(var(--fg-rgb) / .06);gap:6px;padding-bottom:8px;display:grid}.payment-fee-card-head span{color:var(--text-subtle);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.payment-fee-card-head strong{font-size:32px;line-height:1}.payment-fee-card dt{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.payment-fee-card dd{color:var(--text);margin:0;font-weight:700}.proof-method-pill{border-radius:var(--radius-field);width:fit-content;color:var(--text);background:#ec343c1f;padding:8px 12px}.proof-method-pill.subtle{background:rgb(var(--fg-rgb) / .05)}.proof-dropzone{border-radius:var(--radius);text-align:center;cursor:pointer;background:rgb(var(--fg-rgb) / .035);border:1px dashed rgb(var(--fg-rgb) / .18);justify-items:center;gap:8px;padding:18px;display:grid}.proof-dropzone input{display:none}.proof-dropzone-icon{width:40px;height:40px;color:var(--primary);border-radius:var(--radius-field);background:#ec343c1f;place-items:center;display:grid}.proof-selected-file-head{justify-content:space-between}.proof-selected-preview{object-fit:contain;border-radius:var(--radius);background:rgb(var(--fg-rgb) / .03);width:100%;max-height:240px;display:block}.proof-selected-pdf{border-radius:var(--radius);background:rgb(var(--fg-rgb) / .04);grid-template-columns:auto 1fr;align-items:center;padding:12px}.payment-flow-actions{grid-column:auto}.proof-details{gap:16px;display:grid}.proof-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.proof-summary div,.proof-empty{border-radius:var(--radius);background:rgb(var(--fg-rgb) / .045);padding:12px}.proof-summary dt{color:var(--text-muted);font-size:13px}.proof-summary dd{color:var(--text);margin:6px 0 0;font-weight:700}.proof-file,.proof-empty,.proof-review-actions,.proof-payment-method{gap:10px;display:grid}.proof-file-head,.proof-file-head a,.proof-review-actions div{align-items:center;gap:10px;display:flex}.proof-file-head{justify-content:space-between}.proof-file-head a{font-size:13px;font-weight:700}.proof-preview{border-radius:var(--radius);object-fit:contain;background:rgb(var(--fg-rgb) / .04);border:0;width:100%;min-height:240px;max-height:420px;display:block}.proof-empty span,.proof-readonly{color:var(--text-muted);font-size:13px}.proof-readonly{margin:0}@media (width>=760px){.payment-flow-summary{grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr);align-items:start}.payment-method-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-method-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.student-list-card{gap:14px;display:grid}.student-list-card>div:first-child{justify-content:space-between;align-items:flex-start;gap:12px;padding-right:34px;display:flex}.student-list-card h3{margin:0;font-size:17px}.student-list-card p{color:var(--text-muted);font-size:14px}.student-list-card dl{grid-template-columns:1fr;gap:8px;margin:0;display:grid}.student-list-card dl div{border-radius:var(--radius);box-shadow:none;background:0 0;justify-content:space-between;align-items:center;gap:14px;padding:0;display:flex}.student-list-card dt{color:var(--text-subtle);text-transform:uppercase;font-size:11px;font-weight:700}.student-list-card dd{color:var(--ink-200);text-align:right;margin:0;font-size:13px}.student-list-card .action-menu{justify-self:end}.confirm-delete{text-align:center;gap:18px;display:grid}.confirm-icon{color:var(--primary);background:#ec343c1a;border:1px solid #ec343c38;border-radius:50%;place-items:center;width:58px;height:58px;margin:0 auto;display:grid}.confirm-text{color:var(--text-muted);font-size:15px;line-height:1.6}.confirm-text strong{color:var(--text-strong)}.confirm-actions{gap:10px;display:flex}.confirm-actions button{flex:1;min-height:44px}.modal-panel.student-import-modal{width:min(760px,100%)}.student-import-modal .modal-stepper{grid-template-columns:repeat(3,minmax(0,1fr))}.import-intro{color:var(--text-subtle);margin:0;font-size:14px;line-height:1.5}.import-intro strong{color:var(--text-strong)}.import-drop{border-radius:var(--radius);color:var(--text-subtle);background:rgb(var(--fg-rgb) / .045);box-shadow:inset 0 0 0 1px var(--line);text-align:center;cursor:pointer;justify-items:center;gap:6px;padding:22px 16px;display:grid;position:relative}.import-drop:hover,.import-drop:focus-within{box-shadow:inset 0 0 0 1px var(--primary)}.import-drop span{color:var(--text-strong);font-weight:700}.import-drop input{opacity:0;cursor:pointer;position:absolute;inset:0}.import-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.import-summary div{border-radius:var(--radius);background:rgb(var(--fg-rgb) / .045);gap:2px;padding:10px 12px;display:grid}.import-summary strong{color:var(--text-strong);font-size:22px}.import-summary span{color:var(--text-subtle);font-size:12px}.import-summary .has-errors strong{color:var(--spartan-400)}.import-rows{gap:8px;display:grid}.import-rows>ul{gap:6px;max-height:340px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.import-rows>ul>li{border-radius:var(--radius);background:rgb(var(--fg-rgb) / .03);box-shadow:inset 0 0 0 1px var(--line);padding:9px 10px}.import-row-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.import-row-head strong{min-width:0;color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;flex:160px;font-size:14px;overflow:hidden}.import-row-number{color:var(--text-subtle);font-variant-numeric:tabular-nums;font-size:12px}.import-messages{color:var(--text-subtle);margin:6px 0 0;padding-left:18px;font-size:13px;line-height:1.45}.import-messages.error{color:var(--spartan-400)}.import-warning{color:var(--spartan-400);margin:0;font-size:13px}.modal-form .import-toggle{min-height:36px}@media (width<=560px){.import-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.modality-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.modality-card{border-radius:var(--radius);background:var(--surface-1);min-height:200px;box-shadow:inset 0 0 0 1px var(--line);align-content:space-between;gap:14px;padding:18px;display:grid}.modality-card-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.modality-icon{border-radius:var(--radius);background:var(--primary-soft);width:44px;height:44px;color:var(--primary);place-items:center;display:grid}.modality-card h3{margin:0;font-size:20px}.modality-card p{color:var(--text-muted);min-height:42px;font-size:14px;line-height:1.5}.modality-card-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.modality-card-actions .icon-button{width:38px;min-width:38px;height:38px;min-height:38px}.plan-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.plan-card{border-radius:var(--radius);background:var(--surface-1);min-height:220px;box-shadow:inset 0 0 0 1px var(--line);align-content:space-between;gap:16px;padding:18px;display:grid}.plan-card-head,.plan-card-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.plan-card-head strong{color:var(--text-strong);font-size:21px}.plan-card p{min-height:48px;color:var(--text-muted);line-height:1.5}.plan-card-actions button{flex:1;min-width:0}.method-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;display:grid}.method-card{border-radius:var(--radius);background:var(--surface-1);box-shadow:inset 0 0 0 1px var(--line);gap:12px;padding:18px;display:grid}.method-card-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.method-card h3{margin:0;font-size:19px}.method-beneficiary{color:var(--text-muted);font-size:14px}.method-details{gap:6px;display:grid}.method-detail-row{background:rgb(var(--fg-rgb) / .03);border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.method-detail-row span{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.02em;font-size:12px;font-weight:700}.method-detail-row strong{color:var(--ink-200);font-family:monospace;font-size:13px}.method-instructions{color:var(--text-subtle);background:rgb(var(--fg-rgb) / .03);border-radius:6px;padding:8px 12px;font-size:13px;line-height:1.5}.method-card-actions{align-items:center;gap:8px;display:flex}.method-card-actions .secondary{flex:1}.user-list-card{gap:10px;display:grid}.user-list-card-head{align-items:center;gap:10px;display:flex}.user-list-card-head strong{color:var(--text-strong);flex:1;font-size:15px}.user-list-card-head small{color:var(--text-muted);font-size:12px;display:block}.user-list-card-meta{color:var(--text-muted);justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.user-avatar-sm{width:36px;min-width:36px;height:36px;color:var(--primary);background:#ec343c1f;border-radius:50%;place-items:center;display:grid}.user-avatar-lg{background:var(--primary-soft);width:52px;min-width:52px;height:52px;color:var(--primary);border-radius:50%;place-items:center;display:grid}.user-edit-modal{gap:18px;display:grid}.user-edit-info{border-radius:var(--radius);background:rgb(var(--fg-rgb) / .04);align-items:center;gap:14px;padding:14px;display:flex}.user-edit-info strong{color:var(--text-strong);font-size:16px;display:block}.user-edit-info span{color:var(--text-muted);font-size:13px}.admin-self-warning{border-radius:var(--radius);color:var(--spartan-400);background:#ec343c1a;grid-column:span 2;align-items:center;gap:8px;padding:10px 14px;font-size:13px;line-height:1.4;display:flex}#users .listing-top-actions{grid-template-columns:minmax(260px,1.25fr) minmax(170px,.7fr) minmax(170px,.7fr) auto auto;width:min(1000px,100%)}@media (width<=980px){#users .listing-top-actions{grid-template-columns:minmax(0,1fr) minmax(140px,.7fr) minmax(140px,.7fr) auto auto}}@media (width<=640px){#users .listing-top-actions{grid-template-columns:1fr}}#audit .listing-top-actions{grid-template-columns:minmax(260px,1.25fr) minmax(170px,.7fr) minmax(170px,.7fr) auto;width:min(1000px,100%)}@media (width<=980px){#audit .listing-top-actions{grid-template-columns:minmax(0,1fr) minmax(140px,.7fr) minmax(140px,.7fr) auto}}@media (width<=640px){#audit .listing-top-actions{grid-template-columns:1fr}}.time-column-cell,.user-column-cell,.entity-column-cell{flex-direction:column;gap:4px;display:flex}.time-column-cell{color:var(--ink-200);flex-direction:row;align-items:center;gap:6px}.mono-text{color:var(--text-muted);word-break:break-all;font-family:monospace;font-size:13px}.mono-text-xs{color:var(--text-subtle);font-family:monospace;font-size:11px}.badge-success{background:var(--surface-3);color:var(--text)}.badge-warning{color:var(--primary);background:#ec343c1f}.badge-danger{color:var(--spartan-400);background:#ec343c1f}.badge-info{background:var(--surface-3);color:var(--text)}.audit-detail-modal{flex-direction:column;gap:18px;max-width:100%;display:flex}.audit-detail-header{border-bottom:1px solid rgb(var(--fg-rgb) / .08);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;display:flex}.audit-badge{border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:inline-flex}.audit-badge.badge-success{background:var(--surface-3);color:var(--text)}.audit-badge.badge-warning{color:var(--primary);background:#ec343c26}.audit-badge.badge-danger{color:var(--spartan-400);background:#ec343c26}.audit-badge.badge-info{background:var(--surface-3);color:var(--text)}.audit-time{color:var(--text-muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.audit-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (width<=600px){.audit-info-grid{grid-template-columns:1fr}}.audit-info-card{border-radius:var(--radius);background:rgb(var(--fg-rgb) / .03);border:1px solid rgb(var(--fg-rgb) / .05);padding:12px 14px}.audit-info-card h4{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;margin:0 0 8px;font-size:12px;display:flex}.audit-info-card .info-content{flex-direction:column;gap:4px;display:flex}.audit-info-card .info-content strong{color:var(--text-strong);word-break:break-all;font-size:14px}.audit-section-panel{border-radius:var(--radius);background:rgb(var(--fg-rgb) / .03);border:1px solid rgb(var(--fg-rgb) / .05);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.audit-section-panel h4{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;margin:0;font-size:12px;display:flex}.field-name-tag{background:rgb(var(--fg-rgb) / .08);color:var(--spartan-400);border-radius:4px;align-self:flex-start;padding:4px 8px;font-family:monospace;font-size:13px;display:inline-block}.audit-reason-text{color:var(--ink-200);margin:0;font-size:14px;line-height:1.5}.audit-diff-container{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;width:100%;display:grid}@media (width<=768px){.audit-diff-container{grid-template-columns:1fr}.diff-arrow-middle{justify-content:center;padding:8px 0;transform:rotate(90deg)}}.diff-panel{background:rgb(var(--panel-rgb) / .4);border:1px solid rgb(var(--fg-rgb) / .04);border-radius:var(--radius);flex-direction:column;gap:8px;padding:12px;display:flex}.diff-panel h5{text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:12px}.diff-panel.old-val h5{color:var(--spartan-400)}.diff-panel.new-val h5{color:var(--text)}.diff-arrow-middle{color:var(--text-subtle);align-items:center;display:flex}.diff-val-box{background:var(--surface-2);min-height:50px;max-height:250px;color:var(--ink-200);word-break:break-all;border-radius:6px;padding:10px;font-size:13px;overflow:auto}.json-display{color:var(--ink-200);white-space:pre-wrap;word-break:break-all;margin:0;font-family:monospace;font-size:12px;line-height:1.4}.modality-icon,.user-avatar-sm,.user-avatar-lg{color:var(--text-strong);background:var(--ink-800)}.badge.badge-success,.badge.badge-warning,.badge.badge-danger,.badge.badge-info{background:0 0}.badge.badge-success:before{background:var(--mark-paid)}.badge.badge-warning:before{box-shadow:inset 0 0 0 1.5px var(--ink-300);background:0 0}.badge.badge-danger{color:var(--spartan-400)}.badge.badge-danger:before{background:var(--mark-overdue)}.badge.badge-info:before{background:var(--ink-500)}.audit-badge{border-radius:var(--radius-field)}.audit-badge.badge-success,.audit-badge.badge-warning,.audit-badge.badge-info{color:var(--text);background:var(--surface-2)}.audit-badge.badge-danger{color:var(--spartan-400);background:0 0;box-shadow:inset 0 0 0 1px #ec343c80}.auth{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-panel{border-radius:var(--radius);background:var(--surface-1);border:1px solid var(--line);width:min(480px,100vw - 48px);padding:38px;position:relative;overflow:hidden}.auth-panel>*{z-index:1;position:relative}.auth-hero{justify-content:center;align-items:center;margin-bottom:12px;display:flex}.auth-brand{justify-content:center;align-items:center;display:flex}.auth-heading{text-align:center}.auth-heading h1{letter-spacing:-.03em;max-width:none;margin:0;font-size:32px;line-height:1.05}.auth-form{gap:14px;margin-top:20px;display:grid}.auth-label{color:var(--ink-200);font-size:var(--text-sm);gap:8px;font-weight:500;display:grid}.auth-label input{border-radius:var(--radius);background:rgb(var(--fg-rgb) / .06);min-height:48px;box-shadow:inset 0 0 0 1px var(--line);padding:0 14px}.auth-label input::placeholder{color:var(--text-subtle)}.auth-label input:focus{box-shadow:0 0 0 3px #ec343c2e,inset 0 0 0 1px #ec343c6b}.auth-actions-row{justify-content:space-between;align-items:center;gap:14px;margin-top:4px;display:flex}.auth-checkbox{color:var(--ink-200);align-items:center;gap:10px;font-size:13px;font-weight:500;display:inline-flex}.auth-checkbox input{flex:none}.auth-text-button{min-height:auto;color:var(--text);background:0 0;border-radius:0;padding:0;font-size:13px;font-weight:700}.auth-text-button:hover{color:var(--text);background:0 0;transform:none}.auth-inline-help{border-radius:var(--radius);color:var(--ink-200);background:rgb(var(--fg-rgb) / .05);box-shadow:inset 0 0 0 1px var(--line);align-items:flex-start;gap:10px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.auth-inline-help svg{color:var(--text);flex:none;margin-top:1px}.auth-submit{border-radius:var(--radius);letter-spacing:.01em;min-height:50px;margin-top:4px;font-size:15px;font-weight:800}.auth-split{grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr);place-items:stretch stretch;height:100dvh;min-height:560px;padding:0;display:grid}.auth-visual{background:var(--surface-1);position:relative;overflow:hidden}.auth-visual picture,.auth-visual img{width:100%;height:100%;display:block}.auth-visual img{object-fit:cover;object-position:50% 35%;filter:grayscale(.35)contrast(1.05)}.auth-visual:after{content:"";background:linear-gradient(90deg,#00000026,#000000d9);position:absolute;inset:0}.auth-slogan{z-index:1;color:#fff;font-family:var(--font-display);text-transform:uppercase;font-size:clamp(36px,min(5.5vw,9vh),84px);font-weight:800;line-height:.9;position:absolute;bottom:clamp(24px,6vw,72px);left:clamp(24px,5vw,64px)}.auth-split .auth-panel{width:min(440px,100% - 48px);box-shadow:none;background:0 0;border:0;place-self:center}.auth-split .auth-heading h1{text-align:center}@media (width<=900px){.auth-split{grid-template-columns:1fr;place-items:center;height:auto;min-height:100dvh;padding:24px 16px}.auth-visual{display:none}}.segmented{justify-self:start;gap:var(--space-5);border-bottom:1px solid var(--line);display:inline-flex}.segmented button{min-height:40px;color:var(--text-muted);background:0 0;border-radius:0;padding:0;box-shadow:inset 0 -2px #0000}.segmented button:hover{color:var(--text-strong);background:0 0}.segmented button.active{color:var(--text-strong);box-shadow:inset 0 -2px 0 var(--primary);font-weight:600}.count{min-width:20px;height:20px;color:var(--on-fill);background:var(--primary-fill);font-variant-numeric:tabular-nums;place-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-grid}.proofs-layout{gap:var(--space-6);grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start;display:grid}.proofs-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.proofs-list li{border-bottom:1px solid var(--line)}.proofs-item{width:100%;min-height:0;color:var(--text);text-align:left;background:0 0;border-radius:0;justify-content:stretch;justify-items:start;gap:2px;padding:12px 12px 12px 18px;font-weight:400;display:grid;position:relative}.proofs-item:hover{background:var(--surface-1)}.proofs-item.active{background:var(--surface-2)}.proofs-item.active:before{content:"";background:var(--primary);width:4px;height:18px;transform:skewX(var(--skew));position:absolute;top:14px;left:4px}.proofs-item-name{font-weight:600}.proofs-item-meta{color:var(--text-muted);font-size:var(--text-sm)}.proofs-item-date{color:var(--text-subtle);font-size:var(--text-xs)}.proofs-detail{padding:var(--space-5);border:1px solid var(--line);background:var(--surface-1);position:sticky;top:24px}@media (width<=900px){.proofs-layout{grid-template-columns:1fr}}.segmented{scrollbar-width:none;max-width:100%;overflow-x:auto}.segmented button{flex:none;gap:6px}.segmented-count{color:var(--text-subtle);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.segmented-count.count{color:var(--on-fill)}.listing-shell>.segmented{justify-self:stretch}.dashboard-view{gap:var(--space-8)}.dashboard-view>.page-header+.scoreboard{margin-top:calc(var(--space-8) * -1)}.dash-section{gap:var(--space-4);min-width:0;display:grid}.dash-section-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);flex-wrap:wrap;display:flex}.dash-section-head h2{margin:0}.dash-section-aside{color:var(--text-subtle);font-size:var(--text-sm)}.dash-columns{gap:var(--space-8);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.dashboard-chart-bare{min-width:0}.todo-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.todo-item{justify-content:space-between;align-items:center;gap:var(--space-4);border-bottom:1px solid var(--line);min-height:56px;padding:8px 0 8px 20px;display:flex;position:relative}.todo-item:before{content:"";background:var(--text);width:5px;height:16px;transform:translateY(-50%) skewX(var(--skew));position:absolute;top:50%;left:2px}.todo-item.alert:before{background:var(--primary)}.todo-text{color:var(--text-muted)}.todo-text strong{color:var(--text-strong);font-family:var(--font-display);margin-right:4px;font-size:20px;font-weight:800}.todo-item.alert .todo-text strong{color:var(--primary)}.todo-empty,.fee-map-empty{color:var(--text-subtle)}.fee-map{gap:var(--space-3);display:grid}.fee-map-scroll{border-top:1px solid var(--line);overflow-x:auto}.fee-map-row{align-items:center;gap:var(--space-6);border-bottom:1px solid var(--line);grid-template-columns:minmax(150px,220px) max-content minmax(120px,1fr);min-height:44px;display:grid}.fee-map-head{min-height:32px}.fee-map-name{min-height:36px;color:var(--text);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;justify-content:flex-start;padding:0;font-weight:500;overflow:hidden}.fee-map-name:hover{color:var(--text-strong);text-decoration:underline;-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary);text-underline-offset:4px;background:0 0}.fee-map-note{color:var(--text-subtle);font-size:var(--text-sm);white-space:nowrap}.fee-map-note.alert{color:var(--spartan-400)}.fee-strip-labels-only .fee-strip-mark,.fee-strip-marks-only .fee-strip-label{display:none}.fee-map-more{min-height:32px;color:var(--text-muted);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:4px;background:0 0;justify-self:start;padding:0}.fee-map-more:hover{color:var(--text-strong);background:0 0}.status-breakdown{gap:var(--space-4);display:grid}.status-bar{gap:3px;height:14px;display:flex}.status-bar-part{background:var(--mark-open);min-width:6px}.status-bar-part.approved{background:var(--mark-paid)}.status-bar-part.under_review{background:repeating-linear-gradient(-60deg, var(--mark-paid) 0 2px, transparent 2px 5px);box-shadow:inset 0 0 0 1px var(--mark-paid)}.status-bar-part.pending{background:var(--ink-700)}.status-bar-part.overdue{background:var(--mark-overdue)}.status-bar-part.rejected{background:repeating-linear-gradient(-60deg, var(--mark-overdue) 0 2px, transparent 2px 5px);box-shadow:inset 0 0 0 1px var(--mark-overdue)}.status-legend{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.status-legend li{border-bottom:1px solid var(--line)}.status-legend-item{align-items:center;gap:var(--space-3);width:100%;min-height:40px;color:inherit;background:0 0;border-radius:0;grid-template-columns:1fr auto 44px;padding:0;font-weight:400;display:grid}button.status-legend-item:hover{background:var(--surface-1)}.status-legend-item .badge{justify-self:start}.status-legend-item .score{font-size:20px}.status-legend-item small{color:var(--text-subtle);text-align:right}.ranked-bars{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.ranked-bars li{align-items:center;column-gap:var(--space-3);grid-template-columns:minmax(0,1fr) 36px;grid-template-areas:"label value""track value";row-gap:6px;display:grid}.ranked-label{color:var(--text-muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;grid-area:label;overflow:hidden}.ranked-track{background:var(--surface-2);grid-area:track;height:8px}.ranked-fill{background:var(--text);height:100%;display:block}.ranked-bars .score{text-align:right;grid-area:value;font-size:22px}@media (width<=900px){.dash-columns{grid-template-columns:1fr}}@media (width<=767px){.dashboard-view{gap:var(--space-6)}.fee-map-row{gap:var(--space-4);grid-template-columns:120px max-content}.fee-map-note{display:none}.todo-item{align-items:flex-start;gap:var(--space-2);flex-direction:column;padding:12px 0 12px 20px}.todo-item:before{top:22px}}.fee-map .fee-strip.with-labels{grid-auto-columns:22px;gap:2px}.fee-map-scroll{scrollbar-width:thin;scrollbar-color:var(--ink-700) transparent}.ranked-bars li{grid-template-columns:minmax(0,1fr) 44px;padding-right:2px}@media (width<=767px){.fee-map .fee-strip-month:nth-child(-n+6){display:none}.fee-map-row{grid-template-columns:minmax(0,1fr) max-content}}.crm-layer{z-index:220;justify-content:flex-end;display:flex;position:fixed;inset:0}.crm-backdrop{cursor:default;background:#0009;border-radius:0;min-height:0;padding:0;position:absolute;inset:0}.crm-backdrop:hover{background:#0009}.crm-drawer{gap:var(--space-4);width:min(560px,100%);height:100dvh;padding:var(--space-6);border-left:1px solid var(--line-strong);background:var(--bg);animation:crm-in .2s var(--ease);grid-template-rows:auto auto auto auto minmax(0,1fr) auto;display:grid;position:relative}@keyframes crm-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.crm-head{align-items:center;gap:var(--space-4);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.crm-avatar{width:52px;height:52px;color:var(--text-strong);background:var(--ink-800);font-family:var(--font-display);border-radius:50%;place-items:center;font-size:20px;font-weight:800;display:grid}.crm-identity h2{color:var(--text-strong);font-family:var(--font-display);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;margin:0;font-size:26px;font-weight:800;line-height:1;overflow:hidden}.crm-meta{color:var(--text-subtle);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:6px;display:flex}.crm-close{align-self:start}.crm-strip{padding:var(--space-3) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);scrollbar-width:none;overflow-x:auto}.crm-strip .fee-strip.with-labels{grid-auto-columns:minmax(26px,1fr);width:100%}.crm-contact{gap:var(--space-2);flex-wrap:wrap;display:flex}.crm-contact .btn{flex:1 1 0}.crm-drawer>.segmented{justify-self:stretch}.crm-body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--ink-800) transparent;min-height:0;overflow-y:auto}.crm-panel{gap:var(--space-6);display:grid}.crm-panel .scoreboard{border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr))}.crm-panel .scoreboard-item{padding:var(--space-4) var(--space-3) var(--space-4) 0}.crm-panel .scoreboard-item+.scoreboard-item{padding-left:var(--space-3)}.crm-panel .scoreboard .score{white-space:nowrap;font-size:22px}.crm-section{gap:var(--space-3);display:grid}.crm-section h3{color:var(--text-subtle);font-size:var(--text-sm);margin:0;font-weight:500}.crm-facts{border-top:1px solid var(--line);margin:0}.crm-facts div{gap:var(--space-4);border-bottom:1px solid var(--line);grid-template-columns:150px minmax(0,1fr);padding:10px 0;display:grid}.crm-facts dt{color:var(--text-subtle);font-size:var(--text-sm)}.crm-facts dd{overflow-wrap:anywhere;color:var(--text);margin:0}.crm-rows,.crm-timeline{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.crm-row{align-items:center;gap:var(--space-4);border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto;min-height:56px;padding:8px 0;display:grid}.crm-row-main{gap:2px;min-width:0;display:grid}.crm-row-main span{color:var(--text-subtle);font-size:var(--text-sm)}.crm-row-side{justify-items:end;gap:4px;display:grid}.crm-row-side .score{font-size:18px}.crm-row-actions{gap:2px;display:flex}.crm-task-status{color:var(--text-subtle);font-size:var(--text-xs)}.crm-task.completed .crm-row-main strong,.crm-task.cancelled .crm-row-main strong{color:var(--text-subtle);text-decoration:line-through}.crm-timeline-item{border-bottom:1px solid var(--line);gap:4px;padding:12px 0 12px 20px;display:grid;position:relative}.crm-timeline-item:before{content:"";background:var(--ink-400);width:4px;height:12px;transform:skewX(var(--skew));position:absolute;top:16px;left:2px}.crm-timeline-item p{color:var(--text-muted);white-space:pre-wrap}.crm-timeline-item small{color:var(--text-subtle);font-size:var(--text-xs)}.crm-task-form{grid-template-columns:minmax(0,1fr) 160px}.crm-task-form h3,.crm-task-form input:first-of-type{grid-column:1/-1}.crm-section textarea{border:1px solid var(--line-strong);border-radius:var(--radius-field);width:100%;color:var(--text);background:var(--surface-2);font:inherit;resize:vertical;padding:10px 12px}.crm-section .btn{justify-self:start}.crm-note{color:var(--text-muted);white-space:pre-wrap;line-height:1.6}.crm-muted{color:var(--text-subtle)}.crm-foot{justify-content:space-between;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--line);display:flex}@media (width<=767px){.crm-panel .scoreboard{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-panel .scoreboard-item:nth-child(odd){padding-left:0}.crm-drawer{gap:var(--space-3);width:100%;padding:var(--space-4) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));border-left:0}.crm-avatar{width:44px;height:44px;font-size:17px}.crm-identity h2{white-space:normal;font-size:22px}.crm-strip .fee-strip-month:nth-child(-n+6){display:none}.crm-facts div{grid-template-columns:1fr;gap:2px}.crm-row{grid-template-columns:minmax(0,1fr) auto}.crm-row-actions{grid-column:1/-1}.crm-task-form{grid-template-columns:1fr}.crm-foot .btn,.crm-foot .danger{flex:1}}.student-focus{justify-items:start;gap:var(--space-3);padding:var(--space-6);border:1px solid var(--line-strong);background:var(--surface-1);display:grid;position:relative}.student-focus:before{content:"";top:-1px;left:var(--space-6);background:var(--text);width:44px;height:4px;transform:skewX(var(--skew));position:absolute}.student-focus.alert{border-color:#ec343c80}.student-focus.alert:before{background:var(--primary)}.student-focus-label{color:var(--text-muted)}.student-focus-amount{color:var(--text-strong);font-size:clamp(40px,7vw,56px)}.student-focus.alert .student-focus-amount{color:var(--primary)}.student-focus-meta{align-items:center;gap:var(--space-3);color:var(--text-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.student-focus-more{color:var(--text-subtle);font-size:var(--text-sm)}.student-focus .btn-primary{margin-top:var(--space-2)}.student-strip{padding:var(--space-3) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);scrollbar-width:none;overflow-x:auto}.student-strip .fee-strip.with-labels{grid-auto-columns:minmax(26px,1fr);width:100%}.student-history-row{grid-template-columns:minmax(0,1fr) auto}.proof-camera{cursor:pointer;width:100%;position:relative}.proof-camera input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.proof-camera:focus-within{background:var(--primary-hover)}@media (pointer:fine){.proof-camera{display:none}}@media (width<=767px){.student-focus{padding:var(--space-5) var(--space-4)}.student-focus .btn-primary{width:100%}.student-strip .fee-strip-month:nth-child(-n+6){display:none}}@media (width<=980px){.app-shell{grid-template-columns:1fr}.mobile-header{z-index:120;background:rgb(var(--bg-rgb) / .88);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;height:56px;padding:0 16px;display:flex;position:fixed;top:0;left:0;right:0}.mobile-brand-link{background:0 0;justify-content:flex-start;width:120px;height:40px;min-height:40px;padding:0;display:flex}.mobile-brand-link:hover{background:0 0}.mobile-brand-logo{object-fit:contain;object-position:left center;width:120px;height:40px;display:block}.mobile-header-user{width:32px;height:32px;color:var(--text-strong);background:var(--ink-800);border-radius:50%;place-items:center;font-size:12px;font-weight:600;display:grid}.bottom-nav{z-index:110;padding-bottom:env(safe-area-inset-bottom);background:rgb(var(--bg-rgb) / .94);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{min-height:60px;color:var(--text-subtle);background:0 0;border-radius:0;flex-direction:column;gap:4px;padding:6px 2px;font-size:11px;font-weight:500;display:flex;position:relative}.bottom-nav-item:hover{color:var(--text-strong);background:0 0}.bottom-nav-item.active{color:var(--text-strong)}.bottom-nav-item.active:before{content:"";background:var(--primary);width:18px;height:3px;transform:translateX(-50%) skewX(var(--skew));position:absolute;top:0;left:50%}.bottom-nav-item>span:last-child{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.bottom-nav-icon{place-items:center;display:grid;position:relative}.bottom-nav-icon svg{width:20px;height:20px}.bottom-nav-dot{background:var(--primary);border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;right:-5px}.sidebar-overlay{z-index:100;cursor:default;background:#0000008f;border:0;border-radius:0;width:100%;height:100%;padding:0;display:block;position:fixed;inset:0;transform:none}.sidebar-overlay:hover{background:#0000008f;transform:none}.sidebar{z-index:130;width:min(304px,100vw - 56px);height:100dvh;transition:transform .18s;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:10px 0 28px #0000002e}.sidebar.open{transform:translate(0)}.sidebar nav{grid-template-columns:1fr}.workspace{padding-top:72px;padding-bottom:calc(84px + env(safe-area-inset-bottom));grid-column:1}.workspace-header{flex-direction:row;grid-area:auto/1;align-items:flex-end;padding:84px 18px 0;position:relative}.workspace-header>div:first-child{min-width:0;margin-right:auto}.workspace-header h1{text-overflow:ellipsis;white-space:nowrap;font-size:clamp(22px,6vw,27px);overflow:hidden}.workspace-header+.workspace{padding-top:18px}.workspace-header .period-filter{flex:none}.workspace-header .period-filter-summary{display:none}.workspace-header .period-filter-controls{align-items:flex-end}.workspace-header .period-filter-controls .select-field{width:min(138px,36vw);min-width:0}.workspace-header .select-trigger{min-height:38px;padding:0 10px;font-size:13px}.workspace-header:has(.period-filter.has-custom){margin-bottom:170px}.workspace-header .period-filter.has-custom .period-custom-controls{border-radius:var(--radius);background:rgb(var(--panel-rgb) / .98);box-shadow:inset 0 0 0 1px var(--line);padding:12px;display:grid;position:absolute;top:calc(100% + 10px);left:18px;right:18px}.metric-grid,.split,.fee-grid,.plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid>.metric:nth-child(odd){border-left:0;padding-left:0}.metric-grid>.metric:nth-child(n+3){border-top:1px solid var(--line)}.page-toolbar{flex-direction:column;align-items:stretch}.toolbar-actions{width:100%}.listing-head{flex-direction:column;align-items:stretch}.listing-top-actions{width:100%}.inline-form,.plan-form{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-panel{width:min(560px,100%)}.listing-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.modality-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.auth-panel{width:min(420px,100vw - 40px)}}@media (width<=640px){.workspace{padding:84px 18px 18px}h1{font-size:31px}.split,.fee-grid,.plan-grid,.form-grid,.toolbar-actions,.toolbar-actions.compact,.inline-form,.plan-form,.modal-form,.auth-form,.sidebar nav{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.period-filter-controls,.period-custom-controls{flex-direction:column;align-items:stretch}.period-custom-controls input,.period-filter-controls .select-field{width:100%}.workspace-header .period-filter-controls{flex-direction:row;align-items:flex-end}.workspace-header .period-filter-controls .select-field{width:min(138px,36vw)}.health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.listing-top-actions{display:none}.listing-head{flex-direction:row;align-items:center;gap:10px;min-width:0}.listing-head h2{text-overflow:ellipsis;min-width:0;margin-right:auto;font-size:24px;overflow:hidden}.listing-mobile-actions{align-items:center;gap:5px;display:flex}.listing-mobile-actions .icon-button,.listing-mobile-primary-action,.listing-mobile-primary-action>button{width:34px;min-width:34px;height:34px;min-height:34px;padding:0}.listing-mobile-actions .icon-button.active{color:var(--text-strong);background:#ec343c3d}.listing-mobile-primary-action{position:relative}.listing-mobile-primary-action>button{color:#0000;gap:0;font-size:0;overflow:hidden}.listing-mobile-primary-action>button svg{display:none}.listing-mobile-primary-icon{pointer-events:none;margin:auto;position:absolute;inset:0}.listing-modal-search,.listing-modal-search input{min-height:46px}.listing-summary,.listing-pagination,.bulk-actions{flex-direction:column;align-items:stretch}.bulk-actions,.listing-pagination-meta,.pagination-actions{justify-content:space-between;width:100%}.listing-card-grid,.student-list-card dl{grid-template-columns:1fr}.form-grid button,.modal-form button{grid-column:auto}.modal-stepper,.modal-actions{grid-template-columns:1fr}.modal-actions{grid-column:auto}.proof-summary{grid-template-columns:1fr}.proof-file-head,.proof-review-actions div{flex-direction:column;align-items:stretch}.pay-fee-trigger,.payment-flow-actions button{width:100%}.payment-method-option-head,.payment-method-card-head,.proof-selected-file-head,.proof-method-pill{align-items:flex-start}.field-label-full{grid-column:auto}.auth-panel{padding:24px 20px}.auth-panel h1{font-size:25px}.auth-hero{justify-content:center;align-items:center;margin-bottom:8px}.auth-heading{text-align:center}.auth-actions-row{flex-direction:column;align-items:flex-start}.auth-form{margin-top:16px}.auth-text-button{min-height:28px}}@media (width<=600px){.modality-grid,.method-grid{grid-template-columns:1fr}}@media (width<=480px){.auth-panel{width:min(340px,100vw - 32px)}}@media (pointer:coarse){.icon-button,.action-menu-trigger{width:40px;min-width:40px;height:40px;min-height:40px}}
