:root {
    --nw-navy: #082f55;
    --nw-blue: #0756a4;
    --nw-sky: #e7f1fb;
    --nw-gold: #f4c430;
    --nw-red: #c83232;
    --nw-cream: #f7f3e8;
    --nw-paper: #fffdf8;
    --nw-ink: #102a43;
    --nw-muted: #62758a;
    --nw-border: #c9d4df;
    --nw-shadow: 0 12px 30px rgba(8, 47, 85, .08);
    --primary-rgb: 7, 86, 164;
    --body-bg-rgb: 247, 243, 232;
    --menu-bg: 8 47 85;
    --header-bg: 255 253 248;
    --default-border: 201 212 223;
}

html, body {
    background: var(--nw-cream) !important;
    color: var(--nw-ink);
    font-family: Inter, Aptos, "Segoe UI", Arial, sans-serif;
}

body { letter-spacing: -.005em; }
a { color: var(--nw-blue); }
a:hover { color: var(--nw-navy); }

.page {
    background: linear-gradient(rgba(8,47,85,.028) 1px, transparent 1px), linear-gradient(90deg,rgba(8,47,85,.028) 1px,transparent 1px), var(--nw-cream);
    background-size: 44px 44px;
}

.app-header {
    backdrop-filter: blur(14px);
    background: rgba(255,253,248,.96) !important;
    border-bottom: 3px solid var(--nw-gold) !important;
    box-shadow: 0 4px 18px rgba(8,47,85,.08) !important;
}

.main-header-container { min-height: 66px; }
.nw-header-wordmark { align-items:center; color:var(--nw-navy); display:flex; text-decoration:none; }
.nw-header-wordmark strong { display:block; font-size:.92rem; font-weight:850; letter-spacing:.055em; line-height:1; text-transform:uppercase; }
.nw-header-wordmark small { color:var(--nw-muted); display:block; font-size:.66rem; font-weight:650; letter-spacing:.07em; margin-top:.25rem; text-transform:uppercase; }

.app-sidebar { background:var(--nw-navy) !important; border-right:0 !important; box-shadow:8px 0 28px rgba(8,47,85,.12); }
.main-sidebar-header { background:var(--nw-paper) !important; border-bottom:3px solid var(--nw-gold) !important; }
.main-sidebar-header .header-logo img { max-height:60px; max-width:210px; object-fit:contain; }
.app-sidebar .slide__category, .app-sidebar .category-name { color:rgba(255,255,255,.58) !important; font-size:.67rem; font-weight:750; letter-spacing:.14em; text-transform:uppercase; }
.app-sidebar .side-menu__item { border-left:3px solid transparent; border-radius:0 !important; color:rgba(255,255,255,.78) !important; margin:2px 10px; min-height:43px; transition:.16s ease; }
.app-sidebar .side-menu__item:hover, .app-sidebar .side-menu__item.active { background:rgba(255,255,255,.1) !important; border-left-color:var(--nw-gold); color:#fff !important; }
.app-sidebar .side-menu__icon { color:var(--nw-gold) !important; }
.app-sidebar .slide-menu { background:rgba(0,0,0,.09) !important; }

.main-content.app-content { max-width:100%; min-width:0; overflow-x:hidden; padding-bottom:3rem; }
.main-content.app-content .container-fluid, .main-content.app-content .row, .main-content.app-content [class*="col-"] { min-width:0; }
.card, .card-body, .tab-content, .tab-pane { min-width:0; max-width:100%; }
.page-header-breadcrumb { align-items:end !important; background:transparent !important; border-bottom:1px solid var(--nw-border); color:var(--nw-ink) !important; margin:0 0 1.25rem !important; min-height:auto !important; padding:1.5rem 1.5rem 1rem !important; top:0 !important; }
.main-content.app-content .page-header-breadcrumb { background:transparent !important; color:var(--nw-ink) !important; min-height:auto !important; top:0 !important; }
html[data-nav-layout] .main-content.app-content .page-header-breadcrumb { padding:1.5rem 1.5rem 1rem !important; }
.page-header-breadcrumb h1, .page-header-breadcrumb h2, .page-header-breadcrumb h3, .page-header-breadcrumb h4 { color:var(--nw-navy) !important; font-size:clamp(1.6rem,2.8vw,2.8rem) !important; font-weight:900 !important; letter-spacing:-.045em; line-height:.96; text-shadow:none !important; text-transform:uppercase; }
.page-header-breadcrumb .breadcrumb-item, .page-header-breadcrumb .breadcrumb-item a { color:var(--nw-muted) !important; }
html[data-header-styles] .page .page-header-breadcrumb :is(h1,h2,h3,h4) { color:var(--nw-navy) !important; }
@media (min-width:768px) and (max-width:1199.98px) {
    #ptrForm > [class*="col-md-"] { flex:0 0 auto; width:50%; }
}
#ptrForm button { white-space:nowrap; }
.main-content.app-content .text-muted { color:var(--nw-muted) !important; }
.breadcrumb { font-size:.72rem; font-weight:750; letter-spacing:.065em; text-transform:uppercase; }
.nw-eyebrow { color:var(--nw-red); display:inline-block; font-size:.69rem; font-weight:850; letter-spacing:.14em; margin-bottom:.65rem; text-transform:uppercase; }

.card, .custom-card, .modal-content, .dropdown-menu { background:var(--nw-paper) !important; border:1px solid var(--nw-border) !important; border-radius:3px !important; box-shadow:var(--nw-shadow) !important; }
.card-header { background:transparent !important; border-bottom:1px solid var(--nw-border) !important; padding:1rem 1.15rem; }
.card-header.bg-danger { background:var(--nw-red) !important; color:#fff !important; }
.card-header.bg-primary { background:var(--nw-navy) !important; color:#fff !important; }
.card-header.bg-success { background:#176746 !important; color:#fff !important; }
.card-header:is(.bg-danger,.bg-primary,.bg-success) :is(h1,h2,h3,h4,h5,h6,.card-title) { color:#fff !important; }
.alert-warning { background:#fff3cd !important; border-color:#e5c968 !important; color:#664d03 !important; }
.alert-info { background:#e7f1fb !important; border-color:#a8c5e3 !important; color:#134c7c !important; }
.alert-danger { background:#fbe9eb !important; border-color:#e4adb4 !important; color:#842029 !important; }
.alert-success { background:#e6f3ec !important; border-color:#a5cfb8 !important; color:#145536 !important; }
.btn-outline-primary { color:var(--nw-blue) !important; border-color:var(--nw-blue) !important; }
.btn-outline-primary:hover { background:var(--nw-blue) !important; color:#fff !important; }
.btn-info { background:#126579 !important; border-color:#126579 !important; color:#fff !important; }
/* Older pages place their heading outside .app-content. Reserve the same sidebar/header space. */
html[data-nav-layout][data-header-styles] .page > .page-header-breadcrumb { padding-block-start:5.8rem !important; padding-block-end:1rem !important; padding-inline-start:16.4rem !important; }
.page > .page-header-breadcrumb + .app-content { margin-block-start:0 !important; }
@media (min-width:992px) {
    html[data-nav-layout][data-toggled="close"] .page > .page-header-breadcrumb { padding-inline-start:1.5rem !important; }
    html[data-nav-layout][data-toggled="icon-overlay-close"] .page > .page-header-breadcrumb,
    html[data-nav-layout][data-toggled="icon-click-closed"] .page > .page-header-breadcrumb,
    html[data-nav-layout][data-toggled="icon-hover-closed"] .page > .page-header-breadcrumb { padding-inline-start:6.4rem !important; }
}
@media (max-width:991.98px) {
    html[data-nav-layout][data-header-styles] .page > .page-header-breadcrumb { padding-inline-start:1.5rem !important; }
}
.card-title { color:var(--nw-navy); font-size:.84rem !important; font-weight:850 !important; letter-spacing:.065em; text-transform:uppercase; }
.btn { border-radius:2px !important; font-size:.78rem; font-weight:800; letter-spacing:.035em; min-height:40px; text-transform:uppercase; }
.btn-sm { min-height:32px; }
.btn-primary { background:var(--nw-blue) !important; border-color:var(--nw-blue) !important; }
.btn-primary:hover, .btn-primary:focus { background:var(--nw-navy) !important; border-color:var(--nw-navy) !important; }
.btn-warning { background:var(--nw-gold) !important; border-color:var(--nw-gold) !important; color:var(--nw-navy) !important; }
.btn-danger { background:var(--nw-red) !important; border-color:var(--nw-red) !important; }

.form-label { color:var(--nw-navy); font-size:.72rem; font-weight:800; letter-spacing:.055em; text-transform:uppercase; }
.form-control, .form-select, .input-group-text, .choices__inner { background-color:#fff !important; border:1px solid #aab9c7 !important; border-radius:2px !important; color:var(--nw-ink) !important; min-height:42px; }
.form-control:focus, .form-select:focus { border-color:var(--nw-blue) !important; box-shadow:0 0 0 3px rgba(7,86,164,.13) !important; }
.table-responsive { border:1px solid var(--nw-border); }
.card-body > .dataTables_wrapper, .card-body > .table-responsive, .card-body > .table-responsive-wrapper { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
.dataTables_wrapper { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; width:100%; }
.dataTables_wrapper table, table.datatable { min-width:860px; }
.dataTables_wrapper .dataTables_filter input { max-width:100%; }
.table-responsive-wrapper { max-width:100%; }
@media (max-width:767.98px) {
    .main-content.app-content { padding-inline:.25rem; }
    .card-body { padding:1rem !important; }
    .dataTables_wrapper table, table.datatable { min-width:720px; }
    .dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter { float:none !important; margin-bottom:.75rem; text-align:left !important; }
}
.table { color:var(--nw-ink); margin-bottom:0; }
.table > thead > tr > th { background:var(--nw-navy) !important; border-color:rgba(255,255,255,.16) !important; color:#fff !important; font-size:.69rem; font-weight:800; letter-spacing:.055em; padding:.8rem .7rem; text-transform:uppercase; vertical-align:middle; }
.table > tbody > tr > td { border-color:#dbe3ea !important; padding:.72rem; vertical-align:middle; }
.table-striped > tbody > tr:nth-of-type(odd) > * { background:rgba(231,241,251,.5); }
.badge, .alert, .pagination .page-link { border-radius:2px !important; }
.header-link { color:var(--nw-navy) !important; }
html[data-header-styles] .app-header .main-header-container .header-link-icon { color:var(--nw-navy) !important; fill:var(--nw-navy) !important; }
.btn-outline-secondary { border-color:#52677d !important; color:#344c63 !important; }
.btn-outline-secondary:hover { background:#344c63 !important; color:#fff !important; }

.nw-notification-popover { max-height:min(70vh,540px); overflow:auto; width:min(380px,calc(100vw - 1.5rem)); }
.nw-notification-item { border:0; border-bottom:1px solid var(--nw-border); color:var(--nw-ink); display:block; padding:.8rem 1rem; text-align:left; text-decoration:none; width:100%; }
.nw-notification-item:hover { background:var(--nw-sky); }
.nw-notification-item.unread { border-left:3px solid var(--nw-red); }
.nw-bell-count { background:var(--nw-red); border:2px solid var(--nw-paper); border-radius:99px; color:#fff; display:none; font-size:.62rem; font-weight:800; line-height:1; min-width:18px; padding:3px; position:absolute; right:1px; text-align:center; top:8px; }
.nw-support-launcher { align-items:center; background:var(--nw-blue); border:3px solid var(--nw-gold); border-radius:50%; bottom:1.2rem; box-shadow:0 8px 22px rgba(8,47,85,.28); color:#fff; display:flex; height:56px; justify-content:center; position:fixed; right:1.2rem; width:56px; z-index:1030; }
.nw-support-launcher:hover { background:var(--nw-navy); color:#fff; }
.nw-support-panel { bottom:5.4rem; max-width:calc(100vw - 1.5rem); position:fixed; right:1rem; width:360px; z-index:1030; }
.has-nw-support .scrollToTop { inset-inline-end:5.35rem; }
.nw-support-history { background:#fff; border:1px solid var(--nw-border); max-height:280px; min-height:120px; overflow:auto; padding:.7rem; }
.nw-admin-message-history { max-height:65vh; min-height:450px; }
.nw-message-contact-list .list-group-item { min-width:0; }
.nw-chat-bubble { border-radius:.5rem; margin:.35rem 0; max-width:85%; padding:.48rem .65rem; white-space:pre-wrap; }
.nw-chat-bubble.mine { background:var(--nw-blue); color:#fff; margin-left:auto; }
.nw-chat-bubble.theirs { background:var(--nw-sky); color:var(--nw-ink); }

.nw-header-avatar, .nw-profile-avatar { align-items:center; background:var(--nw-sky); border:2px solid var(--nw-gold); color:var(--nw-navy); display:inline-flex; flex:0 0 auto; justify-content:center; overflow:hidden; }
.nw-header-avatar { border-radius:50%; height:38px; width:38px; }
.nw-header-avatar img, .nw-profile-avatar img { height:100%; object-fit:cover; width:100%; }
.nw-profile-avatar { border-radius:4px; height:150px; width:150px; }
.nw-profile-hero { background:var(--nw-navy); color:#fff; display:grid; gap:1.5rem; grid-template-columns:auto 1fr; padding:1.5rem; position:relative; }
.nw-profile-hero::after { background:var(--nw-gold); bottom:0; content:""; height:5px; left:0; position:absolute; width:34%; }
.nw-profile-hero h2 { color:#fff; font-size:clamp(1.5rem,3vw,2.5rem); font-weight:900; letter-spacing:-.04em; line-height:1; margin:.25rem 0 .75rem; text-transform:uppercase; }
.nw-profile-meta { color:rgba(255,255,255,.72); display:flex; flex-wrap:wrap; font-size:.78rem; gap:.5rem 1.25rem; }
.nw-detail-grid { display:grid; gap:1rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
.nw-detail-item { border-left:3px solid var(--nw-gold); padding:.25rem 0 .25rem .8rem; }
.nw-detail-item small { color:var(--nw-muted); display:block; font-size:.65rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.nw-detail-item strong { color:var(--nw-navy); display:block; margin-top:.2rem; }

.nw-auth-body { margin:0; min-height:100vh; }
.nw-auth-shell { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(400px,.85fr); min-height:100vh; }
.nw-auth-story { background:linear-gradient(135deg,rgba(8,47,85,.98),rgba(7,86,164,.92)),var(--nw-navy); color:#fff; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; padding:clamp(1.5rem,4vw,4rem); position:relative; }
.nw-auth-story::before { border:1px solid rgba(255,255,255,.13); content:""; inset:9%; pointer-events:none; position:absolute; transform:rotate(-7deg); }
.nw-auth-brandline { display:flex; font-size:.7rem; font-weight:750; justify-content:space-between; letter-spacing:.12em; position:relative; text-transform:uppercase; z-index:1; }
.nw-auth-copy { max-width:760px; position:relative; z-index:1; }
.nw-auth-copy .nw-eyebrow { color:var(--nw-gold); }
.nw-auth-copy h1 { color:#fff; font-size:clamp(3rem,7vw,7.3rem); font-weight:950; letter-spacing:-.065em; line-height:.82; margin:0 0 2rem; text-transform:uppercase; }
.nw-auth-copy h1 em { color:var(--nw-gold); font-style:normal; }
.nw-auth-copy p { color:rgba(255,255,255,.76); font-size:1rem; line-height:1.6; max-width:600px; }
.nw-auth-accent { background:var(--nw-red); bottom:-8vw; height:18vw; min-height:130px; min-width:200px; position:absolute; right:-4vw; transform:rotate(-12deg); width:36vw; }
.nw-auth-panel { align-items:center; background:var(--nw-paper); display:flex; justify-content:center; padding:clamp(1.5rem,5vw,5rem); }
.nw-auth-form-wrap { max-width:440px; width:100%; }
.nw-auth-logo { display:block; margin:0 auto 2rem; max-height:96px; max-width:290px; object-fit:contain; }
.nw-auth-form-wrap h2 { color:var(--nw-navy); font-size:clamp(2rem,4vw,3.4rem); font-weight:900; letter-spacing:-.05em; line-height:1; text-transform:uppercase; }
.nw-auth-help { border-top:1px solid var(--nw-border); color:var(--nw-muted); font-size:.75rem; line-height:1.5; margin:2rem 0 0; padding-top:1rem; }

@media (max-width:991.98px) {
    .nw-auth-shell { grid-template-columns:1fr; }
    .nw-auth-story { min-height:42vh; }
    .nw-auth-copy h1 { font-size:clamp(2.7rem,11vw,5.5rem); }
    .nw-auth-panel { min-height:58vh; }
}

@media (max-width:575.98px) {
    .page-header-breadcrumb { padding-inline:1rem !important; }
    .nw-profile-hero, .nw-detail-grid { grid-template-columns:1fr; }
    .nw-profile-avatar { height:110px; width:110px; }
    .nw-auth-story { min-height:36vh; padding:1.5rem; }
    .nw-auth-brandline span:last-child, .nw-auth-copy p { display:none; }
    .nw-auth-panel { padding:2rem 1.25rem; }
    .nw-auth-logo { max-height:84px; max-width:250px; }
    .modal-body .school-row > .d-flex { align-items:flex-start !important; flex-direction:column; }
    .modal-body .school-row .text-end { min-width:0 !important; text-align:left !important; width:100%; }
    .top-filter-group, .top-filter-group .input-group, .top-filter-group select { width:100% !important; }
}

@media (prefers-reduced-motion:reduce) {
    *, *::before, *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; }
}
