:root{--sch-navy:#15344b;--sch-accent:#16766f;--sch-soft:#f0f5f6;--sch-line:#dce4e8;--bs-primary:#15344b;--bs-primary-rgb:21,52,75;--bs-link-color:#1b607e;--bs-border-radius:.45rem;--bs-body-font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
body{font-size:.94rem;line-height:1.65;background:#fafbfc;color:#203440}a{text-underline-offset:3px}h1,h2,h3,h4{letter-spacing:-.035em;color:var(--sch-navy);line-height:1.2}h1{font-size:2rem;font-weight:700}h2{font-weight:650}.shell{max-width:1392px;padding-left:40px;padding-right:40px}.site-header{background:var(--bs-body-bg);border-bottom:1px solid var(--sch-line)}.navbar{min-height:96px}.brand{display:flex;gap:12px;align-items:center;white-space:normal;line-height:1.2}.brand strong{display:block;font-size:1.13rem;letter-spacing:-.025em;color:var(--sch-navy)}.brand small{display:block;font-size:.7rem;letter-spacing:.03em;color:var(--bs-secondary-color);margin-top:6px}.brand-mark{display:grid;position:relative;place-items:center;width:44px;height:48px;background:var(--sch-navy);color:white;font-family:Georgia,serif;font-size:31px;border-radius:5px}.brand-mark span{font-family:system-ui;font-size:10px;position:absolute;bottom:0;right:4px}.brand-logo{width:48px;height:48px;object-fit:contain}.nav-link{font-size:.86rem;font-weight:550}.theme-toggle{border:1px solid var(--sch-line);color:var(--bs-body-color)}.public-main{min-height:65vh;padding-top:36px;padding-bottom:70px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;font-weight:750;color:var(--sch-accent);margin-bottom:13px}.hero{display:grid;grid-template-columns:1.5fr 1fr;background:var(--sch-soft);border:1px solid var(--sch-line);border-radius:12px;overflow:hidden;margin-bottom:45px}.hero-copy{padding:55px}.hero h1{font-family:Georgia,"Times New Roman",serif;font-size:3.4rem;font-weight:400;max-width:650px;line-height:1.12}.hero p{max-width:560px;color:#536978;margin:22px 0 27px}.hero-art{position:relative;display:flex;align-items:flex-end;justify-content:center;gap:12px;padding:55px 40px 50px;background:linear-gradient(125deg,#e4eded,#d5e2e5);border-left:1px solid #d3dfe1}.book{width:54px;height:205px;background:#35576a;box-shadow:7px 8px 0 #0000000b;position:relative;border-radius:3px;writing-mode:vertical-rl;padding:16px 12px;color:#e8eff1;font-family:Georgia,serif;letter-spacing:.1em;font-size:14px;border-top:5px solid #ffffff26;border-bottom:5px solid #ffffff26}.book:nth-child(2){height:240px;background:#d4b17b;color:#354149}.book:nth-child(3){height:180px;background:#598a84;transform:rotate(-9deg);margin-left:8px}.book:nth-child(4){height:225px;background:#274355}.hero-art:after{content:"";height:8px;position:absolute;bottom:42px;left:25px;right:25px;background:#9fb4b7;border-radius:3px}.search-large{display:flex;gap:10px;background:var(--bs-body-bg);padding:8px;border:1px solid var(--sch-line);border-radius:7px;max-width:630px}.search-large input{border:0;background:transparent;min-width:0}.btn{font-weight:550;font-size:.87rem;padding:.6rem 1rem}.btn-primary{--bs-btn-bg:#15344b;--bs-btn-border-color:#15344b;--bs-btn-hover-bg:#214e69;--bs-btn-hover-border-color:#214e69;--bs-btn-active-bg:#214e69}.btn-outline-primary{--bs-btn-color:#15344b;--bs-btn-border-color:#99acb9;--bs-btn-hover-bg:#15344b;--bs-btn-hover-border-color:#15344b}.section-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:20px}.section-head h2{font-size:1.45rem;margin-bottom:4px}.section-head p{color:var(--bs-secondary-color);margin:0}.class-card,.course-card,.panel,.stat-card{border:1px solid var(--sch-line);background:var(--bs-body-bg);border-radius:8px}.class-card{padding:22px;height:100%;display:block;text-decoration:none;color:inherit;transition:transform .15s,border-color .15s}.class-card:hover,.course-card:hover{border-color:#8ba6b5;transform:translateY(-2px)}.class-icon{display:grid;place-items:center;background:var(--sch-soft);color:var(--sch-navy);width:36px;height:36px;border-radius:6px;font-size:20px;margin-bottom:24px}.class-card h3{font-size:1rem;letter-spacing:-.01em}.class-card small{color:var(--bs-secondary-color)}.section-spacer{margin-top:44px}.course-card{padding:26px;height:100%;transition:transform .15s}.course-code{color:var(--sch-accent);font-size:.73rem;font-weight:750;letter-spacing:.06em}.course-card h2{font-size:1.25rem;margin:8px 0 12px}.course-card p{color:var(--bs-secondary-color);font-size:.87rem}.badge{font-weight:550;font-size:.7rem}.badge-soft{background:#edf3f5;color:#35596b;border:1px solid #dce6ea}.material-list{border:1px solid var(--sch-line);border-radius:8px;overflow:hidden;background:var(--bs-body-bg)}.material-row{display:flex;align-items:center;gap:20px;padding:21px 24px;border-bottom:1px solid var(--sch-line)}.material-row:last-child{border-bottom:0}.file-icon{width:46px;height:54px;display:grid;place-items:center;flex-shrink:0;background:#f4efea;color:#885d44;border:1px solid #e7d9cd;border-radius:5px;font-size:.65rem;font-weight:750;text-transform:uppercase}.material-meta{font-size:.77rem;color:var(--bs-secondary-color)}.material-title{font-size:.99rem;font-weight:650;color:var(--sch-navy);margin-bottom:3px;overflow-wrap:anywhere}.material-row .btn{margin-left:auto;flex-shrink:0}.material-copy{min-width:0}.panel{padding:26px}.filter-panel{background:var(--bs-body-bg);border:1px solid var(--sch-line);padding:20px;border-radius:8px;margin:25px 0}.form-label{font-weight:600;font-size:.82rem}.form-control,.form-select{font-size:.9rem;min-height:42px}.form-text{font-size:.77rem}.pagination-bar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:25px;font-size:.82rem}.page-link{color:var(--sch-navy)}.page-item.active .page-link{background:var(--sch-navy);border-color:var(--sch-navy)}.site-footer{border-top:1px solid var(--sch-line);padding:30px 0;background:var(--bs-body-bg)}.site-footer strong{font-size:.88rem}.site-footer p{color:var(--bs-secondary-color)}.admin-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:36px;padding-top:30px;padding-bottom:60px;min-height:75vh}.admin-sidebar{border-right:1px solid var(--sch-line);padding-right:22px}.sidebar-link{display:flex;align-items:center;gap:13px;padding:10px 13px;margin:4px 0;color:var(--bs-secondary-color);text-decoration:none;border-radius:5px;background:transparent;font-size:.85rem}.sidebar-link>span:first-child{font-size:19px;width:18px}.sidebar-link:hover,.sidebar-link.active{background:var(--sch-soft);color:var(--sch-navy)}.sidebar-link.active{font-weight:650}.sidebar-note{border-top:1px solid var(--sch-line);margin-top:30px;padding-top:17px;font-size:.73rem;color:var(--bs-secondary-color)}.status-dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:#368b77;margin-right:4px}.admin-main{min-width:0}.page-heading{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:26px}.page-heading h1{margin:3px 0 8px}.page-heading p{margin:0;color:var(--bs-secondary-color)}.stat-card{padding:22px;height:100%}.stat-card .value{font-size:1.9rem;font-weight:650;color:var(--sch-navy);letter-spacing:-.05em}.stat-card .label{font-size:.77rem;color:var(--bs-secondary-color)}.stat-card a{font-size:.77rem}.table{font-size:.83rem;vertical-align:middle;margin-bottom:0}.table th{font-size:.69rem;text-transform:uppercase;letter-spacing:.07em;background:var(--sch-soft);color:var(--bs-secondary-color);padding:14px 16px;white-space:nowrap}.table td{padding:15px 16px;overflow-wrap:anywhere}.table td .btn{font-size:.76rem;padding:5px 9px}.table-panel{padding:0;overflow:hidden}.status-published,.status-active{color:#246450;background:#e7f3ed}.status-draft,.status-inactive{color:#74643d;background:#f3f0e7}.empty-state{padding:50px 20px;text-align:center;border:1px dashed var(--sch-line);border-radius:8px;background:var(--bs-body-bg)}.empty-icon{display:block;font-size:32px;color:#90a5b1;margin-bottom:10px}.auth-panel{max-width:460px;margin:30px auto}.auth-panel h1{font-size:1.8rem}.auth-panel .panel{padding:36px}.skip-link{position:absolute;top:-80px;left:20px;z-index:2000;background:white;padding:12px}.skip-link:focus{top:10px}:focus-visible{outline:3px solid #309caa!important;outline-offset:3px}.check-list{max-height:240px;overflow:auto;border:1px solid var(--sch-line);border-radius:5px;padding:12px}.report-brand{display:flex;align-items:center;gap:15px;margin-bottom:20px}.report-brand img{width:55px;height:55px;object-fit:contain}.report-brand h2{margin:0;font-size:1.2rem}.report-brand p{margin:0;font-size:.8rem}.report-table{table-layout:fixed;width:100%}.report-table th{white-space:normal}.report-table td{overflow-wrap:anywhere;word-break:normal;font-size:.75rem}.report-filter-summary{font-size:.79rem;border-block:1px solid var(--sch-line);padding:10px 0;margin:15px 0}.report-footer{margin-top:20px;font-size:.75rem}.report-totals{font-weight:700}.report-sheet h1{font-size:1.6rem}
[data-bs-theme=dark]{--sch-navy:#bfd8e9;--sch-accent:#83bcb0;--sch-soft:#1c2d36;--sch-line:#33424e;--bs-link-color:#95c6e2}[data-bs-theme=dark] body{background:#111c23;color:#d4e0e8}[data-bs-theme=dark] .hero-art{background:#263d46;border-color:#425861}[data-bs-theme=dark] .hero p{color:#a6bcc8}[data-bs-theme=dark] .badge-soft{background:#243a45;color:#b6d3df;border-color:#3b5460}[data-bs-theme=dark] .btn-outline-primary{--bs-btn-color:#bfd8e9;--bs-btn-border-color:#748d9c}[data-bs-theme=dark] .status-published,[data-bs-theme=dark] .status-active{background:#243e35;color:#b9dccb}[data-bs-theme=dark] .status-draft,[data-bs-theme=dark] .status-inactive{background:#3c382a;color:#ded2a5}[data-bs-theme=dark] .page-item.active .page-link{color:#132c3b}
@media(max-width:991px){.shell{padding-left:22px;padding-right:22px}.hero-copy{padding:36px}.hero h1{font-size:2.8rem}.hero-art{padding:30px 20px 50px;gap:7px}.book{width:40px}.admin-layout{grid-template-columns:1fr;gap:20px}.admin-sidebar{border-right:0;border-bottom:1px solid var(--sch-line);padding-right:0}.sidebar-note{display:none}}
@media(max-width:650px){.shell{padding-left:18px;padding-right:18px}.navbar{min-height:80px}.hero{grid-template-columns:1fr}.hero-copy{padding:30px 24px}.hero h1{font-size:2.5rem}.hero-art{display:none}.search-large{flex-wrap:wrap}.search-large .btn{width:100%}.public-main{padding-top:22px}.section-head,.page-heading{align-items:start;flex-wrap:wrap}.material-row{padding:16px;gap:12px;flex-wrap:wrap}.material-copy{flex:1}.material-row .btn{margin-left:58px}.pagination-bar{align-items:start;flex-direction:column}.panel{padding:20px}.report-table{min-width:850px}.auth-panel .panel{padding:25px}}
.search-large .btn{flex-shrink:0;white-space:nowrap}
.brand-mark{background:#15344b;color:#fff}
.navbar-toggler-icon{background-image:none!important;display:grid;place-items:center;color:var(--bs-body-color);font-size:1.35rem}
.navbar-toggler-icon:before{content:"☰"}
@media print{
 :root,[data-bs-theme=dark]{color-scheme:light;--bs-body-color:#000;--bs-body-bg:#fff;--sch-navy:#000;--sch-line:#bbb;--sch-soft:#eee;--bs-secondary-color:#444}
 html,body{background:#fff!important;color:#000!important;font-size:9pt;line-height:1.35;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .no-print,.site-header,.site-footer,.admin-sidebar,.filter-panel,.alert,.skip-link{display:none!important}
 .shell,.admin-layout,.admin-main,main{display:block!important;margin:0!important;padding:0!important;max-width:none!important;min-height:0!important}
 .report-sheet{width:100%;color:#000!important;background:white!important}.report-table{min-width:0!important;border-collapse:collapse}.report-table th,.report-table td{padding:2.3mm 1.6mm;border:1px solid #bbb!important;color:#000!important;font-size:8pt;background:#fff!important}.report-table th{background:#eee!important;font-size:7.5pt}
 thead{display:table-header-group}tfoot{display:table-row-group}tr{break-inside:avoid;page-break-inside:avoid}h1,h2,h3{break-after:avoid;color:#000!important}.table-responsive{overflow:visible!important}a{color:#000!important;text-decoration:none}.report-brand img{width:14mm;height:14mm}.stat-card{padding:3mm;border:1px solid #bbb}.stat-card .value{font-size:17pt;color:#000}.stat-card .label{font-size:8pt;color:#333}.report-sheet .row{display:flex;flex-wrap:nowrap}.report-sheet .row>*{width:33.333%}.report-footer{font-size:8pt}.report-sheet h1{font-size:18pt}.report-filter-summary{font-size:8pt}.report-brand p{font-size:8pt}.report-brand h2{font-size:12pt}
}
