:root{--primary:#0f5a42;--primary-dark:#0a3c2d;--accent:#d6a12a;--bg:#f4f7f6;--text:#1b2a25;--muted:#66756f;--border:#d9e1de;--danger:#b42318;--warning:#9a6700;--info:#175cd3;--success:#067647;--white:#fff}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:var(--bg);line-height:1.5}.container{width:min(1180px,92%);margin:auto}.site-header,.admin-topbar{background:var(--white);border-bottom:1px solid var(--border)}.admin-topbar{background:var(--primary-dark);color:#fff}.header-row{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;flex-direction:column;text-decoration:none;color:var(--primary-dark)}.brand span{font-size:.82rem;color:var(--muted)}.brand.inverse,.brand.inverse span{color:#fff}.site-header nav{display:flex;flex-wrap:wrap;gap:16px}.site-header nav a,.user-chip a{color:inherit;text-decoration:none}.site-header nav a:hover{text-decoration:underline}.page-shell{padding:34px 0 56px;min-height:72vh}.hero{display:grid;grid-template-columns:1.3fr .7fr;gap:28px;align-items:stretch}.hero-panel,.card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:26px;box-shadow:0 4px 18px rgba(24,48,39,.05)}.hero h1{font-size:2.2rem;line-height:1.15;margin-top:0}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.btn{display:inline-block;border:0;border-radius:7px;padding:10px 16px;font-weight:700;text-decoration:none;cursor:pointer;background:var(--primary);color:#fff;font-size:.95rem}.btn:hover{filter:brightness(.95)}.btn-secondary{background:#e7efec;color:var(--primary-dark)}.btn-danger{background:var(--danger)}.btn-warning{background:#fdb022;color:#3d2b00}.btn-outline{background:#fff;color:var(--primary);border:1px solid var(--primary)}.btn-small{padding:7px 11px;font-size:.84rem}.site-footer{background:#e8efec;border-top:1px solid var(--border);padding:20px 0;color:var(--muted)}h1,h2,h3{color:var(--primary-dark)}.form-section{background:#fff;border:1px solid var(--border);border-radius:10px;padding:22px;margin-bottom:20px}.form-section h2{margin-top:0;font-size:1.25rem;border-bottom:1px solid var(--border);padding-bottom:10px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.form-grid.two{grid-template-columns:repeat(2,1fr)}.form-group{display:flex;flex-direction:column;gap:6px}.form-group.full{grid-column:1/-1}label{font-weight:700;font-size:.92rem}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #b8c5c0;border-radius:6px;background:#fff;font:inherit}textarea{min-height:95px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid rgba(15,90,66,.15);border-color:var(--primary)}.field-error{color:var(--danger)}.help{font-size:.84rem;color:var(--muted)}.alert{padding:12px 14px;border-radius:7px;margin:0 0 16px;border:1px solid}.alert-error{background:#fff1f0;border-color:#fecdca;color:#912018}.alert-success{background:#ecfdf3;border-color:#abefc6;color:#05603a}.alert-warning{background:#fffaeb;border-color:#fedf89;color:#7a2e0e}.alert-info{background:#eff8ff;border-color:#b2ddff;color:#1849a9}.admin-layout{display:grid;grid-template-columns:230px 1fr;gap:22px;padding:24px 0 50px}.admin-sidebar{background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px;height:max-content;position:sticky;top:14px}.admin-sidebar a{display:block;padding:10px 12px;border-radius:6px;text-decoration:none;color:var(--text)}.admin-sidebar a:hover{background:#eaf2ef}.admin-main{min-width:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.stat{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px}.stat strong{display:block;font-size:1.7rem;color:var(--primary-dark)}.stat span{color:var(--muted)}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--border);border-radius:10px}table{width:100%;border-collapse:collapse}th,td{padding:11px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{background:#eef4f2;font-size:.86rem;color:#33423d}tr:last-child td{border-bottom:0}.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:.78rem;font-weight:700}.badge-success{background:#dcfae6;color:#085d3a}.badge-danger{background:#fee4e2;color:#912018}.badge-warning{background:#fef0c7;color:#7a2e0e}.badge-info{background:#d1e9ff;color:#1849a9}.badge-neutral{background:#e9efec;color:#42534c}.details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 18px}.detail{padding:8px 0;border-bottom:1px dashed var(--border)}.detail strong{display:block;font-size:.8rem;color:var(--muted);text-transform:uppercase}.actions{display:flex;gap:8px;flex-wrap:wrap}.filter-bar{display:grid;grid-template-columns:2fr 1fr auto;gap:10px;margin-bottom:14px}.empty{padding:28px;text-align:center;color:var(--muted)}.user-chip{font-size:.9rem}.split{display:grid;grid-template-columns:1fr 1fr;gap:20px}.code-box{background:#15221d;color:#e8f4ef;padding:14px;border-radius:7px;font-family:monospace;overflow:auto}
@media(max-width:900px){.hero,.admin-layout,.split{grid-template-columns:1fr}.admin-sidebar{position:static}.stats{grid-template-columns:repeat(2,1fr)}.form-grid,.form-grid.two,.details-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.header-row{align-items:flex-start;flex-direction:column;padding:14px 0}.site-header nav{gap:10px}.hero h1{font-size:1.75rem}.form-grid,.form-grid.two,.details-grid,.stats,.filter-bar{grid-template-columns:1fr}.admin-layout{padding-top:14px}}
@media print{.site-header,.site-footer,.no-print{display:none!important}.page-shell{padding:0}.container{width:100%}.card{box-shadow:none;border:0}}
.requirements-panel{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.requirements-panel h3{margin:0 0 12px;font-size:1.05rem}
.requirement-card{display:flex;flex-direction:column;gap:5px;border:1px solid var(--border);border-radius:8px;padding:12px;background:#f8fbfa}
.requirement-card strong{color:var(--primary-dark)}
.requirement-card span{font-weight:700}
.requirement-card small{color:var(--muted)}

.hidden{display:none!important}
.report-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:end}
.report-filter-actions{align-items:end;padding-bottom:1px}
.report-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.report-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.report-panels .card{min-width:0}
.report-bars{display:flex;flex-direction:column;gap:11px}
.report-bar-row{display:grid;grid-template-columns:minmax(100px,1.2fr) minmax(100px,2fr) auto;gap:10px;align-items:center;font-size:.9rem}
.report-bar-track{height:12px;background:#e7efec;border-radius:999px;overflow:hidden}
.report-bar-fill{height:100%;min-width:3px;background:var(--primary);border-radius:999px}
.trend-grid{display:flex;align-items:flex-end;gap:10px;min-height:205px;overflow-x:auto;padding:18px 8px 4px}
.trend-item{min-width:58px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;text-align:center}
.trend-column{width:28px;background:var(--primary);border-radius:5px 5px 0 0}
.trend-item span{font-size:.76rem;color:var(--muted);white-space:nowrap}
.pagination{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}
.pagination a{display:inline-flex;min-width:34px;height:34px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:6px;text-decoration:none;color:var(--primary-dark);background:#fff}
.pagination a.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.location-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
.other-location-field{padding:10px;border:1px dashed var(--border);border-radius:8px;background:#f8fbfa}
@media(max-width:1000px){.report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-stats,.location-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.report-filter-grid,.report-panels,.report-stats,.location-stats{grid-template-columns:1fr}.report-bar-row{grid-template-columns:1fr auto}.report-bar-track{grid-column:1/-1}}

/* Enhanced fee-structure builder */
.muted{color:var(--muted)}
.page-heading,.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.page-heading{margin-bottom:18px}.page-heading h1,.section-heading h2,.section-heading h3{margin:0}.section-heading{margin-bottom:16px}.fee-items-heading{margin-top:24px}
.btn.secondary{background:#e7efec;color:var(--primary-dark)}.btn.danger{background:var(--danger)}.btn.small{padding:7px 11px;font-size:.84rem}
.date-input-wrap{width:100%;border:1px solid #b8c5c0;border-radius:6px;background:#fff;padding:9px 10px}.date-input-wrap input{border:0;padding:0;background:transparent;min-width:0}
.table-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.inline-form{display:inline;margin:0}.center-text{text-align:center}
.fee-builder-wrap{overflow-x:auto}.fee-builder-table{min-width:1180px}.fee-builder-table th,.fee-builder-table td{padding:8px}.fee-builder-table input,.fee-builder-table select{min-width:105px;padding:8px}.fee-builder-table .vote-head-select{min-width:220px}.fee-builder-table .fee-type-select{min-width:190px}.fee-builder-table tfoot th{background:#dfece7}.row-total,.amount-cell{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.fee-letterhead{text-align:center;display:flex;flex-direction:column;border-bottom:2px solid var(--primary-dark);padding-bottom:12px;margin-bottom:16px}.fee-letterhead strong{font-size:1.2rem;color:var(--primary-dark)}.fee-letterhead span{font-size:.88rem}.fee-meta-grid{margin:18px 0}.fee-summary-stats{grid-template-columns:repeat(5,minmax(0,1fr));margin:18px 0}.fee-summary-stats .stat strong{font-size:1.05rem}.fee-view-table{margin-top:14px}.fee-total-row th{background:#dfece7}.fee-notes,.fee-payment-box{border:1px solid var(--border);border-radius:8px;padding:13px;margin-top:16px}.fee-payment-box{background:#f8fbfa}
@media(max-width:1000px){.fee-summary-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.page-heading,.section-heading{flex-direction:column}.fee-summary-stats{grid-template-columns:1fr}}
@media print{.admin-topbar,.admin-sidebar,.no-print{display:none!important}.admin-layout{display:block;width:100%;padding:0}.admin-main{width:100%}.fee-print-sheet{border:0;box-shadow:none;padding:0}.fee-summary-stats{grid-template-columns:repeat(5,1fr)}.table-wrap{overflow:visible;border:0}.fee-view-table table{font-size:9pt}.fee-view-table th,.fee-view-table td{padding:5px}.site-footer{display:none!important}}

/* Academic setup and reference-data management */
.form-check{display:flex;align-items:center;gap:10px;font-weight:700}.form-check-input{width:18px;height:18px;margin:0;flex:0 0 auto}.form-check-label{font-size:.92rem}
.management-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.management-link{display:flex;flex-direction:column;gap:3px;padding:20px;border:1px solid var(--border);border-radius:10px;background:#fff;text-decoration:none;color:var(--text)}.management-link:hover{border-color:var(--primary);background:#f8fbfa}.management-link strong{font-size:1.65rem;color:var(--primary-dark)}.management-link span{font-weight:700;color:var(--primary-dark)}.management-link small{color:var(--muted)}
.compact-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.compact-filter select{min-width:260px}.compact-stats{margin-bottom:16px}.full-detail{grid-column:1/-1}.admin-sidebar{max-height:calc(100vh - 28px);overflow-y:auto}
@media(max-width:800px){.management-links{grid-template-columns:1fr}.compact-filter{width:100%}.compact-filter select{min-width:0;flex:1}}


/* Official course brochure letterhead - uses the exact left/right images from Institution Settings. */
.brochure-official-letterhead{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr) 112px;column-gap:16px;align-items:center;background:#fff;padding:16px 20px 12px;margin-bottom:16px;border:1px solid var(--border);border-radius:10px;text-align:center}
.brochure-letterhead-logo{width:112px;height:88px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.brochure-letterhead-logo img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.brochure-letterhead-centre{min-width:0}
.brochure-institution-name{font-size:1.42rem;line-height:1.1;font-weight:800;color:#00703a;text-transform:uppercase}
.brochure-ministry-line{margin-top:4px;font-size:.82rem;font-weight:700}
.brochure-contact-line{font-size:.78rem;line-height:1.35}
.brochure-letterhead-rules{grid-column:1/-1;margin-top:9px}
.brochure-letterhead-rules span{display:block;height:3px;background:#00703a}
.brochure-letterhead-rules span+span{height:1px;margin-top:2px;background:#e67900}
.brochure-official-letterhead h1{grid-column:1/-1;margin:8px 0 0;font-size:1.15rem;color:var(--text)}
.brochure-guidance{margin:0 0 16px;text-align:center}
@media(max-width:700px){.brochure-official-letterhead{grid-template-columns:72px minmax(0,1fr) 72px;padding:12px 10px}.brochure-letterhead-logo{width:72px;height:64px}.brochure-institution-name{font-size:1rem}.brochure-ministry-line,.brochure-contact-line{font-size:.68rem}}
@media(max-width:460px){.brochure-official-letterhead{grid-template-columns:52px minmax(0,1fr) 52px;column-gap:7px}.brochure-letterhead-logo{width:52px;height:48px}.brochure-institution-name{font-size:.85rem}.brochure-contact-line{font-size:.6rem}}
@media print{.brochure-official-letterhead{border:0;border-radius:0;padding:0 0 8px}.brochure-letterhead-logo{height:70px}.brochure-guidance{display:none}}
