:root {
    --ws-navy: #071c2c;
    --ws-navy-2: #0b2b3d;
    --ws-ink: #102a43;
    --ws-primary: #0f766e;
    --ws-primary-dark: #0b5f5a;
    --ws-secondary: #4338ca;
    --ws-sky: #0e7490;
    --ws-muted: #52677c;
    --ws-line: #dbe5ec;
    --ws-soft: #f3f8fa;
    --ws-soft-teal: #e8f7f5;
    --ws-white: #ffffff;
    --ws-accent: #db8514;
    --ws-shadow: 0 20px 60px rgba(16, 42, 67, .10);
    --ws-shadow-soft: 0 10px 30px rgba(16, 42, 67, .08);
    --ws-radius: 22px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
    color: var(--ws-ink);
    background: #fff;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}
main { flex: 1 0 auto; }
h1,h2,h3,h4,h5,h6,.ws-wordmark { font-family: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif; color: var(--ws-navy); letter-spacing: -.025em; }
a { color: var(--ws-primary-dark); text-decoration-thickness: .08em; text-underline-offset: .16em; }
a:hover { color: var(--ws-secondary); }
img { max-width: 100%; height: auto; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 9999; background: #fff; color: var(--ws-navy); padding: .75rem 1rem; border-radius: .5rem; box-shadow: var(--ws-shadow-soft); }
.skip-link:focus { top: 1rem; color: var(--ws-navy); }
.fw-800 { font-weight: 800; }
.py-lg-6 { padding-top: 6rem!important; padding-bottom: 6rem!important; }

/* Header */
.ws-header {
    background: linear-gradient(100deg, #071c2c 0%, #0b2b3d 60%, #0d4542 100%);
    border-bottom: 6px solid var(--ws-accent);
    box-shadow: 0 8px 28px rgba(7,28,44,.14);
}
.ws-brand-shell {
    min-height: 48px;
    padding: .34rem .72rem;
    border-radius: 15px;
    background: rgba(255,255,255,.98);
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(0,0,0,.10);
}
.ws-logo { object-fit: contain; max-width: 210px; height: 44px; }
.ws-wordmark { font-size: 1.12rem; font-weight: 700; white-space: nowrap; color: var(--ws-navy); }
.ws-wordmark strong { color: var(--ws-primary-dark); }
.ws-toggler { color: #fff; border: 1px solid rgba(255,255,255,.25); box-shadow: none!important; }
.ws-toggler:hover,.ws-toggler:focus { background: rgba(255,255,255,.08); }
.navbar .nav-link { color: rgba(255,255,255,.88); font-weight: 700; padding: .7rem .76rem!important; border-radius: 999px; font-size: .93rem; }
.navbar .nav-link:hover,.navbar .nav-link.active { color: #fff; background: rgba(255,255,255,.11); }
.ws-dropdown { border: 0; padding: .55rem; border-radius: 16px; box-shadow: 0 18px 45px rgba(7,28,44,.18); min-width: 235px; }
.ws-dropdown .dropdown-item { display:flex; align-items:center; gap:.65rem; padding:.72rem .8rem; border-radius:11px; color:#29445a; font-weight:650; }
.ws-dropdown .dropdown-item i { width:18px; color:var(--ws-primary); }
.ws-dropdown .dropdown-item:hover,.ws-dropdown .dropdown-item:focus { background:var(--ws-soft-teal); color:var(--ws-primary-dark); }
.btn-ws-header { background:#e8f7f5; border:1px solid #e8f7f5; color:#064e49; font-weight:800; box-shadow:0 12px 25px rgba(0,0,0,.13); }
.btn-ws-header:hover,.btn-ws-header:focus { background:#fff; border-color:#fff; color:#071c2c; transform:translateY(-1px); }

/* Buttons */
.btn-ws-primary { background: var(--ws-primary-dark); border: 1px solid var(--ws-primary-dark); color: #fff; font-weight: 700; box-shadow: 0 12px 25px rgba(11,95,90,.20); }
.btn-ws-primary:hover,.btn-ws-primary:focus { background: #084d49; border-color: #084d49; color: #fff; transform: translateY(-1px); }
.btn-ws-light { background: #fff; color: var(--ws-navy); border: 1px solid var(--ws-line); font-weight: 700; }
.btn-ws-light:hover { background: var(--ws-soft); color: var(--ws-navy); border-color: #bfd0db; }

/* Home hero */
.hero-section { position: relative; overflow: hidden; background: radial-gradient(circle at 85% 18%, rgba(67,56,202,.12), transparent 28%), radial-gradient(circle at 12% 0%, rgba(15,118,110,.15), transparent 30%), linear-gradient(180deg,#f8fcfd 0%,#fff 92%); }
.hero-section:after { content:""; position:absolute; width:340px; height:340px; border:1px solid rgba(15,118,110,.12); border-radius:50%; right:-160px; bottom:-170px; }
.eyebrow,.section-kicker { text-transform: uppercase; letter-spacing: .13em; font-size: .77rem; font-weight: 800; color: var(--ws-primary-dark); }
.eyebrow span { width: 26px; height: 2px; display: inline-block; background: var(--ws-primary); vertical-align: middle; margin-right: .6rem; }
.hero-section h1 { line-height: 1.08; max-width: 860px; }
.text-gradient { background: linear-gradient(100deg,var(--ws-primary-dark),var(--ws-secondary)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero-lead,.page-intro { color: #3e566b; max-width: 790px; font-size: 1.08rem; }
.trust-row { display:flex; gap: .8rem 1.2rem; flex-wrap:wrap; color:#496277; font-size:.9rem; font-weight:600; }
.trust-row span { display:flex; align-items:center; gap:.45rem; }
.trust-row i { color: var(--ws-primary); }
.path-card { position:relative; background: rgba(255,255,255,.94); border:1px solid rgba(219,229,236,.9); border-radius: 28px; padding: 1.2rem; box-shadow: var(--ws-shadow); }
.path-card-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.5rem .5rem 1rem; font-weight:800; color:var(--ws-navy); }
.path-card-header .badge { background:var(--ws-soft-teal); color:var(--ws-primary-dark); }
.journey-list { margin:0; padding:0; list-style:none; display:grid; gap:.68rem; }
.journey-list li { display:flex; gap:.85rem; align-items:center; border:1px solid #e4edf2; background:#fbfdfe; padding:.9rem; border-radius:17px; }
.journey-icon { min-width:42px; height:42px; border-radius:13px; display:grid; place-items:center; color:var(--ws-primary-dark); background:var(--ws-soft-teal); }
.journey-list strong,.journey-list small { display:block; }
.journey-list strong { color:var(--ws-navy); font-size:.94rem; }
.journey-list small { color:#607689; margin-top:.14rem; line-height:1.45; }

/* Sections and cards */
.section-space { padding: 5.5rem 0; }
.section-heading { max-width: 760px; }
.section-heading h2,.source-panel h2 { font-weight:800; margin-top:.55rem; }
.section-heading p { color:var(--ws-muted); }
.feature-card { display:block; color:inherit; text-decoration:none; background:#fff; border:1px solid var(--ws-line); border-radius:var(--ws-radius); padding:1.6rem; box-shadow:0 10px 24px rgba(16,42,67,.045); transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease; }
.feature-card:hover { color:inherit; transform:translateY(-4px); border-color:#b7d6d3; box-shadow:var(--ws-shadow-soft); }
.feature-icon { width:50px; height:50px; display:grid; place-items:center; border-radius:15px; background:linear-gradient(135deg,var(--ws-soft-teal),#edf0ff); color:var(--ws-primary-dark); font-size:1.12rem; }
.feature-card h3 { font-size:1.12rem; font-weight:800; margin:1rem 0 .45rem; }
.feature-card p { color:var(--ws-muted); margin-bottom:1rem; }
.feature-link { font-weight:800; font-size:.9rem; color:var(--ws-primary-dark); }
.feature-link i { font-size:.75rem; margin-left:.35rem; }
.source-panel { border-radius:28px; padding:clamp(1.6rem,4vw,3rem); border:1px solid #d9e9e7; }
.source-panel-dark { background:linear-gradient(120deg,#071c2c 0%,#0b2b3d 55%,#0d514b 100%); border-color:rgba(255,255,255,.08); box-shadow:0 22px 55px rgba(7,28,44,.15); }
.source-panel-dark h2,.source-panel-dark p { color:#fff; }
.source-panel-dark p { color:#d5e4eb; }
.source-panel-dark .section-kicker { color:#8ee0d5; }
.check-list { padding:0; list-style:none; display:grid; gap:.75rem; }
.check-list li { display:flex; align-items:center; gap:.7rem; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.12); padding:.78rem .9rem; border-radius:13px; font-weight:650; color:#f5fbfd; }
.check-list i { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; color:#071c2c; background:#8ee0d5; font-size:.7rem; }
.wide-action-card { display:flex; gap:1.15rem; align-items:flex-start; padding:1.6rem; border:1px solid var(--ws-line); border-radius:var(--ws-radius); background:linear-gradient(145deg,#fff,#f8fbfc); color:inherit; text-decoration:none; box-shadow:var(--ws-shadow-soft); transition:transform .22s ease,border-color .22s ease; }
.wide-action-card:hover { color:inherit; transform:translateY(-3px); border-color:#a9d0cc; }
.wide-action-icon { flex:0 0 auto; width:56px; height:56px; border-radius:17px; display:grid; place-items:center; background:linear-gradient(135deg,var(--ws-primary-dark),var(--ws-secondary)); color:#fff; font-size:1.15rem; }
.wide-action-card h3 { font-size:1.18rem; font-weight:800; margin:.15rem 0 .5rem; }
.wide-action-card p { color:var(--ws-muted); margin-bottom:.7rem; }
.wide-action-card strong { color:var(--ws-primary-dark); font-size:.9rem; }
.small-label { display:block; text-transform:uppercase; letter-spacing:.09em; font-size:.7rem; color:var(--ws-primary-dark); font-weight:800; }

/* Collection/article pages */
.page-hero { background: linear-gradient(180deg,#edf6f7 0%,#f8fbfc 72%,#fff 100%); border-bottom:1px solid #dce8ed; }
.page-hero h1 { font-size:clamp(2.1rem,5vw,3.4rem); font-weight:800; }
.breadcrumb a { color:var(--ws-primary-dark); }
.content-status-card { display:flex; gap:1rem; padding:1.4rem; border:1px solid var(--ws-line); border-radius:var(--ws-radius); background:#fff; box-shadow:var(--ws-shadow-soft); }
.status-icon { min-width:52px; height:52px; display:grid; place-items:center; color:#fff; border-radius:16px; background:linear-gradient(135deg,var(--ws-primary-dark),var(--ws-secondary)); }
.content-status-card h2 { font-size:1.1rem; font-weight:800; }
.content-status-card p { color:var(--ws-muted); }
.article-container { max-width: 900px; }
.article-header { background:linear-gradient(180deg,#edf6f7,#fff); border-bottom:1px solid #e5edf1; }
.article-header h1 { font-size:clamp(2.1rem,5vw,3.5rem); font-weight:800; line-height:1.13; }
.article-meta { display:flex; flex-wrap:wrap; gap:.7rem 1rem; color:#607689; font-size:.88rem; }
.article-meta span { display:flex; gap:.4rem; align-items:center; }
.article-meta i { color:var(--ws-primary); }
.source-note { background:#f5fbfa; border-left:4px solid var(--ws-primary); border-radius:0 12px 12px 0; padding:1rem 1.15rem; margin-bottom:2rem; color:#40596e; }
.prose { font-size:1.02rem; }
.prose h2 { margin-top:2.2rem; font-size:1.65rem; font-weight:800; }
.prose h3 { margin-top:1.8rem; font-size:1.28rem; font-weight:800; }
.prose p,.prose li { color:#334e68; }
.prose table { width:100%; margin:1.5rem 0; border-collapse:collapse; display:block; overflow-x:auto; }
.prose th,.prose td { padding:.8rem; border:1px solid var(--ws-line); }
.prose th { background:var(--ws-soft); color:var(--ws-navy); }
.mini-step { height:100%; border:1px solid var(--ws-line); border-radius:16px; padding:1rem; background:#fff; }
.mini-step strong,.mini-step span { display:block; }
.mini-step span { color:var(--ws-muted); margin-top:.35rem; }

/* Footer */
.ws-footer { flex-shrink:0; margin-top:auto; background:#061622; color:#dbe7ef; border-top:6px solid var(--ws-accent); box-shadow:0 -5px 18px rgba(20,219,219,.07); }
.footer-brand { padding:.38rem .68rem; border-radius:14px; background:#fff; text-decoration:none; }
.ws-logo-footer { height:42px; }
.footer-copy { max-width:540px; color:#bfd0dc; }
.footer-heading { color:#fff; font-size:.92rem; text-transform:uppercase; letter-spacing:.1em; font-weight:800; margin-bottom:1rem; }
.footer-links,.footer-contact { list-style:none; padding:0; margin:0; display:grid; gap:.65rem; }
.footer-links a,.footer-contact a { color:#d9e5ed; text-decoration:none; }
.footer-links a:hover,.footer-contact a:hover { color:#fff; text-decoration:underline; }
.footer-contact li { display:flex; gap:.65rem; align-items:flex-start; color:#d9e5ed; }
.footer-contact i { color:#79d2c8; margin-top:.35rem; width:18px; }
.social-link { width:39px; height:39px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.18); border-radius:12px; color:#fff; text-decoration:none; }
.social-link:hover { background:#fff; color:var(--ws-navy); }
.footer-rule { border-color:rgba(255,255,255,.15); margin:2.2rem 0 1.25rem; }
.footer-bottom,.footer-bottom a { color:#b8cbd8; }
.footer-bottom a:hover { color:#fff; }

@media (max-width:1199.98px) {
    .navbar-collapse { padding:1rem 0 .5rem; }
    .navbar .nav-link { border-radius:10px; padding:.72rem .8rem!important; }
    .ws-dropdown { background:rgba(255,255,255,.98); box-shadow:none; margin:.2rem 0 .6rem; }
}
@media (max-width:767.98px) {
    .section-space { padding:4rem 0; }
    .hero-section .py-5 { padding-top:4rem!important; padding-bottom:4rem!important; }
    .content-status-card { flex-direction:column; }
    .path-card { border-radius:22px; }
    .ws-wordmark { font-size:1rem; }
    .ws-logo { max-width:175px; height:40px; }
    .ws-brand-shell { min-height:44px; }
    .wide-action-card { flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}

/* Patch 002: Institutions module */
.institution-directory-hero {
    background:
        radial-gradient(circle at 88% 10%, rgba(67,56,202,.11), transparent 28%),
        linear-gradient(180deg,#eaf6f5 0%,#f8fbfc 76%,#fff 100%);
}
.institution-filter-panel {
    background:#fff;
    border:1px solid var(--ws-line);
    border-radius:22px;
    padding:1.25rem;
    box-shadow:var(--ws-shadow-soft);
}
.institution-filter-panel .form-control,
.institution-filter-panel .form-select,
.institution-filter-panel .input-group-text {
    min-height:48px;
    border-color:#cfdde6;
}
.institution-card {
    border:1px solid var(--ws-line);
    border-radius:22px;
    background:#fff;
    box-shadow:0 10px 28px rgba(16,42,67,.055);
    overflow:hidden;
    transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.institution-card:hover {
    transform:translateY(-4px);
    border-color:#a9d0cc;
    box-shadow:var(--ws-shadow-soft);
}
.institution-card-main {
    display:flex;
    flex-direction:column;
    height:100%;
    padding:1.35rem;
    color:inherit;
    text-decoration:none;
}
.institution-card-main:hover { color:inherit; }
.institution-card-top { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; }
.institution-logo-wrap {
    width:72px;
    height:72px;
    flex:0 0 72px;
    display:grid;
    place-items:center;
    border-radius:18px;
    border:1px solid #dce7ed;
    background:linear-gradient(145deg,#fff,#f1f8f7);
    overflow:hidden;
    color:var(--ws-primary-dark);
    font-size:1.35rem;
}
.institution-logo-wrap img { width:100%; height:100%; object-fit:contain; padding:.45rem; }
.institution-tags { display:flex; flex-wrap:wrap; gap:.42rem; justify-content:flex-end; }
.institution-tags span {
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:.3rem .58rem;
    border-radius:999px;
    background:var(--ws-soft-teal);
    color:#075e58;
    font-size:.71rem;
    line-height:1.2;
    font-weight:800;
}
.institution-card h3 { font-size:1.12rem; font-weight:800; margin:1.15rem 0 .45rem; }
.institution-location { color:#476278; }
.institution-location i { color:var(--ws-primary); margin-right:.35rem; }
.institution-summary { color:var(--ws-muted); margin-bottom:1.15rem; }
.institution-card-footer {
    margin-top:auto;
    padding-top:1rem;
    border-top:1px solid #e5edf2;
    display:flex;
    justify-content:space-between;
    gap:1rem;
    color:var(--ws-primary-dark);
    font-weight:750;
    font-size:.82rem;
}
.institution-profile-hero {
    background:
      radial-gradient(circle at 85% 15%, rgba(67,56,202,.12), transparent 29%),
      radial-gradient(circle at 15% 5%, rgba(15,118,110,.13), transparent 30%),
      linear-gradient(180deg,#f4fafb 0%,#fff 100%);
    border-bottom:1px solid #dce8ed;
}
.institution-profile-hero h1 { font-size:clamp(2rem,4.5vw,3.45rem); font-weight:800; }

.institution-profile-cover {
    width:100%;
    height:clamp(220px,31vw,390px);
    margin:0;
    overflow:hidden;
    border-radius:28px;
    border:1px solid #d8e5eb;
    background:#eaf2f5;
    box-shadow:0 18px 45px rgba(16,42,67,.10);
}
.institution-profile-cover img {
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.institution-profile-logo {
    width:96px;
    height:96px;
    flex:0 0 96px;
    display:grid;
    place-items:center;
    border-radius:24px;
    background:#fff;
    border:1px solid var(--ws-line);
    box-shadow:var(--ws-shadow-soft);
    color:var(--ws-primary-dark);
    font-size:1.8rem;
    overflow:hidden;
}
.institution-profile-logo img { width:100%; height:100%; object-fit:contain; padding:.6rem; }
.verification-card,
.institution-facts-card,
.institution-source-card,
.quick-answer-card {
    border:1px solid var(--ws-line);
    border-radius:22px;
    background:#fff;
    padding:1.35rem;
    box-shadow:var(--ws-shadow-soft);
}
.verification-card {
    background:linear-gradient(145deg,#071c2c,#0b3f42);
    border-color:rgba(255,255,255,.08);
}
.verification-card h2,.verification-card p,.verification-card .small-label { color:#fff; }
.verification-card .small-label { color:#8ee0d5; }
.verification-card p { color:#d7e6ec; }
.quick-answer-card { border-left:4px solid var(--ws-primary); }
.quick-answer-card p { color:#38556b; font-size:1.03rem; }
.institution-overview h2 { margin-top:2.1rem; font-size:1.55rem; font-weight:800; }
.institution-overview h3 { margin-top:1.65rem; font-size:1.23rem; font-weight:800; }
.institution-overview p,.institution-overview li { color:#334f65; }
.institution-overview table { width:100%; border-collapse:collapse; margin:1.4rem 0; }
.institution-overview th,.institution-overview td { border:1px solid #d8e4eb; padding:.75rem; vertical-align:top; }
.institution-overview th { background:#eef7f6; color:var(--ws-navy); }
.institution-facts-card { position:sticky; top:108px; }
.institution-facts-list { margin:1rem 0 0; }
.institution-facts-list > div { display:grid; grid-template-columns:minmax(105px,.8fr) 1.2fr; gap:1rem; padding:.78rem 0; border-bottom:1px solid #e7eef2; }
.institution-facts-list > div:last-child { border-bottom:0; }
.institution-facts-list dt { color:#63788a; font-size:.82rem; font-weight:700; }
.institution-facts-list dd { color:var(--ws-navy); font-weight:750; margin:0; text-align:right; }
.institution-source-card { background:#f7fbfc; }
.institution-source-card p { color:#51697d; }

@media (max-width:767.98px) {
    .institution-profile-cover { height:210px; border-radius:20px; }
    .institution-profile-logo { width:72px; height:72px; flex-basis:72px; border-radius:18px; }
    .institution-profile-hero .institution-tags { justify-content:flex-start; }
    .institution-facts-card { position:static; }
    .institution-facts-list > div { grid-template-columns:1fr; gap:.15rem; }
    .institution-facts-list dd { text-align:left; }
}

/* Patch 003: Courses & programmes */
.course-directory-hero {
    background: radial-gradient(circle at 88% 10%, rgba(16,185,129,.12), transparent 28%), linear-gradient(180deg,#edf8f5 0%,#f8fbfc 76%,#fff 100%);
}
.course-card { border:1px solid var(--ws-line); border-radius:22px; background:#fff; box-shadow:0 10px 28px rgba(16,42,67,.055); overflow:hidden; transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease; }
.course-card:hover { transform:translateY(-4px); border-color:#a9d0cc; box-shadow:var(--ws-shadow-soft); }
.course-card-main { display:flex; flex-direction:column; height:100%; padding:1.4rem; color:inherit; text-decoration:none; }
.course-card-main:hover { color:inherit; }
.course-icon { width:52px; height:52px; display:grid; place-items:center; border-radius:16px; background:linear-gradient(135deg,#e7f8f5,#ecebff); color:var(--ws-primary-dark); }
.course-badge,.course-level { display:inline-flex; width:max-content; align-items:center; padding:.34rem .65rem; border-radius:999px; background:#eaf7f5; color:#076b62; font-size:.72rem; font-weight:800; }
.course-card h3 { font-size:1.15rem; font-weight:800; margin:.75rem 0 .45rem; }
.course-field { color:#476278; font-size:.9rem; }
.course-field i { color:var(--ws-primary); margin-right:.35rem; }
.course-summary { color:var(--ws-muted); }
.course-card-footer { margin-top:auto; padding-top:1rem; border-top:1px solid #e5edf2; display:flex; justify-content:space-between; gap:1rem; font-size:.84rem; color:var(--ws-primary-dark); }
.course-profile-hero { background:linear-gradient(135deg,#071c2c 0%,#0a3440 58%,#0c5a50 100%); color:#fff; }
.course-profile-hero .breadcrumb,.course-profile-hero .breadcrumb a { color:#c9dde6; }
.course-profile-hero .breadcrumb-item.active { color:#fff; }
.course-profile-hero .page-intro { color:#d6e8ee; max-width:820px; }
.course-hero-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.course-hero-facts>div { background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.13); border-radius:18px; padding:1rem; }
.course-hero-facts strong,.course-hero-facts span { display:block; }
.course-hero-facts strong { font-size:1.35rem; color:#fff; }
.course-hero-facts span { color:#cde0e8; font-size:.82rem; margin-top:.25rem; }
.programme-card { border:1px solid var(--ws-line); border-radius:22px; background:#fff; padding:1.3rem; box-shadow:0 8px 24px rgba(16,42,67,.045); }
.programme-card-head { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; }
.programme-logo { width:58px; height:58px; flex-basis:58px; }
.programme-provider { font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--ws-primary-dark); text-decoration:none; }
.programme-card h3 { font-size:1.12rem; font-weight:800; margin:.3rem 0; }
.programme-location { color:#607689; margin:0; font-size:.87rem; }
.programme-facts { display:flex; flex-wrap:wrap; gap:.65rem; margin:1rem 0; }
.programme-facts span { min-width:140px; border-radius:14px; background:#f5f9fb; padding:.72rem .8rem; color:#40596e; font-size:.82rem; }
.programme-facts span i,.programme-facts span strong { display:block; }
.programme-facts span i { color:var(--ws-primary); margin-bottom:.3rem; }
.programme-facts span strong { color:var(--ws-navy); font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; }
.programme-requirements { border-left:4px solid var(--ws-primary); background:#f2fbf9; border-radius:0 14px 14px 0; padding:.9rem 1rem; margin:1rem 0; }
.programme-requirements strong { color:var(--ws-navy); }
.programme-requirements p { color:#40596e; margin:.25rem 0 0; }
.requirement-details { border-top:1px solid #e5edf2; padding:.8rem 0; }
.requirement-details summary { cursor:pointer; font-weight:800; color:var(--ws-primary-dark); }
.requirement-details li span { color:var(--ws-muted); }
.programme-actions { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; padding-top:.9rem; border-top:1px solid #e5edf2; }
.verification-chip { color:#0a6b60; font-size:.8rem; font-weight:750; }
.course-side-card { z-index:2; }
.institution-programme-link { display:flex; justify-content:space-between; gap:1rem; align-items:center; border:1px solid var(--ws-line); border-radius:18px; padding:1rem 1.1rem; background:#fff; color:inherit; text-decoration:none; transition:.2s ease; }
.institution-programme-link:hover { color:inherit; transform:translateY(-2px); border-color:#a9d0cc; box-shadow:var(--ws-shadow-soft); }
.institution-programme-link h3 { font-size:1rem; font-weight:800; margin:.4rem 0 .15rem; }
.institution-programme-link p { color:var(--ws-muted); margin:0; }
.institution-programme-meta { display:flex; align-items:center; gap:.65rem; flex-wrap:wrap; justify-content:flex-end; color:#476278; font-size:.8rem; }
.requirement-admin-row { background:#f8fafb; border:1px solid #e2e8ed; border-radius:14px; padding:.55rem; }
@media(max-width:767.98px){.course-hero-facts{grid-template-columns:1fr}.programme-card-head,.institution-programme-link{flex-direction:column;align-items:flex-start}.institution-programme-meta{justify-content:flex-start}.programme-actions{align-items:flex-start}}

/* Patch 004: results + admissions */
.filter-panel{background:#fff;border:1px solid var(--ws-line);border-radius:var(--ws-radius);padding:1rem;box-shadow:0 10px 24px rgba(16,42,67,.045)}
.empty-state{text-align:center;padding:3rem 1.5rem;border:1px dashed #bfd2d8;border-radius:var(--ws-radius);background:#f8fbfc;color:var(--ws-muted)}
.empty-state i{font-size:2rem;color:var(--ws-primary);margin-bottom:1rem}.empty-state h2{font-size:1.2rem;color:var(--ws-text);font-weight:800}
.result-action-panel{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.5rem;border-radius:var(--ws-radius);background:linear-gradient(135deg,#eef8f6 0%,#f6fbfd 100%);border:1px solid #cfe5e1}
.deadline-line{display:flex;align-items:center;gap:.55rem;color:#294a5a;font-size:.94rem}.deadline-line i{color:var(--ws-primary)}
.metric-card{height:100%;padding:1.15rem 1.25rem;background:#f7fafb;border:1px solid var(--ws-line);border-radius:1rem}.metric-card span{display:block;color:var(--ws-muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}.metric-card strong{display:block;margin-top:.35rem;font-size:1.06rem;color:var(--ws-text)}
.mini-step a{display:inline-block;margin-top:.65rem;font-weight:700;color:#8ee8db}
@media(max-width:767.98px){.result-action-panel{align-items:flex-start;flex-direction:column}.result-action-panel .btn{width:100%}}

/* Patch 005: scholarships & funding */
.scholarship-directory-hero{background:radial-gradient(circle at 86% 10%,rgba(245,158,11,.13),transparent 28%),linear-gradient(180deg,#fff9ed 0%,#f8fbfc 80%,#fff 100%)}
.scholarship-card{border:1px solid var(--ws-line);border-radius:22px;background:#fff;padding:1.35rem;box-shadow:0 10px 28px rgba(16,42,67,.055);display:flex;flex-direction:column;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.scholarship-card:hover{transform:translateY(-4px);border-color:#d8c28d;box-shadow:var(--ws-shadow-soft)}
.scholarship-type{display:inline-flex;padding:.32rem .62rem;border-radius:999px;background:#fff3d6;color:#8a5a00;font-size:.72rem;font-weight:800}.scholarship-provider{color:#486277;font-size:.88rem;font-weight:700}.scholarship-facts{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin:.8rem 0}.scholarship-facts span{border-radius:14px;background:#f7fafb;padding:.72rem .8rem;color:#40596e;font-size:.82rem}.scholarship-facts strong{display:block;color:var(--ws-navy);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.22rem}.scholarship-levels{display:flex;flex-wrap:wrap;gap:.45rem}.scholarship-levels span{display:inline-flex;padding:.3rem .55rem;border-radius:999px;background:#eef7f6;color:#0b6c63;font-size:.72rem;font-weight:750}.scholarship-card .feature-link{margin-top:auto}
.scholarship-profile-hero{background:linear-gradient(135deg,#071c2c 0%,#0b3c43 62%,#7b5a10 140%);color:#fff}.scholarship-profile-hero .breadcrumb,.scholarship-profile-hero .breadcrumb a{color:#c9dde6}.scholarship-profile-hero .breadcrumb-item.active{color:#fff}.scholarship-profile-hero .page-intro{color:#dbe8ed}.scholarship-side-card{position:sticky;top:108px}.scholarship-prose h2{font-size:1.45rem;font-weight:800;margin-bottom:1rem}
@media(max-width:767.98px){.scholarship-facts{grid-template-columns:1fr}.scholarship-side-card{position:static}}

/* Patch 006: Career pathways + jobs & internships */
.career-directory-hero,
.career-profile-hero {
    background: radial-gradient(circle at 86% 12%, rgba(59,130,246,.14), transparent 28%), linear-gradient(180deg,#eef5fb 0%,#f8fbfd 78%,#fff 100%);
}
.opportunity-directory-hero,
.opportunity-profile-hero {
    background: radial-gradient(circle at 84% 10%, rgba(245,158,11,.12), transparent 26%), linear-gradient(180deg,#fff8eb 0%,#fbfcfd 78%,#fff 100%);
}
.career-card,
.opportunity-card {
    display:flex;
    flex-direction:column;
    border:1px solid var(--ws-line);
    border-radius:22px;
    background:#fff;
    padding:1.35rem;
    box-shadow:0 10px 28px rgba(16,42,67,.055);
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.career-card:hover,
.opportunity-card:hover { transform:translateY(-4px); box-shadow:var(--ws-shadow-soft); border-color:#b8d1df; }
.career-card h2,
.opportunity-card h2 { font-weight:800; color:var(--ws-navy); }
.career-card p,
.opportunity-card p { color:#536b7f; }
.career-family,
.opportunity-type {
    display:inline-flex;
    align-items:center;
    min-height:28px;
    width:max-content;
    padding:.3rem .62rem;
    border-radius:999px;
    background:#e8f1fb;
    color:#24527b;
    font-size:.72rem;
    line-height:1.2;
    font-weight:800;
}
.opportunity-type { background:#fff0d7; color:#8a4a03; }
.career-card-stats,
.opportunity-facts {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.65rem;
    margin-top:auto;
    padding-top:1rem;
}
.career-card-stats span,
.opportunity-facts span {
    display:flex;
    flex-direction:column;
    gap:.1rem;
    padding:.7rem;
    border-radius:15px;
    background:#f5f8fa;
    color:#536b7f;
    font-size:.78rem;
}
.career-card-stats strong,
.opportunity-facts strong { color:var(--ws-navy); font-size:.78rem; }
.opportunity-employer { color:#48657b!important; font-weight:700; }
.relationship-card {
    display:flex;
    flex-direction:column;
    gap:.3rem;
    min-height:100%;
    padding:1rem 1.05rem;
    border:1px solid #dbe6ec;
    border-radius:17px;
    background:#fff;
    color:inherit;
    text-decoration:none;
    transition:.18s ease;
}
.relationship-card:hover { border-color:#9fc9c4; transform:translateY(-2px); box-shadow:0 10px 24px rgba(16,42,67,.07); color:inherit; }
.relationship-card strong { color:var(--ws-navy); font-weight:800; }
.relationship-card span { color:#63798b; font-size:.83rem; }
.skill-chip-wrap { display:flex; flex-wrap:wrap; gap:.55rem; }
.skill-chip {
    display:flex;
    flex-direction:column;
    gap:.1rem;
    padding:.52rem .68rem;
    border-radius:13px;
    background:#f2f6f8;
    border:1px solid #dae6ec;
    color:#17384d;
    font-weight:750;
    font-size:.82rem;
}
.skill-chip small { color:#6d8190; font-size:.68rem; font-weight:650; }
.skill-core { background:#e8f7f4; border-color:#b7dfd9; }
.career-prose h2,.opportunity-prose h2 { font-weight:800; margin-bottom:1rem; }
.career-prose h3,.opportunity-prose h3 { font-weight:800; margin-top:1.5rem; }
.career-prose p,.career-prose li,.opportunity-prose p,.opportunity-prose li { color:#365267; }
@media (max-width:575.98px) {
    .career-card-stats,.opportunity-facts { grid-template-columns:1fr; }
}

/* Patch 007 — What Can I Study? eligibility engine */
.eligibility-hero{background:radial-gradient(circle at 88% 20%,rgba(34,197,94,.16),transparent 28%),linear-gradient(135deg,#071c2c 0%,#0b2b3d 52%,#0d4542 100%);color:#fff;overflow:hidden}
.eligibility-hero h1{font-family:Manrope,Inter,sans-serif;font-weight:800;font-size:clamp(2.35rem,5vw,4.4rem);line-height:1.04;letter-spacing:-.045em;max-width:850px;color:#ffffff;text-shadow:0 2px 20px rgba(0,0,0,.10)}
.eligibility-hero .section-kicker{color:#8ee0d5}
.eligibility-hero .lead{color:#d6e8e6;max-width:800px}
.eligibility-trust-card{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(12px);padding:1.5rem;border-radius:1.25rem;box-shadow:0 22px 50px rgba(0,0,0,.18)}
.eligibility-trust-card strong{display:block;font-size:1.05rem;margin-bottom:.6rem}.eligibility-trust-card p{color:#dbe9e8}
.eligibility-form-card{background:#fff;border:1px solid #e3e9eb;border-radius:1.35rem;padding:1.4rem;box-shadow:0 18px 45px rgba(7,28,44,.09)}
.student-subject-row .form-select{min-height:44px}
.eligibility-empty-state{background:linear-gradient(150deg,#f6faf9,#fff);border:1px solid #dfe9e7;border-radius:1.4rem;padding:2rem}.eligibility-empty-state h2{font-family:Manrope,sans-serif;font-weight:800;margin-top:1rem}
.eligibility-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.eligibility-summary-grid>div{border:1px solid #e1e8ea;background:#fff;border-radius:1rem;padding:1rem}.eligibility-summary-grid strong{display:block;font:800 1.7rem/1 Manrope,sans-serif;color:#0b2b3d}.eligibility-summary-grid span{display:block;color:#64748b;font-size:.83rem;margin-top:.4rem}
.eligibility-result-card{background:#fff;border:1px solid #dfe6e8;border-left:5px solid #94a3b8;border-radius:1.25rem;padding:1.35rem;box-shadow:0 12px 32px rgba(7,28,44,.06)}
.eligibility-result-card.elig-match-good{border-left-color:#15803d}.eligibility-result-card.elig-match-review{border-left-color:#d97706}.eligibility-result-card.elig-match-no{border-left-color:#b91c1c}
.eligibility-result-card h3 a{color:#0b2b3d;text-decoration:none}.eligibility-result-card h3 a:hover{text-decoration:underline}
.eligibility-status-badge{display:inline-flex;border-radius:999px;padding:.38rem .7rem;font-size:.78rem;font-weight:800;background:#eef2f3;color:#334155}.elig-match-good .eligibility-status-badge{background:#dcfce7;color:#166534}.elig-match-review .eligibility-status-badge{background:#fef3c7;color:#92400e}.elig-match-no .eligibility-status-badge{background:#fee2e2;color:#991b1b}
.eligibility-note{background:#f8fafc;border-radius:.85rem;padding:.85rem 1rem;color:#475569}.eligibility-checks{border-top:1px solid #edf1f2;padding-top:.8rem}.eligibility-checks summary{cursor:pointer;font-weight:800;color:#0b2b3d}.elig-check-row{display:flex;gap:.75rem;padding:.75rem;border-radius:.85rem;background:#f8fafc}.elig-check-row>i{margin-top:.2rem}.elig-check-pass>i{color:#15803d}.elig-check-fail>i{color:#b91c1c}.elig-check-review>i{color:#d97706}.elig-check-row p{margin:.15rem 0 0;color:#64748b;font-size:.9rem}.elig-check-row ul{margin:.45rem 0 0;padding-left:1.1rem;font-size:.88rem;color:#64748b}.elig-child-pass::marker{color:#15803d}.elig-child-fail::marker{color:#b91c1c}.elig-child-review::marker{color:#d97706}
.eligibility-result-footer{border-top:1px solid #edf1f2;padding-top:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.relationship-pill{display:inline-flex;padding:.4rem .7rem;border-radius:999px;background:#edf7f4;color:#0d5b52;text-decoration:none;font-size:.83rem;font-weight:700}.relationship-pill:hover{background:#dcefe9;color:#083e39}
.ws-header .btn-ws-header.active{background:#e8f7f5!important;border-color:#e8f7f5!important;color:#064e49!important;box-shadow:0 0 0 2px rgba(255,255,255,.45) inset,0 12px 25px rgba(0,0,0,.13)}
.ws-header .btn-ws-header.active i{color:#0f766e}
.ws-header .btn-ws-header.active:hover,.ws-header .btn-ws-header.active:focus{background:#ffffff!important;border-color:#ffffff!important;color:#071c2c!important}
@media(max-width:767.98px){.eligibility-summary-grid{grid-template-columns:1fr}.eligibility-form-card{padding:1rem}.eligibility-result-card{padding:1rem}.eligibility-hero h1{font-size:2.45rem}}


/* Patch 008: search, compare & country discovery */
.ws-search-link{display:flex;align-items:center;justify-content:center;min-width:42px}.search-directory-hero{background:radial-gradient(circle at 84% 12%,rgba(14,116,144,.12),transparent 28%),linear-gradient(180deg,#eaf6f8 0%,#f8fbfc 78%,#fff 100%)}
.discovery-search-panel,.compare-picker{background:#fff;border:1px solid var(--ws-line);border-radius:24px;padding:1.35rem;box-shadow:var(--ws-shadow-soft)}.discovery-search-panel .form-control,.discovery-search-panel .form-select,.discovery-search-panel .input-group-text,.compare-picker .form-select{min-height:48px;border-color:#cbdbe4}.discovery-starter{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:2rem;border:1px dashed #bcd2da;border-radius:24px;background:#f8fbfc}.discovery-starter h2{font-size:1.3rem;font-weight:800;margin:1rem 0 .4rem}.discovery-starter p{color:var(--ws-muted);margin:0;max-width:720px}
.search-results-list{display:grid;gap:1rem}.search-result-card{display:grid;grid-template-columns:58px minmax(0,1fr);gap:1rem;padding:1.2rem;border:1px solid var(--ws-line);border-radius:20px;background:#fff;box-shadow:0 8px 24px rgba(16,42,67,.045)}.search-result-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(135deg,var(--ws-soft-teal),#eef0ff);color:var(--ws-primary-dark)}.search-result-body h2{font-size:1.08rem;font-weight:800;margin:.2rem 0}.search-result-body h2 a{text-decoration:none;color:var(--ws-navy)}.search-result-body h2 a:hover{color:var(--ws-primary-dark);text-decoration:underline}.search-result-body p{color:var(--ws-muted);margin:.35rem 0}.search-kind{display:inline-flex;padding:.25rem .55rem;border-radius:999px;background:#e9f7f5;color:#08665f;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.search-country{font-size:.78rem;color:#526b7c}.search-country i{margin-right:.3rem;color:var(--ws-primary)}.search-meta{font-size:.84rem;font-weight:700;color:#405d70!important}.search-result-foot{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid #e6edf1;margin-top:.8rem;padding-top:.7rem;font-size:.8rem}.search-result-foot span{color:#0a6b60;font-weight:700}.search-result-foot a{font-weight:800;text-decoration:none}
.compare-hero{background:radial-gradient(circle at 88% 12%,rgba(67,56,202,.10),transparent 28%),linear-gradient(180deg,#f0f0ff 0%,#f8fbfc 80%,#fff 100%)}.compare-switch{display:flex;gap:.75rem;flex-wrap:wrap}.compare-table-wrap{overflow-x:auto;border:1px solid var(--ws-line);border-radius:22px;box-shadow:var(--ws-shadow-soft)}.compare-table{min-width:760px;margin:0;background:#fff}.compare-table th,.compare-table td{padding:1rem;vertical-align:top;border-color:#e3ebf0}.compare-table thead th{background:#071c2c;color:#fff}.compare-table thead th:first-child{min-width:170px}.compare-table thead a{color:#fff}.compare-table tbody th{background:#f6f9fb;color:#27465a;width:180px}.compare-table tbody td{min-width:220px;color:#334f65}
.explore-hero{background:radial-gradient(circle at 84% 14%,rgba(15,118,110,.13),transparent 30%),linear-gradient(180deg,#eaf8f5 0%,#f8fbfc 80%,#fff 100%)}.country-discovery-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;border:1px solid var(--ws-line);border-radius:24px;background:#fff;padding:1.4rem;box-shadow:0 10px 28px rgba(16,42,67,.055);transition:.2s ease}.country-discovery-card:hover{color:inherit;transform:translateY(-4px);border-color:#a9d0cc;box-shadow:var(--ws-shadow-soft)}.country-code{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:var(--ws-navy);color:#fff;font-weight:800;letter-spacing:.05em}.country-discovery-card h2{font-size:1.25rem;font-weight:800;margin:1rem 0 .1rem}.country-region{color:var(--ws-muted)}.country-count-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:1rem 0}.country-count-grid span{background:#f6f9fb;border-radius:14px;padding:.7rem;font-size:.75rem;color:#607689}.country-count-grid strong{display:block;font-size:1.1rem;color:var(--ws-navy)}.country-discovery-card .feature-link{margin-top:auto}.country-hero{background:linear-gradient(135deg,#071c2c 0%,#0a3840 60%,#0d5d52 100%);color:#fff}.country-hero h1{color:#fff;font-weight:800}.country-hero .lead{color:#d9e9ee;max-width:800px}.country-hero .section-kicker{color:#8ee0d5}.country-hero .breadcrumb,.country-hero .breadcrumb a{color:#c9dde6}.country-hero .breadcrumb-item.active{color:#fff}.country-metric{height:100%;padding:1rem;border:1px solid var(--ws-line);border-radius:18px;background:#fff;text-align:center}.country-metric i{color:var(--ws-primary);display:block;margin-bottom:.5rem}.country-metric strong{display:block;font-size:1.35rem;color:var(--ws-navy)}.country-metric span{display:block;color:var(--ws-muted);font-size:.77rem;margin-top:.2rem}
@media(max-width:767.98px){.discovery-starter{align-items:flex-start;flex-direction:column}.search-result-card{grid-template-columns:1fr}.compare-picker{padding:1rem}.country-count-grid{grid-template-columns:1fr 1fr}}


/* Patch 009: student accounts, saved items and dashboard alerts */
.ws-account-link{display:grid!important;place-items:center;min-width:42px}
.student-action-wrap{position:relative;z-index:2}
.student-action-bar{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;padding:1rem 0}
.student-alert-inline{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.student-alert-inline .form-select{width:auto;min-width:150px;border-radius:999px}
.btn-ws-saved{background:#dff5ef;border:1px solid #9ed7cb;color:#075e58;font-weight:800}
.btn-ws-alert-active{background:#fff4d7;border:1px solid #f0ca70;color:#714f00;font-weight:800}
.account-page{background:#f7fafb}
.account-hero{background:linear-gradient(120deg,#071c2c 0%,#0b3545 55%,#0d5c55 100%);color:#fff}
.account-hero h1{font-size:clamp(2.1rem,5vw,3.3rem);font-weight:800}.account-hero p{color:#d7e7ed}.account-hero .section-kicker{color:#8ee0d5}
.account-auth-card,.account-panel{background:#fff;border:1px solid var(--ws-line);border-radius:24px;padding:clamp(1.4rem,4vw,2.2rem);box-shadow:var(--ws-shadow-soft)}
.account-auth-card .form-control{min-height:52px;border-radius:14px}
.account-stat-card{display:flex;flex-direction:column;height:100%;padding:1.35rem;border-radius:20px;background:#fff;border:1px solid var(--ws-line);text-decoration:none;color:inherit;box-shadow:0 8px 22px rgba(16,42,67,.04)}
.account-stat-card:hover{color:inherit;border-color:#9fcac5}.account-stat-card span{font-weight:800;color:#36576c}.account-stat-card strong{font-size:2.3rem;line-height:1.1;color:var(--ws-navy);margin:.35rem 0}.account-stat-card small{color:var(--ws-muted)}.account-stat-card.alert-stat strong{color:#9a6500}
.account-tabs{display:flex;gap:.5rem;flex-wrap:wrap}.account-tabs a{padding:.55rem .9rem;border-radius:999px;text-decoration:none;color:#36576c;font-weight:750;border:1px solid #d7e3e8;background:#fff}.account-tabs a.active{background:var(--ws-navy);border-color:var(--ws-navy);color:#fff}
.deadline-row,.saved-mini-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--ws-line);border-radius:16px;text-decoration:none;color:inherit;background:#fbfdfe}.deadline-row:hover,.saved-mini-row:hover{color:inherit;border-color:#a8cec9;background:#fff}.deadline-row strong,.deadline-row span,.saved-mini-row strong,.saved-mini-row small{display:block}.deadline-row span,.saved-mini-row small{color:var(--ws-muted);font-size:.82rem;margin-top:.18rem}
.deadline-days{display:inline-flex;align-items:center;justify-content:center;min-width:62px;padding:.35rem .6rem;border-radius:999px;background:#edf3f6;color:#36576c;font-size:.78rem;font-weight:800;white-space:nowrap}.deadline-days.soon{background:#fff0c7;color:#7a5200}.deadline-days.expired{background:#f6e6e7;color:#8c2d35}
.saved-mini-row{justify-content:flex-start}.saved-type-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--ws-soft-teal);color:#075e58;flex:0 0 40px}
.account-empty{text-align:center;padding:2.1rem 1rem;border:1px dashed #c5d5dd;border-radius:18px;background:#fbfdfe}.account-empty i{font-size:1.6rem;color:var(--ws-primary);margin-bottom:.7rem}.account-empty h3,.account-empty h2{font-weight:800}.account-empty p{color:var(--ws-muted)}.account-empty.compact{padding:1.4rem}.account-empty.large{padding:4rem 1rem}
.account-note{display:flex;gap:1rem;align-items:flex-start;padding:1.15rem 1.25rem;border-radius:17px;background:#eaf6f5;border:1px solid #c4e0dc;color:#264d56}.account-note>i{margin-top:.18rem;color:#08766e}.account-note p{color:#52717a}
.saved-item-card{display:flex;flex-direction:column;padding:1.35rem;border-radius:20px;background:#fff;border:1px solid var(--ws-line);box-shadow:0 8px 20px rgba(16,42,67,.04)}.saved-item-card h2 a{text-decoration:none;color:var(--ws-navy)}.saved-item-card h2 a:hover{text-decoration:underline}
.alert-manage-card{display:flex;justify-content:space-between;align-items:center;gap:1.2rem;padding:1.2rem 1.3rem;border:1px solid var(--ws-line);border-radius:18px;background:#fff}.alert-manage-card h2 a{text-decoration:none;color:var(--ws-navy)}
.account-danger{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.4rem;border:1px solid #ecc8cb;background:#fff7f7;border-radius:20px}.account-danger p{color:#6d5254;margin-bottom:0}
@media(max-width:767.98px){.alert-manage-card,.account-danger{align-items:flex-start;flex-direction:column}.student-alert-inline .form-select{width:100%}}


/* Patch 010: final accessibility + brand edge polish */
:where(a,button,input,select,textarea,[tabindex]):focus-visible {
    outline: 3px solid var(--ws-accent);
    outline-offset: 3px;
}
.ws-header { box-shadow:0 8px 28px rgba(7,28,44,.14),0 2px 0 rgba(20,219,219,.12); }
@media (prefers-contrast: more) {
    .ws-header,.ws-footer { border-color:#14dbdb; }
    .navbar .nav-link { color:#fff; }
}


/* Patch 011 — framework-free public UI compatibility */
.container{width:min(1180px,calc(100% - 32px));margin-inline:auto}
.row{display:flex;flex-wrap:wrap;margin:-.75rem}.row>*{padding:.75rem;min-width:0}
.g-0{margin:0}.g-0>*{padding:0}.g-2{margin:-.25rem}.g-2>*{padding:.25rem}.g-3{margin:-.5rem}.g-3>*{padding:.5rem}.g-4{margin:-.75rem}.g-4>*{padding:.75rem}.g-5{margin:-1rem}.g-5>*{padding:1rem}
.col-6{width:50%}.col-12,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-xl-4,.col-xl-8{width:100%}
.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-block{display:block}.d-grid{display:grid}.flex-column{flex-direction:column}.flex-wrap{flex-wrap:wrap}.justify-content-between{justify-content:space-between}.justify-content-center{justify-content:center}.align-items-center{align-items:center}.align-items-start{align-items:flex-start}.align-items-end{align-items:flex-end}.position-relative{position:relative}
.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:1rem}.gap-4{gap:1.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.mt-5{margin-top:3rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.mb-5{margin-bottom:3rem}.me-1{margin-right:.25rem}.me-2{margin-right:.5rem}.ms-1{margin-left:.25rem}.ms-2{margin-left:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.p-3{padding:1rem}.p-4{padding:1.5rem}.px-4{padding-left:1.5rem;padding-right:1.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:1rem;padding-bottom:1rem}.py-4{padding-top:1.5rem;padding-bottom:1.5rem}.py-5{padding-top:3rem;padding-bottom:3rem}.pt-0{padding-top:0!important}.pt-3{padding-top:1rem}.pb-3{padding-bottom:1rem}
.h-100{height:100%}.w-100{width:100%}.small{font-size:.875rem}.text-center{text-align:center}.text-end{text-align:right}.text-muted{color:var(--ws-muted)!important}.fw-bold{font-weight:700}.fw-800{font-weight:800}.lead{font-size:1.125rem}.h1{font-size:2rem}.h2{font-size:1.7rem}.h3{font-size:1.4rem}.h4{font-size:1.2rem}.h5{font-size:1.05rem}.h6{font-size:.95rem}
.rounded-pill{border-radius:999px!important}.rounded-3{border-radius:.75rem}.rounded-4{border-radius:1rem}.border{border:1px solid var(--ws-line)!important}.border-top{border-top:1px solid var(--ws-line)!important}.shadow-sm{box-shadow:var(--ws-shadow-soft)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:42px;padding:.62rem 1rem;border:1px solid transparent;border-radius:.55rem;font:inherit;font-weight:700;line-height:1.2;cursor:pointer;text-decoration:none;transition:.18s ease}.btn-lg{min-height:50px;padding:.82rem 1.2rem;font-size:1rem}.btn-sm{min-height:34px;padding:.4rem .68rem;font-size:.82rem}.btn-outline-dark{border-color:#52677c;background:#fff;color:#102a43}.btn-outline-dark:hover{background:#102a43;color:#fff}.btn-outline-secondary{border-color:#b7c7d0;background:#fff;color:#52677c}.btn-outline-danger{border-color:#c75a55;background:#fff;color:#a6403b}.btn-light{background:#fff;color:#102a43;border-color:#fff}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:.38rem .62rem;font-size:.72rem;font-weight:800}.text-bg-light{background:#f3f7f9;color:#40596e}.text-bg-success{background:#e7f6ef;color:#1d6b4c}.text-bg-warning{background:#fff4df;color:#8a5b09}.text-bg-danger{background:#fff0ee;color:#9c3f39}.text-bg-secondary{background:#eef1f3;color:#586a77}
.form-label{display:block;margin-bottom:.4rem;font-size:.9rem;font-weight:750}.form-control,.form-select{display:block;width:100%;min-height:44px;padding:.68rem .78rem;border:1px solid #cfdde6;border-radius:10px;background:#fff;color:var(--ws-ink);font:inherit}.form-control:focus,.form-select:focus{outline:3px solid rgba(15,118,110,.12);border-color:var(--ws-primary)}textarea.form-control{min-height:110px}.form-check{display:flex;align-items:flex-start;gap:.5rem}.form-check-input{width:1rem;height:1rem;margin-top:.25rem}.form-text{font-size:.78rem;color:var(--ws-muted);margin-top:.35rem}.input-group{display:flex}.input-group>.form-control{flex:1}.input-group-text{display:flex;align-items:center;padding:.68rem .75rem;border:1px solid #cfdde6;background:#f7fafb}
.alert{padding:.9rem 1rem;border-radius:13px;border:1px solid transparent;margin-bottom:1rem}.alert-info{background:#eef8fa;border-color:#c7e7ec;color:#24566a}.alert-danger{background:#fff0ee;border-color:#efc9c6;color:#933d38}.alert-success{background:#edf9f3;border-color:#c5e6d4;color:#216246}.alert-warning{background:#fff7e8;border-color:#eed7a5;color:#815812}
.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:.78rem;border-bottom:1px solid var(--ws-line);text-align:left}.align-middle td,.align-middle th{vertical-align:middle}
.card{background:#fff;border:1px solid var(--ws-line);border-radius:18px}.card-body{padding:1.25rem}.overflow-hidden{overflow:hidden}
.navbar{display:flex}.navbar>.container{display:flex;align-items:center;gap:1rem}.navbar-brand{display:inline-flex;text-decoration:none}.navbar-toggler{display:none;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:10px;padding:.5rem .65rem}.navbar-collapse{display:flex;flex:1;justify-content:flex-end}.navbar-nav{display:flex;align-items:center;list-style:none;margin:0;padding:0}.nav-link{display:flex;align-items:center;text-decoration:none}.dropdown{position:relative}.dropdown-toggle{gap:.45rem}.dropdown-toggle::after{content:"";width:.42rem;height:.42rem;border-right:1.8px solid currentColor;border-bottom:1.8px solid currentColor;transform:rotate(45deg) translateY(-1px);transition:transform .16s ease}.dropdown.show>.dropdown-toggle::after{transform:rotate(225deg)}.dropdown-menu{display:none;position:absolute;top:100%;left:0;z-index:1200;min-width:230px;margin:0;background:#fff;list-style:none}.dropdown.show>.dropdown-menu{display:block}.dropdown-menu::before{content:"";position:absolute;left:0;right:0;top:-9px;height:9px}.dropdown-item{display:flex;text-decoration:none}.dropdown-divider{border:0;border-top:1px solid var(--ws-line);margin:.35rem}
.ws-icon{width:1.08em;height:1.08em;display:inline-block;vertical-align:-.15em;flex:0 0 auto}.feature-icon .ws-icon,.wide-action-icon .ws-icon,.journey-icon .ws-icon,.status-icon .ws-icon{width:1.28em;height:1.28em}.social-link .ws-icon{width:18px;height:18px}
.sticky-top{position:sticky;top:0;z-index:1100}
@media(min-width:576px){.flex-sm-row{flex-direction:row}}
@media(min-width:768px){.col-md-4{width:33.333%}.col-md-5{width:41.667%}.col-md-6{width:50%}.col-md-7{width:58.333%}.col-md-8{width:66.667%}.flex-md-row{flex-direction:row}}
@media(min-width:992px){.col-lg-2{width:16.667%}.col-lg-3{width:25%}.col-lg-4{width:33.333%}.col-lg-5{width:41.667%}.col-lg-6{width:50%}.col-lg-7{width:58.333%}.col-lg-8{width:66.667%}}
@media(min-width:1200px){.col-xl-4{width:33.333%}.col-xl-8{width:66.667%}.align-items-xl-center{align-items:center}.gap-xl-1{gap:.25rem}.ms-xl-2{margin-left:.5rem}.mt-xl-0{margin-top:0!important}.dropdown:hover>.dropdown-menu,.dropdown:focus-within>.dropdown-menu{display:block}}
@media(max-width:1199.98px){.navbar>.container{flex-wrap:wrap}.navbar-toggler{display:inline-grid;place-items:center;margin-left:auto}.navbar-collapse{display:none;width:100%;flex-basis:100%;padding:.65rem 0 .25rem}.navbar-collapse.show{display:block}.navbar-nav{display:grid;align-items:stretch;gap:.12rem}.dropdown-menu{position:static;box-shadow:none!important;margin:.15rem 0 .5rem}.dropdown.show>.dropdown-menu{display:block}.ws-nav-label{display:inline}.ws-account-label{display:inline}}
@media(min-width:1200px){.ws-nav-label{display:none}.ws-account-label{display:inline}}
@media(max-width:575px){.container{width:min(100% - 24px,1180px)}.col-6{width:100%}}

/* Patch 011 — premium centered hero */
.ws-home-hero{padding:1.4rem 0 4.6rem;background:
 radial-gradient(circle at 50% 8%,rgba(67,56,202,.13),transparent 31%),
 radial-gradient(circle at 14% 30%,rgba(15,118,110,.13),transparent 28%),
 linear-gradient(180deg,#f6fbfc 0%,#fff 100%)}
.ws-hero-center{text-align:center;max-width:980px;margin:0 auto}
.ws-hero-center .eyebrow{display:inline-flex;align-items:center}
.ws-home-hero h1{font-size:clamp(2.45rem,5.1vw,4.75rem);line-height:1.04;max-width:980px;margin-inline:auto;font-weight:850}
.ws-home-hero .hero-lead{max-width:850px}
.ws-journey-section{position:relative;margin-top:-2.8rem;padding-bottom:4.6rem;z-index:2}
.ws-path-card-modern{padding:clamp(1.2rem,2.6vw,2rem);border-radius:30px;background:rgba(255,255,255,.97);box-shadow:0 24px 70px rgba(7,28,44,.13)}
.ws-path-card-modern .path-card-header{padding:.25rem .2rem 1.15rem}
.ws-path-card-modern .path-card-header h2{font-size:clamp(1.45rem,2.8vw,2.15rem);margin:.25rem 0 0}
.ws-journey-grid{grid-template-columns:repeat(5,1fr);gap:.8rem}
.ws-journey-grid li{height:100%;display:block;padding:1rem}
.ws-journey-grid .journey-icon{margin-bottom:.8rem}
.ws-journey-grid small{font-size:.82rem}
@media(max-width:991px){.ws-journey-grid{grid-template-columns:repeat(2,1fr)}.ws-journey-grid li:last-child{grid-column:1/-1}.ws-home-hero h1{font-size:clamp(2.3rem,7vw,3.7rem)}}
@media(max-width:575px){.ws-journey-grid{grid-template-columns:1fr}.ws-journey-grid li:last-child{grid-column:auto}.ws-home-hero{padding-top:.5rem}.ws-home-hero h1{font-size:2.3rem}.ws-journey-section{margin-top:-1.8rem}}

.waridi-tech-credit,.footer-bottom .waridi-tech-credit{color:var(--ws-accent)!important;font-weight:850;text-decoration:none}.waridi-tech-credit:hover{color:#fff!important}
.ws-account-link{gap:.4rem}.ws-account-label{font-weight:800}.ws-search-link{gap:.35rem}

/* Public password and modal controls without Bootstrap JS */
.ws-password-field{position:relative}.ws-password-field .form-control{padding-right:3.2rem}.ws-password-toggle{position:absolute;right:.4rem;top:50%;transform:translateY(-50%);width:2.4rem;height:2.4rem;display:grid;place-items:center;border:0;border-radius:9px;background:transparent;color:#5b7081;cursor:pointer}.ws-password-toggle:hover,.ws-password-toggle:focus{background:#edf6f7;color:var(--ws-primary-dark);outline:none}
.btn-danger{background:#b94740;border-color:#a63c36;color:#fff}.btn-danger:hover{background:#a13c36;color:#fff}
body.ws-modal-open{overflow:hidden}.modal{display:none;position:fixed;inset:0;z-index:2000;padding:20px;background:rgba(4,17,27,.68);overflow:auto}.modal.show{display:grid;place-items:center}.modal-dialog{width:min(520px,100%);margin:auto}.modal-content{background:#fff;border-radius:20px;box-shadow:0 28px 80px rgba(7,28,44,.28);overflow:hidden}.modal-header,.modal-footer{display:flex;align-items:center;gap:1rem;padding:1rem 1.2rem}.modal-header{justify-content:space-between;border-bottom:1px solid var(--ws-line)}.modal-footer{justify-content:flex-end;border-top:1px solid var(--ws-line)}.modal-body{padding:1.2rem}.modal-title{margin:0}.btn-close{width:2rem;height:2rem;border:0;border-radius:50%;background:#f0f4f6;cursor:pointer;position:relative}.btn-close::before,.btn-close::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.5px;background:#425b6e}.btn-close::before{transform:translate(-50%,-50%) rotate(45deg)}.btn-close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.d-none{display:none!important}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Additional utility coverage used by existing public templates */
.d-inline{display:inline}.fw-semibold{font-weight:600}.pt-4{padding-top:1.5rem}.my-4{margin-top:1.5rem;margin-bottom:1.5rem}.form-select-sm{min-height:36px;padding:.42rem .65rem;font-size:.86rem}.form-control-lg{min-height:50px;padding:.8rem .9rem;font-size:1rem}
@media(min-width:576px){.col-sm-6{width:50%}}
@media(min-width:768px){.col-md-3{width:25%}}
@media(min-width:992px){.col-lg-1{width:8.333%}}
@media(min-width:1200px){.col-xl-5{width:41.667%}}
