:root{--green:#16865d;--green2:#0d6848;--ink:#172b27;--muted:#72817c;--line:#e4ece8;--bg:#f4f8f6;--card:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 Inter,system-ui,-apple-system,Segoe UI,sans-serif}.shell{display:flex;min-height:100vh}.sidebar{width:236px;flex:0 0 236px;background:#103f31;color:#e5f6ed;padding:22px 14px;display:flex;flex-direction:column}.brand{font-weight:800;font-size:21px;color:white;text-decoration:none;padding:5px 12px 26px}.sidebar nav{display:grid;gap:4px}.sidebar nav a{padding:10px 12px;color:#c4ddd2;text-decoration:none;border-radius:9px;font-size:13px}.sidebar nav a:hover,.sidebar nav a.active{background:#1c654b;color:#fff}.side-foot{margin-top:auto;color:#9ec6b5;font-size:11px;padding:20px 12px 4px}.main{min-width:0;flex:1}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 28px;position:sticky;top:0;z-index:5}.topbar strong{font-size:14px}.content{padding:26px;max-width:1600px;margin:auto}.hero{padding:28px 30px;background:linear-gradient(120deg,#145b42,#21865d);border-radius:18px;color:white;display:flex;justify-content:space-between;align-items:center;gap:20px}.hero h1{font-size:25px;font-weight:750;margin:6px 0}.hero p{margin:0;color:#d2eee0}.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:800;color:#7fdfb4}.stat,.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 5px 18px #153f3010}.stat{padding:19px;display:grid;gap:7px}.stat span,.stat small{font-size:12px;color:var(--muted)}.stat strong{font-size:27px;line-height:1.1}.panel{overflow:hidden}.panel-head,.page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px}.panel-head{border-bottom:1px solid var(--line)}.panel-head h5{font-size:15px;margin:0 0 4px}.panel-head p,.page-head p{font-size:12px;color:var(--muted);margin:0}.page-head{padding:0 0 18px}.page-head h1{font-size:22px;font-weight:750;margin:0 0 5px}.quick-grid{padding:18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.quick-grid a{border:1px solid var(--line);border-radius:10px;padding:15px;text-decoration:none;color:var(--ink);font-weight:600;font-size:12px}.quick-grid a span{float:right;color:var(--green)}.quick-grid a:hover{border-color:#80c5a7;background:#f5fcf8}.table{font-size:12px;margin:0}.table thead th{background:#f7faf8;color:#74827d;font-weight:650;text-transform:uppercase;font-size:10px;letter-spacing:.4px;white-space:nowrap;border-bottom:1px solid var(--line)}.table td,.table th{padding:13px 14px;border-color:#edf2ef}.btn{font-size:12px;border-radius:8px;padding:8px 12px}.btn-success{background:var(--green);border-color:var(--green)}.btn-success:hover{background:var(--green2)}.search{max-width:280px;font-size:12px}.form-panel{padding:24px}.form-control,.form-select{font-size:13px;border-color:#dce7e1;border-radius:8px;padding:10px 12px}.form-label{font-size:12px;font-weight:650}.detail{border-bottom:1px solid var(--line);padding:12px 18px}.detail small{display:block;color:var(--muted);text-transform:capitalize}.detail div{font-weight:600;margin-top:4px}.auth-bg{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 10% 10%,#d5f3e4,transparent 35%),#f3f8f5}.auth-card{background:white;border:1px solid var(--line);border-radius:18px;padding:30px;width:min(100%,560px);box-shadow:0 20px 70px #164a3218}.auth-card h1{font-size:23px;font-weight:800;margin:7px 0}.auth-card p{color:var(--muted);font-size:12px}.success-icon{margin:0 auto 15px;border-radius:50%;width:52px;height:52px;background:#e0f7e9;color:var(--green);font-size:30px}.pagination{font-size:12px}.pagination .page-link{color:var(--green)}@media(max-width:900px){.sidebar{width:70px;flex-basis:70px;padding:15px 7px}.brand{font-size:0;padding:8px 12px 24px}.brand:first-letter{font-size:22px}.sidebar nav a{font-size:0;text-align:center;padding:12px 3px}.sidebar nav a:first-letter{font-size:14px}.side-foot{display:none}.content{padding:16px}.topbar{padding:0 15px}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.hero{padding:22px;align-items:flex-start;flex-direction:column}.hero h1{font-size:21px}.page-head{align-items:flex-start}.topbar{height:66px}.topbar small{display:none!important}.quick-grid{grid-template-columns:1fr 1fr}.panel-head{align-items:flex-start;flex-direction:column}.search{max-width:none;width:100%}.auth-card{padding:22px}}

.iframe-mode .sidebar,.iframe-mode .topbar{display:none}.iframe-mode .content{padding:12px}.iframe-mode .shell{display:block}

/* EduNova responsive workspace polish */
.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#e7f6f0;color:#14866d}.sidebar-caption{font-size:.66rem;letter-spacing:1.5px;font-weight:800;color:#8290a2;padding:20px 14px 8px}.side-nav{display:flex;flex-direction:column;gap:4px}.side-nav a{border-radius:10px}.side-nav a:hover{background:#eff7f4;color:#14866d}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#31b78d;margin-right:7px}.topbar-heading{display:flex;flex-direction:column;gap:2px}.topbar-heading small{font-size:.74rem;color:#8190a2}.user-chip{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none;font-size:.85rem}.avatar-mini{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e6f4ef;color:#11765f;font-size:.8rem;font-weight:800}.iframe-mode .sidebar,.iframe-mode .topbar{display:none}.iframe-mode .main{margin:0;width:100%}@media(max-width:767px){.topbar{gap:10px;flex-wrap:wrap}.topbar .ms-auto{gap:8px!important}.user-chip span:last-child{display:none}.content{padding:16px!important}}

/* EduNova responsive workspace polish */
.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#e7f6f0;color:#14866d}.sidebar-caption{font-size:.66rem;letter-spacing:1.5px;font-weight:800;color:#8290a2;padding:20px 14px 8px}.side-nav{display:flex;flex-direction:column;gap:4px}.side-nav a{border-radius:10px}.side-nav a:hover{background:#eff7f4;color:#14866d}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#31b78d;margin-right:7px}.topbar-heading{display:flex;flex-direction:column;gap:2px}.topbar-heading small{font-size:.74rem;color:#8190a2}.user-chip{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none;font-size:.85rem}.avatar-mini{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e6f4ef;color:#11765f;font-size:.8rem;font-weight:800}.iframe-mode .sidebar,.iframe-mode .topbar{display:none}.iframe-mode .main{margin:0;width:100%}@media(max-width:767px){.topbar{gap:10px;flex-wrap:wrap}.topbar .ms-auto{gap:8px!important}.user-chip span:last-child{display:none}.content{padding:16px!important}}

/* Compact premium school UI: legible, icon-led and mobile friendly. */
html{font-size:14px}body{font-size:.9rem;line-height:1.45}.sidebar{font-size:.84rem}.side-nav a{display:flex;align-items:center;gap:.72rem;padding:.62rem .78rem;margin:.12rem .45rem;border-radius:.55rem;font-size:.83rem;line-height:1.25}.side-nav a .bi{font-size:1.05rem;width:1.25rem;min-width:1.25rem;text-align:center;opacity:.9}.side-nav a span{min-width:0}.sidebar-caption{font-size:.66rem;letter-spacing:.11em}.topbar{min-height:62px}.topbar-heading strong{font-size:1rem}.topbar-heading small{font-size:.72rem}.content{padding:1.1rem}.btn{font-size:.82rem}.form-control,.form-select{font-size:.86rem;padding:.48rem .65rem}.table{font-size:.81rem}.table>:not(caption)>*>*{padding:.52rem .58rem}.card-title,h2,h3{letter-spacing:-.01em}.portal-welcome{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 1.25rem;border-radius:1rem;color:#fff;background:linear-gradient(115deg,#145b42,#16865d);box-shadow:0 8px 24px #145b4216}.portal-welcome p{font-size:.82rem;color:#d7e9eb}.eyebrow{display:block;font-size:.65rem;letter-spacing:.15em;font-weight:700;color:#b9e7d8;margin-bottom:.4rem}.portal-student-chip{display:flex;align-items:center;gap:.7rem;padding:.7rem .9rem;background:#ffffff16;border:1px solid #ffffff2e;border-radius:.75rem;white-space:nowrap}.portal-student-chip>.bi{font-size:1.6rem;color:#d8e6a8}.portal-student-chip span{font-size:.85rem;font-weight:700}.portal-student-chip small{display:block;font-size:.72rem;color:#d7e9eb;font-weight:400}.portal-stat{height:100%;min-height:94px;padding:.85rem 1rem;border:1px solid #e4ebef;border-radius:.8rem;background:#fff;display:flex;flex-direction:column;gap:.2rem;box-shadow:0 3px 12px #183b5010}.portal-stat>.bi{font-size:1.15rem;color:#16865d}.portal-stat span{font-size:.75rem;color:#637487}.portal-stat strong{font-size:1.35rem;line-height:1.2;color:#1e3448}.portal-stat-contact strong{font-size:.95rem}.portal-stat-contact small{font-size:.74rem;color:#68798b}.portal-panel{height:100%;background:#fff;border:1px solid #e4ebef;border-radius:.85rem;padding:1rem 1.05rem;box-shadow:0 3px 14px #183b5009}.portal-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.85rem}.portal-panel-head h2{font-size:.98rem;font-weight:700;margin:0;color:#203a4e}.portal-panel-head h2 .bi{color:#16865d;margin-right:.4rem}.portal-panel-head>span{font-size:.72rem;color:#738394}.portal-table{margin-bottom:.4rem}.portal-table thead th{font-size:.7rem;text-transform:uppercase;letter-spacing:.035em;color:#6d7d8b;background:#f6f9fa;white-space:nowrap}.portal-table td{vertical-align:middle}.portal-table a{color:#16865d;text-decoration:none}.portal-table a:hover{text-decoration:underline}.portal-note{font-size:.74rem;color:#617588;background:#f2f7f7;padding:.65rem .75rem;border-radius:.55rem}.portal-note .bi{color:#16865d;margin-right:.35rem}.portal-empty{font-size:.82rem;color:#718091;background:#f7f9fa;border:1px dashed #d9e3e8;border-radius:.65rem;padding:1rem}.contact-row{display:flex;gap:.7rem;align-items:center;padding:.7rem 0;border-bottom:1px solid #edf1f3}.contact-row:last-of-type{border-bottom:0}.contact-avatar,.classmate-avatar,.class-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:.7rem;background:#e9f5f2;color:#16865d;font-size:1.05rem;flex-shrink:0}.contact-row strong,.contact-row small,.contact-row a{display:block}.contact-row strong{font-size:.84rem;color:#24483a}.contact-row small,.contact-row a{font-size:.75rem}.contact-row small{color:#758394}.contact-row a{color:#16865d;text-decoration:none}.portal-muted{font-size:.76rem;color:#728191}.classmate-card{display:flex;gap:.7rem;height:100%;padding:.8rem;border:1px solid #e7edf0;border-radius:.7rem;background:#fff}.classmate-info{min-width:0}.classmate-info>strong,.classmate-info>small{display:block}.classmate-info>strong{font-size:.84rem;color:#24483a}.classmate-info>small{font-size:.72rem;color:#758394}.guardian-lines{display:flex;flex-direction:column;gap:.25rem;margin-top:.45rem;font-size:.74rem;overflow-wrap:anywhere}.guardian-lines a{color:#16865d;text-decoration:none}.guardian-lines .bi{margin-right:.2rem}.exam-result-card{padding:.85rem;border:1px solid #e6edf0;border-radius:.75rem;margin-bottom:.85rem}.exam-result-top{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:.45rem}.exam-result-top strong,.exam-result-top small{display:block}.exam-result-top strong{font-size:.88rem}.exam-result-top small{font-size:.73rem;color:#748394}.exam-result-total{text-align:right}.exam-result-total strong{font-size:.9rem;color:#203a4e}.result-summary-pills{display:flex;gap:.4rem;margin:.5rem 0}.pass-pill,.fail-pill{display:inline-flex;align-items:center;padding:.2rem .48rem;border-radius:99px;font-size:.7rem;font-weight:700}.pass-pill{background:#e7f6ee;color:#18744c}.fail-pill{background:#fff0ee;color:#b33e38}.teacher-class-link{display:flex;align-items:center;gap:.7rem;padding:.7rem 0;border-bottom:1px solid #edf1f3;text-decoration:none;color:#24483a}.teacher-class-link:last-of-type{border-bottom:0}.teacher-class-link strong,.teacher-class-link small{display:block}.teacher-class-link strong{font-size:.84rem}.teacher-class-link small{font-size:.72rem;color:#758394}.teacher-class-link>.bi:last-child{color:#748394}.portal-student-chip .bi,.portal-panel .bi,.portal-stat .bi{flex-shrink:0}@media(max-width:767px){.content{padding:.7rem}.portal-welcome{align-items:flex-start;flex-direction:column;padding:1rem}.portal-student-chip{white-space:normal}.portal-panel{padding:.8rem}.portal-panel-head{align-items:flex-start}.exam-result-top{align-items:flex-start}.topbar{gap:.5rem}.topbar-heading small{display:none}.side-nav a{padding:.7rem .75rem}.portal-stat{min-height:88px}}@media print{.sidebar,.topbar,.portal-welcome button,.btn,.portal-note{display:none!important}.main,.content{padding:0!important;margin:0!important}.portal-panel,.exam-result-card{box-shadow:none;break-inside:avoid}.portal-welcome{background:#fff;color:#000;padding:0}.portal-welcome p{color:#333}}

/* Compact, consistent EduNova shell */
body{font-size:12.5px}.sidebar{width:224px;flex-basis:224px;padding:17px 11px}.brand{font-size:18px;padding:4px 10px 20px}.sidebar-caption{font-size:9px;letter-spacing:.8px;color:#82b5a0;padding:10px 12px 12px;font-weight:800}.sidebar nav{gap:3px}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;font-size:12px;line-height:1.35}.sidebar nav a i{width:17px;min-width:17px;text-align:center;font-size:14px}.side-foot{font-size:10px}.topbar{height:64px;padding:0 20px}.content{padding:20px;max-width:1500px}.page-head h1{font-size:20px}.stat strong{font-size:23px}.panel-head,.page-head{padding:16px 18px}.form-panel{padding:20px}.table td,.table th{padding:10px 12px}.sidebar nav a span{min-width:0}@media(max-width:900px){.sidebar{width:224px;flex-basis:224px;position:fixed;inset:0 auto 0 0;z-index:1000;transform:translateX(-100%);transition:transform .2s ease;overflow-y:auto}.sidebar.is-open{transform:translateX(0)}.brand{font-size:18px}.sidebar nav a{font-size:12px;text-align:left}.topbar{padding:0 12px}.content{padding:14px}}

/* Shared compact responsive tables, pagination and profile tabs */
body { font-family: 'Inter', 'Segoe UI', sans-serif; font-size: .875rem; }
.table-responsive { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table { font-size: .82rem; vertical-align: middle; }
.table thead th { white-space: nowrap; font-size: .74rem; text-transform: uppercase; letter-spacing: .035em; color: #64748b; background: #f8fafc; }
.table td, .table th { padding: .7rem .8rem; }
.pagination { display:flex; flex-wrap:wrap; gap:.25rem; justify-content:flex-end; margin:0; }
.pagination .page-link { border-radius:.5rem; border:1px solid #e2e8f0; color:#475569; font-size:.8rem; padding:.4rem .65rem; }
.pagination .page-item.active .page-link { background:#16865d; border-color:#16865d; color:#fff; }
.pagination .page-item.disabled .page-link { color:#94a3b8; }
.profile-tabs { border-bottom:1px solid #e2e8f0; gap:.25rem; }
.profile-tabs .nav-link { white-space:nowrap; font-size:.82rem; color:#64748b; border-radius:.55rem .55rem 0 0; }
.profile-tabs .nav-link.active { color:#16865d; font-weight:700; border-color:#e2e8f0 #e2e8f0 #fff; }
.btn { font-size:.82rem; }
@media(max-width:767px) { .table td,.table th { padding:.55rem .6rem; } .page-head { gap:.75rem; align-items:flex-start; flex-wrap:wrap; } .pagination { justify-content:center; } }

/* School navigation refinement: scrollable sidebar, persistent desktop collapse, green palette */
.sidebar{height:100vh;min-height:0;position:sticky;top:0;overflow:hidden;transition:width .22s ease,flex-basis .22s ease;padding-bottom:10px}.sidebar .side-nav{min-height:0;overflow-y:auto;overflow-x:hidden;flex:1;padding:0 2px 12px;scrollbar-width:thin;scrollbar-color:#47846b #103f31}.sidebar .side-nav::-webkit-scrollbar{width:6px}.sidebar .side-nav::-webkit-scrollbar-thumb{background:#47846b;border-radius:8px}.sidebar .side-foot{flex-shrink:0}.shell.sidebar-collapsed .sidebar{width:76px;flex-basis:76px;padding-left:7px;padding-right:7px}.shell.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}.shell.sidebar-collapsed .brand-name,.shell.sidebar-collapsed .sidebar-caption,.shell.sidebar-collapsed .side-nav a span,.shell.sidebar-collapsed .side-foot{display:none}.shell.sidebar-collapsed .side-nav a{justify-content:center;margin:2px 0;padding:11px 4px}.shell.sidebar-collapsed .side-nav a .bi{width:auto;min-width:0;font-size:1.1rem}.topbar{gap:12px;min-width:0}.topbar-heading{min-width:0}.topbar-heading strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .ms-auto{min-width:0;flex-wrap:wrap}.topbar .user-chip{max-width:170px}.topbar .user-chip span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-tabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin}.profile-tabs .nav-item{flex:0 0 auto}.profile-tabs .nav-link.active{color:#116b49;border-color:#d6e9df #d6e9df #fff}.pagination .page-item.active .page-link{background:#16865d;border-color:#16865d}
@media(max-width:900px){.sidebar{position:fixed;inset:0 auto 0 0;z-index:1000;height:100dvh;width:236px;flex-basis:236px;transform:translateX(-100%);transition:transform .22s ease;box-shadow:none}.sidebar.is-open{transform:translateX(0);box-shadow:12px 0 35px #092b1d30}.shell.sidebar-collapsed .sidebar{width:236px;flex-basis:236px}.shell.sidebar-collapsed .brand-name,.shell.sidebar-collapsed .sidebar-caption,.shell.sidebar-collapsed .side-nav a span,.shell.sidebar-collapsed .side-foot{display:initial}.shell.sidebar-collapsed .brand{justify-content:flex-start}.shell.sidebar-collapsed .side-nav a{justify-content:flex-start;padding:10px 12px}.shell.sidebar-collapsed .side-nav a .bi{width:1.25rem;min-width:1.25rem}.topbar{position:sticky;padding:0 12px;gap:8px}.topbar .ms-auto{gap:6px!important}.topbar .ms-auto form button{white-space:nowrap}.topbar-heading small{display:none}}
@media(max-width:560px){.topbar{height:auto;min-height:62px;padding:8px}.topbar .ms-auto{margin-left:auto!important}.topbar .user-chip{display:none}.topbar .ms-auto form button{font-size:.7rem}.content{padding:12px!important}.profile-page .card-body{padding:12px}.profile-tabs .nav-link{font-size:.75rem;padding:.5rem .65rem}}


/* Global green-only brand accents and accessible focus states */
:root{--bs-primary:#16865d;--bs-primary-rgb:22,134,93;--bs-link-color:#16865d;--bs-link-hover-color:#0d6848;--bs-info:#16865d;--bs-info-rgb:22,134,93}
.text-primary,.link-primary{color:#16865d!important}.bg-primary,.btn-primary{background-color:#16865d!important;border-color:#16865d!important}.btn-primary:hover,.btn-primary:focus{background-color:#0d6848!important;border-color:#0d6848!important}.btn-outline-primary{color:#16865d!important;border-color:#16865d!important}.btn-outline-primary:hover,.btn-outline-primary:focus{color:#fff!important;background:#16865d!important;border-color:#16865d!important}.border-primary{border-color:#16865d!important}.form-check-input:checked{background-color:#16865d!important;border-color:#16865d!important}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:#6eb99a!important;box-shadow:0 0 0 .2rem #16865d20!important}.nav-pills .nav-link.active,.pagination .page-item.active .page-link{background:#16865d!important;border-color:#16865d!important}.nav-link{--bs-nav-link-color:#16865d;--bs-nav-link-hover-color:#0d6848}
