:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#10233f;background:#f4f7fb}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#0f2d4f,#1f5f8b)}.login-card{width:min(430px,100%);background:#fff;border-radius:22px;padding:34px;box-shadow:0 24px 70px #0018}.brand{display:flex;gap:12px;align-items:center}.brand-badge{width:46px;height:46px;border-radius:14px;background:#f5b700;display:grid;place-items:center;font-weight:900}.field{display:grid;gap:7px;margin:15px 0}.field input,.field select,.field textarea{border:1px solid #d9e1ea;border-radius:12px;padding:12px 14px;background:#fff}.primary{border:0;border-radius:12px;background:#123c69;color:#fff;padding:12px 16px;font-weight:700;cursor:pointer}.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:#0d2947;color:#fff;padding:22px 16px;position:sticky;top:0;height:100vh}.nav{display:grid;gap:6px;margin-top:25px}.nav a{color:#dce8f4;text-decoration:none;padding:11px 12px;border-radius:10px}.nav a.active,.nav a:hover{background:#ffffff17;color:#fff}.main{padding:26px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.card{background:#fff;border:1px solid #e5ebf1;border-radius:16px;padding:18px;box-shadow:0 3px 15px #10233f0d}.stat{font-size:30px;font-weight:800;margin-top:7px}.muted{color:#6b7c8f}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.toolbar input,.toolbar select{padding:10px 12px;border:1px solid #d9e1ea;border-radius:10px;background:#fff}.table-wrap{overflow:auto;background:#fff;border-radius:16px;border:1px solid #e5ebf1}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid #edf1f5;white-space:nowrap}th{font-size:12px;text-transform:uppercase;color:#6b7c8f}.badge{padding:5px 9px;border-radius:999px;background:#eaf1f8;font-size:12px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-card{max-width:850px}.error{color:#b42318;background:#ffebe9;padding:10px;border-radius:10px}@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto}.grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}}@media(max-width:560px){.grid{grid-template-columns:1fr}.main{padding:16px}}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}.page-heading h1{margin:4px 0 6px;font-size:30px}.page-heading p{margin:0;max-width:760px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;color:#2870a8}.compact{margin:0}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px}.secondary{border:1px solid #d7e0e9;border-radius:12px;background:#fff;color:#173554;padding:11px 15px;font-weight:700;cursor:pointer}.secondary:hover{background:#f6f9fc}.academic-stats{margin-bottom:18px}.stat-small{font-size:22px}.academic-tabs{display:flex;gap:7px;overflow:auto;padding:4px 2px 14px}.academic-tabs button{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;border:1px solid #dbe4ec;background:#fff;color:#42566d;padding:9px 12px;border-radius:10px;font-weight:700;cursor:pointer}.academic-tabs button.active{background:#123c69;border-color:#123c69;color:#fff}.academic-panel{padding:0;overflow:hidden}.section-title{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #edf1f5}.section-title h2{font-size:19px;margin:0 0 3px}.borderless{border:0;border-radius:0}.row-actions{display:flex;align-items:center;gap:8px}.link-btn,.icon-danger,.icon-btn{border:0;background:transparent;cursor:pointer}.link-btn{font-weight:800;color:#125d93;padding:6px}.icon-danger{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;color:#b42318}.icon-danger:hover{background:#fff0ee}.badge.success{background:#e8f7ef;color:#167343}.badge.warning{background:#fff5d6;color:#8d6400}.badge.neutral{background:#eef2f6;color:#536477}.empty-state{min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#718096}.modal-backdrop{position:fixed;inset:0;background:#07152299;display:grid;place-items:center;padding:20px;z-index:100}.modal-card{width:min(720px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;box-shadow:0 28px 90px #0005;padding:22px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.modal-head h2{margin:4px 0 0}.icon-btn{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:#5b6d80}.icon-btn:hover{background:#eef3f7}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-grid .full{grid-column:1/-1}.field span,.check-field span{font-weight:700;color:#33485e;font-size:13px}.field small{font-weight:500;color:#8391a1}.check-field{display:flex;align-items:center;gap:9px;margin:16px 0}.check-field input{width:17px;height:17px}.check-stack{display:flex;flex-direction:column;justify-content:center}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid #edf1f5}@media(max-width:700px){.page-heading{flex-direction:column}.form-grid{grid-template-columns:1fr}.academic-stats{grid-template-columns:1fr 1fr}}.brand-sub{font-size:12px;opacity:.68;margin-top:2px}.grouped-nav{display:block;overflow:auto;height:calc(100vh - 145px);padding-right:3px}.nav-group{margin:0 0 18px}.nav-group-label{font-size:10px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:#7890a8;margin:0 10px 6px}.nav a{display:flex;align-items:center;gap:10px;font-size:13px}.nav a svg{flex:none}.sidebar-footer{position:absolute;bottom:14px;left:14px;right:14px;border-top:1px solid #ffffff18;padding-top:12px}.mini-profile{display:flex;align-items:center;gap:9px;min-width:0}.mini-profile>div:last-child{min-width:0}.mini-profile b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-profile span{display:block;font-size:9px;opacity:.62;margin-top:2px}.small-avatar{width:30px!important;height:30px!important;font-size:11px!important}.topbar{background:#fff;border:1px solid #e6edf3;border-radius:16px;padding:12px 14px;position:sticky;top:12px;z-index:20;box-shadow:0 8px 25px #10233f0a}.top-title,.top-actions{display:flex;align-items:center;gap:10px}.top-actions{gap:8px}.mobile-menu{display:none}.icon-link{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;border:1px solid #dbe4ec;color:#183a5a;background:#fff}.compact-button{padding:9px 12px}.page-shell{max-width:1500px;margin:0 auto}.page-actions{display:flex;gap:10px;flex-wrap:wrap}.small{font-size:12px}.stat-card{min-height:122px}.stat-top{display:flex;justify-content:space-between;align-items:center}.stat-icon{width:36px;height:36px;border-radius:11px;background:#eef5fb;color:#123c69;display:grid;place-items:center}.stat-detail{font-size:12px;color:#718196;margin-top:5px}.section-card{padding:0;overflow:hidden}.section-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:18px 20px;border-bottom:1px solid #edf1f5}.section-card-head h2{font-size:18px;margin:0}.section-card-head p{font-size:12px;margin:4px 0 0}.section-card>.toolbar{padding:0 18px}.search-box{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #d9e1ea;border-radius:10px;padding:0 11px;min-width:280px}.search-box input{border:0;outline:0;padding:10px 0;width:100%;background:transparent}.person-cell{display:flex;align-items:center;gap:10px}.avatar{width:38px;height:38px;border-radius:12px;background:#e8f0f7;color:#153d62;display:grid;place-items:center;font-weight:900;font-size:12px}.avatar.large{width:62px;height:62px;border-radius:18px;font-size:18px}.badge.info{background:#e8f2fb;color:#176395}.badge.danger{background:#ffebe9;color:#a83127}.progress{height:9px;background:#edf2f6;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,#123c69,#3786b8);border-radius:inherit}.panel-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-top:1px solid #edf1f5}.panel-footer .muted{display:flex;align-items:center;gap:6px}.mark-input{width:82px;padding:8px 9px;border:1px solid #cfdbe5;border-radius:9px;text-align:center}.setting-list{padding:8px 20px}.setting-list>div{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid #edf1f5}.setting-list>div:last-child{border-bottom:0}.setting-list span{color:#6b7c8f;text-align:right}.finance-progress{padding:28px 22px}.big-percent{font-size:38px;font-weight:900;margin-bottom:12px}.split-row{display:flex;justify-content:space-between;gap:15px;color:#6b7c8f;font-size:12px;margin-top:10px}.portal-actions{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:18px}.portal-actions>div{background:#fff;border:1px solid #e5ebf1;border-radius:15px;padding:18px;display:flex;flex-direction:column;gap:8px;min-height:122px}.portal-actions svg{color:#125d93}.portal-actions b{font-size:14px}.portal-actions span{font-size:11px;color:#738397}.subject-progress{padding:18px 20px}.subject-progress>div:not(.progress),.metric-row>div{display:flex;justify-content:space-between;align-items:center;margin:10px 0 7px}.subject-progress>.progress{margin-bottom:18px}.timeline{padding:10px 20px}.timeline>div{display:grid;grid-template-columns:15px 1fr auto;gap:10px;align-items:start;padding:12px 0;border-bottom:1px solid #edf1f5}.timeline p{margin:4px 0 0;color:#758497;font-size:11px}.timeline-dot{width:9px;height:9px;border-radius:50%;background:#f5b700;margin-top:5px}.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:18px 20px}.resource-card{border:1px solid #e4ebf1;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:8px}.resource-card svg{color:#155d8d}.resource-card span{font-size:11px;color:#718196}.builder-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,.8fr);gap:18px}.builder-side{align-self:start}.question-card{display:grid;grid-template-columns:22px 34px 1fr auto;gap:11px;align-items:start;margin:14px 18px;padding:16px;border:1px solid #e1e9ef;border-radius:14px}.question-card>svg{color:#a2afbb;margin-top:5px}.q-index{width:30px;height:30px;border-radius:9px;background:#edf4f9;display:grid;place-items:center;font-weight:900}.q-body b{display:block;margin-top:4px}.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.option-grid span{padding:9px 10px;border-radius:9px;background:#f7f9fb;font-size:12px}.option-grid .correct{background:#e9f7ef;color:#167343;font-weight:700}.add-dashed{display:flex;align-items:center;justify-content:center;gap:7px;margin:14px 18px 20px;width:calc(100% - 36px);padding:13px;border:1px dashed #b8c6d2;border-radius:11px;background:#fbfcfd;color:#416079;font-weight:800}.full-button{width:calc(100% - 40px);margin:4px 20px 20px}.roles-layout{display:grid;grid-template-columns:310px 1fr;gap:18px}.role-list{display:grid;padding:8px}.role-list button{border:0;background:transparent;text-align:left;padding:12px;border-radius:10px;display:flex;justify-content:space-between;gap:10px;color:#243e58}.role-list button.active{background:#eaf2f8;color:#123c69}.role-list small{color:#8090a1}.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;padding:16px 20px}.permission-item{display:flex;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid #edf1f5;font-size:13px}.permission-item input{width:17px;height:17px}.settings-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.upload-box{margin:20px;border:1px dashed #b9c8d5;background:#f8fafc;border-radius:14px;padding:26px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.upload-box span{font-size:11px;color:#7c8998}.color-row{display:flex;gap:20px;padding:0 20px 20px}.color-row label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700}.color-row input{width:38px;height:30px;border:0;background:transparent}.profile-hero{display:flex;align-items:center;gap:13px;padding:20px}.profile-hero p{margin:4px 0;color:#748294}.security-note{display:flex;gap:8px;align-items:flex-start;margin:18px 0 0;padding:12px;border-radius:10px;background:#f1f6fa;color:#4b6277;font-size:12px}.donut-fake{height:200px;display:grid;place-items:center}.donut-fake>div{width:150px;height:150px;border-radius:50%;border:28px solid #dbe8f1;border-top-color:#123c69;border-right-color:#f5b700;display:flex;flex-direction:column;align-items:center;justify-content:center}.donut-fake b{font-size:25px}.donut-fake span{font-size:11px;color:#748294}.legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 20px 18px}.legend span{padding:9px 10px;border-radius:9px;background:#f7f9fb;font-size:12px}.boot-loader{min-height:100vh;display:grid;place-items:center;font-weight:800;color:#123c69}.error{font-size:13px}@media(max-width:1180px){.portal-actions{grid-template-columns:repeat(3,1fr)}.builder-layout,.settings-grid{grid-template-columns:1fr}.roles-layout{grid-template-columns:260px 1fr}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.sidebar-footer{display:none}.grouped-nav{height:auto}.topbar{top:6px}.portal-actions{grid-template-columns:repeat(2,1fr)}.roles-layout{grid-template-columns:1fr}.resource-grid{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr}}@media(max-width:620px){.page-heading h1{font-size:25px}.page-actions{width:100%}.page-actions button{flex:1}.search-box{min-width:100%;width:100%}.portal-actions,.resource-grid,.permission-grid,.option-grid{grid-template-columns:1fr}.split-row{flex-direction:column}.question-card{grid-template-columns:26px 1fr}.question-card>svg{display:none}.q-body{grid-column:2}.question-card>.badge{grid-column:2}.top-title>div>b{font-size:12px}.top-title .small{display:none}.compact-button{font-size:0}.compact-button svg{margin:0}.main{padding:12px}.grid{grid-template-columns:1fr}.page-shell{padding-bottom:30px}}.stack,.access-groups{display:grid;gap:18px}.access-group{border-top:1px solid var(--border,#e5e7eb);padding-top:14px}.access-group:first-child{border-top:0;padding-top:0}.access-group h4{text-transform:capitalize;margin:0 0 10px}.permission-item span{display:grid;gap:2px}.permission-item small{color:var(--muted,#64748b);font-size:11px;font-weight:400}.alert{padding:11px 14px;border-radius:10px;background:#f1f5f9;margin-bottom:14px}.alert.error{background:#fef2f2;color:#991b1b}.permission-denied{max-width:620px;margin:60px auto;padding:34px;border:1px solid #e5e7eb;border-radius:18px;background:#fff;text-align:center}.danger.ghost{background:transparent;color:#b91c1c;border:1px solid #fecaca}:root{--navy:#0d2947;--primary:#123c69;--accent:#f5b700;--border:#dfe7ee;--focus:#2f80c4}body{min-width:320px;line-height:1.5}.main{min-width:0}.sidebar-close,.sidebar-scrim{display:none}.mobile-menu{width:40px;height:40px;border:1px solid var(--border);border-radius:11px;background:#fff;color:#173554;place-items:center;cursor:pointer}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #2f80c455;outline-offset:2px}.primary:hover{background:#0c3158}.primary:disabled{opacity:.55;cursor:not-allowed}.field input:focus,.field select:focus,.field textarea:focus,.toolbar input:focus,.toolbar select:focus{border-color:var(--focus);box-shadow:0 0 0 3px #2f80c416;outline:0}.billing-stats{margin-bottom:18px}.notice{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;padding:13px 16px;border:1px solid;border-radius:12px;font-size:13px;font-weight:650}.notice.success{background:#ecf9f1;border-color:#b7e4c8;color:#146c3b}.notice.error{background:#fff1f0;border-color:#f6c6c2;color:#9f2d25}.notice button{border:0;background:transparent;color:inherit;font-size:22px;line-height:1;cursor:pointer}.payment-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;padding:8px 20px 20px}.payment-form .span-2{grid-column:1/-1}.payment-form textarea{resize:vertical}.form-submit{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:16px;border-top:1px solid #edf1f5}.payment-search{min-width:260px}.table-state{text-align:center!important;color:#718196;padding:40px 20px!important}.section-card+.section-card{margin-top:18px}@media(max-width:900px){.app{display:block}.sidebar{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);height:100dvh;z-index:50;transform:translate(-105%);transition:transform .22s ease;box-shadow:18px 0 50px #07152235}.menu-open .sidebar{transform:translate(0)}.sidebar-scrim{position:fixed;inset:0;border:0;background:#07152299;z-index:45;cursor:pointer}.menu-open .sidebar-scrim{display:block}.sidebar-close{display:grid;position:absolute;right:12px;top:18px;width:38px;height:38px;place-items:center;border:0;border-radius:10px;background:#ffffff12;color:#fff;cursor:pointer}.mobile-menu{display:grid}.grouped-nav{height:calc(100dvh - 105px);padding-bottom:20px}.main{padding:16px}.topbar{top:8px}}@media(max-width:700px){.payment-form{grid-template-columns:1fr;padding:8px 16px 18px}.payment-form .span-2{grid-column:auto}.form-submit{align-items:stretch;flex-direction:column}.form-submit button{width:100%}.section-card-head{flex-direction:column}.payment-search{width:100%;min-width:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.filter-toolbar{padding:16px 18px!important;margin:0!important;border-bottom:1px solid #edf1f5}.filter-toolbar input{min-width:220px;flex:1}.discount-form{padding:16px 20px 22px}.discount-form .academic-tabs{padding-top:0}.discount-form .form-grid{padding:0}.current-period{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:10px 0;padding:13px 15px;border:1px solid #cfe0ec;border-radius:12px;background:#f2f7fb;color:#173554}.current-period span{font-size:12px;color:#64778b}.current-period b{font-size:13px}:root{--surface:#fff;--canvas:#f4f7fa;--ink:#14283d;--muted:#687b8e;--line:#e2e9ef;--brand:#123c69;--brand-dark:#092946;--brand-soft:#eaf2f8;--gold:#f5b700;--shadow-sm:0 1px 2px #10233f08,0 5px 18px #10233f09;--shadow-md:0 18px 48px #10233f18;--radius:16px;color:var(--ink);background:var(--canvas);font-size:15px}html{scroll-behavior:smooth}body{background:var(--canvas);color:var(--ink);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}h1,h2,h3,p{overflow-wrap:anywhere}button,a,input,select,textarea{transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}button:active,.primary:active,.secondary:active{transform:translateY(1px)}.main{padding:24px 28px 44px;background:radial-gradient(circle at 95% 0,#e8f1f7 0,transparent 24rem),var(--canvas)}.page-shell{width:100%;max-width:1440px}.sidebar{width:272px;padding:22px 16px;background:linear-gradient(180deg,#0c2b4a,#081f35);box-shadow:inset -1px 0 #ffffff10}.app{grid-template-columns:272px minmax(0,1fr)}.brand{padding:0 8px}.brand-badge{box-shadow:0 7px 18px #0002;color:#11273a}.grouped-nav{margin-top:28px;scrollbar-width:thin;scrollbar-color:#ffffff20 transparent}.nav-group-label{color:#8098ae;margin-bottom:7px}.nav a{position:relative;min-height:42px;padding:10px 12px;border-radius:11px;color:#c9d8e6;font-weight:600}.nav a:hover{background:#ffffff0e}.nav a.active{background:linear-gradient(90deg,#ffffff20,#ffffff0d);box-shadow:inset 3px 0 var(--gold);color:#fff}.nav a.active svg{color:var(--gold)}.topbar{min-height:64px;margin-bottom:28px;padding:11px 14px 11px 16px;border-color:#dfe7ed;border-radius:15px;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.top-title>div>b{font-size:14px}.top-title .small{margin-top:2px}.page-heading{margin-bottom:22px}.page-heading h1{font-size:clamp(1.7rem,2.5vw,2.2rem);line-height:1.16;letter-spacing:-.035em;color:#102b45}.page-heading p{font-size:14px;line-height:1.6}.eyebrow{color:#2871a8}.grid{gap:18px;margin-bottom:20px}.card{border-color:var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card:hover{border-color:#d8e2e9}.stat-card{position:relative;min-height:132px;padding:20px;overflow:hidden}.stat-card:after{content:"";position:absolute;right:-24px;bottom:-38px;width:92px;height:92px;border-radius:50%;background:#edf4f8}.stat-card>*{position:relative;z-index:1}.stat-card .stat-top>.muted{font-size:12px;font-weight:750;letter-spacing:.025em;text-transform:uppercase}.stat{font-size:clamp(1.65rem,2vw,2rem);letter-spacing:-.035em}.stat-icon{background:var(--brand-soft);color:var(--brand);border:1px solid #dbe8f1}.section-card-head{padding:20px 22px}.section-card-head h2,.panel-heading h2{font-size:18px;line-height:1.3;color:#142f48}.primary,.secondary{min-height:42px;padding:10px 15px;border-radius:10px;font-size:13px}.primary{background:linear-gradient(180deg,#174b7f,#10375f);box-shadow:0 5px 13px #123c6924}.secondary{border-color:#d7e1e9}.field{gap:7px}.field input,.field select,.field textarea,.toolbar input,.toolbar select{min-height:43px;border-color:#d5e0e8;border-radius:10px;color:#1d344a}.field input::placeholder,.field textarea::placeholder,.toolbar input::placeholder{color:#94a3b1}.toolbar{align-items:center}.table-wrap{scrollbar-width:thin;scrollbar-color:#c8d4dd transparent}th{height:44px;background:#f8fafc;color:#66798b;font-size:10.5px;letter-spacing:.065em;font-weight:800}td{height:53px;color:#294158;font-size:13px}tbody tr{transition:background .14s ease}tbody tr:hover{background:#f8fbfd}tbody tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;font-weight:750;letter-spacing:.02em}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{border:1px solid #ffffff80;box-shadow:0 30px 90px #07152240}.empty-state,.table-state{background:linear-gradient(180deg,#fff,#fafcfd)}.login-page{min-height:100dvh;display:grid;grid-template-columns:minmax(420px,1.12fr) minmax(420px,.88fr);background:#fff}.login-visual{position:relative;display:flex;align-items:center;overflow:hidden;padding:clamp(48px,7vw,100px);background:linear-gradient(145deg,#092946,#123f6b 62%,#1a5a8a);color:#fff}.login-visual:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 18%,#ffffff17 0,transparent 22rem),linear-gradient(120deg,transparent 60%,#f5b70014)}.login-visual-content{position:relative;z-index:2;max-width:620px}.login-logo{width:54px;height:54px;display:grid;place-items:center;margin-bottom:34px;border:1px solid #ffffff2b;border-radius:16px;background:#ffffff12;color:var(--gold);box-shadow:0 16px 36px #0002}.login-kicker{font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:#c6d8e8}.login-visual h1{max-width:570px;margin:14px 0 20px;font-size:clamp(2.6rem,5vw,4.5rem);line-height:1.02;letter-spacing:-.055em}.login-visual p{max-width:570px;margin:0;color:#ccdae7;font-size:clamp(15px,1.5vw,18px);line-height:1.7}.login-benefits{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:46px}.login-benefits>div{display:flex;gap:12px;padding:16px;border:1px solid #ffffff18;border-radius:14px;background:#ffffff0b}.login-benefits svg{flex:none;color:var(--gold)}.login-benefits span{display:grid;gap:3px}.login-benefits b{font-size:13px}.login-benefits small{color:#b9ccdc;line-height:1.45}.login-shape{position:absolute;right:-130px;bottom:-180px;width:420px;height:420px;border:70px solid #ffffff07;border-radius:50%}.login-panel{display:grid;place-items:center;padding:40px;background:linear-gradient(180deg,#fff,#f9fbfc)}.login-card{width:min(440px,100%);padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}.login-mobile-brand{display:none}.login-heading>span{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#2670a6}.login-heading h2{margin:8px 0;font-size:clamp(1.8rem,3vw,2.35rem);letter-spacing:-.04em;color:#102b45}.login-heading p{margin:0 0 28px;color:var(--muted)}.login-error{margin-bottom:18px;padding:12px 14px;border:1px solid #f0c4c0;border-radius:10px;background:#fff2f0;color:#a23830;font-size:13px}.login-field{margin:0 0 18px}.input-with-icon{display:flex;align-items:center;min-height:50px;padding:0 14px;border:1px solid #d5e0e8;border-radius:11px;background:#fff;color:#7c8d9c}.input-with-icon:focus-within{border-color:var(--focus);box-shadow:0 0 0 4px #2f80c414}.input-with-icon input{width:100%;min-height:48px;padding:0 11px!important;border:0!important;outline:0;box-shadow:none!important;background:transparent}.input-with-icon button{display:grid;place-items:center;padding:7px;border:0;background:transparent;color:#607588;cursor:pointer}.login-submit{width:100%;min-height:50px;margin-top:4px}.login-help{text-align:center;margin:20px 0 0;color:#7d8d9c;font-size:12px}.dashboard-stats{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);gap:18px}.quick-panel,.period-panel{padding:0}.panel-heading{padding:20px 22px 13px}.panel-heading h2{margin:4px 0}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px 16px}.quick-grid a{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:14px;border:1px solid #e3eaf0;border-radius:12px;color:#203a52;text-decoration:none}.quick-grid a:hover{border-color:#c7d9e6;background:#f7fafc;transform:translateY(-1px)}.quick-grid a>span:nth-child(2){display:grid;gap:2px}.quick-grid b{font-size:13px}.quick-grid small{color:#718397;font-size:11px}.quick-grid>a>svg{color:#8495a5}.quick-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:var(--brand-soft);color:var(--brand)}.period-panel{padding:22px;background:linear-gradient(145deg,#0d3457,#174f7e);color:#fff;border:0}.period-panel .eyebrow{color:#a9cae1}.period-mark{display:grid;gap:2px;margin:26px 0 18px}.period-mark span{color:#d2e0ea;font-size:14px}.period-mark b{font-size:25px;letter-spacing:-.03em}.period-panel p{color:#bdd0df;font-size:12px;line-height:1.6}.period-panel a{display:inline-flex;align-items:center;gap:6px;margin-top:12px;color:#fff;font-size:12px;font-weight:750;text-decoration:none}.stat-skeleton{min-height:132px;background:linear-gradient(90deg,#f4f7f9 25%,#fff,#f4f7f9 75%);background-size:200% 100%;animation:skeleton 1.3s infinite}@keyframes skeleton{to{background-position:-200% 0}}@media(max-width:1050px){.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-panel{min-height:100dvh}.login-mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:38px}.dashboard-layout{grid-template-columns:1fr}.period-panel{min-height:220px}}@media(max-width:900px){.main{padding:14px 16px 36px}.topbar{margin-bottom:22px}.app{display:block}.sidebar{width:min(300px,88vw)}}@media(max-width:700px){:root{font-size:14px}.login-panel{padding:26px 20px}.page-heading{gap:14px}.page-actions>*{width:100%}.grid{gap:12px}.quick-grid{grid-template-columns:1fr}.card{border-radius:14px}.stat-card{min-height:114px;padding:16px}.section-card-head{padding:16px}.toolbar{padding:14px!important}.toolbar>*{flex:1 1 160px;min-width:0!important}.toolbar button{white-space:nowrap}th,td{padding:11px 13px}.form-grid{padding-left:16px;padding-right:16px}.modal-card{padding:18px;border-radius:16px}.topbar{border-radius:13px}.current-period{align-items:flex-start;flex-direction:column;gap:2px}}@media(max-width:430px){.main{padding:10px 10px 30px}.topbar{top:5px;padding:9px}.page-heading h1{font-size:1.65rem}.compact-button{width:39px;padding:0}.icon-link,.mobile-menu{width:39px;height:39px}.quick-grid{padding:0 12px 12px}.login-heading h2{font-size:1.8rem}}.finance-account-filters{display:grid;grid-template-columns:minmax(190px,1.4fr) repeat(3,minmax(130px,1fr)) repeat(2,minmax(130px,.8fr)) auto;gap:9px;padding:16px 20px;border-bottom:1px solid #e5ebf1;background:#f8fafc}.finance-account-filters input,.finance-account-filters select{min-height:42px;min-width:0;padding:9px 10px;border:1px solid #d5e0e8;border-radius:9px;background:#fff}.whatsapp-action{width:36px;height:36px;display:grid;place-items:center;border:1px solid #b9e4c8;border-radius:10px;background:#ecfaf1;color:#168344;cursor:pointer}.whatsapp-action:hover{background:#dcf6e5}@media(max-width:1200px){.finance-account-filters{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.finance-account-filters{grid-template-columns:1fr}}.finance-workspace-tabs{display:flex;gap:7px;margin-bottom:14px}.finance-workspace-tabs button,.finance-section-tabs button{border:1px solid #dce5ec;background:#fff;color:#52697e;border-radius:10px;padding:10px 14px;font-weight:800;cursor:pointer}.finance-workspace-tabs button.active,.finance-section-tabs button.active{background:var(--brand);border-color:var(--brand);color:#fff}.finance-workspace{padding:0;overflow:visible}.finance-section-tabs{display:flex;gap:8px;padding:18px 20px 0}.finance-section-tabs button{min-width:150px}.finance-section-tabs button span{margin-left:6px;padding:2px 7px;border-radius:99px;background:#ffffff1c}.finance-period{padding:4px 20px}.finance-add-row{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) auto;gap:10px;padding:0 20px 18px}.finance-add-row input,.finance-add-row select{min-height:43px;padding:9px 11px;border:1px solid #d5e0e8;border-radius:10px;background:#fff}.optional-assignment{display:grid;grid-template-columns:minmax(200px,1fr) minmax(220px,1fr) minmax(240px,1.2fr) auto;align-items:end;gap:12px;padding:18px 20px;border-top:1px solid #e5ebf1;background:#f8fafc}.optional-assignment>div:first-child{display:grid;align-self:center}.optional-assignment>div:first-child span{font-size:11px;color:#718397}.optional-assignment .search-select-menu{bottom:calc(100% + 6px);top:auto}@media(max-width:1000px){.finance-add-row,.optional-assignment{grid-template-columns:1fr 1fr}.optional-assignment>div:first-child{grid-column:1/-1}}@media(max-width:620px){.finance-workspace-tabs,.finance-section-tabs{display:grid;grid-template-columns:1fr 1fr}.finance-section-tabs button{min-width:0}.finance-add-row,.optional-assignment{grid-template-columns:1fr}.optional-assignment>div:first-child{grid-column:auto}}.search-select{position:relative;min-width:220px}.search-select-trigger{width:100%;min-height:43px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border:1px solid #d5e0e8;border-radius:10px;background:#fff;color:#1d344a;text-align:left;cursor:pointer}.search-select-trigger .placeholder{color:#8a9aa8}.search-select-clear{display:grid;place-items:center;padding:3px;border-radius:6px;color:#718397}.search-select-menu{position:absolute;z-index:80;top:calc(100% + 6px);left:0;width:max(100%,320px);max-width:min(420px,calc(100vw - 32px));padding:7px;border:1px solid #d9e3ea;border-radius:12px;background:#fff;box-shadow:0 18px 48px #10233f24}.search-select-input{height:40px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid #d8e2e9;border-radius:9px;color:#718397}.search-select-input input{width:100%;border:0;outline:0;background:transparent}.search-select-options{max-height:280px;overflow:auto;margin-top:6px}.search-select-options>button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:0;border-radius:8px;background:transparent;color:#294158;text-align:left;cursor:pointer}.search-select-options>button.active{background:#f0f5f9}.search-select-options>button.selected{color:var(--brand)}.search-select-options>button>span{display:grid;gap:2px}.search-select-options b{font-size:12px}.search-select-options small{color:#718397;font-size:10px}.search-select-empty{padding:26px 12px;text-align:center;color:#7a8b9a;font-size:12px}.field>.search-select{width:100%}.toolbar>.search-select{flex:1 1 230px}@media(max-width:700px){.search-select,.search-select-menu{width:100%;min-width:0}}.assessment-tabs{display:flex;gap:7px;margin-bottom:18px;padding:5px;width:max-content;max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:var(--shadow-sm)}.assessment-tabs button{display:flex;align-items:center;gap:7px;min-height:38px;padding:8px 13px;border:0;border-radius:9px;background:transparent;color:#5e7286;font-weight:750;font-size:12px;white-space:nowrap;cursor:pointer}.assessment-tabs button.active{background:var(--brand);color:#fff}.assessment-tabs button:disabled{opacity:.4}.assessment-register-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:18px}.assessment-search{min-width:250px}.assessment-name{display:flex;align-items:center;gap:10px}.assessment-name>span{width:34px;height:34px;display:grid;place-items:center;flex:none;border-radius:10px;background:var(--brand-soft);color:var(--brand);font-weight:900}.assessment-name>div,.exam-set-row>span:nth-child(2){display:grid}.assessment-name small,.exam-set-row small{color:#718397;font-size:10px}.score-scale{padding:5px 8px;border-radius:8px;background:#eef4f8;color:#234a69;font-weight:800}.compact-action{min-height:34px;padding:6px 10px}.exam-set-list{display:grid;padding:8px 16px 16px}.exam-set-row{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:13px 4px;border-bottom:1px solid #edf1f5}.exam-set-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#fff6d9;color:#866400}.compact-empty{padding:35px;text-align:center;color:#758698}.assessment-create-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px}.assessment-form{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;padding:10px 20px 20px}.assessment-form.single{grid-template-columns:1fr}.assessment-form .full{grid-column:1/-1}.assessment-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px;padding-top:16px;border-top:1px solid #edf1f5}.score-actions{display:flex;gap:8px}.score-guidance{display:grid;grid-template-columns:auto 1fr minmax(160px,280px);align-items:center;gap:8px;padding:13px 20px;background:#f8fafc;border-bottom:1px solid #edf1f5}.score-guidance span{color:#718397;font-size:12px}.comment-input{width:min(360px,100%);min-width:220px;padding:8px 10px;border:1px solid #d5e0e8;border-radius:9px}@media(max-width:1100px){.assessment-register-layout,.assessment-create-layout{grid-template-columns:1fr}}@media(max-width:700px){.assessment-tabs{width:100%}.assessment-tabs button{flex:1;justify-content:center}.assessment-form{grid-template-columns:1fr;padding:8px 16px 18px}.assessment-form .full{grid-column:auto}.assessment-form-actions{flex-direction:column-reverse}.assessment-form-actions button{width:100%}.score-guidance{grid-template-columns:auto 1fr}.score-guidance .progress{grid-column:1/-1}.score-actions{width:100%}.score-actions button{flex:1}.comment-input{min-width:180px}}.brand-logo{width:46px;height:46px;flex:none;object-fit:contain;padding:4px;border-radius:13px;background:#fff}.brand>div:last-child{min-width:0}.brand>div:last-child>b{display:block;max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.login-logo.has-image{background:#fff;padding:5px}.login-logo img{width:100%;height:100%;object-fit:contain;border-radius:11px}.login-mobile-brand>img{width:46px;height:46px;object-fit:contain;border-radius:12px}.school-location{margin-top:18px;color:#bcd0df;font-size:13px}.identity-settings{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:20px}.logo-setting{display:flex;flex-direction:column;align-items:center;gap:10px}.logo-setting small{text-align:center;color:#718397;font-size:10px}.logo-preview{width:128px;height:128px;display:grid;place-items:center;overflow:hidden;border:1px dashed #b9c9d5;border-radius:22px;background:#f7fafc}.logo-preview img{width:100%;height:100%;padding:8px;object-fit:contain}.logo-preview span{font-size:38px;font-weight:900;color:var(--brand)}.identity-fields{width:100%}@media(max-width:700px){.identity-settings{grid-template-columns:1fr;padding:16px}.brand>div:last-child>b{max-width:190px}}.student-person{display:flex;align-items:center;gap:11px}.student-person>div:last-child{min-width:0}.student-avatar{position:relative;width:42px;height:42px;display:grid;place-items:center;flex:none;overflow:hidden;border:2px solid #fff;border-radius:13px;background:#e8f1f7;color:#16476f;box-shadow:0 0 0 1px #dce6ed;font-size:11px;font-weight:900;letter-spacing:.04em}.student-avatar img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover}.student-avatar span{position:relative;z-index:0}.student-avatar.avatar-1{background:#f2eafb;color:#67419a}.student-avatar.avatar-2{background:#e9f7ef;color:#167343}.student-avatar.avatar-3{background:#fff2dc;color:#98600c}.student-avatar.avatar-4{background:#e9f3ff;color:#2465a2}.student-avatar.avatar-5{background:#fcecf1;color:#9a3458}.student-modal{width:min(880px,100%);padding:0;overflow:hidden}.student-modal .modal-head{position:sticky;top:0;z-index:2;margin:0;padding:22px 24px 16px;border-bottom:1px solid var(--line);background:#fff}.student-modal .modal-head p{margin:5px 0 0;font-size:12px}.student-form-grid{padding:8px 24px 4px}.student-modal .modal-actions{position:sticky;bottom:0;margin:10px 0 0;padding:16px 24px;background:#fff}.confirm-card{width:min(440px,100%);padding:28px;text-align:center}.confirm-card h2{margin:15px 0 7px}.confirm-card p{margin:0;color:var(--muted);line-height:1.65}.confirm-icon{width:52px;height:52px;display:grid;place-items:center;margin:auto;border-radius:15px;background:#fff0ee;color:#b42318}.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:10px 15px;border:0;border-radius:10px;background:#b42318;color:#fff;font-weight:750;cursor:pointer}.danger-button:hover{background:#912018}.app-toast{position:fixed;right:24px;bottom:24px;z-index:150;display:grid;grid-template-columns:auto minmax(180px,1fr) auto;align-items:center;gap:10px;width:min(420px,calc(100vw - 32px));padding:14px 14px 14px 16px;border:1px solid;border-radius:13px;background:#fff;box-shadow:0 20px 55px #10233f2e;animation:toast-in .2s ease-out}.app-toast.success{border-color:#b7e4c8;color:#146c3b}.app-toast.error{border-color:#f0c4c0;color:#a23830}.app-toast span{color:#294158;font-size:13px;font-weight:700}.app-toast button{display:grid;place-items:center;padding:5px;border:0;border-radius:7px;background:transparent;color:inherit;cursor:pointer}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(max-width:700px){.student-modal{max-height:96dvh}.student-modal .modal-head{padding:18px}.student-form-grid{padding:6px 18px}.student-modal .modal-actions{padding:14px 18px}.app-toast{right:16px;bottom:16px}.confirm-card .modal-actions{flex-direction:column-reverse}.confirm-card .modal-actions button{width:100%}}.stepper-modal{width:min(820px,100%)}.student-stepper{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:18px 24px 4px}.student-stepper>div{position:relative;display:flex;align-items:center;gap:9px;color:#8191a0}.student-stepper>div:not(:last-child):after{content:"";position:absolute;left:42px;right:10px;top:17px;height:2px;background:#e1e8ee}.student-stepper>div.complete:not(:last-child):after{background:#2b7bab}.student-stepper>div>span{position:relative;z-index:1;width:34px;height:34px;display:grid;place-items:center;flex:none;border:2px solid #dce5ec;border-radius:50%;background:#fff}.student-stepper>div>div{display:grid;position:relative;z-index:1;padding-right:8px;background:#fff}.student-stepper small{font-size:9px;text-transform:uppercase;letter-spacing:.08em}.student-stepper b{font-size:11px;white-space:nowrap}.student-stepper .active{color:var(--brand)}.student-stepper .active>span{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:0 0 0 4px var(--brand-soft)}.student-stepper .complete{color:#23734a}.student-stepper .complete>span{border-color:#b5dfc6;background:#e9f7ef}.step-content{min-height:310px;align-content:start;padding-top:12px}.step-actions{align-items:center}.step-actions>span{margin-right:auto;color:#718397;font-size:11px}.student-photo-step{display:flex;align-items:center;gap:20px;margin:12px 0 18px;padding:18px;border:1px dashed #c8d6e0;border-radius:14px;background:#f8fafc}.student-photo-preview{width:82px;height:82px;display:grid;place-items:center;flex:none;overflow:hidden;border-radius:20px;background:var(--brand-soft);color:var(--brand);font-size:22px;font-weight:900}.student-photo-preview img{width:100%;height:100%;object-fit:cover}.student-photo-step h3{margin:0 0 4px}.student-photo-step p{margin:0 0 12px;color:var(--muted);font-size:12px}.student-review{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}.student-review span{display:grid;gap:3px;padding:12px;border-radius:10px;background:#f3f7fa}.student-review small{color:#718397;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.student-review b{font-size:12px}@media(max-width:700px){.student-stepper{padding:14px 18px 0}.student-stepper>div{justify-content:center}.student-stepper>div>div{display:none}.student-stepper>div:not(:last-child):after{left:58%;right:-42%}.step-content{min-height:350px}.student-photo-step{align-items:flex-start;flex-direction:column}.student-review{grid-template-columns:1fr}.step-actions>span{display:none}.step-actions button{flex:1}}.attendance-register-bar{display:grid;grid-template-columns:auto minmax(150px,.65fr) minmax(190px,1fr) auto;align-items:end;gap:12px;padding:18px 20px}.attendance-register-bar label{display:grid;gap:6px}.attendance-register-bar label span{color:#52677b;font-size:11px;font-weight:800}.attendance-register-bar input,.attendance-register-bar select{min-height:43px;padding:9px 11px;border:1px solid #d5e0e8;border-radius:10px;background:#fff}.attendance-mode{display:flex;gap:6px;padding:4px;border:1px solid #dce5ec;border-radius:11px;background:#f4f7f9}.attendance-mode button{display:flex;align-items:center;gap:6px;min-height:35px;padding:7px 11px;border:0;border-radius:8px;background:transparent;color:#65798c;font-size:12px;font-weight:800;cursor:pointer}.attendance-mode button.active{background:#fff;color:var(--brand);box-shadow:0 2px 8px #10233f12}.register-attendance-button{white-space:nowrap}.attendance-status{min-width:125px;padding:8px 10px;border:1px solid #d3dee7;border-radius:9px;background:#fff;font-weight:750}.attendance-status.status-present{border-color:#b8dfc7;background:#effaf3;color:#177344}.attendance-status.status-absent{border-color:#efc2bd;background:#fff2f0;color:#a3352c}.attendance-status.status-late{border-color:#ead598;background:#fff9e7;color:#896700}.attendance-save-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 20px;border-top:1px solid #e7edf2;background:#f8fafc;color:#65798c;font-size:12px}.table-state svg{display:block;margin:0 auto 8px;color:#8296a8}.table-state b,.table-state span{display:block}.table-state span{margin-top:4px;font-size:11px}@media(max-width:900px){.attendance-register-bar{grid-template-columns:1fr 1fr}.attendance-mode{grid-column:1/-1}.register-attendance-button{width:100%}}@media(max-width:600px){.attendance-register-bar{grid-template-columns:1fr}.attendance-mode{grid-column:auto}.attendance-mode button{flex:1;justify-content:center}.attendance-save-footer{align-items:stretch;flex-direction:column}.attendance-save-footer button{width:100%}}.attendance-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:20px}.attendance-kpi{position:relative;min-height:142px;overflow:hidden;padding:17px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow-sm)}.attendance-kpi:after{content:"";position:absolute;right:-28px;bottom:-38px;width:88px;height:88px;border-radius:50%;background:var(--kpi-soft,#edf4f8)}.attendance-kpi-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px}.attendance-kpi-top>span{color:#64788b;font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.attendance-kpi-top i{width:33px;height:33px;display:grid;place-items:center;border-radius:10px;background:var(--kpi-soft,#edf4f8);color:var(--kpi-color,var(--brand));font-style:normal}.attendance-kpi strong{position:relative;z-index:1;display:block;margin:11px 0 2px;color:#142f48;font-size:27px;line-height:1;letter-spacing:-.04em}.attendance-kpi small{position:relative;z-index:1;color:#8291a0;font-size:10px}.attendance-kpi.rate{--kpi-color:#246da1;--kpi-soft:#e8f2f9}.attendance-kpi.present{--kpi-color:#197044;--kpi-soft:#e7f6ed}.attendance-kpi.absent{--kpi-color:#aa382f;--kpi-soft:#fcecea}.attendance-kpi.late{--kpi-color:#926c08;--kpi-soft:#fff5d9}.attendance-kpi.excused{--kpi-color:#7452a0;--kpi-soft:#f1eafa}.attendance-rate-track{position:relative;z-index:1;height:5px;margin-top:10px;overflow:hidden;border-radius:99px;background:#e6edf2}.attendance-rate-track span{display:block;height:100%;border-radius:inherit;background:var(--kpi-color)}@media(max-width:1200px){.attendance-kpi-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.attendance-kpi-grid{grid-template-columns:repeat(2,1fr)}.attendance-kpi{min-height:126px;padding:14px}}@media(max-width:420px){.attendance-kpi-grid{grid-template-columns:1fr 1fr;gap:9px}.attendance-kpi strong{font-size:23px}.attendance-kpi-top>span{font-size:9px}}.executive-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.executive-kpi{--ek-color:#246da1;--ek-soft:#e8f2f9;position:relative;min-height:150px;overflow:hidden;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm)}.executive-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ek-color)}.executive-kpi:after{content:"";position:absolute;right:-32px;bottom:-44px;width:106px;height:106px;border-radius:50%;background:var(--ek-soft)}.executive-kpi-head{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px}.executive-kpi-head>span{color:#62768a;font-size:10px;font-weight:850;letter-spacing:.075em;text-transform:uppercase}.executive-kpi-head i{width:37px;height:37px;display:grid;place-items:center;border-radius:11px;background:var(--ek-soft);color:var(--ek-color);font-style:normal}.executive-kpi strong{position:relative;z-index:1;display:block;margin:14px 0 4px;color:#142e47;font-size:clamp(1.55rem,2vw,2rem);line-height:1;letter-spacing:-.045em}.executive-kpi small{position:relative;z-index:1;color:#7d8e9e;font-size:10px}.executive-kpi.green{--ek-color:#187047;--ek-soft:#e8f6ee}.executive-kpi.red{--ek-color:#a93b32;--ek-soft:#fcecea}.executive-kpi.gold,.executive-kpi.orange{--ek-color:#936d08;--ek-soft:#fff5d9}.executive-kpi.violet{--ek-color:#704b9d;--ek-soft:#f1eafa}.executive-kpi.indigo{--ek-color:#4d57a7;--ek-soft:#eceefd}.executive-kpi.cyan{--ek-color:#137487;--ek-soft:#e5f5f7}.executive-progress{position:relative;z-index:1;height:5px;margin-top:12px;overflow:hidden;border-radius:99px;background:#e7edf2}.executive-progress span{display:block;height:100%;border-radius:inherit;background:var(--ek-color)}.kpi-skeleton{background:linear-gradient(90deg,#f4f7f9 25%,#fff,#f4f7f9 75%);background-size:200% 100%;animation:skeleton 1.3s infinite}.analytics-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-detail{align-items:start}.analytics-meter{padding:20px}.analytics-meter>div:first-child{display:flex;align-items:center;gap:12px;margin-bottom:18px;color:var(--brand)}.analytics-meter>div:first-child>svg{width:42px;height:42px;padding:10px;border-radius:12px;background:var(--brand-soft)}.analytics-meter span{display:grid}.analytics-meter span b{font-size:20px}.analytics-meter small,.analytics-meter p{color:var(--muted);font-size:11px}.analytics-health-row{padding:17px 20px;border-bottom:1px solid #edf1f5}.analytics-health-row>span{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;color:#5f7488;font-size:12px}.analytics-health-row b{color:#1d3a54}@media(max-width:1100px){.executive-kpi-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.executive-kpi-grid,.analytics-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:460px){.executive-kpi-grid,.analytics-kpis{grid-template-columns:1fr 1fr;gap:9px}.executive-kpi{min-height:135px;padding:14px}.executive-kpi strong{font-size:1.45rem}.executive-kpi-head>span{font-size:9px}}.batch-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 24px 0}.batch-toolbar label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:750}.batch-toolbar input{width:72px;min-height:40px;padding:8px;border:1px solid var(--line);border-radius:9px}.batch-toolbar select{min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff}.batch-toolbar button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:700px){.batch-toolbar{padding:12px 18px 0}.batch-toolbar>*{flex:1 1 140px}}.stepper-modal{width:min(900px,calc(100vw - 32px));max-height:min(92vh,880px);border:1px solid #d8e3eb;border-radius:22px;background:#fff;box-shadow:0 32px 90px #0715223d}.stepper-modal .modal-head{position:relative;padding:22px 28px 20px;border-bottom:1px solid #dce6ed;background:linear-gradient(135deg,#f8fbfd,#eef5fa)}.stepper-modal .modal-head:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(#1c6598,#f5b700)}.stepper-modal .modal-head h2{margin:4px 0 3px;font-size:22px;letter-spacing:-.025em;color:#102f4b}.stepper-modal .modal-head p{margin:0;color:#667d91;font-size:12px}.stepper-modal .modal-head .icon-btn{border:1px solid #d7e2ea;background:#fff;box-shadow:0 3px 10px #123c690d}.stepper-modal .student-stepper{gap:12px;padding:20px 28px 18px;border-bottom:1px solid #edf2f5;background:#fff}.stepper-modal .student-stepper>div{min-width:0;gap:11px;padding:11px 13px;border:1px solid #e1e9ef;border-radius:13px;background:#fafcfd;color:#738698}.stepper-modal .student-stepper>div:not(:last-child):after{display:none}.stepper-modal .student-stepper>div>span{width:36px;height:36px;border-width:1px;background:#fff;box-shadow:0 2px 7px #143c5e0c}.stepper-modal .student-stepper>div>div{min-width:0;padding:0;background:transparent}.stepper-modal .student-stepper small{color:#8494a3;font-size:9px;font-weight:800}.stepper-modal .student-stepper b{overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#405970}.stepper-modal .student-stepper .active{border-color:#9fc2da;background:#edf6fc;box-shadow:0 0 0 3px #e4f1f8}.stepper-modal .student-stepper .active>span{border-color:#14517f;background:#14517f;box-shadow:none;color:#fff}.stepper-modal .student-stepper .active b{color:#123c69}.stepper-modal .student-stepper .complete{border-color:#b9ddc8;background:#f1faf5}.stepper-modal .student-stepper .complete>span{border-color:#9fd0b3;background:#ddf3e6;color:#197044}.stepper-modal .batch-toolbar{display:grid;grid-template-columns:minmax(175px,1fr) auto auto minmax(160px,1fr);gap:9px;margin:16px 28px 0;padding:12px;border:1px solid #dce7ee;border-radius:14px;background:#f6f9fb}.stepper-modal .batch-toolbar.full{grid-column:1/-1;margin:0 0 18px;padding:12px}.stepper-modal .batch-toolbar label{justify-content:space-between;min-height:42px;padding-left:4px;color:#425c73}.stepper-modal .batch-toolbar input{background:#fff}.stepper-modal .batch-toolbar select{width:100%;color:#29475f;font-weight:700}.stepper-modal .batch-toolbar .secondary{min-height:42px;padding:9px 12px;white-space:nowrap;background:#fff}.stepper-modal .student-form-grid{gap:2px 20px;padding:22px 28px 8px}.stepper-modal .step-content{min-height:300px}.stepper-modal .field{margin-bottom:16px}.stepper-modal .field>span{display:flex;align-items:baseline;justify-content:space-between;gap:8px;color:#29445d}.stepper-modal .field>span small{color:#8796a4;font-size:10px;font-weight:650}.stepper-modal .field input,.stepper-modal .field select{min-height:47px;background:#fbfcfd}.stepper-modal .field input[readonly]{border-style:dashed;background:#f0f5f8;color:#39566e}.stepper-modal .permission-grid{padding:10px;border:1px solid #e1e8ed;border-radius:13px;background:#f8fafc}.stepper-modal .permission-item{border-radius:9px;background:#fff}.stepper-modal .student-photo-step{margin-top:0;padding:22px;background:linear-gradient(135deg,#f8fbfd,#f1f6f9)}.stepper-modal .student-review{gap:12px}.stepper-modal .student-review span{padding:14px;border:1px solid #e1e9ef;background:#f8fafc}.stepper-modal .step-actions{min-height:72px;margin-top:8px;padding:14px 28px;border-top:1px solid #dde7ed;background:#f9fbfc}.stepper-modal .step-actions>span{padding:6px 10px;border-radius:99px;background:#eaf1f6;color:#597086;font-weight:750}.stepper-modal .step-actions button{min-width:112px}@media(max-width:700px){.stepper-modal{width:100%;max-height:96dvh;border-radius:18px}.stepper-modal .modal-head{padding:18px 20px 16px}.stepper-modal .student-stepper{gap:7px;padding:14px 18px}.stepper-modal .student-stepper>div{padding:8px}.stepper-modal .student-stepper>div>span{width:32px;height:32px}.stepper-modal .student-stepper>div>div{display:none}.stepper-modal .batch-toolbar,.stepper-modal .batch-toolbar.full{grid-template-columns:1fr 1fr;margin:12px 18px 0;padding:10px}.stepper-modal .batch-toolbar.full{margin:0 0 16px}.stepper-modal .batch-toolbar label,.stepper-modal .batch-toolbar select{grid-column:1/-1}.stepper-modal .student-form-grid{padding:18px 20px 4px}.stepper-modal .step-content{min-height:0}.stepper-modal .step-actions{padding:13px 18px}.stepper-modal .step-actions button{min-width:0}.stepper-modal .field{margin-bottom:12px}}.student-modal.stepper-modal{display:flex;flex-direction:column;overflow:hidden;height:min(92dvh,880px)}.student-modal.stepper-modal>.modal-head,.student-modal.stepper-modal>.student-stepper,.student-modal.stepper-modal>.batch-toolbar{flex:none}.student-modal.stepper-modal>form{display:flex;flex:1;min-height:0;flex-direction:column;overflow:hidden}.student-modal.stepper-modal .step-content{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable;padding-bottom:28px}.student-modal.stepper-modal .step-actions{position:static;z-index:3;flex:none;margin:0;box-shadow:0 -8px 24px #1539540a}.student-modal.stepper-modal .field input,.student-modal.stepper-modal .field select{scroll-margin-bottom:100px}@media(max-height:760px){.student-modal.stepper-modal{height:96dvh}.stepper-modal .modal-head{padding-top:15px;padding-bottom:13px}.stepper-modal .student-stepper{padding-top:11px;padding-bottom:11px}.stepper-modal .student-stepper>div{padding-top:7px;padding-bottom:7px}.stepper-modal .batch-toolbar{margin-top:10px}.stepper-modal .student-form-grid{padding-top:15px}.stepper-modal .step-actions{min-height:60px;padding-top:9px;padding-bottom:9px}}@media(max-width:700px){.student-modal.stepper-modal{height:96dvh}.student-modal.stepper-modal .step-content{padding-bottom:22px}}
