@import url("navigation.css");
:root{--teal:#075b63;--deep:#043b42;--gold:#d7a20b;--wine:#aa123d;--cream:#fffaf0;--ink:#102a43;--muted:#637381;--line:#d8e4e6;--bg:#f4f8f9;--white:#fff;--green:#16794a;--red:#b42318}*{box-sizing:border-box}body{margin:0;font-family:Inter,Aptos,Arial,sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit;text-decoration:none}button,.button{border:0;border-radius:10px;background:var(--teal);color:#fff;font-weight:800;padding:.78rem 1.05rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.16s transform,.16s filter,.16s box-shadow}button:hover,.button:hover{filter:brightness(1.1);box-shadow:0 7px 18px #075b6333;transform:translateY(-1px)}button:active,.button:active,.clicked{transform:translateY(1px);box-shadow:none}.danger-button{background:var(--wine)}input,select,textarea{width:100%;border:1px solid #bfd0d3;border-radius:9px;padding:.72rem;background:#fff;font:inherit}label{font-weight:700;font-size:.9rem;display:grid;gap:.35rem}.shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:var(--deep);color:#fff;padding:1.2rem;position:sticky;top:0;height:100vh}.brand{background:var(--cream);border-radius:14px;padding:.75rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:.7rem;color:var(--deep);font-weight:900}.brand img{width:72px;max-height:55px;object-fit:contain}.nav{display:grid;gap:.35rem}.nav a{padding:.8rem;border-radius:9px;color:#d9f0f1;font-weight:700}.nav a:hover,.nav a.active{background:#ffffff18;border-left:3px solid var(--gold);color:#fff}.main{min-width:0}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 2rem;position:sticky;top:0;z-index:5}.topbar h1{font-size:1.05rem;margin:0}.content{padding:2rem;max-width:1480px}.page-title{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin-bottom:1.2rem}.page-title h2{font-size:2rem;margin:.15rem 0}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:var(--gold);font-size:.76rem;font-weight:900}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.15rem;box-shadow:0 5px 18px #0b3d4510}.metric{grid-column:span 3}.metric strong{display:block;font-size:2rem;color:var(--teal);margin-top:.5rem}.span-4{grid-column:span 4}.span-6{grid-column:span 6}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.stack{display:grid;gap:.75rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{padding:.8rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{background:#e7f2f3;color:var(--deep);position:sticky;top:0}tr:hover td{background:#fbfdfd}.badge{display:inline-block;border-radius:999px;padding:.3rem .6rem;background:#e7f2f3;color:var(--deep);font-size:.76rem;font-weight:800}.badge.approved,.badge.active{background:#e7f7ef;color:var(--green)}.badge.declined,.badge.disabled{background:#feeceb;color:var(--red)}.alert{padding:.9rem 1rem;border-radius:10px;background:#fff4cf;border:1px solid #eed276;margin-bottom:1rem}.alert.success{background:#e7f7ef;border-color:#8ed0ae}.alert.danger{background:#feeceb;border-color:#f2a7a2}.login,.setup{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,var(--deep),var(--teal))}.login-card,.setup-card{background:#fff;border-radius:18px;padding:2rem;width:min(440px,92vw);box-shadow:0 25px 60px #001b1f66}.login-card h1,.setup-card h1{color:var(--teal);margin-bottom:.2rem}.menu-button{display:none;background:#e7f2f3;color:var(--deep);padding:.65rem}.empty{color:var(--muted);padding:2rem;text-align:center}.actions{display:flex;flex-wrap:wrap;gap:.45rem}.subtle{color:var(--muted);font-size:.87rem}.detail-list{display:grid;grid-template-columns:180px 1fr;gap:.5rem;padding:.3rem 0}.detail-list b{color:var(--muted)}
@media(max-width:950px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:20;left:-280px;width:260px;transition:left .2s}.menu-open .sidebar{left:0}.menu-button{display:inline-flex}.topbar{padding:0 1rem}.content{padding:1rem}.metric,.span-4,.span-6,.span-8{grid-column:span 12}.page-title{align-items:start;flex-direction:column}.form-grid{grid-template-columns:1fr}.detail-list{grid-template-columns:1fr}.brand img{width:58px}}

/* Milestone 4B billing layout: restore the intended 5/7-column panels. */
.span-5{grid-column:span 5}.span-7{grid-column:span 7}.grid>*{min-width:0}
@media(max-width:950px){.span-5,.span-7{grid-column:span 12}}

/* Milestone 5B finance reporting filters and print behaviour. */
.admin-filters{display:grid;grid-template-columns:minmax(240px,2fr) repeat(3,minmax(150px,1fr)) auto;gap:.7rem;align-items:end;margin-bottom:1rem}.admin-filters label{min-width:0}.admin-filters button{min-height:46px}.card form.stack input[name="reason"]{min-width:220px}@media(max-width:1050px){.admin-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-filters button{width:100%}}@media(max-width:650px){.admin-filters{grid-template-columns:1fr}.card form.stack input[name="reason"]{min-width:0}}@media print{.sidebar,.topbar,.menu-button,.document-actions,.content>.actions{display:none!important}.shell{display:block}.content{padding:0;max-width:none}.card{box-shadow:none;border:0;padding:0}.table-wrap{overflow:visible}}
.subject-checklist{display:grid;gap:.55rem;max-height:430px;overflow:auto;padding:.8rem;border:1px solid #cbdcdf;border-radius:12px}.subject-checklist label{display:flex;gap:.55rem;align-items:flex-start;font-weight:400}.subject-checklist input{width:auto;margin-top:.2rem}

/* Navigation fallback kept in the main stylesheet so cPanel/browser import caching
   cannot leave an expanded menu without visible submenu entries. */
.sidebar{overflow-y:auto}.sms-nav{display:block}.sms-nav .nav-main,.sms-nav .nav-group>summary{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.82rem;border-radius:9px;color:#d9f0f1;font-weight:800;cursor:pointer;list-style:none}.sms-nav .nav-group>summary::-webkit-details-marker{display:none}.sms-nav .nav-group{margin:.22rem 0}.sms-nav .nav-chevron{font-size:1.35rem;line-height:1;transition:transform .18s}.sms-nav .nav-group[open] .nav-chevron{transform:rotate(90deg)}.sms-nav .nav-group:not([open])>.nav-submenu{display:none!important}.sms-nav .nav-group[open]>.nav-submenu{display:grid!important;gap:.12rem;margin:.2rem 0 .45rem;padding-left:.72rem;border-left:1px solid #ffffff24}.sms-nav .nav-subitem{display:block!important;padding:.62rem .72rem!important;font-size:.9rem;font-weight:650;border-radius:7px;color:#c6e1e3!important}.sms-nav .nav-subitem:hover,.sms-nav .nav-subitem.active{background:#ffffff14;border-left:3px solid var(--gold);color:#fff!important}
.online-admission{min-height:100vh;background:var(--bg)}.public-header{min-height:82px;background:var(--deep);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:1rem max(1rem,calc((100vw - 1180px)/2))}.public-header .brand{margin:0;width:max-content}.public-content{width:min(1180px,94vw);margin:2rem auto}.public-content .login-card{margin:3rem auto}.public-header nav a{font-weight:800}.public-content fieldset{border:1px solid var(--line);border-radius:12px;padding:1rem}.public-content fieldset legend{font-weight:900}@media(max-width:650px){.public-header{align-items:flex-start;gap:.8rem;flex-direction:column}.public-content{margin:1rem auto}}
.inquiry-form{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1.15rem 1.4rem;align-items:start}.inquiry-form>label{min-width:0;font-size:.95rem}.inquiry-form>label.span-12{grid-column:1/-1}.inquiry-form textarea{min-height:125px;resize:vertical}.inquiry-form>button{width:max-content;min-width:170px}.inquiry-form input,.inquiry-form select,.inquiry-form textarea{min-height:46px}.inquiry-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.inquiry-summary .card strong{display:block;font-size:1.65rem;color:var(--teal);margin-top:.35rem}.inquiry-history-entry{border-left:4px solid var(--teal);box-shadow:none}.inquiry-detail-grid{align-items:start}@media(max-width:800px){.inquiry-form{grid-template-columns:1fr!important}.inquiry-form>label.span-12{grid-column:auto}.inquiry-form>button{width:100%}.inquiry-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.inquiry-summary{grid-template-columns:1fr}}

/* Milestone 7 student record forms. */
.form-grid>.span-12{grid-column:1/-1}.card hr{border:0;border-top:1px solid var(--line);margin:1.2rem 0}.badge.deferred,.badge.suspended{background:#fff4cf;color:#805b00}.badge.withdrawn,.badge.archived{background:#feeceb;color:var(--red)}

/* Milestone 8 result slip. */
.result-slip{max-width:1100px;margin:1rem auto}.result-slip-head{display:flex;align-items:center;justify-content:center;gap:1rem;text-align:center;border-bottom:3px solid var(--teal);padding-bottom:1rem;margin-bottom:1rem}.result-slip-head img{width:95px;max-height:75px;object-fit:contain}.result-slip-head h2{margin:0;color:var(--deep)}@media print{.result-slip{max-width:none}.result-slip-head img{width:80px}}

/* Milestone 9 attendance and welfare. */
.badge.open{background:#fff4cf;color:#805b00}.badge.closed,.badge.resolved{background:#e7f7ef;color:var(--green)}textarea{min-height:100px;resize:vertical}

/* Milestone 16 operations dashboard and navigation polish. */
html{scroll-behavior:smooth}.content{animation:content-in .22s ease-out both}.card,.nav a,.sms-nav summary{transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease}.card:hover{box-shadow:0 10px 28px #0b3d4518}.page-leaving .content{opacity:.55;transform:translateY(2px);transition:opacity .12s ease,transform .12s ease}.page-progress{position:fixed;z-index:1000;left:0;top:0;height:3px;width:0;background:linear-gradient(90deg,var(--gold),#fff0a8,var(--teal));opacity:0;transition:width .35s ease,opacity .18s}.page-progress.active{width:82%;opacity:1}.dashboard-kpis small{display:block;color:var(--muted);margin-top:.35rem}.dashboard-kpis strong{font-size:clamp(1.35rem,2.2vw,2rem)}.chart-head{display:flex;justify-content:space-between;gap:1rem;align-items:start;margin-bottom:1rem}.chart-head h3{margin:0 0 .2rem}.chart-head>a{color:var(--teal);font-weight:800}.bar-chart{display:grid;gap:.72rem}.bar-row{display:grid;grid-template-columns:70px 1fr 42px;gap:.7rem;align-items:center}.bar-row>span{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-row>div{height:12px;border-radius:999px;background:#e6eff0;overflow:hidden}.bar-row i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--teal),#19a0a5)}.column-chart{height:210px;display:flex;gap:.7rem;align-items:end;justify-content:space-around;border-bottom:1px solid var(--line);padding-top:1rem}.column{height:100%;min-width:45px;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:.35rem}.column i{display:block;width:min(48px,7vw);background:linear-gradient(180deg,var(--gold),#f1c74a);border-radius:8px 8px 0 0}.column b{font-size:.7rem;color:var(--muted)}.column span{font-weight:800;font-size:.8rem}.donut{width:170px;aspect-ratio:1;margin:1rem auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--teal) calc(var(--value)*1%),#e6eff0 0)}.donut:before{content:"";grid-area:1/1;width:116px;aspect-ratio:1;border-radius:50%;background:#fff}.donut span{grid-area:1/1;z-index:1;text-align:center;color:var(--muted)}.donut b{display:block;font-size:1.7rem;color:var(--teal)}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.quick-grid a{display:grid;gap:.25rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:#f9fcfc;transition:.18s}.quick-grid a:hover{border-color:var(--teal);transform:translateY(-2px);box-shadow:0 8px 20px #075b6315}.quick-grid span{color:var(--muted);font-size:.84rem}.report-card:hover{transform:translateY(-3px);border-color:#a9c8cc}@keyframes content-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.content{animation:none}.card,.nav a,.sms-nav summary,.page-progress{transition:none}}@media(max-width:650px){.quick-grid{grid-template-columns:1fr}.bar-row{grid-template-columns:55px 1fr 35px}}
