/* Premium polish layer shared by the school workspace, authentication, and platform console. */
:root{--premium-indigo:#4358df;--premium-violet:#7858df;--premium-ink:#182440;--premium-muted:#78849d;--premium-border:#e5eaf4;--premium-glass:rgba(255,255,255,.82)}
body{background:radial-gradient(ellipse at 92% 0%,rgba(112,133,255,.075),transparent 28%),var(--bg,#f4f6fb);color:var(--premium-ink)}
::selection{background:#dce4ff;color:#2139a9}
:focus-visible{outline:3px solid #8ca2ff!important;outline-offset:2px}
.container>h1,.container-fluid h1,main h1{letter-spacing:-.045em;font-weight:800}
.navbar{padding:14px clamp(14px,3vw,30px)!important;backdrop-filter:blur(16px);box-shadow:0 8px 30px rgba(23,37,75,.04)}
.navbar-brand{font-weight:850;letter-spacing:-.04em;color:#1d2a4a!important}
.card{border:1px solid rgba(224,230,242,.92)!important;border-radius:19px!important;box-shadow:0 10px 34px rgba(25,42,82,.055)!important;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;overflow:hidden}
.card:hover{border-color:#d7def5!important;box-shadow:0 18px 44px rgba(25,42,82,.09)!important}
.card-body{padding:clamp(17px,2.2vw,27px)}
.display-6{font-weight:850!important;letter-spacing:-.055em;color:#1b2b50}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:39px;border-radius:11px;font-weight:750;letter-spacing:-.01em;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.btn:hover{transform:translateY(-1px);filter:saturate(1.08)}
.btn-primary{background:linear-gradient(125deg,var(--premium-indigo),var(--premium-violet));box-shadow:0 7px 17px rgba(67,88,223,.2)}
.btn-primary:active{transform:translateY(0)}
.btn-success{box-shadow:0 6px 15px rgba(20,150,102,.12)}
.form-control,.form-select{border-radius:11px;min-height:43px;border-color:#dfe5f0;box-shadow:0 1px 2px rgba(20,35,70,.02);transition:border-color .18s,box-shadow .18s,background .18s}
.form-control:focus,.form-select:focus{border-color:#879bff;box-shadow:0 0 0 4px rgba(79,102,236,.13)}
.form-label{font-weight:750;color:#4a5877;font-size:.83rem}
.table-responsive{border-radius:13px}
.table{--bs-table-bg:transparent;vertical-align:middle}
.table thead th{font-size:.7rem;letter-spacing:.075em;text-transform:uppercase;color:#77839c;background:#f6f8fd;border-bottom:1px solid var(--premium-border);padding:14px 15px;white-space:nowrap}
.table tbody td{padding:14px 15px;border-color:#edf0f6;color:#465371;font-size:.86rem}
.table tbody tr{transition:background .15s ease}
.table tbody tr:hover>*{background:#f7f8ff}
code,.school-code{display:inline-flex;align-items:center;gap:.45rem;border:1px solid #dbe3ff;background:#eef2ff;color:#354ac3;border-radius:9px;padding:5px 9px;font-size:.82rem;font-weight:800;letter-spacing:.04em}
.badge{border-radius:8px;padding:.48em .68em;font-weight:750;letter-spacing:.01em}
.alert{border-radius:13px;box-shadow:0 6px 18px rgba(25,42,82,.035)}
.auth-shell{background:radial-gradient(circle at 15% 12%,#e0e7ff 0,transparent 34%),radial-gradient(circle at 90% 88%,#e6ddff 0,transparent 32%),linear-gradient(140deg,#f9faff,#eef2fb)}
.auth-card{border:1px solid rgba(255,255,255,.9);box-shadow:0 28px 90px rgba(33,48,91,.13)}
.auth-card .auth-logo{background:linear-gradient(135deg,#647fff,#7655d9);box-shadow:0 12px 28px rgba(82,92,220,.3)}
.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}
.page-intro p{color:var(--premium-muted);margin-bottom:0}
.metric-card{position:relative;isolation:isolate}.metric-card:after{content:"";position:absolute;width:130px;height:130px;right:-45px;bottom:-60px;border-radius:50%;background:linear-gradient(135deg,#e9edffb0,#f4efff60);z-index:-1}
[data-reveal]{opacity:0;transform:translateY(9px);transition:opacity .45s ease,transform .45s ease}[data-reveal].is-visible{opacity:1;transform:none}
.copy-code{border:0;background:transparent;color:#6173d9;padding:3px 4px;border-radius:6px;cursor:pointer}.copy-code:hover{background:#dfe5ff}
.form-hint{font-size:.78rem;color:#8490a7;margin-top:6px}
.loading-overlay{position:fixed;inset:0;background:rgba(247,249,255,.7);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:2000}
@media(max-width:767px){.page-intro{align-items:stretch;flex-direction:column}.table-responsive{margin-inline:-2px}.table thead th,.table tbody td{padding:11px 12px}.card-body{padding:17px}.navbar .container-fluid{gap:12px;flex-wrap:wrap}.btn{max-width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}[data-reveal]{opacity:1;transform:none}}


/* Consistent Super Admin and subscription navigation */
.sa-body{margin:0;min-height:100vh;background:#f4f6fc;color:#1c2947}.sa-shell{min-height:100vh;display:flex}.sa-sidebar{position:fixed;inset:0 auto 0 0;width:264px;padding:23px 15px 16px;background:linear-gradient(180deg,#172344 0%,#202d55 60%,#182344 100%);display:flex;flex-direction:column;z-index:1035;color:#fff;box-shadow:12px 0 34px #1b2c5012}.sa-brand{display:flex;align-items:center;gap:11px;padding:3px 10px 26px;color:#fff;text-decoration:none;font-size:1rem;font-weight:850;letter-spacing:-.035em}.sa-brand:hover{color:#fff}.sa-brand small,.sub-brand small{display:block;font-size:.59rem;letter-spacing:.16em;font-weight:750;opacity:.62;margin-top:3px}.sa-brand-icon,.sub-brand-icon{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#7c8dff,#8e6bf1);box-shadow:0 9px 22px #6476ff35;font-size:1.1rem}.sa-nav-caption{padding:9px 12px;color:#8998c4;font-size:.66rem;font-weight:800;letter-spacing:.15em}.sa-link{display:flex;align-items:center;gap:13px;padding:12px 13px;margin:3px 0;border-radius:12px;text-decoration:none;color:#cbd4ef;font-size:.87rem;font-weight:680;transition:background .18s,color .18s,transform .18s}.sa-link i{width:19px;text-align:center;font-size:1rem}.sa-link:hover{background:#ffffff12;color:#fff;transform:translateX(2px)}.sa-link.active{color:#fff;background:linear-gradient(105deg,#5266e9,#7759dd);box-shadow:0 9px 24px #4859d43b}.sa-sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff19;padding-top:15px}.sa-admin-chip{display:flex;align-items:center;gap:10px;padding:8px 10px 14px;min-width:0}.sa-admin-avatar{width:36px;height:36px;flex:none;border-radius:12px;display:grid;place-items:center;background:#ffffff17;color:#dbe1ff}.sa-admin-chip b{display:block;max-width:164px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.79rem}.sa-admin-chip small{display:block;color:#9eadd4;font-size:.69rem;margin-top:2px}.sa-signout{color:#ffccd3}.sa-workarea{width:calc(100% - 264px);margin-left:264px;min-width:0}.sa-topbar{height:82px;position:sticky;top:0;z-index:1020;display:flex;align-items:center;gap:14px;padding:0 clamp(18px,3vw,38px);background:#ffffffed;backdrop-filter:blur(16px);border-bottom:1px solid #e8ecf5}.sa-eyebrow,.sub-eyebrow{font-size:.67rem;letter-spacing:.14em;font-weight:850;color:#7987a7}.sa-top-title{font-weight:850;font-size:1.05rem;letter-spacing:-.025em}.sa-top-user{margin-left:auto;color:#52617f;font-size:.82rem;font-weight:700;display:flex;align-items:center;gap:8px}.sa-top-user i{color:#6577e8}.sa-menu-toggle{display:none;border:1px solid #e4e8f2;background:#fff;border-radius:10px;width:40px;height:40px;color:#344365}.sa-main{padding:clamp(20px,3vw,38px);max-width:1600px;margin:0 auto}.sa-main>h1{margin-bottom:1rem}.subscription-body{min-height:100vh}.sub-topbar{position:sticky;top:0;z-index:1020;display:flex;align-items:center;gap:25px;min-height:78px;padding:12px clamp(16px,4vw,54px);background:#ffffffed;backdrop-filter:blur(18px);border-bottom:1px solid #e7ebf5;box-shadow:0 8px 25px #1c2b4d08}.sub-brand{display:flex;align-items:center;gap:10px;color:#1c2947;text-decoration:none;font-weight:850;letter-spacing:-.035em;white-space:nowrap}.sub-brand:hover{color:#4056ce}.sub-brand-icon{color:#fff;width:39px;height:39px;border-radius:12px;font-size:1rem}.sub-brand small{color:#7180a0;opacity:1;font-size:.55rem}.sub-nav{display:flex;align-items:center;gap:7px;margin-left:auto}.sub-nav a{display:flex;align-items:center;gap:8px;padding:11px 13px;border-radius:11px;color:#64718d;text-decoration:none;font-size:.84rem;font-weight:750;white-space:nowrap}.sub-nav a:hover,.sub-nav a.active{background:#eef1ff;color:#4358df}.sub-menu-toggle{display:none;margin-left:auto;width:42px;height:42px;border:1px solid #e3e8f3;border-radius:11px;background:#fff;color:#354364}.sub-main{max-width:1120px;margin:0 auto;padding:clamp(20px,4vw,46px)}.sub-page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.sub-page-heading h1{font-weight:850;letter-spacing:-.05em;font-size:clamp(1.7rem,3vw,2.3rem);margin:.35rem 0 .5rem}.sub-page-heading p{margin:0;color:#74819b}.sub-heading-icon{width:60px;height:60px;flex:none;display:grid;place-items:center;border-radius:19px;background:linear-gradient(135deg,#e6eaff,#f0eaff);color:#5267e6;font-size:1.45rem}.sub-main>.card{margin-bottom:22px}.sub-main .card-body h2{font-weight:800;letter-spacing:-.025em}.sub-main .table{min-width:640px}
@media(max-width:900px){.sa-sidebar{transform:translateX(-105%);transition:transform .24s ease;box-shadow:20px 0 50px #101d3b30}.sa-sidebar.is-open{transform:translateX(0)}.sa-workarea{width:100%;margin-left:0}.sa-menu-toggle{display:inline-grid;place-items:center}.sa-topbar{height:72px}.sa-top-user{font-size:0}.sa-top-user i{font-size:1rem}.sub-topbar{gap:12px}.sub-menu-toggle{display:grid;place-items:center}.sub-nav{display:none;position:absolute;top:calc(100% + 1px);left:0;right:0;padding:12px 16px 17px;background:#fff;border-bottom:1px solid #e7ebf5;box-shadow:0 15px 28px #1c2b4d12;align-items:stretch;flex-direction:column}.sub-nav.is-open{display:flex}.sub-nav a{padding:12px 14px}.sub-main{padding:22px 16px}}
@media(max-width:520px){.sa-main{padding:20px 14px}.sa-topbar{padding:0 14px}.sa-top-title{font-size:.92rem}.sa-brand{padding-bottom:20px}.sub-brand{font-size:.91rem}.sub-page-heading{align-items:flex-start}.sub-heading-icon{width:47px;height:47px;border-radius:14px;font-size:1.1rem}.sub-page-heading h1{font-size:1.65rem}.sub-main .table{min-width:590px}}


/* Subscription page resilience: explicit reset and high-contrast navigation */
.subscription-body{margin:0!important;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif!important;color:#182440!important;background:radial-gradient(ellipse at 90% 0%,rgba(112,133,255,.10),transparent 32%),#f4f6fb!important;line-height:1.55}
.subscription-body a{color:inherit}
.subscription-body .sub-topbar{box-sizing:border-box;width:100%;display:flex;flex-wrap:nowrap;align-items:center;gap:24px;padding:12px clamp(16px,4vw,54px);background:rgba(255,255,255,.96);border-bottom:1px solid #e5eaf4;box-shadow:0 8px 25px rgba(28,43,77,.06)}
.subscription-body .sub-brand{display:flex;align-items:center;gap:11px;flex:0 0 auto;text-decoration:none!important;color:#1c2947!important;font-size:1.03rem;font-weight:850;line-height:1.15}
.subscription-body .sub-brand-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;background:linear-gradient(135deg,#4358df,#7858df);color:#fff;border-radius:13px;font-size:1.05rem}
.subscription-body .sub-brand small{display:block;margin-top:4px;color:#78849d;font-size:.61rem;letter-spacing:.12em}
.subscription-body .sub-nav{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-left:auto}
.subscription-body .sub-nav a{display:inline-flex;align-items:center;gap:8px;padding:11px 13px;border-radius:11px;color:#64718d!important;text-decoration:none!important;font-size:.86rem;font-weight:700;white-space:nowrap}
.subscription-body .sub-nav a:hover,.subscription-body .sub-nav a.active{background:#eef1ff;color:#4358df!important}
.subscription-body .sub-menu-toggle{display:none;align-items:center;justify-content:center;margin-left:auto;width:42px;height:42px;border:1px solid #e3e8f3;border-radius:11px;background:#fff;color:#354364}
.subscription-body .sub-main{box-sizing:border-box;width:100%;max-width:1200px;margin:0 auto;padding:clamp(22px,4vw,48px)}
.subscription-body .sub-page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}
.subscription-body .sub-eyebrow{font-size:.72rem;letter-spacing:.14em;font-weight:800;color:#6f7d9a}
.subscription-body .sub-page-heading h1{color:#182440;font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.15;font-weight:850;letter-spacing:-.045em;margin:.45rem 0 .65rem}
.subscription-body .sub-page-heading p{margin:0;color:#74819b}
.subscription-body .sub-heading-icon{display:grid;place-items:center;width:60px;height:60px;flex:0 0 60px;border-radius:18px;background:linear-gradient(135deg,#e6eaff,#f0eaff);color:#5267e6;font-size:1.4rem}
.subscription-body .card{background:#fff;border:1px solid #e3e9f4!important;border-radius:18px!important;box-shadow:0 10px 34px rgba(25,42,82,.055)!important;overflow:hidden}
.subscription-body .card-body{padding:clamp(18px,2.2vw,28px)}
.subscription-body .card h2{font-size:1.12rem;font-weight:800;color:#1d2a48}
.subscription-body .form-label{font-weight:750;color:#4a5877;font-size:.86rem}
.subscription-body .form-control,.subscription-body .form-select{min-height:44px;border:1px solid #dfe5f0;border-radius:11px}
.subscription-body .btn{border-radius:11px;font-weight:750}
@media(max-width:900px){.subscription-body .sub-topbar{gap:12px}.subscription-body .sub-menu-toggle{display:inline-flex}.subscription-body .sub-nav{display:none;position:absolute;top:100%;left:0;right:0;padding:12px 16px 17px;background:#fff;border-bottom:1px solid #e7ebf5;box-shadow:0 15px 28px rgba(28,43,77,.12);align-items:stretch;flex-direction:column}.subscription-body .sub-topbar{position:sticky;top:0;z-index:1020}.subscription-body .sub-nav.is-open{display:flex}.subscription-body .sub-nav a{width:100%;padding:12px 14px}}
@media(max-width:520px){.subscription-body .sub-brand{font-size:.9rem}.subscription-body .sub-main{padding:22px 14px}.subscription-body .sub-page-heading{align-items:flex-start}.subscription-body .sub-heading-icon{width:46px;height:46px;flex-basis:46px}.subscription-body .sub-page-heading h1{font-size:1.65rem}}


/* Premium colour system refresh: dashboard cards, panels, badges and actions */
:root{--sra-blue:#4567f5;--sra-violet:#7856df;--sra-teal:#0c9f9a;--sra-amber:#e9a12b;--sra-rose:#e45c83;--sra-green:#169b72}
/* School dashboard statistic cards: each metric gets its own restrained colour identity */
.row.g-3.mb-4>.col-6.col-xl-3:nth-child(4n+1) .stat-card{--metric:#4567f5;--metric-soft:#edf1ff;--metric-glow:#dbe4ff}
.row.g-3.mb-4>.col-6.col-xl-3:nth-child(4n+2) .stat-card{--metric:#0c9f9a;--metric-soft:#e4f9f5;--metric-glow:#c8f1e9}
.row.g-3.mb-4>.col-6.col-xl-3:nth-child(4n+3) .stat-card{--metric:#8b5ce5;--metric-soft:#f2eaff;--metric-glow:#e8d9ff}
.row.g-3.mb-4>.col-6.col-xl-3:nth-child(4n+4) .stat-card{--metric:#e49a25;--metric-soft:#fff4df;--metric-glow:#ffe8bd}
.stat-card{--metric:#4567f5;--metric-soft:#edf1ff;--metric-glow:#dbe4ff;background:linear-gradient(145deg,#fff 0%,#fff 65%,var(--metric-soft) 160%);border:1px solid color-mix(in srgb,var(--metric) 15%,#fff);box-shadow:0 10px 28px rgba(27,43,81,.055),inset 0 3px 0 var(--metric);}
.stat-card:after{width:145px;height:145px;right:-48px;bottom:-62px;background:radial-gradient(circle,var(--metric-glow) 0%,var(--metric-soft) 48%,transparent 72%);opacity:.9}
.stat-head{color:#596783}.stat-icon{background:linear-gradient(145deg,var(--metric-soft),#fff);color:var(--metric);border:1px solid color-mix(in srgb,var(--metric) 14%,#fff);box-shadow:0 6px 14px color-mix(in srgb,var(--metric) 10%,transparent)}
.stat-number{color:#172442}.stat-foot{color:#77839b}.stat-card:hover{border-color:color-mix(in srgb,var(--metric) 32%,#fff);box-shadow:0 18px 36px color-mix(in srgb,var(--metric) 13%,transparent),inset 0 3px 0 var(--metric)}
/* Card panels gain a coloured top accent without overwhelming content */
.card{border-color:#e4e9f4;box-shadow:0 10px 30px rgba(26,42,78,.055);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.card:hover{border-color:#d7e0f2;box-shadow:0 15px 35px rgba(26,42,78,.09)}
.card-header{background:linear-gradient(100deg,#f5f7ff,#fff 75%);border-bottom:1px solid #e7ebf5;color:#26365b;position:relative}
.card-header:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#4567f5,#8b5ce5);border-radius:0 5px 5px 0}
/* Coloured quick-action buttons */
.card-body .btn-light.text-start{background:linear-gradient(110deg,#f7f9ff,#fff);border-color:#e4e9f4!important;color:#354361;transition:transform .18s,box-shadow .18s,border-color .18s}
.card-body .btn-light.text-start:hover{transform:translateX(3px);background:#f0f4ff;border-color:#cdd8ff!important;box-shadow:0 7px 16px rgba(65,100,230,.09)}
.card-body .btn-light.text-start i{display:inline-grid;place-items:center;width:29px;height:29px;border-radius:9px;background:#e9eeff;color:#4164e9!important}
.card-body .btn-light.text-start:nth-of-type(2) i{background:#e1f8f2;color:#0b9983!important}
.card-body .btn-light.text-start:nth-of-type(3) i{background:#f0e8ff;color:#8052d8!important}
.card-body .btn-light.text-start:nth-of-type(4) i{background:#fff0d7;color:#b87910!important}
/* Super Admin dashboard metric cards */
.sa-main .row.g-3.mb-4>.col-6:nth-child(4n+1) [data-reveal]{--sa-metric:#4567f5;--sa-soft:#edf1ff}
.sa-main .row.g-3.mb-4>.col-6:nth-child(4n+2) [data-reveal]{--sa-metric:#0c9f9a;--sa-soft:#e4f9f5}
.sa-main .row.g-3.mb-4>.col-6:nth-child(4n+3) [data-reveal]{--sa-metric:#8b5ce5;--sa-soft:#f2eaff}
.sa-main .row.g-3.mb-4>.col-6:nth-child(4n+4) [data-reveal]{--sa-metric:#e49a25;--sa-soft:#fff4df}
.sa-main .row.g-3.mb-4 [data-reveal]{border:1px solid color-mix(in srgb,var(--sa-metric,#4567f5) 18%,white)!important;border-radius:18px!important;background:linear-gradient(145deg,#fff,var(--sa-soft,#edf1ff) 180%);box-shadow:inset 0 3px 0 var(--sa-metric,#4567f5),0 10px 26px rgba(25,42,82,.055)!important;overflow:hidden}
.sa-main .row.g-3.mb-4 [data-reveal] .text-secondary{font-weight:750;color:#687590!important}
.sa-main .row.g-3.mb-4 [data-reveal] .display-6{color:var(--sa-metric,#4567f5);font-weight:850!important;letter-spacing:-.05em}
/* Subscription cards and renewal plan options */
.subscription-body .sub-main>.card{border-top:3px solid #6578f1!important}
.subscription-body .sub-main>.card:nth-of-type(2){border-top-color:#0c9f9a!important}
.subscription-body .sub-main>.card:nth-of-type(3){border-top-color:#8b5ce5!important}
.subscription-body .sub-heading-icon{background:linear-gradient(135deg,#e3eaff,#eee5ff);color:#5b5cde;box-shadow:0 9px 22px rgba(82,103,230,.12)}
/* Useful status colour hierarchy */
.badge-soft{background:#e9eeff;color:#3857d8;border:1px solid #dce4ff}
.badge-success,.text-bg-success{background:#dff8ee!important;color:#117c5c!important}
.badge-warning,.text-bg-warning{background:#fff1d5!important;color:#9b6509!important}
.badge-danger,.text-bg-danger{background:#ffe5eb!important;color:#b62e4d!important}
.alert-info{background:linear-gradient(105deg,#eaf1ff,#f4f1ff);color:#314b8c;border:1px solid #d8e3ff}
.alert-success{background:linear-gradient(105deg,#e0f8ee,#f0fcf7);color:#17694f;border:1px solid #bcebd8}
.alert-warning{background:linear-gradient(105deg,#fff3dc,#fff9ed);color:#8a5a0c;border:1px solid #f5dfb2}
.alert-danger{background:linear-gradient(105deg,#ffebef,#fff5f7);color:#a52b47;border:1px solid #f6cbd5}
/* Tables: subtle coloured headings and selected-row clarity */
.table thead th{background:linear-gradient(100deg,#f0f4ff,#f8faff);color:#62708e}
.table tbody tr:hover>*{background:#f1f5ff}
/* Keep premium cards accessible and compact on small screens */
@media(max-width:560px){.stat-card{background:linear-gradient(145deg,#fff 0%,#fff 62%,var(--metric-soft,#edf1ff) 170%);box-shadow:inset 0 3px 0 var(--metric,#4567f5),0 7px 20px rgba(27,43,81,.05)}.stat-number{font-size:27px}.card-header{padding:15px 17px}.card-body{padding:17px}}


/* Developer attribution footer */
.developer-footer{display:flex;align-items:center;justify-content:center;gap:.45rem;flex-wrap:wrap;padding:18px 20px;margin:24px 0 0;color:#64748b;font-size:.84rem;text-align:center;border-top:1px solid rgba(148,163,184,.22);background:linear-gradient(135deg,rgba(238,242,255,.75),rgba(240,253,250,.72));}
.developer-footer strong{color:#334155;font-weight:750}.developer-footer a{color:#3457d5;text-decoration:none;font-weight:700}.developer-footer a:hover{text-decoration:underline}.developer-footer-separator{color:#94a3b8}
@media(max-width:575px){.developer-footer{gap:.35rem;padding:15px 12px;font-size:.78rem}.developer-footer-separator{display:inline}}

/* Developer attribution: keep visible on every panel and prevent content overlap. */
.developer-footer{position:fixed!important;left:260px;right:0;bottom:0;z-index:1040;min-height:48px;margin:0!important;padding:11px 18px!important;box-shadow:0 -6px 22px rgba(20,35,70,.07);backdrop-filter:blur(12px);border-top:1px solid rgba(148,163,184,.28);}
body{padding-bottom:58px!important}
.subscription-body .developer-footer{left:0;right:0}
.sa-body .developer-footer{left:264px;right:0}
@media(max-width:900px){.developer-footer,.sa-body .developer-footer{left:0;right:0;min-height:44px;padding:10px 12px!important}body{padding-bottom:54px!important}}


/* Developer attribution portfolio link */
.developer-footer .developer-portfolio{color:inherit;text-decoration:none;font-weight:700;transition:color .2s ease,opacity .2s ease;}
.developer-footer .developer-portfolio:hover,.developer-footer .developer-portfolio:focus-visible{color:var(--primary,#3457d5);text-decoration:underline;opacity:.95;}
.developer-footer .developer-portfolio:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:3px;}

/* Comprehensive feature centre */
.premium-hero{background:linear-gradient(135deg,#101d45 0%,#2457d6 58%,#0e9488 100%);color:#fff;box-shadow:0 16px 38px rgba(31,65,150,.18)}.premium-hero .eyebrow{color:#dce7ff;letter-spacing:.12em}.feature-tile{border:1px solid rgba(100,116,139,.18);border-radius:18px;box-shadow:0 7px 22px rgba(25,40,75,.055);transition:transform .18s ease,box-shadow .18s ease}.feature-tile:hover{transform:translateY(-3px);box-shadow:0 15px 32px rgba(25,40,75,.13)}.feature-icon{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border-radius:15px;background:color-mix(in srgb,var(--feature-color) 12%,white);color:var(--feature-color);font-size:1.15rem}.feature-tile .card-body{padding:1.25rem}@media print{.sidebar,.topbar,.developer-footer,button,.btn{display:none!important}.main-content{margin:0!important;padding:0!important}}


/* Hide developer attribution on sign-in screens */
body:has(.auth-shell) .developer-footer, body:has(.auth-card) .developer-footer { display: none !important; }

/* UI/UX refinement — accessible, calmer hierarchy and responsive workspace */
:root{--ux-indigo:#4f61e8;--ux-violet:#8061e8;--ux-ink:#172440;--ux-muted:#71809b;--ux-line:#e5eaf4;--ux-surface:#fff}
html{scroll-padding-top:96px}
body{background-color:#f5f7fc;background-image:radial-gradient(ellipse at 92% 0%,rgba(104,124,255,.09),transparent 30%),radial-gradient(ellipse at 0% 60%,rgba(120,96,232,.035),transparent 26%)}
.sidebar{background:radial-gradient(ellipse at 10% 0%,rgba(91,117,218,.25),transparent 40%),linear-gradient(180deg,#151f3d 0%,#10182f 100%);border-right:1px solid rgba(255,255,255,.06);scrollbar-width:thin;scrollbar-color:#46547a transparent}
.brand{padding-bottom:24px}.brand-icon{border-radius:15px;background:linear-gradient(135deg,#7188ff,#7858db);box-shadow:0 9px 25px rgba(90,103,230,.3)}
.nav-caption{margin-top:20px;color:#8d9dc5}.side-link{min-height:40px;font-size:12.5px;letter-spacing:.005em}.side-link i{flex:0 0 18px}.side-link.active{background:linear-gradient(105deg,#536be9,#7159d8);box-shadow:0 8px 20px rgba(58,76,190,.24);border-color:#ffffff12}.side-link:focus-visible{outline:2px solid #aebcff!important;outline-offset:2px}
.main-content{padding-top:30px;padding-bottom:48px}.topbar{position:relative;padding:0 0 20px;margin-bottom:27px;border-bottom:1px solid rgba(222,228,241,.8)}.topbar h1{font-size:clamp(22px,2vw,29px);line-height:1.2}.eyebrow{line-height:1.4}.top-user{padding:7px 10px 7px 13px;background:#fff;border:1px solid #e9edf6;border-radius:999px;box-shadow:0 3px 10px rgba(27,44,83,.035)}.status-dot{width:7px;height:7px}
.card,.stat-card{border-color:#e6ebf5!important;box-shadow:0 5px 22px rgba(28,45,86,.035)!important}.card:hover{box-shadow:0 12px 30px rgba(28,45,86,.075)!important}.card-header{display:flex;align-items:center;gap:10px;min-height:55px;background:linear-gradient(180deg,#fff,#fbfcff);font-size:13px}.card-body{min-width:0}.stat-card{border-radius:19px!important}.stat-number{font-size:clamp(25px,2.5vw,33px)}
.btn{min-height:40px;gap:7px}.btn-sm{min-height:32px;padding:7px 10px;border-radius:9px}.btn-primary{background:linear-gradient(120deg,#4e68ed,#7659df);box-shadow:0 5px 13px rgba(73,91,220,.17)}.btn-primary:focus-visible,.btn-success:focus-visible,.btn-danger:focus-visible{outline:3px solid #b6c3ff!important;outline-offset:2px}.btn:disabled{opacity:.68;transform:none;box-shadow:none}
.form-label{display:block;line-height:1.35}.form-control,.form-select{min-height:44px}.form-text,.form-hint,.small-note{line-height:1.55}.input-group>.form-control,.input-group>.form-select{min-width:0}.form-check-input{cursor:pointer}.form-check-label{cursor:pointer;color:#4b5875}
.table-responsive{border:1px solid #edf0f7;background:#fff}.table thead th{position:relative;background:#f7f9fe;color:#687692;font-size:10px;letter-spacing:.07em}.table tbody td{font-size:12.5px;line-height:1.45}.table tbody tr:hover>*{background:#f6f8ff}.table td .btn{white-space:nowrap}.table td .form-control,.table td .form-select{min-width:76px}.badge{line-height:1.25}.alert{padding:14px 16px}.alert-dismissible .btn-close{padding:1rem}
.modal-backdrop.show{opacity:.48}.modal-content{overflow:hidden}.modal-title{font-weight:800;letter-spacing:-.02em}.dropdown-menu{min-width:190px}.empty-state{border:1px dashed #dfe5f2;border-radius:15px;background:linear-gradient(180deg,#fcfdff,#f8faff);margin:12px 0}.developer-footer{display:flex;justify-content:center;align-items:center;gap:9px;flex-wrap:wrap;margin-left:var(--sidebar);padding:15px 24px;border-top:1px solid #e7ebf4;background:#fff;color:#7b879f;font-size:11px}.developer-footer a{color:#4b60d8;font-weight:750;text-decoration:none}.developer-footer a:hover{text-decoration:underline}.developer-footer-separator{color:#c4ccdc}
@media(max-width:900px){.main-content{padding-top:22px}.developer-footer{margin-left:0}.topbar{padding-bottom:17px}}
@media(max-width:560px){.main-content{padding:16px 12px 28px}.topbar{align-items:flex-start;gap:10px;margin-bottom:20px}.heading-group{min-width:0;gap:9px}.topbar h1{font-size:21px;overflow-wrap:anywhere}.top-user{padding:5px;background:transparent;border:0;box-shadow:none}.card-header{align-items:flex-start;flex-wrap:wrap}.card-body{padding:15px}.table-responsive{border-radius:12px}.table thead th{font-size:9px;padding:10px}.table tbody td{font-size:11.5px;padding:10px}.developer-footer{padding:13px 10px;font-size:10px;gap:6px}.btn{white-space:normal}.auth-card{max-width:440px}}
@media(prefers-reduced-motion:reduce){.side-link,.card,.stat-card,.btn{transition:none!important}}


/* Fix: prevent School Configuration's right-hand guidance card from clipping its text */
.subject-library-card{
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
  align-self:flex-start;
}
.subject-library-card .card-body{
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
  padding-bottom:1.5rem;
}
.subject-library-card ul{
  padding-left:1.25rem;
  overflow-wrap:anywhere;
  word-break:normal;
}
.subject-library-card li{
  line-height:1.6;
  white-space:normal;
}
@media (max-width:1199.98px){
  .subject-library-card{margin-top:1rem}
}

/* SRAPlus official brand mark */
.sa-brand-icon{overflow:hidden;background:#fff!important;padding:2px}.sa-brand-icon img{width:100%;height:100%;object-fit:contain;display:block;border-radius:10px}.subscription-body .sub-brand-icon{overflow:hidden;background:#fff!important;padding:2px}.subscription-body .sub-brand-icon img{width:100%;height:100%;object-fit:contain;display:block;border-radius:10px}

/* SRAPlus brand sizing: consistent, contained logo across every interface */
.brand{gap:10px;align-items:center;min-height:60px;padding:3px 9px 16px;overflow:hidden}
.brand-icon{width:42px!important;height:42px!important;min-width:42px;max-width:42px;flex:0 0 42px!important;overflow:hidden;background:#fff!important;padding:2px!important;border-radius:10px!important;display:grid;place-items:center}
.brand-icon img{display:block!important;width:100%!important;height:100%!important;max-width:100%;max-height:100%;object-fit:contain!important}
.auth-logo-image{display:block;width:min(100%,260px)!important;max-height:190px!important;height:auto!important;object-fit:contain!important;margin:0 auto 18px!important}
.sa-brand{gap:10px;padding-bottom:18px;min-width:0}
.sa-brand-icon{width:42px!important;height:42px!important;min-width:42px;flex:0 0 42px!important;overflow:hidden;background:#fff!important;padding:2px!important;border-radius:10px!important;display:grid;place-items:center}
.sa-brand-icon img{display:block;width:100%;height:100%;object-fit:contain}
.sub-brand{gap:10px;min-width:0}
.sub-brand-icon{width:42px!important;height:42px!important;min-width:42px;flex:0 0 42px!important;overflow:hidden;background:#fff!important;padding:2px!important;border-radius:10px!important;display:grid;place-items:center}
.sub-brand-icon img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:560px){.brand{padding-bottom:12px}.auth-logo-image{width:min(100%,220px)!important;max-height:160px!important}}

/* Keep SRAPlus marks legible without dominating compact/mobile navigation */
.brand-icon img,.sa-brand-icon img,.sub-brand-icon img{object-fit:contain!important;max-width:100%;max-height:100%}
@media(max-width:560px){.auth-logo-image{width:min(100%,175px)!important;max-height:125px!important}.sa-brand small,.sub-brand small{font-size:.52rem;letter-spacing:.11em}.sa-brand-icon,.sub-brand-icon{padding:3px!important}}

/* Super Admin sidebar: keep Sign out always visible */
.sa-sidebar{height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ffffff30 transparent}
.sa-sidebar-bottom{position:sticky;bottom:0;z-index:2;margin-top:auto;padding:12px 0 6px;background:#192545;flex-shrink:0}
.sa-sidebar .sa-link{flex-shrink:0}
@media(max-height:760px){.sa-brand{padding-bottom:10px}.sa-nav-caption{padding:4px 12px}.sa-link{padding:9px 13px;margin:2px 0}.sa-admin-chip{padding:4px 8px!important;margin-bottom:4px!important}.sa-admin-chip small{display:none}}

/* ===== Dashboard hero: Schemes of Work & Lesson Planning ===== */
.planning-hero{position:relative;overflow:hidden;display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:clamp(20px,2.6vw,30px) clamp(20px,3vw,34px);border-radius:22px;color:#fff;background:linear-gradient(120deg,#3f55d8 0%,#6a52dc 55%,#9356e0 100%);box-shadow:0 20px 44px -14px rgba(87,70,214,.55);isolation:isolate}
.planning-hero:before{content:"";position:absolute;right:-70px;top:-90px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.26),transparent 70%);z-index:-1}
.planning-hero:after{content:"";position:absolute;left:34%;bottom:-120px;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.10),transparent 68%);z-index:-1}
.planning-hero__icon{flex:0 0 72px;width:72px;height:72px;border-radius:20px;display:grid;place-items:center;font-size:1.9rem;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.32);backdrop-filter:blur(6px);box-shadow:0 10px 24px rgba(20,20,80,.22);animation:planningFloat 4.5s ease-in-out infinite}
.planning-hero__text{flex:1 1 300px;min-width:0}
.planning-hero__tag{display:inline-flex;align-items:center;font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;padding:4px 11px;border-radius:999px;background:rgba(255,255,255,.2);margin-bottom:8px}
.planning-hero h2{margin:0 0 5px;font-size:clamp(1.3rem,2.2vw,1.7rem);font-weight:850;letter-spacing:-.03em;color:#fff}
.planning-hero p{margin:0;opacity:.92;font-size:.93rem;max-width:560px}
.planning-hero__stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.planning-hero__stats span{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:750;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.26)}
.planning-hero__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.planning-hero__btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 22px;border-radius:14px;font-weight:800;font-size:.95rem;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.planning-hero__btn--primary{background:#fff;color:#4153d6;box-shadow:0 10px 24px rgba(20,20,80,.25)}
.planning-hero__btn--primary:hover{transform:translateY(-2px) scale(1.03);color:#3345c4;box-shadow:0 16px 30px rgba(20,20,80,.32)}
.planning-hero__btn--ghost{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.45);color:#fff}
.planning-hero__btn--ghost:hover{background:rgba(255,255,255,.28);color:#fff;transform:translateY(-2px)}
.planning-hero__more{color:#fff;opacity:.9;font-weight:700;font-size:.85rem;text-decoration:none;padding:6px 4px}
.planning-hero__more:hover{opacity:1;text-decoration:underline;color:#fff}
@keyframes planningFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(prefers-reduced-motion:reduce){.planning-hero__icon{animation:none}}
@media(max-width:700px){.planning-hero__actions{width:100%}.planning-hero__btn{flex:1 1 100%}.planning-hero__more{width:100%;text-align:center}}

/* ---- Collapsible sidebar groups (school panel) ---- */
.sidebar details.nav-group{margin:0}
.sidebar details.nav-group>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:14px 6px 4px;padding:7px 8px;border-radius:9px;user-select:none}
.sidebar details.nav-group>summary::-webkit-details-marker{display:none}
.sidebar details.nav-group>summary:hover{background:#ffffff0b;color:#c5d0ee}
.sidebar details.nav-group>summary:focus-visible{outline:2px solid #aebcff;outline-offset:2px}
.sidebar details.nav-group>summary i:not(.nav-chevron){opacity:.8;width:15px;text-align:center}
.sidebar .nav-chevron{font-size:9px;opacity:.7;transition:transform .18s}
.sidebar details.nav-group:not([open]) .nav-chevron{transform:rotate(-90deg)}
.sidebar details.nav-group[open]>.side-link{animation:navIn .16s ease}
@keyframes navIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.sidebar details.nav-group[open]>.side-link{animation:none}}
