:root{color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#101828;--ink-soft:#1d2939;--navy:#14243f;--primary:#3758f9;--primary-strong:#2b45c8;--primary-soft:#eef2ff;--primary-ring:#3758f929;--gold:#f79009;--gold-deep:#b54708;--gold-soft:#fffaeb;--text:#1f2937;--muted:#667085;--faint:#98a2b3;--border:#eaecf0;--border-strong:#d0d5dd;--surface:#fff;--surface-muted:#f8fafc;--danger:#d92d20;--radius-sm:8px;--radius:12px;--radius-lg:16px;--shadow-xs:0 1px 2px #1018280d;--shadow-sm:0 1px 3px #10182814, 0 14px 34px -26px #10182859;--shadow-md:0 4px 12px -2px #10182814, 0 20px 46px -26px #10182861;--shadow-lg:0 30px 90px -20px #0f172a66;--green:#12b76a;--dark:var(--ink);background:#f1f5f9;font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(900px 380px at 8% -8%,#3758f912,#0000 70%),radial-gradient(760px 340px at 100% 4%,#3758f90d,#0000 65%),#f1f5f9;min-width:320px;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button:disabled{cursor:default;opacity:.5}h1,h2,h3{letter-spacing:-.03em;color:var(--ink);margin:0;font-family:Manrope,system-ui,sans-serif}h1{font-size:clamp(1.85rem,3vw,2.3rem);font-weight:800;line-height:1.22}h2{font-size:1.2rem;font-weight:700;line-height:1.3}p{line-height:1.65}::selection{color:var(--ink);background:#c19a4b40}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:6px}*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#cbd5e1 padding-box content-box;border:3px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#94a3b8 padding-box content-box}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--primary);margin:0 0 12px;font-size:.67rem;font-weight:700}.button{letter-spacing:.01em;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:.82rem;font-weight:600;line-height:1.4;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s,color .18s;display:inline-flex}.primary{color:#fff;background:linear-gradient(#4a68fa 0%,#3758f9 100%);box-shadow:0 8px 18px -10px #3758f9a6,inset 0 1px #ffffff29}.primary:hover:not(:disabled){background:linear-gradient(#3b5bfa 0%,#2b45c8 100%);transform:translateY(-1px);box-shadow:0 12px 26px -10px #3758f9b3,inset 0 1px #ffffff2e}.primary:active:not(:disabled){box-shadow:var(--shadow-xs);transform:translateY(0)}.subtle{border-color:var(--border-strong);color:#475467;box-shadow:var(--shadow-xs);background:#fff}.subtle:hover:not(:disabled){color:var(--ink);background:#f9fafb;border-color:#cfd6e4}input,select,textarea{border:1px solid var(--border-strong);color:var(--text);background:#fff;border-radius:10px;min-width:0;padding:11px 13px;transition:border-color .15s,box-shadow .15s,background .15s}input::placeholder,textarea::placeholder{color:#98a2b3}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring);background:#fff;outline:none}input:disabled,select:disabled,textarea:disabled{opacity:.6}.alert{border-radius:10px;padding:12px 15px;font-size:.85rem}.error{color:var(--danger);background:#fef3f2;border:1px solid #fecdca}.success{color:#067647;background:#ecfdf3;border:1px solid #abefc6}.brand{letter-spacing:.08em;align-items:center;gap:12px;font-size:.84rem;font-weight:800;display:flex}.brand-mark{color:#fff;letter-spacing:-.06em;background:linear-gradient(140deg,#6b86ff 0%,#3758f9 65%,#2b45c8 100%);border-radius:12px;flex-shrink:0;place-items:center;width:40px;height:40px;font-family:Manrope,sans-serif;font-size:1.5rem;font-weight:800;display:inline-grid;box-shadow:inset 0 1px #ffffff59,0 8px 18px -8px #3758f9b3}.brand small{letter-spacing:.08em;color:#98a2b3;margin-top:5px;font-size:.66rem;font-weight:500;display:block}.login-layout{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.login-story{color:#f3f6fa;background:radial-gradient(85% 70% at 88% 6%,#3758f959,#0000 60%),radial-gradient(75% 70% at 6% 104%,#1e40af73,#0000 62%),linear-gradient(160deg,#16244a 0%,#070e1d 100%);flex-direction:column;justify-content:space-between;padding:52px 12%;display:flex;position:relative;overflow:hidden}.login-story:after{content:"";pointer-events:none;border:1px solid #6384ff52;border-radius:50%;width:560px;height:560px;position:absolute;bottom:-220px;right:-320px}.login-story:before{content:"";pointer-events:none;border:1px solid #ffffff12;border-radius:50%;width:380px;height:380px;position:absolute;bottom:-140px;right:-240px}.login-story h1{color:#fff;letter-spacing:-.045em;margin:20px 0 26px;font-size:clamp(2.5rem,4.2vw,3.9rem);line-height:1.08}.login-story .eyebrow{color:#9db4ff}.login-story .brand{color:#fff}.story-copy{color:#cbd6ffd1;font-size:1rem;line-height:1.9}.story-tags{flex-wrap:wrap;gap:10px;margin-top:36px;display:flex}.story-tags span{color:#dbe4ff;letter-spacing:.02em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#6384ff1f;border:1px solid #93a8ff47;border-radius:999px;padding:8px 16px;font-size:.76rem}.story-footer{color:#94a3b8d9;letter-spacing:.02em;margin-top:60px;font-size:.73rem}.login-panel{background:radial-gradient(55% 45% at 100% 0,#3758f914,#0000 60%),radial-gradient(65% 55% at 0 100%,#1e40af0d,#0000 60%),#f8fafc;justify-content:center;align-items:center;padding:48px;display:flex}.login-form{width:100%;max-width:372px}.login-form .eyebrow{color:var(--primary)}.login-form h2{letter-spacing:-.035em;font-size:2.15rem}.login-form>.muted{margin:14px 0 34px;font-size:.88rem}.login-form label{color:#35455c;margin:22px 0 9px;font-size:.8rem;font-weight:600;display:block}.login-form input{background:#fff;width:100%;padding:13px 14px}.login-form .primary{width:100%;margin-top:28px;padding:13px}.login-note{color:var(--faint);text-align:center;margin-top:24px;font-size:.75rem}.workspace{min-height:100vh;display:flex}.sidebar{width:258px;color:var(--text);border-right:1px solid var(--border);background:#fff;flex-direction:column;flex-shrink:0;padding:30px 18px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.sidebar .brand{color:var(--ink);padding:0 10px}.sidebar-school{border:1px solid var(--border);background:var(--surface-muted);border-radius:12px;flex-direction:column;gap:4px;margin:22px 10px 0;padding:14px;display:flex}.sidebar-school-label{letter-spacing:.16em;text-transform:uppercase;color:#98a2b3;margin:0;font-size:.58rem;font-weight:700}.sidebar-school strong{color:var(--ink);font-size:.82rem;line-height:1.35}.sidebar-school-code{color:#667085;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.68rem}.nav-heading{text-transform:uppercase;letter-spacing:.18em;color:#98a2b3;margin:18px 0 6px;padding-left:14px;font-size:.6rem;font-weight:700}.sidebar nav{gap:4px;margin-top:14px;display:grid}.nav-group{gap:4px;display:grid}.nav-group:first-child .nav-heading{margin-top:4px}.sidebar nav a{color:#475467;border-radius:10px;align-items:center;gap:13px;padding:11px 13px;font-size:.84rem;font-weight:500;transition:background .16s,color .16s,box-shadow .16s;display:flex}.sidebar nav a:hover{color:var(--ink);background:#f2f4f7}.sidebar nav a.active{background:var(--primary);color:#fff;box-shadow:0 12px 24px -14px #3758f9e6}.nav-mark{letter-spacing:.05em;color:#667085;background:#f9fafb;border:1px solid #e4e7ec;border-radius:7px;flex-shrink:0;place-items:center;width:26px;height:24px;font-size:.56rem;font-weight:700;transition:color .16s,border-color .16s,background .16s;display:grid}.sidebar nav a.active .nav-mark{color:#fff;background:#ffffff29;border-color:#ffffff52}.sidebar-bottom{border-top:1px solid var(--border);color:#667085;letter-spacing:.02em;align-items:center;gap:8px;margin-top:auto;padding:20px 10px 0;font-size:.67rem;display:flex}.connection-dot{background:#12b76a;border-radius:50%;flex-shrink:0;width:7px;height:7px;box-shadow:0 0 0 3px #12b76a29}.workspace-body{flex-direction:column;width:calc(100% - 258px);min-width:0;margin-left:258px;display:flex}.topbar{border-bottom:1px solid var(--border);z-index:30;background:#fff;justify-content:space-between;align-items:center;gap:20px;height:76px;padding:0 40px;display:flex;position:sticky;top:0}.workspace-label{color:var(--muted);letter-spacing:.02em;font-size:.76rem}.account{align-items:center;gap:12px;display:flex}.avatar{color:#fff;background:linear-gradient(145deg,#5b7cfa,#3758f9);border-radius:50%;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:.82rem;font-weight:700;display:grid;box-shadow:inset 0 1px #ffffff40}.account strong{color:var(--ink);overflow-wrap:anywhere;max-width:170px;font-size:.76rem;font-weight:600;display:block}.account small{color:var(--muted);margin-top:2px;font-size:.63rem;display:block}.account .button{margin-left:12px;font-size:.73rem}.main-content{flex:1;width:100%;max-width:1560px;margin:0 auto;padding:44px 44px 56px}.page-heading{margin:0 0 24px}.page-heading .eyebrow{color:var(--primary);margin-bottom:8px}.page-heading .muted{margin:10px 0 0;font-size:.86rem}.page-heading.page-banner{border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);background:linear-gradient(120deg,#eef4ff 0%,#f8fbff 55%,#edf3ff 100%);border:1px solid #e0e9ff;padding:24px 28px;position:relative;overflow:hidden}.page-heading.page-banner:after{content:"";pointer-events:none;background:radial-gradient(circle at 30% 30%,#3758f924,#0000 65%);border:1px solid #3758f929;border-radius:50%;width:260px;height:260px;position:absolute;top:-110px;right:-60px}.page-heading.page-banner h1,.page-heading.page-banner .muted{position:relative}.page-heading.page-banner h1{font-size:clamp(1.5rem,2.4vw,1.9rem)}.welcome-banner{border-radius:var(--radius-lg);background:radial-gradient(110% 130% at 100% 0,#93a8ff59,#0000 55%),radial-gradient(90% 120% at 0 100%,#1e40af8c,#0000 60%),linear-gradient(135deg,#3758f9 0%,#2b45c8 55%,#1e3a8a 100%);border:1px solid #ffffff1f;justify-content:space-between;align-items:center;margin-bottom:28px;padding:38px 42px;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 50px -30px #1e3a8abf}.welcome-banner .eyebrow{color:#c7d4ff;font-size:.61rem}.welcome-banner h2{color:#fff;letter-spacing:-.04em;font-size:2.15rem;line-height:1.25}.welcome-banner p:not(.eyebrow){color:#e0e8ffd1;margin-bottom:0;font-size:.84rem}.banner-monogram{color:#ffffff1f;letter-spacing:-.08em;border:1px solid #fff3;border-radius:50%;flex-shrink:0;place-items:center;width:230px;height:230px;margin:-35px -30px -50px 20px;font-family:Manrope,sans-serif;font-size:7.5rem;font-weight:800;line-height:1;display:grid;transform:rotate(-9deg)}.directory-grid{grid-template-columns:repeat(4,1fr);gap:18px;display:grid}.directory-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);flex-direction:column;padding:24px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.directory-card:hover{border-color:#3758f966;transform:translateY(-4px);box-shadow:0 18px 40px -26px #10182873}.card-mark{background:var(--primary-soft);color:var(--primary);letter-spacing:.03em;border:1px solid #e0e7ff;border-radius:11px;place-items:center;width:40px;height:40px;margin-bottom:24px;font-size:.68rem;font-weight:700;display:grid}.directory-card h2{letter-spacing:-.025em;font-size:1.05rem}.directory-card p{color:var(--muted);margin:11px 0 24px;font-size:.78rem}.card-link{color:#475467;justify-content:space-between;align-items:center;margin-top:auto;font-size:.72rem;font-weight:600;transition:color .18s;display:flex}.directory-card:hover .card-link{color:var(--primary)}.boilerplate-note{color:#98a2b3;margin:26px 0 0;font-size:.69rem}.workspace-footer{border-top:1px solid var(--border);color:#98a2b3;letter-spacing:.02em;justify-content:space-between;padding:20px 40px;font-size:.67rem;display:flex}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.directory-panel{overflow:hidden}.list-toolbar{justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;display:flex}.search-form{flex:1;gap:8px;max-width:560px;display:flex}.search-form input{background:var(--surface-muted);flex:1;font-size:.8rem}.search-form input:focus{background:#fff}.filter-group{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.filter-field{text-transform:uppercase;letter-spacing:.09em;color:var(--faint);flex-direction:row;align-items:center;gap:9px;font-size:.6rem;font-weight:700;display:flex}.filter-field select{text-overflow:ellipsis;text-transform:none;letter-spacing:normal;min-width:10.5rem;max-width:15rem;color:var(--text);background:#fff;padding:11px 32px 11px 12px;font-size:.8rem;font-weight:500;overflow:hidden}.page-size{color:var(--muted);align-items:center;gap:9px;font-size:.76rem;display:flex}.page-size select{padding:9px 10px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;min-width:880px;font-size:.81rem}th{border-bottom:1px solid var(--border);color:#344054;text-transform:none;letter-spacing:.01em;white-space:nowrap;background:#f9fafb;padding:14px 24px;font-size:.72rem;font-weight:700}td{white-space:nowrap;color:#475467;border-bottom:1px solid #f1f3f7;max-width:380px;padding:16px 24px;transition:background .14s}tbody tr:hover td{background:#f9fafb}tbody tr:last-child td{border-bottom:0}th:first-child,td:first-child{min-width:220px}td strong{color:#101828;white-space:normal;overflow-wrap:anywhere;font-size:.82rem;font-weight:600}.cell-detail{color:#98a2b3;white-space:normal;margin-top:5px;font-size:.7rem;display:block}.code{color:#475467;background:#f2f4f7;border-radius:6px;padding:3px 7px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.72rem}.badge{letter-spacing:.01em;border:0;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.68rem;font-weight:600;display:inline-flex}.badge.active{color:#0e9f6e;background:#e7f7ef}.badge.admin{background:var(--primary-soft);color:var(--primary)}.badge.inactive{color:#667085;background:#f2f4f7}.badge.pending{color:#b54708;background:#fffaeb}.badge.refunded{color:#475467;background:#eef2f6}.badge.unpaid{color:#475467;background:#f2f4f7}.badge.partial{color:#b54708;background:#fffaeb}.badge.overdue{color:#b42318;background:#fef3f2}.status-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px}.pagination{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.pagination p{color:var(--muted);margin:0;font-size:.73rem}.pagination>div{gap:8px;display:flex}.pagination .button{border-radius:8px;padding:8px 14px;font-size:.73rem}.list-state{text-align:center;border-top:1px solid var(--border);color:var(--muted);padding:70px 24px;font-size:.85rem}.list-state h2{color:var(--ink);margin-bottom:8px;font-size:1.15rem}.list-state p{max-width:420px;margin:0 auto}.list-state .button{margin-top:16px}.empty-mark{width:54px;height:54px;color:var(--primary);background:var(--primary-soft);border:1px solid #e0e7ff;border-radius:50%;place-items:center;margin-bottom:20px;font-size:1.1rem;display:inline-grid}.state-panel,.profile-panel{padding:38px}.school-form-panel{padding:30px 32px}.state-panel h1{margin-bottom:10px}.state-panel .button{margin-top:20px}.centered-state{text-align:center;background:radial-gradient(700px 300px at 50% 0,#c19a4b12,#0000 70%),#f4f6fa;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:30px;display:flex}.centered-state p{color:var(--muted);margin:0}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:50;border:1px solid var(--primary);box-shadow:var(--shadow-md);background:#fff;border-radius:10px;padding:12px 16px;transition:top .18s;position:fixed;top:-70px;left:20px}.skip-link:focus{top:15px}.list-toolbar .toolbar-end{flex-shrink:0;align-items:center;gap:14px;display:flex}.toolbar-end .button{font-size:.78rem}.actions-head{text-align:right}.actions-cell{white-space:nowrap;width:1%}.row-actions{justify-content:flex-end;gap:8px;display:flex}.icon-action{background:var(--primary-soft);width:34px;height:34px;color:var(--primary);border:0;border-radius:50%;place-items:center;transition:background .16s,color .16s,transform .16s;display:inline-grid}.icon-action svg{width:15px;height:15px}.icon-action:hover:not(:disabled){background:#e0e7ff;transform:translateY(-1px)}.icon-action.danger{color:#d92d20;background:#fee4e2}.icon-action.danger:hover:not(:disabled){background:#fecdc9}.icon-action.view{color:#475467;background:#f2f4f7}.icon-action.view:hover:not(:disabled){color:var(--ink);background:#e4e7ec}.icon-action:disabled{opacity:.45}.resource-detail{flex-direction:column;gap:22px;display:flex}.detail-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:18px;display:flex}.detail-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-size:.68rem;font-weight:700}.detail-head h3{letter-spacing:-.02em;color:var(--ink);margin:0;font-size:1.3rem}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 22px;display:grid}.detail-item{flex-direction:column;gap:4px;min-width:0;display:flex}.detail-item.full{grid-column:1/-1}.detail-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.68rem;font-weight:600}.detail-value{color:var(--ink);overflow-wrap:anywhere;font-size:.86rem}.detail-value strong{font-weight:600}.detail-value small{color:var(--muted);margin-top:2px;font-size:.74rem;display:block}.detail-section{border-top:1px solid var(--border);padding-top:18px}.detail-section h4{color:var(--ink);margin:0 0 12px;font-size:.95rem}.detail-empty{color:var(--muted);margin:0;font-size:.8rem}.detail-table-wrap{border:1px solid var(--border);border-radius:10px;overflow-x:auto}.detail-table{min-width:0;font-size:.78rem}.detail-table th,.detail-table td{padding:10px 12px}.detail-table th:first-child,.detail-table td:first-child{min-width:0}.detail-table tbody tr:last-child td{border-bottom:0}.button.compact{border-radius:8px;padding:7px 12px;font-size:.7rem}.button.danger{color:#fff;box-shadow:var(--shadow-xs), inset 0 1px 0 #ffffff1f;background:linear-gradient(#e34a3f 0%,#d92d20 100%)}.button.danger:hover:not(:disabled){background:linear-gradient(#f05449 0%,#b42318 100%);transform:translateY(-1px);box-shadow:0 8px 20px -8px #d92d208c}.button.danger-subtle{color:var(--danger);background:#fff;border-color:#fecdca}.button.danger-subtle:hover:not(:disabled){background:#fef3f2;border-color:#fda29b}.modal{background:0 0;border:0;width:100%;max-width:100vw;height:100%;max-height:100vh;margin:0;padding:0}.modal[open]{justify-content:center;align-items:center;display:flex}.modal::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0f172a8c}.modal-card{border:1px solid var(--border);width:min(640px,100vw - 32px);max-height:calc(100vh - 40px);box-shadow:var(--shadow-lg);background:#fff;border-radius:16px;padding:30px;animation:.22s cubic-bezier(.22,.9,.3,1) modal-in;overflow:auto}.modal-card.modal-role{width:50vw}@keyframes modal-in{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-head{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.modal-head h2{font-size:1.45rem}.icon-button{color:#667085;background:#f2f4f7;border:0;border-radius:50%;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:1.2rem;line-height:1;transition:background .15s,color .15s;display:grid}.icon-button:hover:not(:disabled){color:var(--ink);background:#e4e7ec}.form-grid{grid-template-columns:1fr 1fr;gap:18px 20px;display:grid}.form-field{color:#34445c;flex-direction:column;gap:8px;min-width:0;font-size:.79rem;font-weight:600;display:flex}.form-field.full{grid-column:1/-1}.form-field input:not([type=checkbox]),.form-field select,.form-field textarea{background:#fbfcfe;width:100%;padding:11px 12px;font-size:.82rem;font-weight:400}.form-field textarea{resize:vertical}.form-field select:disabled{color:#8894a5;background:#f1f3f7}.form-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;margin-top:28px;padding-top:20px;display:flex}.form-alert{margin:20px 0 0}.field-note{color:#7a889c;margin:0;font-size:.7rem;font-weight:400;line-height:1.5}.field-note.error-text,.error-text{color:var(--danger)}.note-card{color:#2b45c8;background:#eef4ff;border:1px solid #d1ddff;border-radius:12px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.note-card.full{grid-column:1/-1}.note-card p{margin:0;font-size:.78rem;font-weight:500;line-height:1.55}.note-card-mark{color:#fff;background:#2b45c8;border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;font-family:Georgia,serif;font-size:.82rem;font-weight:700;display:grid}.text-button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.checkbox-field{flex-direction:row;align-items:flex-start;gap:10px;padding:4px 0}.checkbox-field input{width:16px;height:16px;accent-color:var(--primary);margin-top:2px}.checkbox-field span{flex-direction:column;gap:3px;font-weight:600;display:flex}.checkbox-field small{color:#7a889c;font-size:.7rem;font-weight:400}.delete-copy{color:#50627a;font-size:.9rem}.delete-copy strong{color:var(--ink)}.delete-copy .alert{margin-top:18px}.invoice-summary{background:var(--primary-soft);border:1px solid #e0e7ff;border-radius:10px;gap:6px;margin-top:2px;padding:12px 14px;font-weight:400;display:grid}.invoice-summary-row{color:#475467;justify-content:space-between;align-items:baseline;gap:12px;font-size:.75rem;display:flex}.invoice-summary-row strong{color:var(--ink);font-size:.8rem;font-weight:600}.invoice-summary-status{text-transform:capitalize}.matrix-title{color:#34445c;font-size:.79rem;font-weight:600}.permission-all{color:#34445c;align-items:center;gap:8px;margin:8px 0;font-size:.72rem;font-weight:600;display:flex}.permission-all input{width:16px;height:16px;accent-color:var(--primary)}.permission-matrix{border:1px solid var(--border);border-radius:12px;overflow:auto}.permission-matrix table{border-collapse:collapse;background:#fff;width:100%;min-width:0;font-weight:400}.permission-matrix th,.permission-matrix td{text-align:center;border-bottom:1px solid var(--border);padding:9px 12px;font-size:.75rem}.permission-matrix thead th{color:#5f7088;text-transform:uppercase;letter-spacing:.06em;background:#f6f8fc;font-size:.65rem;font-weight:700}.permission-matrix tbody th{text-align:left;color:#34445c;font-weight:600}.permission-matrix tr:last-child th,.permission-matrix tr:last-child td{border-bottom:0}.permission-matrix tbody tr:hover th,.permission-matrix tbody tr:hover td{background:#fafbfe}.permission-matrix input{width:16px;height:16px;accent-color:var(--primary)}.cell-badge{margin-left:8px}.combobox{position:relative}.suggestion-list{z-index:20;border:1px solid var(--border);background:#fff;border-radius:12px;max-height:240px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto;box-shadow:0 24px 56px -16px #0f1c304d}.suggestion-list li{cursor:pointer;border-radius:8px;flex-direction:column;gap:3px;padding:9px 10px;font-weight:400;transition:background .12s;display:flex}.suggestion-list li[role=option]:hover,.suggestion-list li.active{background:#eef2f9}.suggestion-list li strong{color:var(--ink);font-size:.8rem}.suggestion-list li small{color:#7a889c;font-size:.7rem}.suggestion-list .suggestion-note{cursor:default;color:#7a889c;font-size:.74rem}.student-selection{border:1px solid var(--border);background:var(--surface-muted);border-radius:10px;justify-content:space-between;align-items:center;gap:14px;padding:11px 14px;font-weight:400;display:flex}.student-selection div{flex-direction:column;gap:3px;min-width:0;display:flex}.student-selection strong{color:var(--ink);font-size:.82rem}.student-selection small{color:#7a889c;font-size:.7rem}.parent-account-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);flex-direction:column;gap:6px;padding:22px;display:flex}.parent-account-panel h3{color:var(--ink);font-size:1.2rem}.parent-account-panel p{margin:0;font-size:.84rem}.credential-row{border:1px solid var(--border);background:#fff;border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;padding:10px 12px;display:flex}.credential-row span{text-transform:uppercase;letter-spacing:.09em;color:#7a889c;min-width:130px;font-size:.68rem}.credential-row strong,.credential-row code{color:var(--ink);word-break:break-all;font-size:.85rem;font-weight:600}.credential-row code{background:#eef2f8;border-radius:6px;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,monospace}.credential-row .button{margin-left:auto}.child-chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.child-chips li{border:1px solid var(--border);background:var(--surface-muted);border-radius:999px;align-items:center;gap:10px;padding:8px 10px 8px 13px;display:flex}.child-chips li span{flex-direction:column;gap:2px;display:flex}.child-chips li strong{color:var(--ink);font-size:.78rem}.child-chips li small{color:#7a889c;font-size:.68rem}.child-chips .icon-button{width:24px;height:24px;font-size:1rem}@media (width>=1500px){.main-content{padding:52px 64px 64px}}@media (width<=1150px){.directory-grid{grid-template-columns:repeat(2,1fr)}.sidebar{width:232px}.workspace-body{width:calc(100% - 232px);margin-left:232px}.topbar{padding:0 28px}.main-content{padding:32px 28px 44px}.workspace-label{display:none}.topbar{justify-content:flex-end}}@media (width<=760px){.workspace{display:block}.sidebar{width:100%;padding:18px 20px 14px;position:static}.sidebar .brand{padding:0}.brand small,.nav-heading,.sidebar-bottom{display:none}.sidebar-school{margin:16px 0 0;padding:11px 13px}.sidebar nav{margin-top:14px;display:block}.sidebar nav>.nav-group{flex-wrap:wrap;gap:5px;display:flex}.sidebar nav>.nav-group+.nav-group{margin-top:8px}.sidebar nav a{padding:9px 11px;font-size:.73rem}.nav-mark{display:none}.workspace-body{width:100%;margin-left:0}.topbar{height:68px;padding:0 20px}.main-content{padding:28px 20px 40px}.welcome-banner{border-radius:var(--radius);padding:28px}.welcome-banner h2{font-size:1.8rem}.banner-monogram{opacity:.7;width:150px;height:150px;margin-right:-80px;font-size:5rem}.directory-grid{gap:12px}.directory-card{padding:20px}.list-toolbar{flex-wrap:wrap;padding:16px}.list-toolbar .toolbar-end{justify-content:space-between;width:100%}.search-form{flex-wrap:wrap;flex-basis:100%}.search-form input{flex-basis:100%}.search-form .button{padding-inline:14px}.filter-group{width:100%}.filter-field{flex:100%}.filter-field select{flex:1;width:auto;max-width:none}.form-grid{grid-template-columns:1fr}.school-form-panel{padding:20px 18px}.modal-card{border-radius:16px;max-height:calc(100vh - 24px);padding:22px}.modal-card.modal-role{width:calc(100vw - 32px)}.form-actions{flex-direction:column-reverse}.form-actions .button{width:100%}th,td{padding-inline:18px}.pagination{flex-wrap:wrap;padding:16px}.workspace-footer{padding:20px}.login-layout{grid-template-columns:1fr}.login-story{padding:28px}.login-story>div:not(.brand),.story-footer{display:none}.login-panel{min-height:calc(100vh - 96px);padding:45px 28px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.notice{color:#2b45c8;background:#eef4ff;border:1px solid #d1ddff;border-radius:10px;margin:14px 0 0;padding:12px 15px;font-size:.82rem}.stat-grid{grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);flex-direction:column;gap:4px;padding:22px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.stat-card:hover{border-color:#3758f966;transform:translateY(-3px);box-shadow:0 18px 40px -26px #10182873}.stat-card .card-mark{margin-bottom:16px}.stat-label{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:.72rem;font-weight:700}.stat-value{letter-spacing:-.04em;color:var(--ink);font-family:Manrope,system-ui,sans-serif;font-size:2rem;font-weight:800;line-height:1.15}.stat-card .card-link{margin-top:14px}.stat-card:hover .card-link{color:var(--primary)}.dashboard-columns{grid-template-columns:1fr 1fr;gap:18px;display:grid}.dashboard-panel{padding:0;overflow:hidden}.dashboard-panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;display:flex}.dashboard-panel-head h2{font-size:1.05rem}.dashboard-panel .detail-empty{padding:30px 24px}.mini-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:0;font-size:.78rem}.mini-table th{text-align:left;text-transform:uppercase;letter-spacing:.1em;color:#7a889c;background:var(--surface-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 14px;font-size:.64rem;font-weight:700}.mini-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:14px}.mini-table th:first-child{width:50%}.mini-table th:nth-child(2),.mini-table th:nth-child(3){width:25%}.mini-table td:last-child{white-space:nowrap}.mini-table tbody tr:last-child td{border-bottom:0}.mini-table td strong{color:var(--ink);font-weight:600}.mini-table .badge{white-space:nowrap}.profile-grid{grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;display:grid}.profile-identity{align-items:center;gap:16px;margin-bottom:22px;display:flex}.profile-identity h2{font-size:1.35rem}.profile-identity p{margin:4px 0 0;font-size:.82rem}.profile-avatar{width:58px;height:58px;font-size:1.2rem}.profile-meta{gap:14px;margin:0;display:grid}.profile-meta>div{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:18px;padding-top:14px;display:flex}.profile-meta dt{text-transform:uppercase;letter-spacing:.09em;color:#7a889c;font-size:.72rem;font-weight:700}.profile-meta dd{text-align:right;color:var(--ink);margin:0;font-size:.82rem}.profile-panel .resource-form{margin-top:18px}.profile-panel .field-note{margin:14px 0 0}.permission-panel{margin-bottom:0}.permission-panel>.muted{margin:6px 0 18px;font-size:.82rem}.permission-table{border-collapse:collapse;width:100%;font-size:.8rem}.permission-table th,.permission-table td{border-bottom:1px solid var(--border);text-align:center;padding:11px 14px}.permission-table thead th{text-transform:uppercase;letter-spacing:.1em;color:#7a889c;background:var(--surface-muted);font-size:.64rem}.permission-table thead th:first-child{text-align:left}.permission-table th[scope=row]{text-align:left;color:var(--ink);font-weight:600}.permission-table tbody tr:last-child th,.permission-table tbody tr:last-child td{border-bottom:0}.permission-yes{color:#0e9f6e;font-weight:800}.permission-no{color:#98a2b3}.form-grid>.full{grid-column:1/-1}@media (width<=1150px){.stat-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.dashboard-columns,.profile-grid{grid-template-columns:1fr}}@media (width<=760px){.stat-grid{gap:12px}.stat-card{padding:18px}.stat-value{font-size:1.6rem}.mini-table th{padding:10px 16px}.mini-table td{padding:12px 16px}.dashboard-panel-head{padding:16px}.permission-table th,.permission-table td{padding:9px 6px}}.kpi-section{flex-direction:column;gap:18px;margin-bottom:28px;display:flex}.kpi-head{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-xs);justify-content:space-between;align-items:flex-end;gap:20px;padding:22px 24px;display:flex}.kpi-head .eyebrow{margin-bottom:6px}.kpi-head h2{font-size:1.3rem}.kpi-head .muted{margin:6px 0 0;font-size:.8rem}.kpi-head-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.kpi-updated{color:var(--muted);white-space:nowrap;font-size:.72rem}.kpi-loading{text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:46px 24px;font-size:.85rem}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);flex-direction:column;gap:4px;padding:18px 20px;display:flex}.kpi-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.65rem;font-weight:700}.kpi-value{letter-spacing:-.03em;color:var(--ink);font-family:Manrope,system-ui,sans-serif;font-size:1.5rem;font-weight:800;line-height:1.2}.kpi-meta{color:#98a2b3;font-size:.7rem}.kpi-card.tone-good .kpi-value{color:var(--green)}.kpi-card.tone-warn .kpi-value{color:var(--gold-deep)}.kpi-card.tone-bad .kpi-value{color:var(--danger)}.kpi-panels{grid-template-columns:1fr 1fr;gap:18px;display:grid}.kpi-panel{padding:0;overflow:hidden}.kpi-count{color:var(--muted);white-space:nowrap;font-size:.7rem;font-weight:600}.rate-legend{gap:10px;font-size:.66rem;font-weight:600;display:flex}.rate-legend span{color:var(--muted);align-items:center;gap:5px;display:inline-flex}.rate-legend span:before{content:"";border-radius:50%;width:8px;height:8px}.rate-legend .good:before{background:var(--green)}.rate-legend .warn:before{background:var(--gold)}.rate-legend .bad:before{background:var(--danger)}.region-rank{flex-direction:column;gap:2px;margin:0;padding:8px 20px 20px;list-style:none;display:flex}.region-rank li{border-radius:10px;gap:12px;padding:10px 8px;display:flex}.region-rank li.is-current{background:var(--primary-soft)}.rank-index{width:22px;color:var(--faint);text-align:right;flex-shrink:0;padding-top:2px;font-size:.72rem;font-weight:700}.rank-body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.rank-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.rank-head strong{color:var(--ink);align-items:center;gap:8px;font-size:.82rem;font-weight:600;display:inline-flex}.rank-you{letter-spacing:.06em;text-transform:uppercase;color:var(--primary);background:#fff;border:1px solid #d1ddff;border-radius:999px;padding:2px 7px;font-size:.6rem;font-weight:700}.rank-track{background:#f1f3f7;border-radius:999px;height:6px;overflow:hidden}.rank-track span{border-radius:999px;height:100%;display:block}.rank-track .good{background:var(--green)}.rank-track .warn{background:var(--gold)}.rank-track .bad{background:var(--danger)}.rank-body small{color:var(--muted);font-size:.68rem}.rate-pill{white-space:nowrap;border-radius:999px;align-items:center;padding:3px 9px;font-size:.68rem;font-weight:700;display:inline-flex}.rate-pill.good{color:#0e9f6e;background:#e7f7ef}.rate-pill.warn{background:var(--gold-soft);color:var(--gold-deep)}.rate-pill.bad{color:#b42318;background:#fef3f2}.trend-chart{padding:16px 16px 8px}.kpi-table{min-width:0;font-size:.78rem}.kpi-table th{background:var(--surface-muted);text-transform:uppercase;letter-spacing:.08em;color:#7a889c;padding:11px 16px;font-size:.64rem}.kpi-table td{padding:12px 16px}.kpi-table th:first-child,.kpi-table td:first-child{min-width:0}.kpi-table th:not(:first-child),.kpi-table td:not(:first-child){text-align:right}.kpi-table tbody tr:last-child td{border-bottom:0}@media (width<=1150px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.kpi-panels{grid-template-columns:1fr}}@media (width<=760px){.kpi-head{flex-direction:column;align-items:flex-start;padding:18px}.kpi-head-actions{justify-content:space-between;width:100%}.kpi-grid{gap:10px}.kpi-card{padding:14px 16px}.kpi-value{font-size:1.2rem}.region-rank{padding-inline:12px}}.directory-tabs{border:1px solid var(--border);background:var(--surface-muted);border-radius:999px;gap:4px;margin-bottom:18px;padding:4px;display:inline-flex}.directory-tab{font:inherit;color:#5b6b81;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:8px 18px;font-size:.78rem;font-weight:600;transition:background .15s,color .15s}.directory-tab:hover{color:var(--ink)}.directory-tab.active{color:var(--ink);background:#fff;box-shadow:0 1px 3px #0f23411f}.directory-tab:focus-visible{outline:2px solid var(--accent,#2563eb);outline-offset:2px}
