﻿/* OIMS design system: shared shell, forms and operational screens. */
:root {
  --ink: #192b42; --muted: #607086; --primary: #245e83; --primary-dark: #194866;
  --sidebar: #14243b; --line: #dfe5ed; --page: #f4f6f9; --radius: 10px;
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-8: 32px;
  --sidebar-width: 268px; --header-height: 72px; --control-height: 42px;
  --shadow-card: 0 2px 6px rgb(25 43 66 / 3%);
  --bs-body-color: var(--ink); --bs-body-bg: var(--page);
  --bs-link-color: var(--primary); --bs-link-hover-color: var(--primary-dark);
  --bs-body-font-family: "Segoe UI", Inter, -apple-system, BlinkMacSystemFont, sans-serif;
}
body { font-size: 14px; line-height: 1.55; color: var(--ink); background: var(--page); }
h1,h2,h3,h4 { color: var(--ink); font-weight: 650; }
a { text-underline-offset: 3px; }
:focus-visible { outline: 3px solid #4b8db5; outline-offset: 3px; }
.ui-icon { flex: 0 0 20px; vertical-align: middle; }
.text-muted,.text-secondary { color: var(--muted)!important; }
.small,small { font-size: 12px; }
.app-sidebar { width: var(--sidebar-width); background: var(--sidebar); border-right: 1px solid #23374f; }
.brand { padding: 24px 20px; gap: 12px; min-height: 86px; letter-spacing: .2px; }
.brand-mark { width: 38px; height: 38px; background: #2b6285; color: #fff; border-radius: 10px; }
.brand-mark .ui-icon { width: 24px; height: 24px; }
.brand-copy { font-size: 24px; font-weight: 700; color: #fff; }
.brand small { font-size: 9px; letter-spacing: 1.1px; color: #aebed2; margin-top: 6px; line-height: 1.4; }
.institute-switcher { margin: 0 16px 18px; border: 1px solid #34445c; background: #1b2f49; padding: 12px; gap: 10px; }
.institute-avatar { background: #2b425e; color: #dce8f4; width: 34px; height: 34px; }
.institute-switcher strong { font-size: 12px; color: #f2f6fa; }
.institute-switcher small { color: #b0bed0; font-size: 11px; }
.sidebar-nav { padding: 0 12px 18px; min-height: 0; scrollbar-color: #4c607b transparent; overscroll-behavior: contain; }
.nav-item { min-height: 40px; gap: 11px; padding: 9px 12px; color: #c4cede; font-size: 13px; font-weight: 450; border-radius: 7px; margin: 2px 0; }
.nav-item .ui-icon { color: #9bafc9; width: 18px; height: 18px; }
.nav-item:hover { color: #fff; background: #243a55; }
.nav-item.active { background: #2b536f; color: #fff; box-shadow: inset 3px 0 #79b8d8; font-weight: 600; }
.nav-item.active .ui-icon { color: #cce7f5; }
.nav-section-label { font-size: 10px; font-weight: 700; letter-spacing: 1px; color: #9caec7; padding: 22px 12px 7px; }
.nav-section-toggle { display: flex; align-items: center; justify-content: flex-start; width: 100%; border: 0; background: transparent; text-align: left; cursor: pointer; font-weight: 600; }
.nav-section-toggle:hover,.nav-section-toggle:focus-visible { color: #fff; }
.nav-section-toggle .ui-icon { color: #9bafc9; }
.nav-category-chevron { width: 7px; height: 7px; margin-left: auto; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .15s ease; }
.nav-group.is-collapsed .nav-category-chevron { transform: rotate(-45deg); }
.nav-group.is-collapsed .nav-group-items { display: none; }
.nav-group-items .nav-item { padding-left: 22px; }
.sidebar-footer { padding: 16px 22px; font-size: 10px; color: #aebed2; border-color: #2d405a; }
.status-dot { background: #78b49d; }
.app-shell { margin-left: var(--sidebar-width); min-width: 0; }
.topbar { min-height: var(--header-height); height: var(--header-height); padding: 0 32px; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 1020; box-shadow: 0 1px 3px #192b4203; }
.topbar-leading { display: flex; align-items: center; gap: 16px; min-width: 0; }
.workspace-title { font-size: 13px; font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.workspace-title small { display: block; color: var(--muted); font-size: 11px; font-weight: 400; margin-top: 2px; }
.topbar-actions { gap: 16px; }
.global-search { background: #f7f9fb; border: 1px solid var(--line); min-height: 36px; }
.global-search input { font-size: 12px; width: 170px; }
.icon-button { color: #64768c; height: 36px; width: 36px; border-radius: 8px; }
.icon-button:hover { background: #eaf1f7; color: var(--primary); }
.user-profile { border-color: var(--line); padding-left: 16px; }
.user-avatar { background: #e6eef4; color: #285875; border: 0; width: 36px; height: 36px; }
.user-copy strong { font-size: 12px; max-width: 180px; }
.user-copy small { font-size: 11px; color: var(--muted); }
.main-content { padding: 24px 32px 0; max-width: 1640px; }
.breadcrumb-row { margin-bottom: 18px; }
.breadcrumb { font-size: 12px; }
.breadcrumb a { color: var(--muted); }
.breadcrumb-item.active { color: var(--ink); }
.page-header { align-items: flex-start; margin-bottom: 24px; gap: 20px; }
h1.page-heading { display: block; }
.page-header h1,h1.page-heading,.main-content > h1 { font-size: 27px; line-height: 1.3; letter-spacing: -.6px; color: var(--ink); margin: 0 0 8px; font-weight: 650; }
.page-header p,.page-description { font-size: 13px; line-height: 1.6; color: var(--muted); max-width: 780px; }
.eyebrow { color: #5d728a; font-size: 10px; letter-spacing: 1.2px; font-weight: 700; margin-bottom: 8px; }
.page-actions { gap: 10px; }
.exam-detail-actions{padding:14px;border:1px solid #dce6df;border-radius:12px;background:#f7faf8}
.exam-detail-actions .btn,.exam-results-actions .btn{min-height:40px;display:inline-flex;align-items:center;justify-content:center;font-weight:600}
.exam-detail-actions .btn:first-child,.exam-results-actions .btn[href*="roll-slips"]{background:#e8f3ed;border-color:#9fcbb1;color:#21583b}
.exam-detail-actions .btn:first-child:hover,.exam-results-actions .btn[href*="roll-slips"]:hover{background:#d7eadd;border-color:#75ac88;color:#17462d}
.btn { min-height: 40px; padding: 9px 16px; border-radius: 7px; font-size: 13px; font-weight: 600; gap: 7px; box-shadow: none; }
.btn-primary { --bs-btn-bg: var(--primary); --bs-btn-border-color: var(--primary); --bs-btn-hover-bg: var(--primary-dark); --bs-btn-hover-border-color: var(--primary-dark); --bs-btn-active-bg: var(--primary-dark); --bs-btn-active-border-color: var(--primary-dark); --bs-btn-disabled-bg: var(--primary); --bs-btn-disabled-border-color: var(--primary); }
.btn-outline-primary { --bs-btn-color: var(--primary); --bs-btn-border-color: #bdcfdc; --bs-btn-hover-bg: #eaf1f6; --bs-btn-hover-color: var(--primary-dark); --bs-btn-hover-border-color: #8aafc7; --bs-btn-active-bg: var(--primary); --bs-btn-active-border-color: var(--primary); }
.btn-outline-secondary { --bs-btn-color: #43556d; --bs-btn-border-color: #d2dae4; --bs-btn-hover-bg: #f1f5f8; --bs-btn-hover-color: var(--ink); --bs-btn-hover-border-color: #adbdcd; background: #fff; }
.btn-secondary { --bs-btn-bg: #53677f; --bs-btn-border-color: #53677f; }
.btn-danger { --bs-btn-bg: #b63b40; --bs-btn-border-color: #b63b40; }
.btn-success { --bs-btn-bg: #287653; --bs-btn-border-color: #287653; }
.btn-warning { --bs-btn-bg: #f1c36b; --bs-btn-border-color: #f1c36b; --bs-btn-color: #50370e; }
.btn-sm { min-height: 30px; font-size: 12px; padding: 5px 10px; }
.btn-link { color: var(--primary); }
.btn:disabled { opacity: .55; cursor: not-allowed; }
.content-card,.card,.stat-card { border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-card); }
.card-header { padding: 18px 22px; background: #fff; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.card-header:first-child { border-radius: var(--radius) var(--radius) 0 0; }
.section-title,.card-header h2 { color: var(--ink); font-size: 15px; font-weight: 650; margin: 0; }
.card-header p { font-size: 12px; color: var(--muted); margin: 4px 0 0; }
.card-body { padding: 24px; }
.stat-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; margin-bottom: 24px; }
.stat-card { padding: 20px; min-height: 124px; }
.stat-label { color: var(--muted); font-size: 12px; font-weight: 500; margin-bottom: 12px; max-width: none; }
.stat-value { font-size: 29px; font-weight: 650; color: var(--ink); letter-spacing: -.8px; line-height: 1.2; }
.stat-trend { font-size: 11px; color: var(--muted); margin-top: 10px; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); gap: 24px; }
.dashboard-grid > *, .row > * { min-width: 0; }
.quick-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.quick-links .btn { justify-content: space-between; padding: 13px 14px; min-height: 48px; font-weight: 500; }
.activity-list > div { padding: 0 0 14px 18px; border-left: 2px solid #e3eaf1; position: relative; }
.activity-list > div::before { content: ''; width: 8px; height: 8px; background: #76a0bb; border-radius: 50%; position: absolute; left: -5px; top: 6px; }
.platform-banner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 26px; border: 1px solid #d5e1eb; border-radius: var(--radius); background: #eaf1f7; margin-bottom: 24px; }
.platform-banner h2 { font-size: 19px; margin: 6px 0; color: #254c68; letter-spacing: -.3px; }
.platform-banner p { color: #4f6a82; margin: 0; font-size: 13px; }
.platform-banner .eyebrow { color: #4b6b84; }
.banner-monogram { display: none; }
.hero-card { background: #eaf1f7; border-color: #d5e1eb; }
.platform-filters,.filter-bar,.table-toolbar { padding: 18px 22px!important; border-bottom: 1px solid var(--line); background: #fff; display: flex; flex-wrap: wrap; align-items: end; gap: 12px; }
.platform-filters > div:first-child { flex: 1; min-width: 200px; }
.platform-filters > div:nth-child(2) { min-width: 200px; }
.filter-bar .form-label,.platform-filters .form-label { margin-bottom: 6px; }
.table-responsive { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; border-radius: inherit; }
.table { font-size: 13px; color: var(--ink); margin-bottom: 0; --bs-table-hover-bg: #f5f8fb; }
.table > thead > tr > th { background: #f6f8fb; color: #53677f; font-size: 11px; font-weight: 650; text-transform: none; letter-spacing: .1px; border-bottom: 1px solid var(--line); white-space: nowrap; padding: 12px 18px; }
.table > tbody > tr > td,.table > tbody > tr > th { padding: 13px 18px; border-color: #eaf0f5; vertical-align: middle; }
.table > tbody > tr:hover > td { background: #f8fafc; }
.table td .btn { white-space: nowrap; }
.table .form-control,.table .form-select { min-width: 96px; }
.table .form-check-input { min-width: 18px; }
.table td .small { line-height: 1.5; margin-top: 3px; }
.badge,.status-pill { display: inline-flex; align-items: center; font-size: 11px; font-weight: 600; padding: 5px 9px; border-radius: 5px; line-height: 1.4; }
.status-pill { gap: 6px; white-space: nowrap; }
.status-pill::before { content: ''; width: 5px; height: 5px; background: currentColor; border-radius: 50%; }
.badge-soft-success,.status-active { background: #e8f3ec; color: #226744; }
.badge-soft-primary,.status-pending { background: #e9f0f8; color: #345b83; }
.status-due { background: #fff3dc; color: #875b13; }
.status-expired,.status-suspended { background: #fbecee; color: #a43342; }
.empty-state,.platform-empty { padding: 36px 24px; text-align: center; color: var(--muted); font-size: 13px; }
.empty-state h2,.platform-empty h3 { color: var(--ink); font-size: 16px; margin: 0 0 8px; }
.empty-state p,.platform-empty p { max-width: 430px; margin: 0 auto 16px; }
.empty-symbol,.empty-icon { color: #6f89a4; background: #f0f4f8; width: 44px; height: 44px; border-radius: 10px; margin: 0 auto 14px; display: grid; place-items: center; font-size: 20px; }
.pagination-row,.pagination-bar,nav[aria-label='Pagination'],nav[aria-label='Report pages'] { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 16px 20px; font-size: 12px; }
.editor-panel { max-width: 1120px; padding: 0; overflow: visible; }
.editor-panel > form > .form-sections { padding: 0 28px; }
.editor-panel > form > .form-error-summary { margin: 24px 28px 0; }
.form-panel,.platform-form { max-width: 1120px; width: 100%; }
.form-sections { width: 100%; }
.form-section { min-width: 0; padding: 26px 0; border: 0; border-bottom: 1px solid var(--line); margin: 0; }
.form-section:last-child { border-bottom: 0; }
.form-section legend { float: none; width: auto; font-size: 15px; font-weight: 650; color: var(--ink); margin: 0 0 4px; padding: 0; }
.form-section-description { font-size: 12px; color: var(--muted); margin: 0 0 22px; }
.form-fields-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px 28px; align-items: start; }
.position-report-fields{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(160px,1fr) auto;gap:16px;align-items:end}
.position-report-fields .btn{min-height:42px}
@media(max-width:700px){.position-report-fields{grid-template-columns:1fr}.position-report-fields .btn{justify-self:start}}
.award-list-page{display:flex;flex-direction:column;width:min(100%,210mm);min-height:277mm;margin:0 auto 22px;padding:10mm 8mm;background:#fff;border:1px solid #d6dce3;box-sizing:border-box;color:#111}
.award-list-header{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding-bottom:5mm;border-bottom:1px solid #333;margin-bottom:5mm}
.award-list-header h2{margin:0 0 2mm;font-size:18px;font-weight:700}.award-list-header p{margin:0;font-size:11px}.award-list-meta{display:flex;flex-direction:column;gap:2mm;text-align:right;font-size:10px}
.award-list-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4mm;align-items:start}
.award-list-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:9px;line-height:1.2;color:#111}
.award-list-table th,.award-list-table td{border:1px solid #444;padding:1mm 1.2mm;vertical-align:middle;overflow-wrap:anywhere}
.award-list-table th{text-align:left;background:#f1f3f5;font-weight:700;height:8mm}
.award-list-table tbody tr{height:8mm;break-inside:avoid}
.award-list-table th:nth-child(1){width:8%}.award-list-table th:nth-child(2){width:14%}.award-list-table th:nth-child(3){width:58%}.award-list-table th:nth-child(4){width:20%}
.award-list-table td strong,.award-list-table td small{display:block}.award-list-table td strong{font-size:9px;font-weight:600}.award-list-table td small{font-size:7px;color:#333;margin-top:.5mm}
.award-list-empty{text-align:center;color:#667}
.award-list-signatures{display:flex;justify-content:space-between;gap:5mm;margin-top:auto;padding-top:9mm;font-size:9px}
@media screen and (max-width:800px){.award-list-page{min-height:0;padding:18px}.award-list-columns{grid-template-columns:1fr}.award-list-header,.award-list-signatures{flex-wrap:wrap}.award-list-meta{text-align:left}}
@page award-list-portrait{size:A4 portrait;margin:8mm}
@media print{body.award-list-print-page,body.award-list-print-page .award-list-page{page:award-list-portrait}.award-list-print-page .award-list-page{width:194mm;min-height:281mm;margin:0;padding:0;border:0;break-after:page}.award-list-print-page .award-list-page:last-of-type{break-after:auto}.award-list-print-page .award-list-table th{background:#fff!important}.award-list-print-page .award-list-table,.award-list-print-page .award-list-table *{color:#000!important}}
.exam-schedule-editor .exam-schedule-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.exam-schedule-editor .exam-schedule-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.exam-schedule-editor .exam-schedule-checker{max-width:300px;margin-top:22px}
@media(max-width:1000px){.exam-schedule-editor .exam-schedule-three,.exam-schedule-editor .exam-schedule-four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.exam-schedule-editor .form-fields-grid{grid-template-columns:1fr}}
.form-sections-short .form-section { padding-top: 24px; padding-bottom: 24px; }
.form-field { min-width: 0; }
.field-wide { grid-column: 1 / -1; }
.form-label,.field-group > label { display: block; margin: 0 0 8px; font-size: 12px; font-weight: 600; color: #354960; }
.required-marker { color: #ac3646; margin-left: 4px; font-weight: 600; }
.form-control,.form-select,.form-field input:not([type='checkbox']):not([type='radio']),.form-field select,.form-field textarea { min-height: var(--control-height); width: 100%; font-size: 14px; color: var(--ink); background-color: #fff; border: 1px solid #cfd8e3; border-radius: 7px; padding: 10px 12px; line-height: 1.45; box-shadow: none; }
.form-select { padding-right: 34px; }
textarea.form-control,.form-field textarea { min-height: 110px; resize: vertical; }
.form-control::placeholder { color: #78879a; opacity: 1; }
.form-control:focus,.form-select:focus { border-color: #6094b7; box-shadow: 0 0 0 3px #245e8318; outline: none; }
.form-control:disabled,.form-select:disabled { background-color: #eef2f6; color: #65788b; cursor: not-allowed; opacity: 1; }
.form-control[readonly] { background-color: #f7f9fb; color: #52667c; }
.form-control.is-invalid,.form-select.is-invalid { border-color: #c94d5d; background-image: none; }
.form-control.is-valid,.form-select.is-valid { border-color: #398a62; }
.form-text { font-size: 12px; color: #65778b; line-height: 1.5; margin-top: 7px; }
.form-text ul { margin: 6px 0 0; padding-left: 18px; }
.field-errors,.errorlist { color: #b02f43; font-size: 12px; margin: 7px 0 0; padding-left: 0; list-style: none; }
.field-errors p { margin: 0 0 3px; }
.field-checkbox { align-self: center; padding-top: 7px; }
.checkbox-control { display: flex; align-items: flex-start; gap: 10px; }
.checkbox-control label { font-size: 13px; font-weight: 500; line-height: 1.5; }
.form-check-input { width: 18px; height: 18px; flex: 0 0 18px; margin-top: 2px; border-color: #aebdcd; }
.form-check-input:checked { background-color: var(--primary); border-color: var(--primary); }
input[type='file'].form-control { padding: 8px 10px; background: #f8fafc; border-style: dashed; }
input[type='file']::file-selector-button { font-weight: 600; color: var(--primary); background: #eaf1f7; border: 0; padding: 8px 12px; margin-right: 12px; }
.form-actions,.form-footer { padding: 20px 26px; margin-top: 0; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 16px; background: #fff; border-radius: 0 0 var(--radius) var(--radius); }
.form-actions-sticky { position: sticky; bottom: 0; z-index: 10; box-shadow: 0 -4px 16px #192b4206; }
.form-actions-note { color: var(--muted); font-size: 12px; }
.form-actions-buttons { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; }
.calendar-input-group { flex-wrap: nowrap; }
.calendar-input-group > .form-control { min-width: 0; border-radius: 7px 0 0 7px!important; }
.calendar-toggle { min-width: 42px; display: inline-flex; align-items: center; justify-content: center; }
.flatpickr-calendar { font-family: var(--bs-body-font-family); border-radius: 10px; box-shadow: 0 10px 30px #14243b24; }
.flatpickr-day.selected,.flatpickr-day.selected:hover { background: var(--primary); border-color: var(--primary); }
.flash-messages { margin-bottom: 20px; }
.alert { border-radius: 8px; font-size: 13px; padding: 14px 18px; border-width: 1px; display: block; }
.alert-dismissible { padding-right: 48px; }
.alert-title { display: block; font-size: 12px; margin-bottom: 3px; }
.alert-success { background: #eef7f1; color: #266344; border-color: #c9e5d4; }
.alert-info { background: #edf4fb; color: #345a7f; border-color: #d1e1f0; }
.alert-warning { background: #fff8e9; color: #795820; border-color: #eddfb6; }
.alert-danger { background: #fcf0f1; color: #9a3540; border-color: #efcfd4; }
.confirm-dialog { border: 1px solid var(--line); border-radius: 14px; padding: 28px; max-width: 440px; width: calc(100% - 32px); box-shadow: 0 20px 80px #14243b33; color: var(--ink); }
.confirm-dialog::backdrop { background: #14243b80; }
.confirm-dialog h2 { font-size: 20px; }
.confirm-dialog p { color: var(--muted); margin: 16px 0 24px; }
.page-footer { padding: 22px 0; border-top: 1px solid var(--line); margin-top: 28px; color: #718197; font-size: 11px; }
.subscription-summary { display: flex; justify-content: space-between; gap: 24px; padding: 24px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: 24px; }
.subscription-summary h2 { font-size: 22px; margin: 12px 0 8px; }
.subscription-summary p { color: var(--muted); font-size: 13px; margin: 0; }
.subscription-price { text-align: right; align-self: center; flex-shrink: 0; }
.subscription-price strong { font-size: 26px; display: block; }
.subscription-price span { font-size: 12px; color: var(--muted); }
.renewal-row { padding: 14px 0; border-bottom: 1px solid #eef2f6; display: flex; justify-content: space-between; gap: 14px; }
.renewal-row:last-child { border: 0; }
.renewal-row small { display: block; color: var(--muted); }
.revenue-total { display: flex; justify-content: space-between; padding: 10px 0; gap: 12px; }
.revenue-total strong { font-size: 24px; }
.report-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-bottom: 24px; }
.notice-card { padding: 22px; border-bottom: 1px solid var(--line); }
.notice-card:last-child { border-bottom: 0; }
.notice-card h2 { font-size: 16px; margin: 12px 0 8px; }
.notice-meta,.message-meta { display: flex; flex-wrap: wrap; gap: 12px; color: var(--muted); font-size: 12px; }
.auth-main { background: #f3f6fa; padding: 48px 24px; }
.auth-layout { max-width: 1020px; min-height: 560px; border: 1px solid var(--line); box-shadow: 0 16px 50px #14243b0a; border-radius: 16px; }
.auth-story { background: #14243b; padding: 44px; }
.auth-story .brand { padding: 0; }
.auth-story h1 { color: #fff; font-size: 34px; letter-spacing: -.7px; line-height: 1.25; margin-top: 64px; }
.auth-story h1 em { color: #a7d0e5; font-style: normal; }
.auth-story p { color: #b6c6d9; font-size: 14px; }
.auth-art { display: none; }
.auth-story-footer { color: #9eb2cb; font-size: 10px; letter-spacing: 1px; }
.auth-form-side { padding: 52px 44px; }
.auth-form-side h2 { font-size: 26px; letter-spacing: -.4px; }
.auth-form-side > p,.auth-note { font-size: 13px; color: var(--muted); }
.auth-form-side .form-control { min-height: 46px; }
.auth-simple { background: #fff; max-width: 560px; border: 1px solid var(--line); padding: 36px; border-radius: 14px; box-shadow: var(--shadow-card); }
.auth-main > .content-card { max-width: 600px; margin: 0 auto; }
.auth-main .form-fields-grid { grid-template-columns: 1fr; }
@media(min-width:768px) {
  .sidebar-collapsed { --sidebar-width: 76px; }
  .sidebar-collapsed .brand { padding: 24px 18px; }
  .sidebar-collapsed .brand-copy,.sidebar-collapsed .workspace-copy,.sidebar-collapsed .nav-text,.sidebar-collapsed .nav-section-label,.sidebar-collapsed .sidebar-footer { display: none; }
  .sidebar-collapsed .institute-switcher { padding: 0; margin: 0 18px 18px; border: 0; background: none; }
  .sidebar-collapsed .sidebar-nav { padding: 0 10px 18px; }
  .sidebar-collapsed .nav-item { justify-content: center; padding: 11px; }
  .sidebar-collapsed .nav-group { border-top: 1px solid #2d405a; margin-top: 10px; padding-top: 10px; }
  .sidebar-collapsed .nav-group.is-collapsed .nav-group-items { display: block; }
  .sidebar-collapsed .nav-group-items .nav-item,.sidebar-collapsed .nav-section-toggle { justify-content: center; padding: 11px; }
  .sidebar-collapsed .nav-category-chevron { display: none; }
}
@media(max-width:1199px) { .main-content { padding: 22px 24px 0; } .topbar { padding: 0 24px; } .topbar-actions { gap: 10px; } .global-search { display: none; } .stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .dashboard-grid { grid-template-columns: 1fr; } }
@media(max-width:900px) { .form-fields-grid { grid-template-columns: 1fr; gap: 20px; } .field-wide { grid-column: auto; } .form-actions-note { display: none; } .form-actions { justify-content: flex-end; } }
@media(max-width:767px) {
  :root { --sidebar-width: 268px; --header-height: 64px; }
  .app-shell { margin-left: 0; } .desktop-sidebar-toggle { display: none; }
  .app-sidebar { width: min(290px,85vw); } .topbar { padding: 0 16px; gap: 8px; }
  .topbar-leading { gap: 8px; flex: 1; } .workspace-title { max-width: 145px; font-size: 12px; }
  .user-copy,.global-search { display: none; } .user-profile { padding-left: 8px; } .topbar-actions { gap: 3px; }
  .main-content { padding: 18px 16px 0; } .page-header { flex-wrap: wrap; gap: 14px; }
  .page-header h1,h1.page-heading { font-size: 23px; } .page-header p { font-size: 13px; }
  .page-actions { width: 100%; } .stat-grid { gap: 12px; } .stat-card { padding: 16px; min-height: 112px; }
  .stat-value { font-size: 26px; } .stat-label { font-size: 12px; } .stat-trend { font-size: 11px; }
  .card-header { padding: 16px; } .platform-banner { padding: 20px; } .platform-banner h2 { font-size: 18px; }
  .editor-panel > form > .form-sections { padding: 0 18px; } .form-section { padding: 22px 0; }
  .form-actions { padding: 16px 18px; } .form-actions-buttons { width: 100%; } .form-actions-buttons .btn { flex: 1; }
  .filter-bar > div,.platform-filters > div { width: 100%; min-width: 0!important; } .filter-bar,.platform-filters { padding: 16px!important; }
  .subscription-summary { flex-direction: column; padding: 20px; } .subscription-price { text-align: left; align-self: flex-start; }
  .report-summary { grid-template-columns: 1fr; } .quick-links { grid-template-columns: 1fr; }
  .auth-main { padding: 24px 16px; } .auth-layout { min-height: 0; } .auth-story { padding: 26px; }
  .auth-story h1 { margin-top: 24px; font-size: 25px; } .auth-form-side { padding: 28px; }
  .page-footer { font-size: 10px; } .form-control,.form-select { font-size: 16px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { transition: none!important; animation: none!important; } }
@media print { .app-shell { margin: 0!important; } .main-content { padding: 0; max-width: none; } .form-actions,.platform-filters,.confirm-dialog { display: none!important; } .table-responsive { overflow: visible; } .content-card,.card,.stat-card { box-shadow: none; } .stat-grid { grid-template-columns: repeat(4,1fr); } }

/* Combined student admission and family entry. */
.student-photo-panel { display: flex; gap: 24px; align-items: center; padding: 24px; border-bottom: 1px solid var(--bs-border-color, #dde3eb); }
.student-portrait { width: 112px; height: 140px; object-fit: cover; border-radius: 8px; border: 1px solid #d5deea; flex-shrink: 0; }
.student-list-photo { display: inline-flex; width: 42px; height: 48px; align-items: center; justify-content: center; overflow: hidden; border: 1px solid #d5deea; border-radius: 6px; background: #f3f6f9; color: #697b8b; }
.student-list-photo img { width: 100%; height: 100%; object-fit: cover; }
.family-section { border-top: 1px solid #dde3eb; padding: 24px; }
.family-section-heading { margin-bottom: 20px; }
.family-row { border: 1px solid #dde3eb; border-radius: 10px; margin-bottom: 16px; padding: 16px; background: #fafbfd; }
.family-row .form-sections { padding: 0; }
.family-row .form-section { padding: 12px 0; }
.family-row-deleted { border-color: #ba4854; background: #fff5f5; }
.family-add { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.family-add .form-text { margin: 0; }
@media (max-width: 767px) { .student-photo-panel { align-items: flex-start; gap: 16px; padding: 16px; } .family-section { padding: 16px; } }

.student-photo-content { flex: 1; min-width: 0; }
.institute-logo { width: 72px; height: 72px; object-fit: contain; }
.institute-logo-preview { width: 144px; height: 144px; object-fit: contain; border: 1px solid #d5deea; border-radius: 10px; background: #fff; padding: 8px; }

/* Printable class invoice batches. */
.invoice-section-group { margin-bottom: 32px; }
.batch-section-heading { padding: 16px 20px; background: #eaf0f6; border: 1px solid #d6e0ea; border-radius: 10px 10px 0 0; }
.batch-section-heading h2, .batch-section-heading p { margin: 0; }
.invoice-print-sheet { padding: 24px; margin-bottom: 20px; border: 1px solid #d6e0ea; background: #fff; }
.invoice-print-header, .invoice-student { display: flex; align-items: center; gap: 20px; justify-content: space-between; }
.invoice-number { text-align: right; }
.invoice-student { padding: 16px 0; border-bottom: 1px solid #d6e0ea; }
.checkbox-grid { list-style: none; padding: 12px; margin: 0; border: 1px solid #ced7e2; border-radius: 8px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; max-height: 360px; overflow: auto; }
.checkbox-grid label { display: flex; align-items: flex-start; gap: 8px; padding: 6px; cursor: pointer; }
.checkbox-grid input { margin-top: 3px; }
.exam-section-picker { margin-top: 20px; }
.exam-section-groups { display: grid; gap: 10px; }
.exam-section-group { border: 1px solid #ced7e2; border-radius: 8px; overflow: hidden; }
.exam-section-group summary { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 14px 16px; cursor: pointer; }
.exam-section-group summary small { display: block; color: #526174; font-weight: 400; margin-top: 3px; }
.exam-section-count { color: #526174; white-space: nowrap; }
.exam-section-group-body { border-top: 1px solid #ced7e2; padding: 14px 16px; }
.exam-section-options { display: flex; flex-wrap: wrap; gap: 10px 20px; margin-top: 12px; }
.exam-section-options label { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; }
.board-result-card { margin-top: 20px; }
.board-result-card[hidden] { display: none; }
.provisional-subjects { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; padding-left: 20px; }
@media (max-width: 600px) { .provisional-subjects { grid-template-columns: 1fr; } }
@media (max-width: 767px) { .checkbox-grid { grid-template-columns: 1fr; } }
@media print {
  .batch-section-heading { break-after: avoid; }
  .invoice-print-sheet { break-after: page; break-inside: avoid; border: 0; padding: 0; margin: 0; }
  .invoice-print-sheet:last-child { break-after: auto; }
}

/* Printable student admission form. */
.admission-print-actions{display:flex;justify-content:flex-end;gap:10px;margin-bottom:18px}.admission-form-sheet{max-width:210mm;margin:0 auto;background:#fff;border:1px solid #bcc8c0;padding:12mm;color:#17231d;font-size:11px}.admission-form-header{display:grid;grid-template-columns:25mm 1fr 30mm;gap:12px;align-items:center;border-bottom:2px solid #214f46;padding-bottom:10px}.admission-logo-box,.admission-photo-box{height:29mm;border:1px solid #8f9f96;display:grid;place-items:center;text-align:center;color:#77857d;font-size:9px;overflow:hidden}.admission-logo-box img,.admission-photo-box img{width:100%;height:100%;object-fit:contain}.admission-photo-box img{object-fit:cover}.admission-heading{text-align:center}.admission-heading h1{font-size:22px;margin:0;color:#173f37}.admission-heading p{margin:2px 0;font-size:9px}.admission-heading h2{font-size:14px;letter-spacing:1.4px;margin:8px 0 0}.admission-meta{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #8f9f96;border-top:0}.admission-meta>div,.admission-grid>div{padding:6px 8px;border-right:1px solid #c4cec8;border-bottom:1px solid #c4cec8;min-height:38px}.admission-meta>div:last-child{border-right:0}.admission-meta span,.admission-grid span{display:block;text-transform:uppercase;font-size:7px;letter-spacing:.6px;color:#607069}.admission-meta strong,.admission-grid strong{display:block;margin-top:3px;font-size:10px;font-weight:600}.admission-section{margin-top:10px}.admission-section h3,.admission-declaration h3{font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:#fff;background:#214f46;padding:5px 8px;margin:0}.admission-grid{display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid #c4cec8}.admission-grid .wide{grid-column:span 2}.admission-grid .full{grid-column:1/-1}.admission-table{width:100%;border-collapse:collapse;font-size:9px}.admission-table th,.admission-table td{border:1px solid #9eaaa3;padding:5px 6px;text-align:left;height:24px}.admission-table th{background:#edf2ef;font-size:8px;text-transform:uppercase}.blank-row{text-align:center!important;color:#78857e}.admission-declaration{margin-top:10px;border:1px solid #9eaaa3}.admission-declaration p{padding:7px 9px;margin:0}.signature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:20px 9px 7px}.signature-grid div{border-top:1px solid #4d5a53;padding-top:4px;text-align:center;font-size:8px}.admission-office{border:1px solid #9eaaa3;margin-top:10px;padding:7px 9px}.admission-office>strong{font-size:9px}.admission-office>div{display:grid;grid-template-columns:1fr 1fr 2fr;gap:16px;margin-top:14px}.admission-office span{border-top:1px solid #66736c;padding-top:4px;font-size:8px}.admission-form-sheet footer{text-align:center;font-size:7px;color:#7a877f;margin-top:8px}@media(max-width:800px){.admission-form-sheet{padding:20px;overflow-x:auto}.admission-meta,.admission-grid{grid-template-columns:repeat(2,minmax(130px,1fr))}.admission-grid .full{grid-column:1/-1}}@media print{@page{size:A4 portrait;margin:7mm}.admission-print-actions{display:none!important}.admission-form-sheet{width:196mm;max-width:none;border:0;padding:0;font-size:9px}.admission-form-header{grid-template-columns:22mm 1fr 27mm}.admission-logo-box,.admission-photo-box{height:27mm}.admission-section{break-inside:avoid;margin-top:7px}.admission-meta>div,.admission-grid>div{padding:4px 6px;min-height:31px}.admission-table th,.admission-table td{padding:4px 5px;height:20px}.admission-declaration,.admission-office{break-inside:avoid}.admission-form-sheet footer{margin-top:5px}}

/* CNIC-size student identity card (clearly identified as an institute card). */
.student-card-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.student-card-toolbar h1{font-size:27px;margin:0 0 6px}.student-card-toolbar p{margin:0;color:#748279}.cnic-card-print-area{display:flex;flex-wrap:wrap;justify-content:center;gap:24px}.student-cnic-card{position:relative;width:85.6mm;height:53.98mm;overflow:hidden;border-radius:3.2mm;border:1px solid #759188;background:#f7faf7;color:#12261f;box-shadow:0 10px 30px #1f403627;font-family:Arial,'Noto Sans Arabic',sans-serif}.cnic-security-pattern{position:absolute;inset:0;opacity:.17;background:radial-gradient(circle at 12% 30%,transparent 0 15mm,#8db8a5 15.2mm 15.5mm,transparent 15.7mm),repeating-linear-gradient(128deg,transparent 0 4mm,#7fa795 4.1mm 4.25mm,transparent 4.35mm 8mm);pointer-events:none}.cnic-card-header{height:13.5mm;position:relative;z-index:1;display:grid;grid-template-columns:11mm 1fr 23mm;align-items:center;gap:2.3mm;padding:2mm 3mm;background:linear-gradient(105deg,#174d3f,#2e745d);color:#fff}.cnic-logo{height:9mm;width:9mm;border-radius:50%;background:#fff;display:grid;place-items:center;overflow:hidden;color:#174d3f;font-size:5mm;font-weight:800}.cnic-logo img{width:100%;height:100%;object-fit:contain;padding:.7mm}.cnic-institute{min-width:0}.cnic-institute h2{font-size:3.5mm;line-height:1.05;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}.cnic-institute p{font-size:1.7mm;letter-spacing:.2mm;margin:.8mm 0 0;color:#d8eee5}.cnic-card-type{text-align:right;border-left:.2mm solid #ffffff69;padding-left:2mm}.cnic-card-type strong{display:block;font-size:2.8mm;letter-spacing:.45mm}.cnic-card-type span{display:block;font-size:1.55mm;letter-spacing:.25mm;margin-top:.4mm}.cnic-front-body{position:relative;z-index:1;display:grid;grid-template-columns:20mm 1fr;gap:3mm;padding:3mm 3mm 1.8mm}.cnic-photo{width:20mm;height:25mm;border:1px solid #78958a;background:#e7efeb;display:grid;place-items:center;color:#6d8178;font-size:2mm}.cnic-photo img{width:100%;height:100%;object-fit:cover}.cnic-student-data{min-width:0}.cnic-name{border-bottom:.35mm solid #27634f;padding-bottom:1.3mm;margin-bottom:1.8mm}.cnic-name span,.cnic-data-grid span,.cnic-back-fields span{display:block;color:#537067;font-size:1.65mm;line-height:1.15}.cnic-name strong{font-size:4mm;line-height:1.1;display:block;margin-top:.7mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cnic-data-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:2mm 3mm}.cnic-data-grid strong{font-size:2.45mm;display:block;margin-top:.55mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cnic-front-footer{position:absolute;z-index:1;inset:auto 0 0;min-height:7mm;display:grid;grid-template-columns:1fr auto 1.2fr;align-items:center;gap:2mm;padding:1.4mm 3mm;background:#dcebe4;border-top:.25mm solid #9eb8ae;font-size:1.8mm;font-weight:650}.cnic-front-footer span:last-child{text-align:right}.cnic-status{background:#1d604b;color:white;border-radius:3mm;padding:.7mm 2mm;text-transform:uppercase;font-size:1.55mm;letter-spacing:.2mm}.cnic-back{background:linear-gradient(145deg,#f8fbf9,#e6f0eb)}.cnic-back-header{position:relative;z-index:1;height:10mm;padding:2mm 3mm;background:#194e40;color:white;display:flex;justify-content:space-between;align-items:center}.cnic-back-header strong{font-size:2.8mm}.cnic-back-header span{font-size:1.45mm;letter-spacing:.15mm}.cnic-back-body{position:relative;z-index:1;display:grid;grid-template-columns:1fr 24mm;gap:3mm;padding:3mm}.cnic-back-fields{display:grid;grid-template-columns:1fr 1fr;gap:1.8mm 3mm}.cnic-back-fields strong{display:block;font-size:2.2mm;line-height:1.15;margin-top:.45mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cnic-back-fields .cnic-address{grid-column:1/-1}.cnic-verification{display:flex;flex-direction:column;justify-content:space-between}.cnic-code-box{height:17mm;border:1px solid #718c82;background:repeating-linear-gradient(90deg,#163f34 0 .55mm,transparent .55mm 1.1mm);display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;text-shadow:0 1px 2px #000;background-color:#eaf2ee}.cnic-code-box span{background:#164b3c;padding:.6mm 1.4mm;font-size:2.4mm;letter-spacing:.5mm}.cnic-code-box strong{background:white;color:#173b31;text-shadow:none;padding:.5mm 1mm;margin-top:1mm;font-size:1.65mm}.cnic-signature{border-top:.25mm solid #344d44;text-align:center;padding-top:1mm;font-size:1.65mm}.student-cnic-card footer{position:absolute;z-index:1;inset:auto 0 0;background:#d7e7df;border-top:.25mm solid #9bb3a9;padding:1.4mm 3mm;display:flex;justify-content:space-between;font-size:1.55mm}.student-card-note{text-align:center;color:#75847c;margin-top:18px;font-size:11px}@media(max-width:760px){.cnic-card-print-area{justify-content:flex-start;overflow-x:auto;padding-bottom:12px}.student-card-toolbar{flex-direction:column}}@media print{@page{size:A4 portrait;margin:12mm}.student-card-toolbar,.student-card-note{display:none!important}.cnic-card-print-area{display:block}.student-cnic-card{width:85.6mm;height:53.98mm;box-shadow:none;break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact;margin:0 0 10mm}.student-cnic-card:last-child{margin-bottom:0}}

/* Mobile-first attendance and class workflow launchers. */
.attendance-launch-header{align-items:center}.attendance-today{min-width:120px;padding:10px 14px;border:1px solid #d9e3d5;border-radius:10px;background:#fff;text-align:right}.attendance-today span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.8px;color:#7d8d78}.attendance-today strong{font-size:14px;color:#214d3f}.mobile-action-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}.mobile-action-card{display:flex;align-items:center;gap:15px;min-height:104px;padding:18px;background:#fff;border:1px solid #dce5d8;border-radius:12px;color:#314b3b;box-shadow:0 2px 4px #1d392b08;transition:transform .15s,border-color .15s,box-shadow .15s}.mobile-action-card:hover{color:#214d3f;border-color:#9ebc91;box-shadow:0 8px 20px #1d392b14;transform:translateY(-1px)}.mobile-action-icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;background:#dceccb;color:#28553f;font-size:22px;font-weight:750}.mobile-action-icon-promote{background:#e3ebf4;color:#315b7c}.mobile-action-copy{min-width:0;flex:1}.mobile-action-copy h2{font-size:14px;margin:0 0 5px;font-weight:650}.mobile-action-copy p{font-size:10px;color:#7d8c7a;margin:0}.attendance-progress{display:flex;justify-content:space-between;gap:12px;margin-top:13px;padding-top:10px;border-top:1px solid #edf1e9;font-size:9px;color:#687b65}.attendance-progress span:last-child{font-weight:650;color:#2b6551}.attendance-save-bar{display:flex;justify-content:flex-end;margin:16px 0}.attendance-save-bar .btn{min-width:190px}@media(max-width:600px){.attendance-launch-header{align-items:flex-start}.attendance-today{text-align:left;width:100%;margin-top:10px}.mobile-action-grid{grid-template-columns:1fr}.mobile-action-card{min-height:92px;padding:14px}.attendance-register{overflow:visible!important;border:0;background:transparent;box-shadow:none}.attendance-register .table-responsive{overflow:visible}.attendance-register table,.attendance-register tbody,.attendance-register tr,.attendance-register td{display:block;width:100%}.attendance-register thead{display:none}.attendance-register tr{background:#fff;border:1px solid #dfe7da;border-radius:10px;margin-bottom:10px;padding:13px}.attendance-register .table>tbody>tr>td{border:0;padding:5px 0}.attendance-register .table>tbody>tr>td:first-child{padding-bottom:9px;border-bottom:1px solid #eef2ea;margin-bottom:5px}.attendance-register select,.attendance-register input{min-height:44px;font-size:14px}.attendance-save-bar{position:sticky;bottom:8px;z-index:20;margin:12px 0}.attendance-save-bar .btn{width:100%;min-height:48px;box-shadow:0 8px 24px #183c2c40}.attendance-entry-form .card.p-3{padding:12px!important}}

.certificate-number{text-align:right;margin:8px 0;font-size:9px;font-weight:700}.certificate-statement{padding:18px 12px 8px;font-size:13px;line-height:1.8;text-align:center}.certificate-statement p,.certificate-declaration p{margin:0}.certificate-declaration{border:1px solid #9eaaa3;margin-top:12px;padding:10px;font-size:10px;line-height:1.6}.certificate-signatures{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:34px}.certificate-signatures div{border-top:1px solid #4d5a53;padding-top:5px;text-align:center;font-size:8px}@media print{.certificate-statement{padding-top:15px}.certificate-signatures{margin-top:30px}}
.student-summary-sheet{background:#fff;border:1px solid #bcc8c0;padding:10mm;color:#17231d}.student-summary-header{display:grid;grid-template-columns:22mm 1fr 22mm;gap:12px;align-items:center;border-bottom:2px solid #214f46;padding-bottom:8px}.student-summary-header>div{height:20mm}.student-summary-header img{width:100%;height:100%;object-fit:contain}.student-summary-header section{text-align:center}.student-summary-header h1{font-size:20px;margin:0;color:#173f37}.student-summary-header h2{font-size:13px;letter-spacing:1.2px;margin:6px 0 0}.student-summary-header p{font-size:9px;margin:2px}.student-summary-header aside{text-align:center;border:1px solid #8f9f96;padding:5px}.student-summary-header aside strong,.student-summary-header aside span{display:block}.student-summary-header aside strong{font-size:18px}.student-summary-header aside span{font-size:8px;text-transform:uppercase}.student-summary-meta{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;padding:6px;font-size:8px;border-bottom:1px solid #aebbb3}.student-summary-table{width:100%;border-collapse:collapse;font-size:8px;margin-top:8px}.student-summary-table th,.student-summary-table td{border:1px solid #9eaaa3;padding:4px;vertical-align:top}.student-summary-table th{background:#214f46;color:#fff;text-transform:uppercase;font-size:7px;letter-spacing:.3px}.student-summary-table td strong,.student-summary-table td span,.student-summary-table td small{display:block}.student-summary-table td small{margin-top:2px;color:#4f5f57;font-size:7px}.student-summary-sheet footer{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:28px;font-size:8px}.student-summary-sheet footer span{border-top:1px solid #4d5a53;padding-top:4px;text-align:center}@media print{@page{size:A4 landscape;margin:7mm}.student-summary-sheet{width:100%;max-width:100%;border:0;padding:0}.student-summary-table{font-size:7px}.student-summary-table th,.student-summary-table td{padding:3px}.student-summary-table tr{break-inside:avoid}.student-summary-sheet footer{break-inside:avoid}}
.exam-status-mark{display:inline-flex;align-items:center;justify-content:center;width:1.55em;height:1.55em;border:1.5px solid currentColor;border-radius:50%;font-weight:700;line-height:1;vertical-align:middle;white-space:nowrap}.exam-status-legend{display:flex;align-items:center;gap:.4rem;margin:.6rem 0 1rem;font-size:.85rem}@media print{.exam-status-mark{border-color:#000;color:#000;print-color-adjust:exact}}
.result-sheet-table{table-layout:fixed;width:100%}
.result-sheet-table th,.result-sheet-table td{height:auto!important;white-space:normal!important;overflow-wrap:anywhere;vertical-align:middle}
.result-sheet-table th:first-child{width:6%}.result-sheet-table th:nth-child(2){width:18%}
.result-sheet-student strong,.result-sheet-student small{display:block;white-space:normal;overflow-wrap:anywhere}
.result-sheet-student small{margin-top:2px;font-size:.8em}
.result-sheet-table .result-sheet-top-position>td{background:#e8f0eb!important;font-weight:600}
.result-sheet-table .result-sheet-top-position>td:first-child{border-left:3px solid #235a43!important}
.result-sheet-table .result-sheet-top-position .result-sheet-position{font-weight:800}
@page result-sheet-landscape{size:A4 landscape;margin:7mm}
@media print{body.result-sheet-page,body.result-sheet-page .result-sheet-table{page:result-sheet-landscape}.result-sheet-page .result-sheet-table{font-size:8pt;table-layout:fixed}.result-sheet-page .result-sheet-table th,.result-sheet-page .result-sheet-table td{padding:2mm 1.2mm!important;line-height:1.25!important;height:auto!important;min-height:0!important;white-space:normal!important}.result-sheet-page .result-sheet-table tbody tr{height:auto!important;break-inside:avoid}.result-sheet-page .result-sheet-student strong{font-weight:600}.result-sheet-page .result-sheet-student small{font-size:6.5pt}.result-sheet-page .result-sheet-table thead{display:table-header-group}}
@media print{.result-sheet-page .result-sheet-table .result-sheet-top-position>td{background:#e6e6e6!important;color:#000!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.result-sheet-page .result-sheet-table .result-sheet-top-position>td:first-child{border-left:3px solid #000!important}.result-sheet-page .result-sheet-table .result-sheet-top-position .result-sheet-position{font-weight:900!important}}

.student-summary-photo{width:14mm;text-align:center}.student-summary-photo img{width:12mm;height:15mm;object-fit:cover;border:1px solid #9eaaa3;border-radius:1mm}.student-summary-photo span{font-size:6px;color:#6b7770}

@page portrait-report{size:A4 portrait;margin:8mm}@media print{body.portrait-report-page{page:portrait-report}.portrait-report{width:auto!important;max-width:none!important}.portrait-report.student-summary-sheet{padding:0;border:0}}

@media print{html,body,.app-shell,.main-content{height:auto!important;min-height:0!important}.main-content{margin:0!important;overflow:visible!important}.main-content>.content-card{break-inside:auto!important}.student-summary-sheet{margin:0!important;break-after:auto!important}.modal,.modal-backdrop{display:none!important}}.student-crosstab th,.student-crosstab td{text-align:center;vertical-align:middle}.student-crosstab th:first-child{text-align:left}.summary-grand-total th,.summary-grand-total td{font-weight:700;background:#e8efe9}

@media print{html,body{margin:0!important;padding:0!important;width:100%!important;overflow:visible!important}.app-shell,.main-content{display:block!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;overflow:visible!important}.student-summary-sheet{width:calc(100% - 1mm)!important;max-width:calc(100% - 1mm)!important;margin:0!important;padding:0!important;box-sizing:border-box!important;page-break-after:avoid!important;break-after:avoid-page!important}.student-summary-sheet footer{margin-bottom:0!important;break-inside:auto!important}.student-summary-sheet+*{page-break-before:avoid!important;break-before:avoid-page!important}}

@page admission-portrait{size:A4 portrait;margin:5mm}@media print{body.admission-portrait-page{page:admission-portrait}.admission-portrait-page .admission-form-sheet{width:calc(100% - 1mm)!important;max-width:calc(100% - 1mm)!important;margin:0!important}}

@media print{
body.admission-portrait-page{page:admission-portrait}
.admission-portrait-page .admission-form-sheet{width:calc(100% - 1mm)!important;max-width:calc(100% - 1mm)!important;margin:0!important;padding:0!important;font-size:7.5px!important;line-height:1.15!important}
.admission-portrait-page .admission-form-header{grid-template-columns:18mm 1fr 21mm!important;gap:7px!important;padding-bottom:4px!important}
.admission-portrait-page .admission-logo-box,.admission-portrait-page .admission-photo-box{height:21mm!important}
.admission-portrait-page .admission-heading h1{font-size:16px!important}
.admission-portrait-page .admission-heading p{font-size:7px!important;line-height:1.1!important;margin:1px 0!important}
.admission-portrait-page .admission-heading h2{font-size:10px!important;margin:3px 0 0!important}
.admission-portrait-page .admission-meta>div,.admission-portrait-page .admission-grid>div{padding:2px 4px!important;min-height:20px!important}
.admission-portrait-page .admission-meta span,.admission-portrait-page .admission-grid span{font-size:5.5px!important}
.admission-portrait-page .admission-meta strong,.admission-portrait-page .admission-grid strong{font-size:7px!important;margin-top:1px!important;line-height:1.15!important}
.admission-portrait-page .admission-section{margin-top:4px!important;break-inside:avoid!important}
.admission-portrait-page .admission-section h3,.admission-portrait-page .admission-declaration h3{font-size:7px!important;padding:2px 4px!important}
.admission-portrait-page .admission-table{font-size:6.5px!important;line-height:1.1!important}
.admission-portrait-page .admission-table th,.admission-portrait-page .admission-table td{padding:2px 3px!important;height:14px!important}
.admission-portrait-page .admission-declaration{margin-top:4px!important}
.admission-portrait-page .admission-declaration p{padding:3px 5px!important;font-size:6.5px!important;line-height:1.2!important}
.admission-portrait-page .signature-grid{gap:10px!important;padding:11px 5px 3px!important}
.admission-portrait-page .signature-grid div{font-size:6px!important;padding-top:2px!important}
.admission-portrait-page .admission-office{margin-top:4px!important;padding:3px 5px!important}
.admission-portrait-page .admission-office>strong{font-size:6.5px!important}
.admission-portrait-page .admission-office>div{gap:10px!important;margin-top:8px!important}
.admission-portrait-page .admission-office span{font-size:6px!important;padding-top:2px!important}
.admission-portrait-page .admission-form-sheet footer{font-size:5.5px!important;margin-top:3px!important}
}

@media print{
.admission-portrait-page .admission-form-sheet{font-size:9px!important;line-height:1.3!important}
.admission-portrait-page .admission-form-header{grid-template-columns:22mm 1fr 26mm!important;gap:10px!important;padding-bottom:7px!important}
.admission-portrait-page .admission-logo-box,.admission-portrait-page .admission-photo-box{height:26mm!important}
.admission-portrait-page .admission-heading h1{font-size:20px!important}
.admission-portrait-page .admission-heading p{font-size:8px!important;line-height:1.25!important;margin:2px 0!important}
.admission-portrait-page .admission-heading h2{font-size:12px!important;margin:5px 0 0!important}
.admission-portrait-page .admission-meta>div,.admission-portrait-page .admission-grid>div{padding:4px 6px!important;min-height:27px!important}
.admission-portrait-page .admission-meta span,.admission-portrait-page .admission-grid span{font-size:6.5px!important}
.admission-portrait-page .admission-meta strong,.admission-portrait-page .admission-grid strong{font-size:8.5px!important;margin-top:2px!important;line-height:1.25!important}
.admission-portrait-page .admission-section{margin-top:6px!important}
.admission-portrait-page .admission-section h3,.admission-portrait-page .admission-declaration h3{font-size:8.5px!important;padding:3px 6px!important}
.admission-portrait-page .admission-table{font-size:8px!important;line-height:1.25!important}
.admission-portrait-page .admission-table th,.admission-portrait-page .admission-table td{padding:3px 5px!important;height:18px!important}
.admission-portrait-page .admission-declaration{margin-top:6px!important}
.admission-portrait-page .admission-declaration p{padding:5px 7px!important;font-size:8px!important;line-height:1.35!important}
.admission-portrait-page .signature-grid{gap:15px!important;padding:17px 7px 5px!important}
.admission-portrait-page .signature-grid div{font-size:7px!important;padding-top:3px!important}
.admission-portrait-page .admission-office{margin-top:6px!important;padding:5px 7px!important}
.admission-portrait-page .admission-office>strong{font-size:8px!important}
.admission-portrait-page .admission-office>div{gap:14px!important;margin-top:12px!important}
.admission-portrait-page .admission-office span{font-size:7px!important;padding-top:3px!important}
.admission-portrait-page .admission-form-sheet footer{font-size:6.5px!important;margin-top:5px!important}
}
.monthly-attendance-sheet{min-width:1180px}.monthly-attendance-legend{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;padding:6px;font-size:8px;border-bottom:1px solid #aebbb3}.monthly-attendance-table{table-layout:auto;white-space:nowrap}.monthly-attendance-table th,.monthly-attendance-table td{text-align:center;padding:3px 2px}.monthly-attendance-table .attendance-day,.monthly-attendance-table .attendance-code{width:20px;min-width:20px}.monthly-attendance-table .attendance-student{text-align:left;min-width:105px}.monthly-attendance-table .attendance-a{font-weight:700;color:#a33}.monthly-attendance-table .attendance-l{font-weight:700;color:#986b16}.monthly-attendance-table .attendance-total{font-weight:700;background:#edf2ef}@media print{.monthly-attendance-sheet{min-width:0}.monthly-attendance-sheet .student-summary-header{grid-template-columns:18mm 1fr 18mm}.monthly-attendance-sheet .student-summary-header>div{height:16mm}.monthly-attendance-sheet .student-summary-header h1{font-size:16px}.monthly-attendance-table{font-size:5.5px}.monthly-attendance-table th,.monthly-attendance-table td{padding:2px 1px}.monthly-attendance-table .attendance-day,.monthly-attendance-table .attendance-code{width:auto;min-width:0}.monthly-attendance-table .attendance-student{min-width:25mm}.monthly-attendance-sheet footer{margin-top:18px}}
.dmc-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;width:min(100%,210mm);margin:0 auto 20px}.dmc-toolbar h1{font-size:27px;margin:0 0 7px}.dmc-toolbar p{margin:0;color:#7c887d}.dmc-sheet{display:flex;flex-direction:column;width:min(100%,210mm);min-height:287mm;margin:0 auto 24px;padding:11mm 13mm;background:#fff;border:1px solid #aab5af;box-shadow:0 8px 28px #20382f12;color:#17231d;font-family:Arial,sans-serif}.dmc-header{display:grid;grid-template-columns:22mm minmax(0,1fr) 23mm;gap:8px;align-items:center;text-align:center;border-bottom:2px solid #273c34;padding-bottom:7px}.dmc-logo{height:20mm;display:grid;place-items:center}.dmc-logo img{width:100%;height:100%;object-fit:contain}.dmc-header h1{margin:0;font-size:20px;line-height:1.15;text-transform:uppercase}.dmc-header p{margin:2px 0;font-size:8.5px;line-height:1.25}.dmc-header h2{margin:6px 0 1px;font-size:14px;letter-spacing:1.4px}.dmc-header h3{margin:0;font-size:10px;font-weight:600}.dmc-result-stamp{width:21mm;height:21mm;border:1.5px solid currentColor;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-5deg)}.dmc-result-stamp span{font-size:6.5px;text-transform:uppercase;letter-spacing:.7px}.dmc-result-stamp strong{font-size:10px}.dmc-pass{color:#2e6e4f}.dmc-fail{color:#9a443c}.dmc-student-details{width:100%;margin:10px 0 12px;border-collapse:collapse;font-size:9.5px}.dmc-student-details th{width:17%;padding:4px 6px;text-align:left;font-weight:600;white-space:nowrap}.dmc-student-details td{width:33%;padding:4px 6px;border-bottom:1px solid #4d5a53;font-weight:600;overflow-wrap:anywhere}.dmc-marks-table{width:100%;border-collapse:collapse;table-layout:fixed;text-align:center;font-size:8.5px}.dmc-marks-table th,.dmc-marks-table td{height:25px;padding:3px 4px;border:1px solid #59655f}.dmc-marks-table thead th{background:#e4e8e5;font-size:7.5px;line-height:1.2;text-transform:uppercase}.dmc-marks-table th:nth-child(1){width:6%}.dmc-marks-table th:nth-child(2){width:27%}.dmc-marks-table th:nth-child(3),.dmc-marks-table th:nth-child(4),.dmc-marks-table th:nth-child(5){width:13%}.dmc-marks-table th:nth-child(6){width:11%}.dmc-marks-table th:nth-child(7){width:17%}.dmc-marks-table .dmc-subject{text-align:left;padding-left:8px;overflow-wrap:anywhere}.dmc-marks-table tfoot th{background:#e9edeb}.dmc-mark-circle{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 3px;border:1.4px solid #222;border-radius:50%;font-weight:700;line-height:1}.dmc-outcome-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:12px;border-top:1px solid #647069;border-left:1px solid #647069}.dmc-outcome-grid>div{display:grid;grid-template-columns:1.25fr 1fr;min-height:30px;border-right:1px solid #647069;border-bottom:1px solid #647069}.dmc-outcome-grid span,.dmc-outcome-grid strong{padding:5px 7px;font-size:8.5px;overflow-wrap:anywhere}.dmc-outcome-grid span{background:#f1f3f1}.dmc-outcome-grid strong{border-left:1px solid #647069;text-align:center}.dmc-signatures{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:auto;padding-top:22mm}.dmc-signatures div{border-top:1px solid #28352f;padding-top:4px;text-align:center;font-size:8px}.dmc-footnote{margin:8px 0 0;text-align:center;color:#718078;font-size:6.5px}.dmc-page-break{break-after:page;page-break-after:always}@media(max-width:800px){.dmc-sheet{width:100%;min-height:0;padding:22px 18px;overflow-x:auto}.dmc-header{grid-template-columns:16mm minmax(180px,1fr) 18mm}.dmc-result-stamp{width:17mm;height:17mm}.dmc-student-details,.dmc-marks-table,.dmc-outcome-grid{min-width:620px}.dmc-toolbar{align-items:stretch;flex-direction:column}.dmc-toolbar .btn{align-self:flex-start}}@page dmc-portrait{size:A4 portrait;margin:6mm}@media print{body.dmc-report-page{page:dmc-portrait}.dmc-report-page .dmc-sheet{page:dmc-portrait;width:198mm;min-height:285mm;margin:0;padding:8mm 10mm;border:0;box-shadow:none;box-sizing:border-box;break-inside:avoid;overflow:hidden}.dmc-report-page .dmc-toolbar{display:none!important}.dmc-report-page .dmc-header{grid-template-columns:19mm minmax(0,1fr) 20mm}.dmc-report-page .dmc-logo{height:18mm}.dmc-report-page .dmc-student-details{margin:8px 0 10px}.dmc-report-page .dmc-marks-table th,.dmc-report-page .dmc-marks-table td{height:23px;padding:2px 3px}.dmc-report-page .dmc-outcome-grid{margin-top:10px}.dmc-report-page .dmc-signatures{padding-top:16mm}.dmc-report-page .dmc-page-break{break-after:page!important;page-break-after:always!important}.dmc-report-page .dmc-sheet:last-of-type{break-after:auto!important;page-break-after:auto!important}.dmc-report-page .dmc-header,.dmc-report-page .dmc-marks-table thead th,.dmc-report-page .dmc-marks-table tfoot th,.dmc-report-page .dmc-outcome-grid span{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
.overview-stat-rows{display:grid;gap:18px}.overview-stat-row{min-width:0}.overview-stat-grid{margin-bottom:0}.overview-stat-card{--stat-accent:#55866d;--stat-soft:#edf5ef;position:relative;isolation:isolate;min-height:150px;padding:20px 20px 18px;overflow:hidden;border-color:#dfe8e1;background:linear-gradient(145deg,#fff 0%,#fff 62%,var(--stat-soft) 145%);box-shadow:0 7px 24px #233c3209}.overview-stat-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--stat-accent)}.overview-stat-card:after{content:"";position:absolute;width:88px;height:88px;right:-38px;bottom:-45px;border:18px solid var(--stat-soft);border-radius:50%;z-index:-1}.overview-stat-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.overview-stat-card .stat-label{max-width:calc(100% - 44px);min-height:34px;margin:0;color:#52635a;font-size:10px;font-weight:650;letter-spacing:.45px;line-height:1.45;text-transform:uppercase}.overview-stat-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border-radius:10px;background:var(--stat-soft);color:var(--stat-accent);font-size:9px;font-weight:800;letter-spacing:.4px}.overview-stat-card .stat-value{margin-top:8px;color:#203c31;font-size:27px;font-weight:700;letter-spacing:-.8px}.overview-stat-card .stat-trend{margin-top:auto;padding-top:12px;color:#7d8b83;font-size:9px}.attendance-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.attendance-breakdown>div{padding:8px 5px;border:1px solid #e2e8e3;border-radius:8px;background:#ffffffc7;text-align:center}.attendance-breakdown span,.attendance-breakdown strong{display:block}.attendance-breakdown span{color:#7e8b84;font-size:7px;font-weight:650;letter-spacing:.35px;text-transform:uppercase}.attendance-breakdown strong{margin-top:2px;color:var(--stat-accent);font-size:17px;line-height:1.15}.tone-green{--stat-accent:#39795b;--stat-soft:#e5f1e9}.tone-blue{--stat-accent:#46759a;--stat-soft:#e6eff5}.tone-amber{--stat-accent:#a3742e;--stat-soft:#f7eedc}.tone-violet{--stat-accent:#76649c;--stat-soft:#eeeaf6}.tone-teal{--stat-accent:#25766f;--stat-soft:#e2f1ef}.tone-red{--stat-accent:#a5524b;--stat-soft:#f6e9e7}.tone-cyan{--stat-accent:#3f7f92;--stat-soft:#e5f1f4}.tone-orange{--stat-accent:#ad6938;--stat-soft:#f7ebe2}@media(max-width:1200px){.overview-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.overview-stat-grid{grid-template-columns:1fr}.overview-stat-card{min-height:138px}}

/* Formal People reports: readable office-print typography. */
.people-report-page .student-summary-meta{font-size:10px;line-height:1.35;padding:8px}
.people-report-page .student-summary-table{font-size:10px;line-height:1.35}
.people-report-page .student-summary-table th{font-size:9px;line-height:1.3;padding:5px}
.people-report-page .student-summary-table td{padding:5px}
.people-report-page .student-summary-table td small{font-size:9px;line-height:1.3;margin-top:3px}
.people-report-page .student-summary-sheet footer{font-size:10px}
.people-report-page .report-table{font-size:11px;line-height:1.4}
.people-report-page .report-table th,.people-report-page .report-table td{padding:7px 6px}
.people-report-page .report-table .small{font-size:9px}
@media print{
  .people-report-page .student-summary-header h1{font-size:19pt!important}
  .people-report-page .student-summary-header h2{font-size:12pt!important}
  .people-report-page .student-summary-header p{font-size:9pt!important}
  .people-report-page .student-summary-header aside strong{font-size:16pt!important}
  .people-report-page .student-summary-header aside span{font-size:8pt!important}
  .people-report-page .student-summary-meta{font-size:9pt!important;line-height:1.35!important;padding:7px!important}
  .people-report-page .student-summary-table{font-size:10pt!important;line-height:1.35!important}
  .people-report-page .student-summary-table th{font-size:9pt!important;line-height:1.3!important;padding:5px 4px!important}
  .people-report-page .student-summary-table td{padding:5px 4px!important}
  .people-report-page .student-summary-table td small{font-size:9pt!important;line-height:1.3!important}
  .people-report-page .student-summary-sheet footer{font-size:9pt!important;margin-top:30px!important}
  .people-report-page .report-header h1{font-size:18pt!important}
  .people-report-page .report-header h2{font-size:12pt!important}
  .people-report-page .report-meta{font-size:9pt!important}
  .people-report-page .report-table{font-size:10pt!important;line-height:1.35!important}
  .people-report-page .report-table th{font-size:9pt!important;padding:5px 4px!important}
  .people-report-page .report-table td{padding:5px 4px!important}
  .people-report-page .report-table .small{font-size:9pt!important}
  .people-report-page .student-summary-photo span{font-size:7.5pt!important}
  .people-report-page .student-summary-photo img{width:14mm!important;height:17mm!important}
  .people-report-page .student-crosstab{font-size:10pt!important}
  .people-report-page .student-crosstab th{font-size:9pt!important}
  .people-report-page .monthly-attendance-legend{font-size:7.5pt!important;padding:6px!important}
  .people-report-page .monthly-attendance-table{font-size:6.5pt!important;line-height:1.2!important}
  .people-report-page .monthly-attendance-table th{font-size:6pt!important;padding:3px 1px!important}
  .people-report-page .monthly-attendance-table td{padding:3px 1px!important}
  .people-report-page .monthly-attendance-table .attendance-student{font-size:6.5pt!important;min-width:27mm!important}
}


/* Class Section report filter and formal column proportions. */
.class-section-filter .form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:end}
.class-section-filter .form-grid>div{min-width:0}
.class-section-filter .form-grid .form-select{width:100%;min-width:0}
.class-section-report-table{table-layout:fixed}
.class-section-report-table th:nth-child(1),.class-section-report-table td:nth-child(1){width:4%;text-align:center}
.class-section-report-table th:nth-child(2),.class-section-report-table td:nth-child(2){width:11%}
.class-section-report-table th:nth-child(3),.class-section-report-table td:nth-child(3){width:7%;text-align:center}
.class-section-report-table th:nth-child(4),.class-section-report-table td:nth-child(4){width:22%}
.class-section-report-table th:nth-child(5),.class-section-report-table td:nth-child(5){width:22%}
.class-section-report-table th:nth-child(6),.class-section-report-table td:nth-child(6){width:24%}
.class-section-report-table th:nth-child(7),.class-section-report-table td:nth-child(7){width:10%;text-align:center}
.class-section-report-table td{overflow-wrap:anywhere}
@media(max-width:900px){.class-section-filter .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.class-section-filter .form-grid{grid-template-columns:1fr}}
@media print{
  .class-section-report-table th:nth-child(2),.class-section-report-table td:nth-child(2){width:10%}
  .class-section-report-table th:nth-child(3),.class-section-report-table td:nth-child(3){width:6%}
  .class-section-report-table th:nth-child(4),.class-section-report-table td:nth-child(4){width:23%}
  .class-section-report-table th:nth-child(5),.class-section-report-table td:nth-child(5){width:23%}
}

/* Actual rendered grid for the four Class Section filters. */
.class-section-filter .form-sections,.class-section-filter .form-section{width:100%;margin:0}
.class-section-filter .form-fields-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important;align-items:end}
.class-section-filter .form-fields-grid>.field-group{min-width:0;margin-bottom:0}
@media(max-width:900px){.class-section-filter .form-fields-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:520px){.class-section-filter .form-fields-grid{grid-template-columns:1fr!important}}

/* Give the Class Section four-column filter the full card width. */
.class-section-filter>.form-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important}
.class-section-filter .form-fields-grid>.form-field{min-width:0;width:100%}

/* Withdrawal report: full-width filters and formal column proportions. */
.withdrawal-report-filter>.form-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important}
.withdrawal-report-filter .form-sections,.withdrawal-report-filter .form-section{width:100%;margin:0}
.withdrawal-report-filter .form-fields-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;align-items:end}
.withdrawal-report-filter .form-fields-grid>.form-field{min-width:0;width:100%}
.withdrawal-report-table{table-layout:fixed}
.withdrawal-report-table th:nth-child(1),.withdrawal-report-table td:nth-child(1){width:4%;text-align:center}
.withdrawal-report-table th:nth-child(2),.withdrawal-report-table td:nth-child(2){width:10%}
.withdrawal-report-table th:nth-child(3),.withdrawal-report-table td:nth-child(3){width:20%}
.withdrawal-report-table th:nth-child(4),.withdrawal-report-table td:nth-child(4){width:21%}
.withdrawal-report-table th:nth-child(5),.withdrawal-report-table td:nth-child(5){width:12%}
.withdrawal-report-table th:nth-child(6),.withdrawal-report-table td:nth-child(6){width:13%}
.withdrawal-report-table th:nth-child(7),.withdrawal-report-table td:nth-child(7){width:9%}
.withdrawal-report-table th:nth-child(8),.withdrawal-report-table td:nth-child(8){width:11%}
.withdrawal-report-table td{overflow-wrap:anywhere}
@media(max-width:900px){.withdrawal-report-filter .form-fields-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:520px){.withdrawal-report-filter .form-fields-grid{grid-template-columns:1fr!important}}
@media print{
  .withdrawal-report-table th:nth-child(2),.withdrawal-report-table td:nth-child(2){width:9%}
  .withdrawal-report-table th:nth-child(3),.withdrawal-report-table td:nth-child(3){width:21%}
  .withdrawal-report-table th:nth-child(4),.withdrawal-report-table td:nth-child(4){width:22%}
}

/* Newly Admitted report: full-width filters and formal column proportions. */
.newly-admitted-filter>.form-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important}
.newly-admitted-filter .form-sections,.newly-admitted-filter .form-section{width:100%;margin:0}
.newly-admitted-filter .form-fields-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;align-items:end}
.newly-admitted-filter .form-fields-grid>.form-field{min-width:0;width:100%}
.newly-admitted-table{table-layout:fixed}
.newly-admitted-table th:nth-child(1),.newly-admitted-table td:nth-child(1){width:4%;text-align:center}
.newly-admitted-table th:nth-child(2),.newly-admitted-table td:nth-child(2){width:11%}
.newly-admitted-table th:nth-child(3),.newly-admitted-table td:nth-child(3){width:25%}
.newly-admitted-table th:nth-child(4),.newly-admitted-table td:nth-child(4){width:23%}
.newly-admitted-table th:nth-child(5),.newly-admitted-table td:nth-child(5){width:18%}
.newly-admitted-table th:nth-child(6),.newly-admitted-table td:nth-child(6){width:19%}
.newly-admitted-table td{overflow-wrap:anywhere}
@media(max-width:900px){.newly-admitted-filter .form-fields-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:520px){.newly-admitted-filter .form-fields-grid{grid-template-columns:1fr!important}}
@media print{
  .newly-admitted-table th:nth-child(2),.newly-admitted-table td:nth-child(2){width:9%}
  .newly-admitted-table th:nth-child(3),.newly-admitted-table td:nth-child(3){width:27%}
  .newly-admitted-table th:nth-child(4),.newly-admitted-table td:nth-child(4){width:25%}
  .newly-admitted-table th:nth-child(6),.newly-admitted-table td:nth-child(6){width:17%}
}

/* POST-based report navigation keeps category parameters out of the URL. */
.nav-post-form{margin:0;padding:0}
.nav-post-form .nav-item{width:100%;border:0;text-align:left;background:transparent;font-family:inherit;cursor:pointer}
.nav-post-form .nav-item:hover{color:#fff;background:#274c47}
.nav-post-form .nav-item.active{background:#d5e8ae;color:#1a4037;font-weight:650}

/* Detailed Student Summary filters use the complete report-card width. */
.detailed-student-filter>.form-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important}
.detailed-student-filter .form-sections,.detailed-student-filter .form-section{width:100%;margin:0}
.detailed-student-filter .form-fields-grid{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:14px!important;align-items:end}
.detailed-student-filter .form-fields-grid>.form-field{min-width:0;width:100%}
@media(max-width:1200px){.detailed-student-filter .form-fields-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:700px){.detailed-student-filter .form-fields-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:520px){.detailed-student-filter .form-fields-grid{grid-template-columns:1fr!important}}

/* Monthly Attendance filters use the complete report-card width. */
.monthly-attendance-filter>.form-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important}
.monthly-attendance-filter .form-sections,.monthly-attendance-filter .form-section{width:100%;margin:0}
.monthly-attendance-filter .form-fields-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important;align-items:end}
.monthly-attendance-filter .form-fields-grid>.form-field{min-width:0;width:100%}
@media(max-width:900px){.monthly-attendance-filter .form-fields-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:520px){.monthly-attendance-filter .form-fields-grid{grid-template-columns:1fr!important}}

.certificate-print-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;max-width:210mm;margin:0 auto 18px;padding:14px 16px;background:#fff;border:1px solid #d5ded9;border-radius:12px;box-shadow:0 7px 24px #1d3f3412}.certificate-print-options,.certificate-print-actions{display:flex;align-items:center;gap:16px}.certificate-print-options .form-check{margin:0}.certificate-margin-control{display:flex;align-items:center;gap:9px;margin:0;font-size:13px;font-weight:600;color:#44534b}.certificate-margin-control .input-group{width:112px}.certificate-without-header .admission-form-header{display:none}.certificate-without-header .certificate-number{margin-top:0}@media(max-width:760px){.certificate-print-toolbar,.certificate-print-options{align-items:stretch;flex-direction:column}.certificate-print-actions{flex-wrap:wrap}.certificate-margin-control{justify-content:space-between}}@media print{.certificate-print-toolbar{display:none!important}.leaving-certificate-sheet{padding-top:var(--certificate-letterhead-top,0mm)!important}.leaving-certificate-sheet.certificate-without-header .admission-form-header{display:none!important}}
.dmc-sheet{padding-top:calc(11mm + var(--dmc-letterhead-top,0mm))}
.dmc-sheet.dmc-without-header .dmc-logo,.dmc-sheet.dmc-without-header .dmc-header h1,.dmc-sheet.dmc-without-header .dmc-header p{display:none}
.dmc-sheet.dmc-without-header .dmc-header{grid-template-columns:minmax(0,1fr) 23mm}
@media print{.dmc-report-page .dmc-sheet{padding-top:calc(8mm + var(--dmc-letterhead-top,0mm))!important}.dmc-report-page .dmc-sheet.dmc-without-header .dmc-header{grid-template-columns:minmax(0,1fr) 20mm!important}.dmc-report-page .dmc-sheet.dmc-without-header .dmc-logo,.dmc-report-page .dmc-sheet.dmc-without-header .dmc-header h1,.dmc-report-page .dmc-sheet.dmc-without-header .dmc-header p{display:none!important}}

/* Pre-printed letter pad mode keeps the document title and student photograph. */
.certificate-without-header .admission-form-header{display:grid;grid-template-columns:minmax(0,1fr) 30mm}
.certificate-without-header .admission-logo-box,.certificate-without-header .admission-heading h1,.certificate-without-header .admission-heading p{display:none}
.certificate-without-header .admission-heading h2{margin:0;font-size:17px}
@media print{.leaving-certificate-sheet.certificate-without-header .admission-form-header{display:grid!important;grid-template-columns:minmax(0,1fr) 27mm!important}.leaving-certificate-sheet.certificate-without-header .admission-logo-box,.leaving-certificate-sheet.certificate-without-header .admission-heading h1,.leaving-certificate-sheet.certificate-without-header .admission-heading p{display:none!important}.leaving-certificate-sheet.certificate-without-header .admission-heading h2{display:block!important;margin:0!important}}

.certificate-orientation-control{display:flex;align-items:center;gap:9px;margin:0;font-size:13px;font-weight:600;color:#44534b}.certificate-orientation-control .form-select{width:125px}


@media print{.leaving-certificate-sheet{page:auto}.leaving-certificate-sheet.certificate-landscape{width:283mm!important;max-width:283mm!important}.leaving-certificate-sheet.certificate-landscape .admission-grid{grid-template-columns:repeat(4,1fr)}}

@page certificate-portrait{size:A4 portrait;margin:7mm}
@page certificate-landscape{size:A4 landscape;margin:7mm}
@media print{
  body.certificate-portrait-page,body.certificate-portrait-page .leaving-certificate-sheet{page:certificate-portrait}
  body.certificate-landscape-page,body.certificate-landscape-page .leaving-certificate-sheet{page:certificate-landscape}
}



/* People reports: standardize every table body to the requested official print size. */
.people-report-page table tbody td,.people-report-page table tbody td .small,.people-report-page table tbody td small{font-size:11pt!important;line-height:1.35!important}
@media print{.people-report-page table tbody td,.people-report-page table tbody td .small,.people-report-page table tbody td small{font-size:11pt!important;line-height:1.35!important}}

/* Keep all text in People printouts legible on monochrome printers. */
@media print{
  .people-report-page :is(.student-summary-sheet,.report-sheet),
  .people-report-page :is(.student-summary-sheet,.report-sheet) *,
  .leaving-certificate-sheet,
  .leaving-certificate-sheet *{color:#000!important}
  .people-report-page :is(.student-summary-sheet,.report-sheet) th,
  .leaving-certificate-sheet .admission-section h3,
  .leaving-certificate-sheet .admission-declaration h3{background:#fff!important}
}
.dmc-marks-table td { height: auto; min-height: 25px; line-height: 1.25; }
.dmc-marks-table .dmc-component-detail { display: block; margin-top: 3px; font-size: 11px; line-height: 1.3; font-weight: 600; color: #17231d; }
.dmc-marks-table thead th:nth-child(2) { width: 25%; }
.dmc-marks-table thead th:nth-child(5) { width: 17%; }
.dmc-marks-table thead th:nth-child(7) { width: 15%; }
@media print {
  .dmc-report-page .dmc-marks-table { font-size: 10pt; }
  .dmc-report-page .dmc-marks-table thead th { font-size: 8pt; }
  .dmc-report-page .dmc-marks-table td { height: auto; min-height: 23px; padding: 1.5mm 1mm; }
  .dmc-report-page .dmc-marks-table .dmc-component-detail { font-size: 9pt; line-height: 1.3; color: #000; print-color-adjust: exact; }
}
.exam-schedule-editor [data-component-group][hidden] { display: none; }
.single-invoice-editor .single-invoice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.single-invoice-editor .single-invoice-grid .form-field{min-width:0}
.single-invoice-editor .single-invoice-notes{max-width:760px}
@media(max-width:900px){.single-invoice-editor .single-invoice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.single-invoice-editor .single-invoice-grid{grid-template-columns:1fr}}

/* Two-part A4 fee slip, based on the institute's paper proforma. */
.fee-slip-sheet{width:196mm;max-width:100%;margin:0 auto 24px;padding:7mm;background:#fff;border:1px solid #999;color:#000;font:10pt Arial,sans-serif}
.fee-slip-sheet *{box-sizing:border-box;color:#000}
.fee-slip-header{display:grid;grid-template-columns:24mm 1fr;gap:4mm;align-items:center;text-align:center;border-bottom:1px solid #222;padding-bottom:3mm}
.fee-slip-logo{width:22mm;height:22mm}.fee-slip-logo img{width:100%;height:100%;object-fit:contain}
.fee-slip-header h2{font:700 19pt Georgia,serif;margin:0;line-height:1.1}.fee-slip-header p{margin:1mm 0;font-size:8pt;line-height:1.2}.fee-slip-header strong{display:block;font-size:12pt;letter-spacing:2mm;margin-top:1mm}
.fee-slip-meta,.fee-slip-columns table{border-collapse:collapse;width:100%;table-layout:fixed}.fee-slip-meta th,.fee-slip-meta td,.fee-slip-columns th,.fee-slip-columns td{border:1px solid #333;padding:1.5mm 1mm;overflow-wrap:anywhere}.fee-slip-meta th{font-size:8pt;text-align:center}.fee-slip-meta td{text-align:center;font-size:9pt}
.fee-slip-student{min-height:14mm;padding:2mm 1mm;font-size:9pt;line-height:1.35}.fee-slip-student strong{font-size:11pt}
.fee-slip-columns{display:grid;grid-template-columns:43% 57%;min-height:90mm;border:1px solid #333}.fee-slip-columns>div:first-child{border-right:1px solid #333}.fee-slip-columns h3{font-size:9pt;text-align:center;text-transform:uppercase;letter-spacing:1mm;margin:0;padding:2mm;border-bottom:1px solid #333}.fee-slip-columns h3 span{display:block;text-transform:none;letter-spacing:0;font-weight:400;margin-top:1mm}.fee-slip-columns table{font-size:8.5pt}.fee-slip-columns th{font-size:8pt}.fee-slip-columns td:not(:first-child),.fee-slip-columns th:not(:first-child){text-align:right}.fee-slip-columns>div:first-child th:last-child{width:27%}.fee-slip-columns>div:last-child th:first-child{width:43%}.fee-slip-columns>div:last-child th:not(:first-child){width:19%}.fee-slip-columns tfoot th{font-weight:700}.fee-slip-discount td{font-size:7.5pt}.fee-slip-current td{font-weight:700}
.fee-slip-notes{font-size:8pt;margin:2mm 0;overflow-wrap:anywhere}.fee-slip-payable{margin-top:3mm;border:1px solid #333}.fee-slip-payable h3{text-align:center;text-transform:uppercase;letter-spacing:2mm;font-size:10pt;margin:0;padding:2mm;border-bottom:1px solid #333}.fee-slip-payable>div{display:grid;grid-template-columns:1fr 1fr}.fee-slip-payable section{text-align:center;display:grid;min-height:17mm}.fee-slip-payable section+section{border-left:1px solid #333}.fee-slip-payable span{text-transform:uppercase;border-bottom:1px solid #333;font-size:8pt;padding:1.5mm}.fee-slip-payable strong{font-size:11pt;padding:2mm}
.fee-slip-cut{border-top:1px dashed #555;margin:9mm 0 3mm;padding-top:1mm;text-align:right;font-size:8pt}.fee-slip-copy{border:1px solid #333}.fee-slip-copy-title{display:flex;justify-content:space-between;gap:5mm;padding:2mm;font-size:9pt}.fee-slip-copy-bottom{display:grid;grid-template-columns:1fr 48%;gap:2mm;align-items:end;padding:2mm;min-height:20mm;font-size:8.5pt}.fee-slip-copy-bottom .fee-slip-payable{margin:0}.fee-slip-copy-bottom .fee-slip-payable section{min-height:13mm}.fee-slip-copy-bottom .fee-slip-payable strong{font-size:9pt}
@page fee-slip-a4{size:A4 portrait;margin:7mm}
.fee-slip-print-toolbar{max-width:196mm}
.fee-slip-page .fee-slip-sheet{padding-top:calc(7mm + var(--fee-slip-top-margin,0mm))}
.fee-slip-sheet.fee-slip-without-header .fee-slip-logo,.fee-slip-sheet.fee-slip-without-header .fee-slip-header h2,.fee-slip-sheet.fee-slip-without-header .fee-slip-header p,.fee-slip-sheet.fee-slip-without-header .fee-slip-copy-title strong{visibility:hidden!important}
@media print{body.fee-slip-page,body.fee-slip-page .fee-slip-sheet{page:fee-slip-a4}.fee-slip-page .fee-slip-print-toolbar{display:none!important}.fee-slip-page .invoice-section-group{margin:0;break-inside:auto}.fee-slip-page .fee-slip-sheet{width:196mm;max-width:none;min-height:0;margin:0;padding:var(--fee-slip-top-margin,0mm) 0 0;border:0;break-inside:avoid-page;page-break-inside:avoid;break-after:page;page-break-after:always}.fee-slip-page .invoice-section-group:last-of-type .fee-slip-sheet:last-child{break-after:auto;page-break-after:auto}.fee-slip-page .fee-slip-sheet *{color:#000!important}.fee-slip-page .fee-slip-columns{min-height:91mm}.fee-slip-page .fee-slip-cut{margin-top:18mm}}
@media print{.fee-slip-single-page .fee-slip-sheet{break-after:auto;page-break-after:auto}}

/* Academic-year fee reports. */
.fee-report-filter .form-fields-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.fee-report-sheet{width:100%;max-width:290mm;margin:0 auto 22px;padding:9mm;background:#fff;border:1px solid #cbd4d0;color:#111}
.fee-report-header{display:grid;grid-template-columns:20mm 1fr auto;align-items:center;gap:5mm;border-bottom:2px solid #222;padding-bottom:3mm}
.fee-report-header img{width:18mm;height:18mm;object-fit:contain}.fee-report-header h2{font-size:17pt;margin:0}.fee-report-header h1{font-size:12pt;text-transform:uppercase;letter-spacing:1px;margin:2mm 0 0}.fee-report-header aside{font-size:8pt;text-align:right}
.fee-report-meta{display:flex;gap:6mm;flex-wrap:wrap;padding:3mm 0;font-size:9pt}.fee-report-caption{font-size:8.5pt;margin:0 0 3mm}
.fee-report-scroll{overflow-x:auto}.fee-report-table{width:100%;border-collapse:collapse;font-size:8.5pt;line-height:1.3}.fee-report-table th,.fee-report-table td{border:1px solid #444;padding:2mm 1.5mm;vertical-align:top;overflow-wrap:anywhere}.fee-report-table th{font-weight:700;background:#edf1ed}.fee-report-table .amount{text-align:right;white-space:nowrap}.fee-report-table .empty{text-align:center;padding:8mm}.fee-report-table tfoot th{background:#e2ebe2}
.fee-report-page .fee-report-table tbody tr.partial-payment-row>td{background-color:#f1f1f1}
@media(max-width:800px){.fee-report-filter .form-fields-grid{grid-template-columns:1fr}.fee-report-sheet{padding:15px}.fee-report-header{grid-template-columns:18mm 1fr}.fee-report-header aside{grid-column:1/-1;text-align:left}.fee-report-table{min-width:680px}}
@page fee-report-portrait{size:A4 portrait;margin:8mm}
@page fee-report-landscape{size:A4 landscape;margin:8mm}
@media print{body.fee-report-page,body.fee-report-page .fee-report-sheet{page:fee-report-portrait}body.fee-report-landscape,body.fee-report-landscape .fee-report-sheet{page:fee-report-landscape}.fee-report-page .fee-report-sheet{width:194mm;max-width:none;margin:0;padding:0;border:0}.fee-report-landscape .fee-report-sheet{width:281mm}.fee-report-page .fee-report-scroll{overflow:visible}.fee-report-page .fee-report-table{min-width:0;font-size:8pt}.fee-report-page .fee-report-table th{background:#fff!important}.fee-report-page .fee-report-table,.fee-report-page .fee-report-table *,.fee-report-page .fee-report-header,.fee-report-page .fee-report-meta,.fee-report-page .fee-report-caption{color:#000!important}.fee-report-page .fee-report-table thead{display:table-header-group}.fee-report-page .fee-report-table tr{break-inside:avoid}}
@media print{.fee-report-page .fee-report-table tbody tr.partial-payment-row>td{background-color:#e8e8e8!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* Staff editor: short, readable groups and clear input alignment. */
.staff-editor{max-width:1180px}
.staff-editor .staff-form-sections{padding-top:6px;padding-bottom:6px}
.staff-editor .staff-form-sections .form-section{margin:18px 0;padding:22px 24px;border:1px solid #d7e2db;border-radius:12px;background:#fbfdfb}
.staff-editor .staff-form-sections .form-section legend{font-size:16px;color:#173f32;margin-bottom:5px}
.staff-editor .staff-form-sections .form-section-description{margin-bottom:18px;max-width:780px;line-height:1.5}
.staff-editor .staff-fields-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 18px}
.staff-editor .staff-fields-grid .form-field{min-width:0}
.staff-editor .staff-fields-grid .form-control,.staff-editor .staff-fields-grid .form-select{min-height:42px;background:#fff}
.staff-editor .staff-address-field{grid-column:1/-1}
.staff-editor .staff-address-field .form-field{max-width:760px}
.staff-editor .staff-fields-grid .field-checkbox{align-self:end;min-height:42px;display:flex;align-items:center}
@media(max-width:900px){.staff-editor .staff-fields-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.staff-editor .staff-fields-grid{grid-template-columns:1fr}.staff-editor .staff-form-sections .form-section{padding:18px}}

.dmc-aggregate-row{background:#eef1ef;font-weight:600}.dmc-aggregate-row .dmc-component-detail{font-size:8px;font-weight:500}
@media print{.dmc-aggregate-row{background:#eef1ef!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}}
