@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#17263e;--muted:#758198;--blue:#3369df;--line:#e8edf4;--bg:#f5f7fb;--nav:#18243b;--green:#16966a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:14px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--nav);color:white;padding:26px 16px 16px;display:flex;flex-direction:column;z-index:10}.brand{color:white;text-decoration:none;display:flex;align-items:center;gap:12px;padding:0 10px 30px}.brand b{display:block;font:800 16px Manrope}.brand small{display:block;color:#99a7bf;font-size:11px;margin-top:2px}.brand-mark{width:42px;height:42px;border-radius:13px;background:#376de5;display:grid;place-items:center;color:white;font-size:23px;box-shadow:0 8px 20px #1b54c855}.sidebar nav{display:grid;gap:5px}.nav-link{color:#acb9cf;border-radius:9px;padding:11px 12px;display:flex;gap:13px;align-items:center;font-size:13px}.nav-link span{width:20px;text-align:center;font-size:17px}.nav-link:hover,.nav-link.active{background:#263651;color:#fff}.nav-link.active{box-shadow:inset 3px 0 #6da0ff}.side-user{margin-top:auto;border-top:1px solid #ffffff18;padding:17px 5px 3px;display:flex;align-items:center;gap:10px;font-size:12px}.side-user small{display:block;text-transform:capitalize;color:#94a2b9;margin-top:3px}.side-user>a{margin-left:auto;color:#b7c3d6;text-decoration:none;font-size:18px}.avatar{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;background:#e3edff;color:#376de5;font-weight:700}.avatar.pale{width:32px;height:32px}.main{margin-left:250px;min-height:100vh;padding:0 38px 20px}.topbar{height:105px;display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:9px;letter-spacing:1.5px;font-weight:700;color:#8a96a9;margin-bottom:5px}.topbar h1{font:800 23px Manrope;margin:0}.top-date{color:#65728a;font-size:12px}.status-dot{display:inline-block;width:7px;height:7px;background:#25b985;border-radius:50%;margin-left:8px}.menu-toggle{display:none}.content{max-width:1450px;margin:0 auto}.welcome-card{border-radius:16px;padding:25px 29px;background:linear-gradient(110deg,#3269dd,#5588eb);color:#fff;display:flex;justify-content:space-between;align-items:center;min-height:145px;margin-bottom:21px;box-shadow:0 12px 25px #376de51e}.welcome-card h2{font:800 22px Manrope;margin:8px 0 4px}.welcome-card p{margin:0;color:#e2eaff}.welcome-card .pill{font-size:9px;letter-spacing:1.4px;color:#dce7ff;font-weight:700}.welcome-card .btn{color:#315fc2;font-weight:700;font-size:12px;padding:10px 15px}.welcome-card.compact{min-height:130px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.stat-card,.panel{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 3px 12px #243a5b05}.stat-card{padding:17px 19px;position:relative;min-height:127px}.stat-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:17px;float:right}.stat-icon.blue{background:#edf3ff;color:#3973e5}.stat-icon.violet{background:#f2efff;color:#7957d5}.stat-icon.orange{background:#fff3e7;color:#e58c34}.stat-icon.green{background:#e8f8f2;color:#13966b}.stat-card small{display:block;color:var(--muted);font-size:11px;margin:1px 0 9px}.stat-card strong{font:800 23px Manrope;display:block}.stat-card em{font-size:10px;color:#8490a3;font-style:normal;display:block;margin-top:3px}.two-col{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}.panel{padding:20px 21px;margin-bottom:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:12px}.panel-head h3{font:700 15px Manrope;margin:0 0 4px}.panel-head p{margin:0;color:var(--muted);font-size:11px}.panel-head>a:not(.btn){color:#4775d3;text-decoration:none;font-size:11px;font-weight:700;white-space:nowrap}.table{font-size:12px;margin:0}.table thead th{color:#8994a6;font-size:10px;font-weight:600;border-bottom-color:#edf0f5;padding:10px 8px}.table td{padding:11px 8px;border-bottom-color:#f0f2f6;color:#4b5870}.table tbody tr:last-child td{border-bottom:0}.person{display:flex;align-items:center;gap:9px;color:#25344d;text-decoration:none;font-weight:600}.badge-soft{display:inline-block;background:#eef3fb;border-radius:20px;padding:5px 9px;color:#586a88;font-size:10px;font-weight:600;white-space:nowrap}.badge-soft.success{color:#16835f;background:#e6f7f0}.badge-soft.warning{color:#b9791c;background:#fff4dd}.dot-label{font-size:11px}.dot-label i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}.dot-green{background:#20b57f}.dot-gray{background:#aeb8c7}.attendance-summary{display:grid;gap:13px;padding:7px 0}.attendance-summary>div{display:grid;grid-template-columns:1fr auto;gap:6px;color:#637089;font-size:11px}.attendance-summary b{color:#293a54}.progress{grid-column:1/3;height:5px;background:#edf1f7}.progress-bar{border-radius:5px}.mini-note{background:#f7f9fc;border-radius:8px;padding:10px 12px;color:#727f93;font-size:10px}.empty{padding:24px!important;text-align:center;color:#8290a5!important}.search-form{display:flex;gap:9px;margin:6px 0 15px}.search-form .form-control,.search-form .form-select{max-width:350px}.search-form .btn,.btn{font-size:12px}.btn-primary{background:#356be0;border-color:#356be0}.form-panel{max-width:900px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}.form-grid>label{font-size:11px;font-weight:600;color:#58657b}.form-grid .form-control,.form-grid .form-select{margin-top:6px;font-size:12px;padding:10px 11px;border-color:#e3e8f0}.form-grid fieldset{border:0;padding:0;margin:0}.form-grid legend{font-size:11px;font-weight:600;color:#58657b}.span-2{grid-column:span 2}.check-label{display:flex;align-items:center;gap:8px;font-size:12px!important}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:23px;padding-top:17px;border-top:1px solid var(--line)}.day-picks{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.day-picks label{border:1px solid #e3e8f0;border-radius:8px;padding:8px 10px;font-size:10px;color:#596780}.day-picks input{margin-right:4px}.group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.group-card{display:block;color:inherit;text-decoration:none;border:1px solid var(--line);border-radius:11px;padding:16px;transition:.15s}.group-card:hover{border-color:#a9c1f8;transform:translateY(-2px);box-shadow:0 9px 20px #273c5c0c}.group-top,.group-bottom{display:flex;align-items:center;justify-content:space-between}.course-icon{width:35px;height:35px;border-radius:10px;background:#edf3ff;display:grid;place-items:center;color:#4074dc;font-size:19px}.group-card h4{font:700 14px Manrope;margin:13px 0 6px}.group-card p{color:#8490a3;font-size:10px;margin:0 0 17px}.group-bottom{border-top:1px solid #f0f2f5;padding-top:12px;color:#6d7a91;font-size:10px}.group-bottom b{color:#263953}.lesson-chips{display:flex;gap:9px;flex-wrap:wrap;padding:7px 0 20px}.lesson-chip{width:94px;border:1px solid #dce8ff;background:#f5f8ff;border-radius:10px;padding:10px;color:#5475b3;text-decoration:none;font-size:9px;text-align:center;display:grid;gap:3px}.lesson-chip b{font:800 19px Manrope;color:#315fc2}.lesson-chip.future{background:#f7f8fa;border-color:#e6e9ee;color:#a1aaba;pointer-events:none}.lesson-chip.future b{color:#9ba6b7}.attendance-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #f0f2f5;font-size:12px}.attendance-row .form-select{max-width:170px;font-size:11px}.subheading{font:700 14px Manrope;margin:13px 0}.version-item{padding:13px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:8px}.version-item small{display:block;color:var(--muted);margin-top:5px}.version-item time{font-size:10px;color:#8a96a9}.version-item details{grid-column:1/3;color:#5475b3;font-size:11px}.version-item pre{white-space:pre-wrap;background:#f7f9fc;padding:12px;border-radius:8px;color:#52617a;font:11px/1.6 'DM Sans',sans-serif}.setting-row{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.muted{color:var(--muted);font-size:12px}.login-bg{min-height:100vh;background:radial-gradient(ellipse at 20% 10%,#e7efff,transparent 40%),#f5f7fb;display:grid;place-items:center}.login-card{background:#fff;border:1px solid var(--line);box-shadow:0 20px 70px #18345a12;border-radius:18px;padding:36px;width:min(420px,calc(100% - 32px))}.login-card h1{font:800 22px Manrope;margin:16px 0 5px}.login-card p{font-size:12px}.login-card .form-control{padding:11px;font-size:13px}.login-card .form-label{font-size:11px;font-weight:600}footer{max-width:1450px;margin:8px auto 0;border-top:1px solid #e8edf4;padding:15px 0;color:#9aa5b6;font-size:10px}footer span{float:right}.alert{font-size:12px}.menu-toggle{border:0;background:none;font-size:20px;color:var(--ink)}
@media(max-width:1100px){.sidebar{width:220px}.main{margin-left:220px;padding:0 24px 18px}.stat-grid{grid-template-columns:repeat(2,1fr)}.group-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:260px}.nav-open .sidebar{transform:translateX(0);box-shadow:10px 0 30px #13213b33}.main{margin:0;padding:0 15px 16px}.topbar{height:80px;justify-content:flex-start;gap:13px}.menu-toggle{display:block}.topbar h1{font-size:19px}.top-date{margin-left:auto;font-size:10px}.welcome-card{padding:20px;align-items:flex-start;gap:12px;flex-direction:column}.welcome-card h2{font-size:19px}.stat-grid{gap:9px}.stat-card{padding:13px;min-height:112px}.stat-card strong{font-size:19px}.stat-icon{width:29px;height:29px}.two-col{grid-template-columns:1fr;gap:0}.panel{padding:16px 13px}.panel-head{align-items:flex-start}.table{min-width:600px}.group-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.search-form{flex-wrap:wrap}.search-form .form-control,.search-form .form-select{flex:1;min-width:130px}footer{font-size:9px}.setting-row{flex-direction:column}}
.profile-facts{display:flex;gap:25px;margin:5px 0 16px;color:#76839a;font-size:12px}.profile-facts b{display:block;color:#253650;font-size:16px;margin-top:4px}.fee-form{display:flex;align-items:end;gap:10px}.fee-form label,.expense-form label{flex:1;font-size:11px;font-weight:600;color:#58657b}.fee-form .form-control,.expense-form .form-control{font-size:12px;margin-top:6px}.doc-line{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #eef1f5;font-size:11px}.doc-line a{color:#356be0;text-decoration:none}.expense-form{display:grid;grid-template-columns:1.2fr .7fr .8fr 1fr auto;gap:9px;align-items:end}.span-wide{grid-column:1/-1}
@media(max-width:760px){.fee-form{align-items:stretch;flex-direction:column}.expense-form{grid-template-columns:1fr}.span-wide{grid-column:auto}}
.student-table{min-width:900px}.ukd-chip{display:inline-block;min-width:58px;text-align:center;padding:6px 10px;border-radius:8px;background:#e8f0ff;color:#245bbd;font:800 13px Manrope}.license-state{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;white-space:nowrap}.license-state.valid{padding:5px 9px;border-radius:999px;background:#e6f6ee;color:#13764f}.license-state.invalid{padding:5px 9px;border-radius:999px;background:#fdebed;color:#b52f3c}.license-state i{width:8px;height:8px;border-radius:50%;background:#9aa6b7}.license-state.valid i{background:#19a875}.license-state.invalid i{background:#dc5860}.license-state.none i{background:#a5adba}.license-emphasis{font-size:19px!important}.license-emphasis.valid{color:#13875e}.license-emphasis.invalid{color:#c7414b}.federation-panel{border-top:3px solid #3974e3}.federation-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}.federation-value{padding:17px 19px;border-radius:11px;background:#f5f8fe;border:1px solid #e7edf8}.federation-value>span{display:block;font-size:9px;letter-spacing:1.3px;font-weight:800;color:#7c899e}.federation-value strong{display:block;margin:9px 0 2px;font:800 30px Manrope;color:#224e9c}.federation-value small{font-size:11px;color:#77849a}.billing-panel{border-left:3px solid #22a57a}.month-picker{display:flex;align-items:end;gap:8px}.month-picker label{font-size:10px;color:#758198}.month-picker input{font-size:11px}.billing-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.billing-grid article{border:1px solid #edf0f5;background:#fcfdff;border-radius:10px;padding:14px 12px;display:flex;flex-direction:column;gap:8px}.billing-grid article span{font-size:10px;color:#738098}.billing-grid article b{font:800 16px Manrope;color:#243650}.billing-grid .paid-value{color:#159365}.billing-grid .balance-result{background:#fff7ed;border-color:#fde8c9}.billing-grid .balance-result b{color:#b66a08}.billing-grid .balance-result.credit{background:#eaf8f2;border-color:#d4f0e3}.billing-grid .balance-result.credit b{color:#13875e}.billing-grid .balance-result.settled{background:#eff8f4;border-color:#d9efe4}.billing-grid .balance-result.settled b{color:#16835f;font-size:13px}.attendance-billing{display:flex;gap:25px;align-items:center;border-top:1px solid #edf0f5;margin-top:14px;padding-top:12px;font-size:11px;color:#76839a}.attendance-billing b{font:800 13px Manrope;color:#273b58}.document-form{display:grid;gap:9px}.document-form .form-label{font-size:10px;font-weight:700;color:#637089;margin:0}.document-form .form-control{font-size:11px}.document-location{display:grid;grid-template-columns:.7fr .7fr 1.6fr;gap:8px}.document-location label{font-size:10px;font-weight:600;color:#718097}.document-card{display:flex;gap:13px;margin-top:13px;padding:12px;background:#f8fafd;border:1px solid #edf1f6;border-radius:10px}.document-preview{width:88px;height:88px;flex:none;border-radius:8px;background:white;border:1px solid #e8edf4;overflow:hidden;display:grid;place-items:center}.document-preview img{width:100%;height:100%;object-fit:cover}.pdf-preview{display:flex;flex-direction:column;align-items:center;gap:5px;color:#4a668d;text-decoration:none;font-size:9px}.pdf-preview b{font:800 20px Manrope;color:#df5555}.document-info{display:flex;flex-direction:column;gap:5px;font-size:10px;color:#7c899e}.document-info>b{font-size:12px;color:#2a3b56}.document-info a{color:#356be0;text-decoration:none;font-weight:700}.document-info small{color:#78859a}
@media(max-width:760px){.billing-grid{grid-template-columns:repeat(2,1fr)}.billing-grid .balance-result{grid-column:span 2}.federation-cards{grid-template-columns:1fr}.month-picker{align-items:stretch}.attendance-billing{gap:11px;justify-content:space-between;font-size:9px}.document-location{grid-template-columns:1fr}.student-table{min-width:920px}}
.pdf-preview{position:relative;width:100%;height:100%;justify-content:center}.pdf-preview iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}.pdf-preview b{position:relative;z-index:1;background:#ffffffd9;padding:1px 7px;border-radius:4px}
/* Keep the sidebar header and account fixed while its navigation scrolls. */
.sidebar{overflow:hidden}
.sidebar nav{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding-right:4px;scrollbar-width:thin;scrollbar-color:#64748b transparent}
.sidebar nav::-webkit-scrollbar{width:6px}
.sidebar nav::-webkit-scrollbar-thumb{background:#64748b;border-radius:8px}
.side-user{flex:0 0 auto}
.student-heading-photo,.student-list-photo{display:grid;place-items:center;overflow:hidden;flex:none;border-radius:50%;background:#e3edff;color:#376be0;font-weight:800}
.student-heading-photo{width:76px;height:76px;font-size:28px}
.student-heading-photo img,.student-list-photo img{width:100%;height:100%;object-fit:cover}
.student-heading-photo img{border-radius:50%}
.student-list-photo{width:40px;height:40px;font-size:15px}
.student-welcome{gap:15px}
.student-heading-copy{flex:1}
.student-photo-form{display:flex;align-items:center;justify-content:space-between;gap:18px}
.student-photo-form form{display:flex;align-items:center;gap:9px;flex:1;max-width:700px}
.license-expiry{display:inline-block;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:700;white-space:nowrap}
.license-expiry.active{background:#e6f6ee;color:#13764f}
.license-expiry.expired{background:#fdebed;color:#b52f3c}
.license-expiry-value{font-size:18px!important}
.federation-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){.student-photo-form{align-items:stretch;flex-direction:column}.student-photo-form form{align-items:stretch;flex-direction:column}.student-welcome{align-items:center!important}.student-heading-photo{width:60px;height:60px}.federation-cards{grid-template-columns:1fr}}
