:root {
  --bg: #f7f7f4;
  --surface: #ffffff;
  --surface-subtle: #f0f2ef;
  --surface-strong: #e7ebe7;
  --text: #19232d;
  --text-secondary: #5d6872;
  --text-tertiary: #79838c;
  --primary: #174f4a;
  --primary-hover: #113f3b;
  --primary-soft: #e6efec;
  --accent: #aa7f49;
  --border: #dfe3df;
  --border-strong: #cbd1cc;
  --success: #2a7454;
  --success-soft: #e7f2ec;
  --warning: #9a6325;
  --warning-soft: #f7efe3;
  --danger: #a14646;
  --danger-soft: #f8eaea;
  --info: #3e6477;
  --info-soft: #e9f0f3;
  --focus: #236f67;
  --shadow-sm: 0 1px 2px rgba(17, 24, 39, .04), 0 1px 3px rgba(17, 24, 39, .05);
  --shadow-md: 0 12px 32px rgba(31, 43, 52, .07);
  --radius-xs: 6px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 22px;
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --container: 1180px;
  --sidebar: 272px;
  --font-sans: 'IBM Plex Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

* { box-sizing: border-box; }
html { color-scheme: light; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--font-sans); font-size: 16px; line-height: 1.55; text-rendering: optimizeLegibility; }
[x-cloak] { display: none !important; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img, svg { max-width: 100%; }
svg { width: 1.1rem; height: 1.1rem; flex: none; }
::selection { background: #d9e9e5; color: var(--text); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position: fixed; z-index: 999; left: 1rem; top: 1rem; padding: .65rem 1rem; background: var(--text); color: #fff; border-radius: var(--radius-sm); transform: translateY(-180%); transition: transform .16s ease; }
.skip-link:focus { transform: translateY(0); }

.ui-container { width: min(calc(100% - 2rem), var(--container)); margin-inline: auto; }
.eyebrow { margin: 0 0 .55rem; color: var(--primary); font-size: .75rem; line-height: 1.2; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.text-warning { color: var(--warning) !important; }
.text-link { display: inline-flex; align-items: center; gap: .4rem; color: var(--primary); font-weight: 600; }
.text-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.text-link svg { width: 1rem; }

/* Buttons */
.ui-button { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border: 1px solid transparent; border-radius: var(--radius-sm); padding: .68rem 1rem; font-weight: 600; line-height: 1; cursor: pointer; transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease, transform .12s ease; }
.ui-button:hover:not(:disabled) { transform: translateY(-1px); }
.ui-button:active:not(:disabled) { transform: translateY(0); }
.ui-button:focus-visible, .icon-button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, .account-trigger:focus-visible, .mobile-menu-button:focus-visible { outline: 3px solid color-mix(in srgb, var(--focus) 25%, transparent); outline-offset: 2px; }
.ui-button:disabled { cursor: not-allowed; opacity: .48; }
.ui-button--primary { background: var(--primary); color: #fff; border-color: var(--primary); }
.ui-button--primary:hover:not(:disabled) { background: var(--primary-hover); border-color: var(--primary-hover); }
.ui-button--secondary { background: var(--surface); color: var(--text); border-color: var(--border-strong); }
.ui-button--secondary:hover:not(:disabled) { background: var(--surface-subtle); border-color: #b8c0ba; }
.ui-button--ghost { background: transparent; color: var(--text); }
.ui-button--ghost:hover:not(:disabled) { background: var(--surface-subtle); }
.ui-button--danger { background: var(--danger); color: #fff; }
.ui-button--lg { min-height: 48px; padding-inline: 1.25rem; }
.ui-button--sm { min-height: 34px; padding: .45rem .7rem; font-size: .88rem; }
.ui-button--full { width: 100%; }
.icon-button { width: 40px; height: 40px; padding: 0; display: inline-grid; place-items: center; border: 1px solid var(--border); background: var(--surface); color: var(--text); border-radius: var(--radius-sm); cursor: pointer; transition: background-color .16s, border-color .16s; }
.icon-button:hover { background: var(--surface-subtle); border-color: var(--border-strong); }
.spinner { width: 15px; height: 15px; border: 2px solid rgba(255,255,255,.45); border-top-color: #fff; border-radius: 50%; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Badges */
.ui-badge { display: inline-flex; align-items: center; min-height: 25px; border: 1px solid var(--border); border-radius: 999px; padding: .18rem .55rem; font-size: .75rem; line-height: 1; font-weight: 600; white-space: nowrap; background: var(--surface-subtle); color: var(--text-secondary); }
.ui-badge--success { background: var(--success-soft); color: var(--success); border-color: #cce3d5; }
.ui-badge--warning { background: var(--warning-soft); color: var(--warning); border-color: #ead7bc; }
.ui-badge--danger { background: var(--danger-soft); color: var(--danger); border-color: #eccccc; }
.ui-badge--info { background: var(--info-soft); color: var(--info); border-color: #cddde4; }

/* Form components */
.ui-field { display: grid; gap: .45rem; }
.ui-field label, .ui-fieldset legend { color: var(--text); font-size: .9rem; font-weight: 600; }
.ui-field small { color: var(--text-secondary); }
.ui-field input, .ui-field select, .ui-field textarea, select { width: 100%; border: 1px solid var(--border-strong); background: var(--surface); color: var(--text); border-radius: var(--radius-sm); min-height: 44px; padding: .7rem .82rem; transition: border-color .15s, box-shadow .15s; }
.ui-field textarea { min-height: 110px; resize: vertical; }
.ui-field input:hover, .ui-field select:hover, .ui-field textarea:hover { border-color: #aeb7b0; }
.ui-field input:focus, .ui-field select:focus, .ui-field textarea:focus { border-color: var(--focus); box-shadow: 0 0 0 3px color-mix(in srgb, var(--focus) 14%, transparent); outline: none; }
.ui-field input:disabled { background: var(--surface-subtle); color: var(--text-tertiary); cursor: not-allowed; }
.ui-field--error input { border-color: var(--danger); }
.ui-field--error small { color: var(--danger); }
.ui-input-wrap, .password-wrap, .phone-input, .currency-input { position: relative; display: flex; align-items: center; }
.ui-input-wrap > svg { position: absolute; left: .8rem; color: var(--text-tertiary); }
.ui-input-wrap input { padding-left: 2.5rem; }
.password-wrap input { padding-right: 3rem; }
.password-wrap button { position: absolute; right: .5rem; width: 34px; height: 34px; display:grid; place-items:center; border:0; background:transparent; cursor:pointer; border-radius:6px; }
.phone-input, .currency-input { border: 1px solid var(--border-strong); border-radius: var(--radius-sm); overflow: hidden; background: var(--surface); }
.phone-input > span, .currency-input > span { padding-inline: .8rem; color: var(--text-secondary); font-weight: 600; }
.phone-input input, .currency-input input { border: 0; border-left: 1px solid var(--border); border-radius: 0; }
.label-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.label-row a { color:var(--primary); font-size:.88rem; font-weight:600; }
.ui-checkbox, .ui-radio { display: inline-flex; align-items: flex-start; gap: .6rem; color: var(--text-secondary); cursor: pointer; }
.ui-checkbox input, .ui-radio input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--primary); }
.ui-switch { display:inline-flex; align-items:center; gap:.65rem; cursor:pointer; }
.ui-switch input { position:absolute; opacity:0; pointer-events:none; }
.ui-switch > span { width:42px; height:24px; background:#c9d0cb; border-radius:999px; position:relative; transition:.16s; }
.ui-switch > span::after { content:''; width:18px; height:18px; background:white; border-radius:50%; position:absolute; left:3px; top:3px; box-shadow:var(--shadow-sm); transition:.16s; }
.ui-switch input:checked + span { background:var(--primary); }
.ui-switch input:checked + span::after { transform:translateX(18px); }
.ui-switch em { font-style:normal; }
.ui-fieldset { border:1px solid var(--border); border-radius:var(--radius-md); padding:1rem; }
.ui-fieldset p { color:var(--text-secondary); margin:.3rem 0 1rem; font-size:.9rem; }
.radio-row { display:flex; flex-wrap:wrap; gap:1.25rem; }
.form-grid { display:grid; gap:1rem; }
.form-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }

/* Alerts */
.ui-alert { display:flex; gap:.8rem; align-items:flex-start; border:1px solid var(--border); border-radius:var(--radius-md); padding:1rem; background:var(--surface); }
.ui-alert strong { display:block; margin-bottom:.15rem; }
.ui-alert p { margin:0; color:var(--text-secondary); }
.ui-alert--info { background:var(--info-soft); border-color:#cedfe5; }
.ui-alert--warning { background:var(--warning-soft); border-color:#ead7bc; }
.ui-alert--neutral { background:var(--surface-subtle); }

/* Header / footer */
.site-header { position: sticky; top: 0; z-index: 60; background: rgba(247,247,244,.94); border-bottom: 1px solid rgba(223,227,223,.9); backdrop-filter: blur(12px); }
.site-header__inner { height: 74px; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.brand { display:inline-flex; align-items:center; gap:.72rem; }
.brand__mark { width:38px; height:38px; display:grid; place-items:center; border-radius:10px; background:var(--primary); color:#fff; font-weight:700; letter-spacing:-.03em; }
.brand__text { display:grid; line-height:1.15; }
.brand__text strong { font-size:.95rem; }
.brand__text small { margin-top:.2rem; color:var(--text-secondary); font-size:.72rem; font-weight:500; }
.desktop-nav { display:flex; gap:1.4rem; align-items:center; }
.desktop-nav a { color:var(--text-secondary); font-size:.92rem; font-weight:500; }
.desktop-nav a:hover { color:var(--text); }
.desktop-actions { display:flex; gap:.45rem; }
.mobile-menu-button { display:none; width:42px; height:42px; border:1px solid var(--border); background:var(--surface); border-radius:var(--radius-sm); place-items:center; }
.mobile-menu { display:none; border-top:1px solid var(--border); background:var(--surface); }
.mobile-menu nav { display:grid; padding-block:1rem; }
.mobile-menu nav > a { padding:.75rem 0; border-bottom:1px solid var(--border); font-weight:600; }
.mobile-menu__actions { display:grid; gap:.6rem; padding-top:1rem; }
.site-footer { background:#1b252b; color:#eef2ef; padding:4rem 0 1.4rem; }
.site-footer__grid { display:grid; grid-template-columns:2fr repeat(3,1fr); gap:3rem; }
.site-footer .brand__mark { background:#eef2ef; color:#1b252b; }
.site-footer .brand__text small, .site-footer__summary, .site-footer a, .site-footer__bottom { color:#b7c0ba; }
.site-footer__summary { max-width:38rem; margin:1rem 0 0; }
.site-footer__heading { font-size:.85rem; margin:0 0 .9rem; color:#fff; }
.site-footer__grid > div:not(:first-child) { display:flex; flex-direction:column; gap:.55rem; }
.site-footer__grid a:hover { color:#fff; }
.site-footer__bottom { margin-top:3rem; padding-top:1.25rem; border-top:1px solid #354148; display:flex; justify-content:space-between; gap:1rem; font-size:.82rem; }

/* Public pages */
.hero-section { padding:clamp(4rem,8vw,7rem) 0 5rem; }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); align-items:center; gap:clamp(3rem,7vw,6rem); }
.hero-copy h1 { max-width:760px; margin:.4rem 0 1.2rem; font-size:clamp(2.7rem,5.4vw,5.1rem); line-height:.98; letter-spacing:-.052em; font-weight:700; }
.hero-lead { max-width:680px; margin:0; color:var(--text-secondary); font-size:clamp(1.05rem,1.5vw,1.22rem); }
.hero-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:2rem; }
.hero-assurances { display:flex; flex-wrap:wrap; gap:1.25rem; padding:0; margin:1.4rem 0 0; list-style:none; color:var(--text-secondary); font-size:.88rem; }
.hero-assurances li { display:inline-flex; align-items:center; gap:.35rem; }
.hero-assurances svg { color:var(--success); width:.95rem; }
.profile-preview { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-xl); padding:1.35rem; box-shadow:var(--shadow-md); }
.profile-preview__header { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; border-bottom:1px solid var(--border); padding-bottom:1rem; }
.profile-preview__header h2 { margin:0; font-size:1.2rem; }
.readiness-score { padding:1.6rem 0 1.2rem; }
.readiness-score strong { font-size:3.7rem; line-height:1; letter-spacing:-.06em; }
.readiness-score > span { color:var(--text-tertiary); font-weight:600; }
.readiness-score p { margin:.35rem 0 0; color:var(--text-secondary); }
.criteria-list { display:grid; }
.criteria-list div { display:flex; justify-content:space-between; gap:1rem; padding:.75rem 0; border-top:1px solid var(--border); color:var(--text-secondary); }
.criteria-list strong { color:var(--success); font-size:.9rem; }
.profile-preview__footer { display:flex; justify-content:space-between; gap:1rem; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--border); color:var(--text-secondary); font-size:.82rem; }
.section { padding:clamp(4rem,7vw,6.5rem) 0; }
.section--muted { background:var(--surface-subtle); border-block:1px solid var(--border); }
.section-heading { margin-bottom:2.3rem; }
.section-heading h2 { max-width:760px; margin:0; font-size:clamp(2rem,3.2vw,3.1rem); line-height:1.06; letter-spacing:-.04em; }
.section-heading--split { display:grid; grid-template-columns:1fr .65fr; gap:3rem; align-items:end; }
.section-heading--split > p { color:var(--text-secondary); margin:0; }
.steps-list { border-top:1px solid var(--border-strong); }
.steps-list article { display:grid; grid-template-columns:80px minmax(0,1fr); gap:1.4rem; padding:1.55rem 0; border-bottom:1px solid var(--border); }
.step-number { color:var(--text-tertiary); font-weight:600; }
.steps-list h3 { margin:0 0 .35rem; font-size:1.12rem; }
.steps-list p { margin:0; color:var(--text-secondary); max-width:680px; }
.evidence-grid { display:grid; grid-template-columns:1fr .8fr; gap:5rem; align-items:start; }
.evidence-grid h2 { margin:.2rem 0 1rem; font-size:clamp(2rem,3vw,3rem); line-height:1.08; letter-spacing:-.04em; }
.section-copy { color:var(--text-secondary); max-width:680px; }
.evidence-panel { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.25rem; }
.evidence-panel dl { margin:0; }
.evidence-panel dl div { display:grid; grid-template-columns:1fr 1.2fr; gap:1rem; padding:1rem .2rem; border-bottom:1px solid var(--border); }
.evidence-panel dl div:last-child { border:0; }
.evidence-panel dt { color:var(--text-secondary); }
.evidence-panel dd { margin:0; font-weight:600; }
.section--cta { padding-top:2rem; }
.cta-panel { display:flex; justify-content:space-between; gap:3rem; align-items:center; padding:2.2rem; border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--surface); }
.cta-panel h2 { margin:.2rem 0 .6rem; font-size:clamp(1.8rem,2.8vw,2.6rem); letter-spacing:-.035em; }
.cta-panel p:last-child { margin:0; color:var(--text-secondary); }
.page-shell { min-height:70vh; padding-bottom:5rem; }
.page-intro { padding:4rem 0 2.5rem; }
.page-intro h1, .program-hero h1 { margin:.3rem 0 .8rem; max-width:900px; font-size:clamp(2.3rem,4.2vw,4.2rem); line-height:1; letter-spacing:-.05em; }
.page-intro > p:last-child { max-width:720px; color:var(--text-secondary); }
.explorer-layout { display:grid; grid-template-columns:260px 1fr; gap:2rem; align-items:start; }
.filter-panel { position:sticky; top:95px; display:grid; gap:1rem; padding:1rem; border:1px solid var(--border); background:var(--surface); border-radius:var(--radius-md); }
.results-toolbar { display:flex; justify-content:space-between; gap:1rem; align-items:center; margin-bottom:1rem; }
.results-toolbar p { margin:0; color:var(--text-secondary); }
.results-toolbar select, .toolbar-actions select { width:auto; min-width:180px; border:1px solid var(--border-strong); background:var(--surface); border-radius:var(--radius-sm); padding:.6rem .8rem; }
.program-list { display:grid; border-top:1px solid var(--border-strong); }
.program-list--home { background:transparent; }
.program-row { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(330px,.9fr) auto; gap:2rem; align-items:center; padding:1.4rem .3rem; border-bottom:1px solid var(--border); }
.program-row__university { margin:0 0 .35rem; color:var(--text-secondary); font-size:.84rem; font-weight:600; }
.program-row h2, .program-row h3 { margin:0; font-size:1.08rem; letter-spacing:-.015em; }
.program-row__meta { margin:.35rem 0 0; color:var(--text-secondary); font-size:.86rem; }
.program-row__facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem; margin:0; }
.program-row__facts dt { color:var(--text-tertiary); font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; }
.program-row__facts dd { margin:.2rem 0 0; font-size:.88rem; font-weight:600; }
.program-row__actions { display:flex; gap:.45rem; align-items:center; }
.program-row__topline { display:flex; align-items:center; gap:.65rem; flex-wrap:wrap; }
.ui-pagination { display:flex; justify-content:center; gap:.35rem; margin-top:2rem; }
.ui-pagination button { min-width:38px; height:38px; border:1px solid var(--border); background:var(--surface); border-radius:var(--radius-sm); cursor:pointer; }
.ui-pagination button[aria-current] { background:var(--primary); color:#fff; border-color:var(--primary); }
.ui-pagination button:disabled { opacity:.45; cursor:not-allowed; }
.breadcrumbs { display:flex; gap:.5rem; align-items:center; color:var(--text-secondary); font-size:.86rem; margin-bottom:2.2rem; }
.breadcrumbs a:hover { color:var(--text); text-decoration:underline; }
.program-hero { padding:2.5rem 0; }
.program-hero__meta { display:flex; flex-wrap:wrap; gap:1rem; color:var(--text-secondary); }
.program-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:2.5rem; align-items:start; }
.fact-strip { display:grid; grid-template-columns:repeat(3,1fr); border-block:1px solid var(--border-strong); margin-bottom:2rem; }
.fact-strip div { padding:1.2rem 1rem 1.2rem 0; border-right:1px solid var(--border); }
.fact-strip div:not(:first-child) { padding-left:1rem; }
.fact-strip div:last-child { border-right:0; }
.fact-strip span { display:block; color:var(--text-tertiary); font-size:.78rem; margin-bottom:.25rem; }
.content-section { padding:1.8rem 0; border-bottom:1px solid var(--border); }
.content-section h2 { margin:0 0 1rem; font-size:1.35rem; }
.content-section p { color:var(--text-secondary); }
.requirements-table { border:1px solid var(--border); border-radius:var(--radius-md); overflow:hidden; }
.requirements-table > div { display:grid; grid-template-columns:180px 1fr; gap:1.5rem; padding:.9rem 1rem; border-bottom:1px solid var(--border); }
.requirements-table > div:last-child { border-bottom:0; }
.requirements-table span { color:var(--text-secondary); }
.program-side-card { position:sticky; top:96px; padding:1.25rem; border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--surface); box-shadow:var(--shadow-sm); }
.side-match { display:grid; padding-bottom:1rem; border-bottom:1px solid var(--border); }
.side-match strong { font-size:2.6rem; letter-spacing:-.05em; }
.side-match span { color:var(--text-secondary); }
.match-checks { list-style:none; margin:1rem 0; padding:0; display:grid; gap:.75rem; }
.match-checks li { display:grid; grid-template-columns:18px 1fr auto; gap:.6rem; align-items:center; font-size:.88rem; }
.match-checks svg { color:var(--success); }
.match-checks strong { color:var(--success); font-size:.8rem; }
.match-checks .is-review svg, .match-checks .is-review strong { color:var(--warning); }
.fine-print { color:var(--text-tertiary); font-size:.76rem; margin:1rem 0 0; }
.source-section dl { display:flex; flex-wrap:wrap; gap:2rem; }
.source-section dl div { display:grid; gap:.2rem; }
.source-section dt { color:var(--text-tertiary); font-size:.75rem; }
.source-section dd { margin:0; font-weight:600; }

/* Auth */
.auth-layout { min-height:100vh; display:grid; grid-template-columns:minmax(360px,.8fr) minmax(520px,1.2fr); }
.auth-panel { padding:clamp(2rem,5vw,4.5rem); }
.auth-panel--brand { background:#1f2b31; color:#f7f9f7; display:flex; flex-direction:column; justify-content:space-between; }
.auth-panel--brand .brand__mark { background:#f7f9f7; color:#1f2b31; }
.auth-panel--brand .brand__text small, .auth-panel--brand .eyebrow { color:#bac5bf; }
.auth-panel__message { max-width:560px; margin-block:auto; padding-block:4rem; }
.auth-panel__message h1 { margin:.4rem 0 1rem; font-size:clamp(2.2rem,4vw,4rem); line-height:1.02; letter-spacing:-.05em; }
.auth-panel__message p { color:#c3cbc6; font-size:1.04rem; }
.auth-panel__footnote { color:#9faba4; font-size:.8rem; }
.auth-benefits { list-style:none; padding:0; margin:0; display:grid; gap:.6rem; color:#c7cfca; }
.auth-benefits li { display:flex; gap:.5rem; align-items:center; }
.auth-panel--form { display:grid; place-items:center; background:var(--bg); }
.auth-card { width:min(100%,470px); }
.auth-card--wide { width:min(100%,580px); }
.auth-card__header { margin-bottom:1.5rem; }
.auth-card__header h2 { margin:0 0 .3rem; font-size:1.8rem; letter-spacing:-.03em; }
.auth-card__header p { margin:0; color:var(--text-secondary); }
.auth-form { display:grid; gap:1rem; }
.auth-card__footer { text-align:center; color:var(--text-secondary); font-size:.9rem; margin-top:1.2rem; }
.auth-card__footer a { color:var(--primary); font-weight:600; }

/* Portal */
.portal-body { background:#f5f6f3; }
.student-shell { min-height:100vh; display:grid; grid-template-columns:var(--sidebar) minmax(0,1fr); }
.student-sidebar { position:fixed; inset:0 auto 0 0; width:var(--sidebar); display:flex; flex-direction:column; padding:1.2rem; border-right:1px solid var(--border); background:#fbfcfa; z-index:50; }
.student-sidebar__brand { padding:.15rem .3rem 1.4rem; }
.student-nav { display:grid; gap:.25rem; }
.student-nav__label { margin:.5rem .65rem .4rem; color:var(--text-tertiary); font-size:.68rem; letter-spacing:.09em; font-weight:700; text-transform:uppercase; }
.student-nav a { min-height:42px; display:flex; align-items:center; gap:.7rem; padding:.65rem .72rem; border-radius:var(--radius-sm); color:var(--text-secondary); font-size:.9rem; font-weight:500; }
.student-nav a:hover { background:var(--surface-subtle); color:var(--text); }
.student-nav a.is-active { background:var(--primary-soft); color:var(--primary); font-weight:600; }
.student-nav a svg { width:1rem; }
.student-sidebar__support { margin-top:auto; padding:1rem; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); }
.student-sidebar__support strong { display:block; font-size:.86rem; }
.student-sidebar__support a { display:inline-block; margin-top:.65rem; color:var(--primary); font-size:.82rem; font-weight:600; }
.student-content { grid-column:2; min-width:0; }
.student-topbar { min-height:78px; padding:1rem 2rem; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; background:rgba(245,246,243,.94); border-bottom:1px solid var(--border); position:sticky; top:0; z-index:40; backdrop-filter:blur(12px); }
.student-topbar__context { margin:0 0 .15rem; color:var(--text-tertiary); font-size:.75rem; }
.student-topbar__title { margin:0; font-size:1.22rem; letter-spacing:-.02em; }
.student-topbar__actions { display:flex; gap:.55rem; align-items:center; }
.notification-dot { position:absolute; width:7px; height:7px; border:2px solid var(--bg); background:var(--danger); border-radius:50%; transform:translate(10px,-10px); }
.account-menu { position:relative; }
.account-trigger { display:flex; align-items:center; gap:.65rem; border:0; background:transparent; cursor:pointer; border-radius:var(--radius-sm); padding:.25rem; }
.avatar { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:#dce8e4; color:var(--primary); font-size:.72rem; font-weight:700; }
.avatar--lg { width:44px; height:44px; }
.account-trigger__copy { display:grid; text-align:left; line-height:1.2; }
.account-trigger__copy strong { font-size:.82rem; }
.account-trigger__copy small { color:var(--text-tertiary); font-size:.7rem; margin-top:.15rem; }
.ui-dropdown { position:absolute; right:0; top:calc(100% + .5rem); min-width:210px; padding:.45rem; border:1px solid var(--border); background:var(--surface); border-radius:var(--radius-md); box-shadow:var(--shadow-md); z-index:80; }
.ui-dropdown a { display:block; padding:.6rem .7rem; border-radius:6px; font-size:.87rem; }
.ui-dropdown a:hover { background:var(--surface-subtle); }
.ui-dropdown__separator { height:1px; background:var(--border); margin:.35rem 0; }
.student-main { padding:2rem; max-width:1500px; margin-inline:auto; }
.next-action-panel { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:1.45rem 1.55rem; border:1px solid #cdded8; background:#edf4f1; border-radius:var(--radius-lg); }
.next-action-panel h2 { margin:.15rem 0 .35rem; font-size:1.3rem; }
.next-action-panel p:last-child { margin:0; color:var(--text-secondary); }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:1.5rem; margin-top:1.5rem; }
.dashboard-main-column, .dashboard-side-column { display:grid; gap:1.5rem; align-content:start; }
.dashboard-section, .side-panel, .result-section, .profile-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.25rem; }
.dashboard-section__header, .result-section__header { display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem; margin-bottom:1rem; }
.dashboard-section__header h2, .result-section__header h2, .side-panel h2 { margin:.15rem 0 0; font-size:1.15rem; }
.dashboard-section__header p:not(.eyebrow) { color:var(--text-secondary); margin:.3rem 0 0; }
.assessment-summary { display:grid; grid-template-columns:190px 1fr; gap:2rem; align-items:center; padding-top:.5rem; }
.assessment-summary__score { border-right:1px solid var(--border); }
.assessment-summary__score strong { font-size:3.4rem; letter-spacing:-.06em; }
.assessment-summary__score > span { color:var(--text-tertiary); font-weight:600; }
.assessment-summary__score p { margin:.2rem 0 0; color:var(--success); font-weight:600; }
.assessment-summary__bars { display:grid; gap:.7rem; }
.score-row { display:grid; grid-template-columns:110px 1fr 32px; gap:.8rem; align-items:center; font-size:.82rem; }
.progress-track { height:7px; border-radius:999px; background:#e5e8e5; overflow:hidden; }
.progress-track > span { display:block; height:100%; border-radius:inherit; background:var(--primary); }
.progress-track--warning > span { background:var(--warning); }
.student-match-list { border-top:1px solid var(--border); }
.student-match-row { display:grid; grid-template-columns:minmax(0,1fr) 110px auto; gap:1rem; align-items:center; padding:1rem 0; border-bottom:1px solid var(--border); }
.student-match-row:last-child { border-bottom:0; }
.student-match-row p { margin:0 0 .2rem; color:var(--text-secondary); font-size:.78rem; font-weight:600; }
.student-match-row h3 { margin:0; font-size:.96rem; }
.student-match-row > div > span { color:var(--text-tertiary); font-size:.77rem; }
.student-match-row__score { display:grid; text-align:right; }
.student-match-row__score strong { font-size:1.1rem; }
.student-match-row__score span { color:var(--text-tertiary); font-size:.7rem; }
.timeline { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(5,1fr); }
.timeline li { position:relative; display:flex; gap:.55rem; align-items:flex-start; padding-right:1rem; }
.timeline li::before { content:''; position:absolute; top:7px; left:8px; right:-8px; height:1px; background:var(--border-strong); }
.timeline li:last-child::before { display:none; }
.timeline li > span { width:15px; height:15px; border:2px solid var(--border-strong); background:var(--surface); border-radius:50%; z-index:1; flex:none; }
.timeline li.is-complete > span { background:var(--success); border-color:var(--success); }
.timeline li.is-current > span { background:#fff; border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-soft); }
.timeline strong, .timeline small { display:block; }
.timeline strong { font-size:.76rem; }
.timeline small { color:var(--text-tertiary); font-size:.68rem; margin-top:.15rem; }
.side-panel__header { display:flex; justify-content:space-between; align-items:center; margin-bottom:.65rem; }
.side-panel__header h2 { margin:0; }
.side-panel > p:not(.eyebrow) { color:var(--text-secondary); font-size:.85rem; }
.counselor-card { display:flex; align-items:center; gap:.75rem; margin:1rem 0; }
.counselor-card div { display:grid; }
.counselor-card small { color:var(--text-secondary); }
.mini-facts { margin:0 0 1rem; }
.mini-facts div { display:flex; justify-content:space-between; gap:1rem; padding:.6rem 0; border-top:1px solid var(--border); font-size:.82rem; }
.mini-facts dt { color:var(--text-secondary); }
.mini-facts dd { margin:0; font-weight:600; }
.simple-list, .check-list { list-style:none; padding:0; margin:1rem 0 0; display:grid; }
.simple-list li { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.7rem 0; border-top:1px solid var(--border); font-size:.84rem; }
.check-list { gap:.65rem; color:var(--text-secondary); }
.check-list li { display:flex; gap:.5rem; align-items:flex-start; }
.check-list svg { color:var(--success); margin-top:2px; }
.mobile-bottom-nav { display:none; }

/* Assessment */
.assessment-page { max-width:1000px; }
.assessment-header { display:flex; justify-content:space-between; gap:2rem; align-items:end; }
.assessment-header h2 { margin:.2rem 0 .5rem; font-size:1.7rem; }
.assessment-header > div:first-child p:last-child { color:var(--text-secondary); max-width:680px; }
.assessment-progress-label { min-width:130px; display:flex; justify-content:space-between; color:var(--text-secondary); font-size:.82rem; }
.assessment-progress-track { height:4px; background:#dfe4e0; border-radius:999px; overflow:hidden; margin:1rem 0 1.3rem; }
.assessment-progress-track span { display:block; height:100%; background:var(--primary); transition:width .2s ease; }
.assessment-stepper { list-style:none; padding:0; margin:0 0 1.25rem; display:grid; grid-template-columns:repeat(6,1fr); gap:.4rem; }
.assessment-stepper li { display:flex; align-items:center; gap:.45rem; color:var(--text-tertiary); font-size:.72rem; }
.assessment-stepper li > span { width:24px; height:24px; display:grid; place-items:center; border:1px solid var(--border-strong); border-radius:50%; background:var(--surface); font-weight:600; }
.assessment-stepper li.is-current { color:var(--primary); font-weight:600; }
.assessment-stepper li.is-current > span { background:var(--primary); color:#fff; border-color:var(--primary); }
.assessment-stepper li.is-complete > span { background:var(--primary-soft); color:var(--primary); border-color:#bfd5ce; }
.assessment-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.5rem; }
.form-section-heading { margin-bottom:1.3rem; }
.form-section-heading h2, .form-section-heading h3 { margin:0 0 .3rem; font-size:1.25rem; }
.form-section-heading p { margin:0; color:var(--text-secondary); }
.assessment-card section { display:grid; gap:1.2rem; }
.assessment-actions { display:flex; justify-content:space-between; gap:1rem; margin-top:1.5rem; padding-top:1.2rem; border-top:1px solid var(--border); }
.review-list { border:1px solid var(--border); border-radius:var(--radius-md); overflow:hidden; }
.review-list > div { display:grid; grid-template-columns:150px 1fr auto; gap:1rem; align-items:center; padding:.9rem 1rem; border-bottom:1px solid var(--border); }
.review-list > div:last-child { border-bottom:0; }
.review-list span { color:var(--text-secondary); }
.review-list button { border:0; background:transparent; color:var(--primary); font-weight:600; cursor:pointer; }

/* Results */
.result-hero { display:flex; justify-content:space-between; gap:2rem; align-items:center; padding:1.7rem; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); margin-bottom:1rem; }
.result-hero h2 { margin:.2rem 0 .5rem; font-size:2rem; }
.result-hero p:last-child { margin:0; color:var(--text-secondary); max-width:700px; }
.result-score { text-align:right; min-width:130px; }
.result-score strong { font-size:3.4rem; letter-spacing:-.07em; }
.result-score > span { color:var(--text-tertiary); }
.result-score small { display:block; color:var(--text-secondary); }
.results-grid { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:1.5rem; margin-top:1rem; }
.results-main, .results-side { display:grid; gap:1.5rem; align-content:start; }
.requirements-table--result .state-pass { color:var(--success); }
.requirements-table--result .state-review { color:var(--warning); }
.student-match-list--results .student-match-row { padding:1rem 0; }

/* Profile */
.profile-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:1.5rem; }
.profile-nav { display:grid; align-content:start; gap:.25rem; }
.profile-nav button { text-align:left; border:0; background:transparent; color:var(--text-secondary); padding:.7rem .8rem; border-radius:var(--radius-sm); cursor:pointer; }
.profile-nav button.is-active { background:var(--primary-soft); color:var(--primary); font-weight:600; }
.profile-card { min-height:420px; }
.profile-actions { display:flex; justify-content:flex-end; gap:.6rem; margin-top:1.5rem; padding-top:1.2rem; border-top:1px solid var(--border); }
.record-card { display:flex; justify-content:space-between; gap:1rem; align-items:center; padding:1rem; border:1px solid var(--border); border-radius:var(--radius-md); }
.record-card > div { display:grid; }
.record-card span { color:var(--text-secondary); font-size:.86rem; }

/* Tables / empty / design system */
.responsive-table-wrap { overflow:auto; border:1px solid var(--border); border-radius:var(--radius-md); }
.ui-table { width:100%; border-collapse:collapse; background:var(--surface); min-width:700px; }
.ui-table th { text-align:left; padding:.75rem 1rem; color:var(--text-secondary); font-size:.75rem; background:var(--surface-subtle); border-bottom:1px solid var(--border); }
.ui-table td { padding:1rem; border-bottom:1px solid var(--border); font-size:.88rem; }
.ui-table tbody tr:last-child td { border-bottom:0; }
.ui-table td strong, .ui-table td small { display:block; }
.ui-table td small { color:var(--text-secondary); margin-top:.2rem; }
.empty-state { text-align:center; display:grid; justify-items:center; padding:3rem 1rem; }
.empty-state__icon { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; background:var(--surface-subtle); color:var(--text-secondary); }
.empty-state h2, .empty-state h3 { margin:.9rem 0 .35rem; }
.empty-state p { max-width:500px; margin:0 0 1rem; color:var(--text-secondary); }
.design-system-page { padding-bottom:5rem; }
.ds-section { padding:2rem 0; border-top:1px solid var(--border); }
.ds-section h2 { margin:0 0 1rem; }
.component-row { display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; margin:1rem 0; position:relative; }
.ui-tabs { display:flex; gap:.25rem; border-bottom:1px solid var(--border); }
.ui-tabs button { border:0; background:transparent; padding:.7rem 1rem; border-bottom:2px solid transparent; cursor:pointer; color:var(--text-secondary); }
.ui-tabs button.is-active { color:var(--primary); border-bottom-color:var(--primary); font-weight:600; }
.tab-panel { padding:1rem 0; }
.ui-accordion { border:1px solid var(--border); border-radius:var(--radius-md); overflow:hidden; }
.ui-accordion > button { width:100%; display:flex; align-items:center; justify-content:space-between; border:0; background:var(--surface); padding:1rem; cursor:pointer; font-weight:600; }
.ui-accordion > div { padding:0 1rem 1rem; color:var(--text-secondary); }
.ui-popover { position:absolute; top:calc(100% + .4rem); left:160px; z-index:20; width:240px; padding:.8rem; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); box-shadow:var(--shadow-md); }
.ui-dialog-backdrop { position:fixed; inset:0; z-index:100; background:rgba(20,28,33,.46); display:grid; place-items:center; padding:1rem; }
.ui-dialog { width:min(100%,480px); background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.2rem; box-shadow:0 24px 80px rgba(20,28,33,.2); }
.ui-dialog__header { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.ui-dialog__header h3 { margin:0; }
.ui-dialog p { color:var(--text-secondary); }
.ui-dialog__actions { display:flex; justify-content:flex-end; gap:.6rem; margin-top:1.2rem; }
.skeleton-card { display:grid; gap:.7rem; padding:1rem; border:1px solid var(--border); border-radius:var(--radius-md); margin-top:1rem; }
.skeleton-card span { display:block; height:14px; background:#e8ebe8; border-radius:5px; animation:pulse 1.3s ease-in-out infinite alternate; }
.skeleton-card span:nth-child(1){width:40%;height:18px}.skeleton-card span:nth-child(2){width:92%}.skeleton-card span:nth-child(3){width:70%}
@keyframes pulse { to { opacity:.52; } }
.error-page { min-height:65vh; display:grid; place-items:center; text-align:center; }
.error-page h1 { margin:.2rem 0 .7rem; font-size:clamp(2.2rem,4vw,4rem); letter-spacing:-.05em; }
.error-page p { color:var(--text-secondary); }
.error-page__inner > div { display:flex; justify-content:center; gap:.7rem; margin-top:1.2rem; }

/* Responsive */
@media (max-width: 1080px) {
  .desktop-nav { display:none; }
  .hero-grid { grid-template-columns:1fr .75fr; gap:2rem; }
  .program-row { grid-template-columns:1fr auto; }
  .program-row__facts { grid-column:1 / -1; grid-row:2; }
  .program-row__actions { grid-column:2; grid-row:1; }
  .student-shell { grid-template-columns:84px minmax(0,1fr); }
  .student-sidebar { width:84px; align-items:center; padding:1rem .7rem; }
  .student-sidebar .brand__text, .student-nav span, .student-nav__label, .student-sidebar__support { display:none; }
  .student-sidebar__brand { padding:.1rem 0 1.2rem; }
  .student-nav a { justify-content:center; width:48px; height:44px; }
  .student-nav a svg { width:1.1rem; height:1.1rem; }
}

@media (max-width: 820px) {
  .ui-container { width:min(calc(100% - 1.3rem),var(--container)); }
  .desktop-actions { display:none; }
  .mobile-menu-button { display:grid; }
  .mobile-menu { display:block; }
  .hero-section { padding-top:3.3rem; }
  .hero-grid { grid-template-columns:1fr; }
  .profile-preview { max-width:620px; }
  .section-heading--split, .evidence-grid { grid-template-columns:1fr; gap:1.5rem; }
  .site-footer__grid { grid-template-columns:1.4fr 1fr 1fr; }
  .site-footer__grid > div:last-child { grid-column:2 / -1; }
  .explorer-layout { grid-template-columns:1fr; }
  .filter-panel { position:static; grid-template-columns:repeat(2,1fr); }
  .program-detail-grid { grid-template-columns:1fr; }
  .program-side-card { position:static; }
  .auth-layout { grid-template-columns:1fr; }
  .auth-panel--brand { min-height:auto; }
  .auth-panel__message { padding:3rem 0 1rem; }
  .student-shell { display:block; }
  .student-sidebar { display:none; }
  .student-content { display:block; }
  .student-topbar { padding:.85rem 1rem; }
  .student-topbar__context, .account-trigger__copy { display:none; }
  .student-main { padding:1rem 1rem 6.5rem; }
  .dashboard-grid, .results-grid { grid-template-columns:1fr; }
  .dashboard-side-column { grid-template-columns:repeat(2,1fr); }
  .mobile-bottom-nav { display:grid; grid-template-columns:repeat(5,1fr); position:fixed; bottom:0; left:0; right:0; z-index:80; min-height:68px; padding-bottom:env(safe-area-inset-bottom); background:rgba(255,255,255,.96); backdrop-filter:blur(14px); border-top:1px solid var(--border); box-shadow:0 -8px 24px rgba(25,35,45,.05); }
  .mobile-bottom-nav a { display:grid; place-items:center; align-content:center; gap:.25rem; color:var(--text-tertiary); font-size:.66rem; }
  .mobile-bottom-nav a svg { width:1.05rem; }
  .mobile-bottom-nav a.is-active { color:var(--primary); font-weight:600; }
  .assessment-stepper small { display:none; }
  .assessment-stepper li { justify-content:center; }
  .profile-layout { grid-template-columns:1fr; }
  .profile-nav { display:flex; overflow:auto; padding-bottom:.25rem; }
  .profile-nav button { white-space:nowrap; }
}

@media (max-width: 620px) {
  .hero-copy h1 { font-size:clamp(2.55rem,13vw,4rem); }
  .hero-actions, .hero-actions .ui-button { width:100%; }
  .hero-assurances { display:grid; gap:.55rem; }
  .profile-preview__footer { display:grid; }
  .steps-list article { grid-template-columns:50px 1fr; }
  .site-footer__grid { grid-template-columns:1fr 1fr; gap:2rem 1.2rem; }
  .site-footer__grid > div:first-child { grid-column:1 / -1; }
  .site-footer__grid > div:last-child { grid-column:auto; }
  .site-footer__bottom { display:grid; }
  .cta-panel { display:grid; gap:1.5rem; }
  .program-row { grid-template-columns:1fr; gap:1rem; }
  .program-row__facts { grid-column:auto; grid-row:auto; grid-template-columns:1fr 1fr; }
  .program-row__actions { grid-column:auto; grid-row:auto; justify-content:flex-start; }
  .filter-panel { grid-template-columns:1fr; }
  .results-toolbar { align-items:stretch; flex-direction:column; }
  .results-toolbar select { width:100%; }
  .fact-strip { grid-template-columns:1fr; }
  .fact-strip div, .fact-strip div:not(:first-child) { padding:1rem 0; border-right:0; border-bottom:1px solid var(--border); }
  .fact-strip div:last-child { border-bottom:0; }
  .requirements-table > div { grid-template-columns:1fr; gap:.2rem; }
  .auth-panel { padding:1.4rem; }
  .auth-panel--brand { min-height:330px; }
  .form-grid--2 { grid-template-columns:1fr; }
  .next-action-panel { display:grid; gap:1rem; }
  .dashboard-side-column { grid-template-columns:1fr; }
  .assessment-summary { grid-template-columns:1fr; gap:1rem; }
  .assessment-summary__score { border-right:0; border-bottom:1px solid var(--border); padding-bottom:1rem; }
  .student-match-row { grid-template-columns:1fr auto; }
  .student-match-row__score { grid-column:2; grid-row:1; }
  .student-match-row > .icon-button, .student-match-row > .ui-button, .student-match-row > .program-row__actions { grid-column:1 / -1; }
  .timeline { grid-template-columns:1fr; gap:.8rem; }
  .timeline li::before { left:7px; top:15px; bottom:-12px; width:1px; height:auto; right:auto; }
  .assessment-header { display:grid; }
  .assessment-progress-label { min-width:0; }
  .assessment-stepper { gap:.15rem; }
  .review-list > div { grid-template-columns:1fr auto; }
  .review-list > div > span { grid-column:1 / -1; }
  .result-hero { display:grid; }
  .result-score { text-align:left; }
  .profile-actions { flex-direction:column-reverse; }
  .profile-actions .ui-button { width:100%; }
  .account-trigger > svg { display:none; }
}

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

/* Backend-connected interface additions */
.ui-alert--danger { background:#fbefef; border-color:#e9c5c5; color:var(--danger); }
.ui-alert--success { background:var(--success-soft); border-color:#c8ddcf; }
.ui-alert ul { margin:.4rem 0 0 1.1rem; padding:0; }
.dropdown-form-button { width:100%; border:0; background:transparent; color:inherit; text-align:left; padding:.65rem .8rem; font:inherit; cursor:pointer; border-radius:8px; }
.dropdown-form-button:hover, .dropdown-form-button:focus-visible { background:var(--surface-subtle); outline:none; }
.profile-progress { display:grid; grid-template-columns:minmax(180px,.35fr) 1fr; gap:1.5rem; align-items:center; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.1rem 1.25rem; margin-bottom:1.25rem; }
.profile-progress h2 { margin:.15rem 0 0; }
.profile-meter { display:flex; align-items:baseline; gap:.35rem; margin:.8rem 0; }
.profile-meter strong { font-size:2.3rem; letter-spacing:-.05em; }
.readiness-summary { display:grid; grid-template-columns:120px 1fr; gap:1.5rem; align-items:center; }
.readiness-summary .readiness-score { padding:.8rem 0; }
.muted-copy { color:var(--text-secondary); }
.plain-list { list-style:none; margin:0; padding:0; display:grid; gap:1rem; }
.plain-list li { border-bottom:1px solid var(--border); padding-bottom:1rem; }
.plain-list li:last-child { border-bottom:0; padding-bottom:0; }
.plain-list p { margin:.3rem 0 0; color:var(--text-secondary); }
.admin-stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-bottom:1.25rem; }
.admin-stat-grid article { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.15rem; box-shadow:var(--shadow-sm); }
.admin-stat-grid span,.admin-stat-grid small { display:block; color:var(--text-secondary); }
.admin-stat-grid strong { display:block; font-size:2.1rem; letter-spacing:-.05em; margin:.45rem 0; }
.toolbar-search,.inline-status-form { display:flex; gap:.55rem; align-items:center; flex-wrap:wrap; }
.toolbar-search input { min-width:min(320px,70vw); }
.inline-status-form select { min-width:170px; }
.ui-pagination a { min-width:38px; height:38px; display:inline-grid; place-items:center; border:1px solid var(--border); border-radius:9px; text-decoration:none; color:var(--text); background:var(--surface); }
.ui-pagination a[aria-current="page"] { background:var(--primary); color:white; border-color:var(--primary); }
.match-checks .ui-badge { margin-left:auto; }
code { background:var(--surface-subtle); border:1px solid var(--border); padding:.12rem .35rem; border-radius:6px; font-size:.92em; }
@media (max-width:900px){.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.profile-progress,.readiness-summary{grid-template-columns:1fr;}}
@media (max-width:560px){.admin-stat-grid{grid-template-columns:1fr;}.toolbar-search{align-items:stretch}.toolbar-search input,.toolbar-search .ui-button{width:100%;min-width:0}.inline-status-form{min-width:220px}}
.message-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:1rem; min-height:620px; }
.conversation-list { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:.45rem; display:flex; flex-direction:column; gap:.25rem; align-self:start; }
.conversation-list a { padding:.8rem; border-radius:10px; text-decoration:none; color:var(--text); display:grid; gap:.2rem; }
.conversation-list a span { color:var(--text-secondary); font-size:.88rem; }
.conversation-list a:hover,.conversation-list a.is-active { background:var(--surface-subtle); }
.message-panel { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; min-height:560px; display:flex; flex-direction:column; }
.message-stream { flex:1; padding:1.2rem; overflow:auto; display:flex; flex-direction:column; gap:.9rem; }
.message-bubble { max-width:min(680px,86%); background:var(--surface-subtle); border:1px solid var(--border); border-radius:14px; padding:.85rem 1rem; }
.message-bubble.is-own { align-self:flex-end; background:var(--primary-soft); border-color:#c8d8d4; }
.message-bubble > div { display:flex; justify-content:space-between; gap:1rem; margin-bottom:.35rem; }
.message-bubble small { color:var(--text-tertiary); }
.message-bubble p { margin:0; color:var(--text-secondary); }
.message-composer { border-top:1px solid var(--border); padding:1rem; display:flex; gap:.75rem; align-items:flex-end; }
.message-composer textarea { flex:1; min-height:74px; }
@media (max-width:820px){.message-layout{grid-template-columns:1fr}.conversation-list{max-height:220px;overflow:auto}.message-panel{min-height:480px}.message-bubble{max-width:94%}}
.quick-link-stack { display:grid; gap:.75rem; }
.notification-button { position:relative; }
.notification-button > span { position:absolute; top:-5px; right:-5px; min-width:18px; height:18px; padding:0 4px; display:grid; place-items:center; border-radius:999px; background:var(--danger); color:#fff; font-size:.68rem; font-weight:700; border:2px solid var(--surface); }
.notification-list { display:grid; }
.notification-row { display:flex; justify-content:space-between; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--border); color:var(--text); text-decoration:none; }
.notification-row p { margin:.25rem 0 0; color:var(--text-secondary); }
.notification-row small { white-space:nowrap; color:var(--text-tertiary); }
.notification-row.is-unread strong::before { content:''; display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--primary); margin-right:.5rem; vertical-align:middle; }

/* -----------------------------------------------------------
   StudyMatch design upgrade patch
   ----------------------------------------------------------- */
:root {
  --teal-900:#0f3f3a;
  --teal-800:#134e4a;
  --teal-700:#195d58;
  --teal-050:#f4f8f7;
  --gold-400:#d8b15c;
  --gold-300:#e5c777;
}
body {
  background:
    radial-gradient(circle at top left, rgba(22,79,74,.035), transparent 26%),
    radial-gradient(circle at bottom right, rgba(216,177,92,.05), transparent 24%),
    var(--background);
}
.display-title,
.display-subtitle {
  font-family:'Playfair Display', Georgia, serif;
}
.display-title {
  font-size:clamp(3.2rem, 6vw, 5.6rem);
  line-height:.95;
  letter-spacing:-.05em;
  margin:.5rem 0 1rem;
}
.display-subtitle {
  font-size:clamp(2.2rem, 4.4vw, 4rem);
  line-height:1.02;
  letter-spacing:-.04em;
  margin:.2rem 0 .85rem;
}
.section-title-sm {
  margin:0;
  font-size:clamp(1.75rem, 3vw, 2.5rem);
  line-height:1.08;
  letter-spacing:-.04em;
}
.eyebrow__line {
  display:inline-block;
  width:48px;
  height:2px;
  background:var(--gold-400);
  margin-right:.55rem;
  vertical-align:middle;
}
.section--tight { padding-block:3rem; }
.site-header {
  position:sticky;
  top:0;
  z-index:40;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  background:rgba(255,255,255,.92);
}
.site-header__inner {
  min-height:86px;
}
.desktop-nav a {
  position:relative;
  color:var(--text-secondary);
}
.desktop-nav a.is-active,
.desktop-nav a:hover { color:var(--text); }
.desktop-nav a.is-active::after,
.desktop-nav a:hover::after {
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:-12px;
  height:2px;
  background:var(--primary);
  border-radius:999px;
}
.brand__text small { max-width:19rem; }
.desktop-actions .icon-button {
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--surface);
}
.desktop-actions .ui-button svg,
.hero-actions .ui-button svg,
.text-link svg,
.profile-preview__footer a svg,
.cta-panel__actions .ui-button svg {
  width:1rem;
  height:1rem;
}
.hero-section--enhanced {
  padding:clamp(3.25rem, 6vw, 6rem) 0 4.8rem;
}
.hero-grid--showcase {
  grid-template-columns:minmax(0,1.02fr) minmax(430px,.98fr);
  align-items:start;
}
.hero-stats-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.9rem;
  margin-top:2rem;
}
.stat-card--compact {
  background:rgba(255,255,255,.72);
  border:1px solid var(--border);
  border-radius:18px;
  padding:1rem .95rem;
  box-shadow:var(--shadow-sm);
}
.stat-card--compact strong {
  display:block;
  font-size:1.45rem;
  letter-spacing:-.03em;
}
.stat-card--compact span {
  display:block;
  margin-top:.25rem;
  color:var(--text-secondary);
  font-size:.85rem;
}
.hero-showcase {
  position:relative;
  min-height:720px;
}
.hero-showcase__note {
  position:absolute;
  z-index:4;
  background:rgba(255,255,255,.8);
  border:1px solid rgba(19,78,74,.12);
  color:var(--primary);
  box-shadow:var(--shadow-sm);
  border-radius:999px;
  padding:.55rem .9rem;
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.01em;
}
.hero-showcase__note--top { top:4px; right:50px; }
.hero-showcase__note--right { right:-6px; bottom:22px; }
.hero-photo-stack {
  position:relative;
  padding-top:2rem;
  padding-right:1.2rem;
  min-height:420px;
}
.photo-card {
  position:absolute;
  overflow:hidden;
  border-radius:30px;
  background:#dde7e4;
  box-shadow:0 24px 60px rgba(24,34,33,.16);
}
.photo-card img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.photo-card--main {
  position:relative;
  width:88%;
  height:420px;
}
.photo-card--accent {
  width:185px;
  height:240px;
}
.photo-card--accent-one {
  right:0;
  top:48px;
}
.photo-card--accent-two {
  left:40px;
  bottom:-26px;
}
.photo-card__caption {
  position:absolute;
  left:18px;
  right:18px;
  bottom:18px;
  border-radius:18px;
  padding:1rem 1.05rem;
  background:linear-gradient(180deg, rgba(13,20,19,.18), rgba(13,20,19,.58));
  color:#fff;
}
.photo-card__caption strong { display:block; font-size:1.15rem; }
.photo-card__caption span { font-size:.88rem; opacity:.92; }
.floating-info-card {
  position:absolute;
  z-index:5;
  display:flex;
  align-items:center;
  gap:.8rem;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(19,78,74,.12);
  box-shadow:var(--shadow-md);
  border-radius:22px;
  padding:.9rem 1rem;
  min-width:245px;
}
.floating-info-card p { margin:0; color:var(--text-secondary); font-size:.82rem; }
.floating-info-card strong { display:block; margin-top:.18rem; }
.floating-info-card__icon {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:var(--teal-050);
  color:var(--primary);
}
.floating-info-card--tuition { top:262px; left:-24px; }
.floating-info-card--ielts { top:334px; right:12px; }
.profile-preview--floating {
  position:absolute;
  right:22px;
  bottom:66px;
  width:min(100%, 440px);
  background:rgba(255,255,255,.97);
}
.readiness-ring {
  display:grid;
  grid-template-columns:140px 1fr;
  align-items:center;
  gap:1.1rem;
  padding:1.2rem 0 0;
}
.readiness-ring__circle {
  width:126px;
  height:126px;
  border-radius:50%;
  display:grid;
  align-content:center;
  justify-items:center;
  background:conic-gradient(var(--primary) 0 78%, #e8efed 78% 100%);
  padding:10px;
}
.readiness-ring__circle::before {
  content:'';
  width:100%;
  height:100%;
  border-radius:50%;
  background:var(--surface);
  grid-area:1/1;
}
.readiness-ring__circle strong,
.readiness-ring__circle span {
  grid-area:1/1;
  position:relative;
  z-index:1;
}
.readiness-ring__circle strong { font-size:2.45rem; letter-spacing:-.05em; line-height:1; }
.readiness-ring__circle span { margin-top:2.35rem; color:var(--text-tertiary); font-weight:700; }
.muted-label {
  margin:0 0 .65rem;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--text-tertiary);
}
.mini-check-list {
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:.52rem;
}
.mini-check-list li {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  color:var(--text-secondary);
  font-size:.88rem;
}
.profile-preview__footer a {
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  color:var(--primary);
  font-weight:700;
}
.destination-grid,
.university-grid,
.program-cards-grid,
.resource-card-grid {
  display:grid;
  gap:1.25rem;
}
.destination-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.university-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.program-cards-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.resource-card-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.destination-card,
.university-card,
.program-spotlight-card,
.resource-card,
.process-card,
.fact-card,
.contact-panel,
.contact-side-card,
.programs-hero__card,
.country-hero__image,
.results-toolbar--card {
  background:rgba(255,255,255,.92);
  border:1px solid var(--border);
  box-shadow:var(--shadow-sm);
}
.destination-card,
.university-card,
.program-spotlight-card,
.resource-card,
.process-card,
.fact-card,
.contact-panel,
.contact-side-card,
.programs-hero__card,
.country-hero__image,
.results-toolbar--card {
  border-radius:24px;
}
.destination-card__media,
.university-card__media {
  display:block;
  overflow:hidden;
  border-radius:24px 24px 0 0;
  position:relative;
}
.destination-card__media img,
.university-card__media img,
.country-hero__image img {
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.destination-card__media img { height:230px; }
.university-card__media img { height:260px; }
.destination-card__body,
.university-card__body,
.program-spotlight-card,
.resource-card,
.contact-panel,
.contact-side-card,
.programs-hero__card { padding:1.1rem 1.15rem; }
.destination-card__title-row {
  display:flex;
  gap:.75rem;
  align-items:center;
}
.destination-card__flag {
  width:48px;
  height:48px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:var(--teal-050);
  font-size:1.35rem;
}
.destination-card h3,
.destination-card h2,
.university-card h3,
.university-card h2,
.program-spotlight-card h2,
.program-spotlight-card h3,
.resource-card h2,
.process-card h3,
.fact-card h3,
.contact-panel h2,
.contact-side-card h3 {
  margin:.2rem 0 .45rem;
  letter-spacing:-.02em;
}
.destination-card p,
.university-card p,
.program-spotlight-card p,
.resource-card p,
.process-card p,
.fact-card p,
.contact-side-card p,
.programs-hero__card p,
.results-toolbar small {
  color:var(--text-secondary);
}
.university-card__media { overflow:hidden; }
.university-card__badge {
  position:absolute;
  top:14px;
  left:14px;
  background:rgba(255,255,255,.92);
  color:var(--primary);
  border-radius:999px;
  padding:.42rem .7rem;
  font-size:.78rem;
  font-weight:700;
}
.university-card__meta {
  font-size:.9rem;
  color:var(--text-tertiary);
}
.split-feature {
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:2rem;
  align-items:start;
}
.split-feature--centered { align-items:center; }
.process-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}
.process-card {
  position:relative;
  padding:1.2rem;
}
.process-card span {
  position:absolute;
  top:1rem;
  right:1rem;
  font-size:1.15rem;
  font-weight:800;
  color:rgba(19,78,74,.35);
}
.process-card > svg,
.resource-card > svg {
  width:1.5rem;
  height:1.5rem;
  color:var(--primary);
}
.program-spotlight-card {
  display:grid;
  gap:.85rem;
}
.program-spotlight-card__top,
.program-spotlight-card__footer {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:center;
}
.program-spotlight-card__top p {
  margin:0;
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--text-tertiary);
  font-weight:700;
}
.program-spotlight-card ul,
.info-list,
.feature-checks,
.footer-mini-stats {
  list-style:none;
  margin:0;
  padding:0;
}
.program-spotlight-card ul,
.info-list {
  display:grid;
  gap:.55rem;
}
.program-spotlight-card li,
.info-list li,
.feature-checks div,
.footer-mini-stats span {
  display:flex;
  align-items:flex-start;
  gap:.5rem;
  color:var(--text-secondary);
}
.program-spotlight-card li svg,
.info-list li svg,
.feature-checks svg,
.resource-card svg,
.process-card svg {
  margin-top:.1rem;
  flex:0 0 auto;
}
.program-spotlight-card__footer span {
  font-weight:700;
}
.country-hero,
.programs-hero {
  padding:2rem 0 1.5rem;
}
.country-hero__grid,
.programs-hero__grid,
.contact-grid {
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:2rem;
  align-items:start;
}
.country-hero__image {
  overflow:hidden;
  min-height:430px;
}
.country-hero__image img { height:100%; }
.country-facts-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.fact-card { padding:1.1rem 1.15rem; }
.feature-checks {
  display:grid;
  gap:.8rem;
  padding:1.25rem;
  background:rgba(255,255,255,.86);
  border:1px solid var(--border);
  border-radius:24px;
}
.feature-checks svg {
  color:var(--success);
}
.programs-hero__card {
  min-height:220px;
  display:grid;
  align-content:center;
}
.programs-hero__card strong {
  font-size:3rem;
  letter-spacing:-.06em;
}
.programs-hero__card span {
  color:var(--text-secondary);
  font-weight:600;
}
.explorer-layout--enhanced {
  align-items:start;
}
.results-toolbar--card {
  padding:1rem 1.2rem;
  margin-bottom:1rem;
}
.results-toolbar--card p { margin:.1rem 0 .35rem; }
.results-toolbar__meta {
  padding:.45rem .8rem;
  border-radius:999px;
  background:var(--surface-subtle);
  color:var(--primary);
  font-weight:700;
  font-size:.84rem;
}
.resource-card {
  display:grid;
  gap:.75rem;
}
.faq-section { padding:2rem 0 5rem; }
.faq-list {
  display:grid;
  gap:.9rem;
}
.faq-item {
  border:1px solid var(--border);
  border-radius:20px;
  background:rgba(255,255,255,.92);
  overflow:hidden;
}
.faq-item__trigger {
  width:100%;
  border:0;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1rem 1.15rem;
  font:inherit;
  font-weight:700;
  cursor:pointer;
  text-align:left;
}
.faq-item__content { padding:0 1.15rem 1rem; color:var(--text-secondary); }
.contact-grid { padding-bottom:4rem; }
.contact-panel,
.contact-side-card { padding:1.3rem 1.35rem; }
.contact-side-card {
  position:sticky;
  top:108px;
}
.page-intro--rich {
  padding-top:3rem;
  padding-bottom:2rem;
}
.auth-divider {
  display:flex;
  align-items:center;
  gap:.75rem;
  margin:1rem 0;
  color:var(--text-tertiary);
  font-size:.86rem;
}
.auth-divider::before,
.auth-divider::after {
  content:'';
  flex:1;
  height:1px;
  background:var(--border);
}
.social-auth-button {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.75rem;
  min-height:48px;
  border:1px solid var(--border-strong);
  background:var(--surface);
  border-radius:14px;
  font-weight:700;
  text-decoration:none;
  color:var(--text);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.social-auth-button:hover {
  transform:translateY(-1px);
  box-shadow:var(--shadow-sm);
  border-color:#c4d5d0;
}
.social-auth-button__mark {
  width:28px;
  height:28px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:var(--teal-050);
  color:var(--primary);
  font-weight:800;
}
.auth-helper-text {
  margin-top:1rem;
  color:var(--text-secondary);
  font-size:.88rem;
}
.footer-mini-stats {
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin-top:1rem;
}
.footer-mini-stats span {
  align-items:center;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.1);
  color:#dce7e3;
  padding:.45rem .75rem;
  border-radius:999px;
}
.country-hero--university .country-hero__image { min-height:470px; }
.info-list--plain li { color:var(--text); }
.destination-grid--page .destination-card__media img,
.university-grid--page .university-card__media img { height:280px; }
.process-grid--page { padding-bottom:5rem; }
.destination-card a,
.university-card a,
.program-spotlight-card a { color:inherit; text-decoration:none; }
.destination-card a:hover,
.university-card a:hover,
.program-spotlight-card a:hover { color:var(--primary); }
.cta-panel--rich {
  background:linear-gradient(135deg, rgba(19,78,74,.04), rgba(216,177,92,.08));
}
.cta-panel__actions {
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
}
@media (max-width:1180px) {
  .hero-grid--showcase,
  .split-feature,
  .country-hero__grid,
  .programs-hero__grid,
  .contact-grid {
    grid-template-columns:1fr;
  }
  .hero-showcase {
    min-height:690px;
  }
  .program-cards-grid,
  .destination-grid,
  .process-grid,
  .resource-card-grid,
  .country-facts-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:900px) {
  .hero-stats-grid,
  .destination-grid,
  .university-grid,
  .program-cards-grid,
  .process-grid,
  .resource-card-grid,
  .country-facts-grid {
    grid-template-columns:1fr;
  }
  .hero-showcase {
    min-height:760px;
  }
  .photo-card--main {
    width:100%;
  }
  .floating-info-card--tuition { left:0; }
  .profile-preview--floating { right:0; left:0; width:auto; }
  .section-heading--aligned-center {
    grid-template-columns:1fr;
    align-items:start;
  }
  .site-footer__grid { grid-template-columns:1fr 1fr; }
  .programs-hero__card strong { font-size:2.5rem; }
}
@media (max-width:700px) {
  .hero-photo-stack {
    padding-right:0;
  }
  .photo-card--main {
    height:320px;
  }
  .photo-card--accent {
    width:134px;
    height:168px;
  }
  .photo-card--accent-one {
    right:0;
    top:28px;
  }
  .photo-card--accent-two {
    left:18px;
    bottom:10px;
  }
  .floating-info-card,
  .hero-showcase__note {
    position:relative;
    top:auto;
    right:auto;
    left:auto;
    bottom:auto;
    margin-top:.85rem;
  }
  .hero-showcase {
    min-height:unset;
  }
  .profile-preview--floating {
    position:relative;
    bottom:auto;
    margin-top:1rem;
  }
  .readiness-ring {
    grid-template-columns:1fr;
  }
  .site-footer__grid,
  .site-footer__bottom,
  .cta-panel,
  .cta-panel__actions,
  .profile-preview__footer,
  .results-toolbar {
    grid-template-columns:1fr;
    flex-direction:column;
    align-items:flex-start;
  }
}
@media (max-width:560px) {
  .display-title { font-size:2.7rem; }
  .display-subtitle { font-size:2rem; }
  .hero-copy h1 { max-width:none; }
  .site-header__inner { min-height:78px; }
  .destination-card__media img,
  .university-card__media img,
  .destination-grid--page .destination-card__media img,
  .university-grid--page .university-card__media img { height:220px; }
}
.text-warning { color:#b66d00; }
.breadcrumbs {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.45rem;
  margin-bottom:1rem;
  color:var(--text-tertiary);
  font-size:.9rem;
}
.breadcrumbs a { color:var(--text-secondary); text-decoration:none; }
.breadcrumbs a:hover { color:var(--primary); }

/* =========================================================
   UI cleanup patch v0.2 — typography, hero balance, ring fix
   ========================================================= */
:root {
  --font-sans: 'Manrope', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
html, body { overflow-x:hidden; }
body {
  font-family:var(--font-sans);
  font-size:15.5px;
  line-height:1.58;
}
.display-title,
.display-subtitle,
.section-title-sm,
.page-intro h1,
.program-hero h1,
.hero-copy h1,
.section-heading h2,
.evidence-grid h2,
.cta-panel h2 {
  font-family:var(--font-sans) !important;
  font-style:normal;
}
.display-title,
.hero-copy h1 {
  max-width:680px;
  font-size:clamp(3rem,4.65vw,4.7rem);
  line-height:.98;
  letter-spacing:-.055em;
  font-weight:800;
}
.display-subtitle {
  max-width:690px;
  font-size:clamp(2rem,3.05vw,3.05rem);
  line-height:1.06;
  letter-spacing:-.045em;
  font-weight:750;
}
.section-title-sm {
  font-size:clamp(1.65rem,2.35vw,2.3rem);
  line-height:1.12;
  font-weight:750;
}
.hero-section--enhanced {
  padding:clamp(2.8rem,5vw,4.7rem) 0 clamp(3rem,5vw,4.3rem);
}
.hero-grid--showcase {
  grid-template-columns:minmax(0,1.06fr) minmax(440px,.94fr);
  gap:clamp(2.25rem,4vw,4.5rem);
  align-items:center;
}
.hero-copy .eyebrow {
  display:flex;
  align-items:center;
  white-space:nowrap;
  font-size:.8rem;
  letter-spacing:.075em;
}
.hero-lead {
  max-width:650px;
  font-size:clamp(1rem,1.2vw,1.08rem);
  line-height:1.68;
}
.hero-actions { margin-top:1.6rem; }
.hero-assurances {
  display:grid;
  grid-template-columns:repeat(4,max-content);
  gap:.75rem 1rem;
  margin-top:1.2rem;
  font-size:.8rem;
  white-space:nowrap;
}
.hero-showcase {
  min-height:590px;
}
.hero-photo-stack {
  min-height:360px;
  padding-top:1.25rem;
}
.photo-card--main {
  width:87%;
  height:350px;
}
.photo-card--accent {
  width:155px;
  height:205px;
}
.photo-card--accent-one { top:38px; }
.photo-card--accent-two { left:28px; bottom:-18px; }
.floating-info-card {
  min-width:220px;
  padding:.8rem .9rem;
  border-radius:18px;
}
.floating-info-card--tuition { top:215px; left:-18px; }
.floating-info-card--ielts { top:286px; right:8px; }
.profile-preview--floating {
  right:16px;
  bottom:42px;
  width:min(100%,420px);
}
.profile-preview {
  padding:1.15rem;
  border-radius:20px;
}
.profile-preview__header { padding-bottom:.75rem; }
.profile-preview__header h2 { font-size:1.05rem; }
.readiness-ring {
  grid-template-columns:118px minmax(0,1fr);
  gap:1rem;
  padding-top:1rem;
}
.readiness-ring__circle {
  position:relative;
  width:112px;
  height:112px;
  padding:0;
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:conic-gradient(var(--primary) 0 86%, #e6ecea 86% 100%);
  isolation:isolate;
}
.readiness-ring__circle::before {
  content:'';
  position:absolute;
  inset:10px;
  width:auto;
  height:auto;
  border-radius:50%;
  background:var(--surface);
  z-index:-1;
}
.readiness-ring__circle strong,
.readiness-ring__circle span {
  position:relative;
  z-index:1;
  grid-area:auto;
  margin:0;
}
.readiness-ring__circle strong {
  font-size:2.05rem;
  line-height:.95;
  letter-spacing:-.055em;
}
.readiness-ring__circle span {
  margin-top:.22rem;
  font-size:.78rem;
  color:var(--text-tertiary);
  font-weight:700;
}
.mini-check-list { gap:.4rem; }
.mini-check-list li { font-size:.8rem; }
.profile-preview__footer { margin-top:.8rem; padding-top:.8rem; }
.hero-showcase__note { font-size:.76rem; }
.hero-showcase__note--right { bottom:4px; }

/* Remove excess visual weight from the former stats-card zone. */
.hero-stats-grid { display:none !important; }

/* Better destination and featured university spacing */
.section--tight { padding-block:3.7rem; }
.section--muted { padding-block:clamp(4rem,6vw,5.7rem); }
.split-feature {
  grid-template-columns:minmax(280px,.62fr) minmax(0,1.38fr);
  gap:clamp(2rem,4vw,4rem);
}
.split-feature > div:first-child { max-width:420px; }
.split-feature .display-subtitle {
  font-size:clamp(2rem,3vw,2.9rem);
  line-height:1.08;
}
.university-grid { gap:1.1rem; }
.university-card__media img { height:230px; }
.university-card__body { padding:1rem 1.05rem 1.1rem; }
.university-card__body p { margin:.35rem 0; font-size:.92rem; }

/* Footer cleanup */
.site-footer__bottom {
  justify-content:flex-start;
}
.site-footer__bottom p { margin:0; }

/* Common page typography cleanup */
.page-intro h1,
.program-hero h1 {
  font-size:clamp(2.15rem,3.8vw,3.7rem);
  font-weight:800;
  line-height:1.04;
}
.section-heading h2 {
  font-size:clamp(1.9rem,2.8vw,2.7rem);
  line-height:1.08;
  font-weight:750;
}

@media (max-width:1180px) {
  .hero-grid--showcase { grid-template-columns:1fr; }
  .hero-copy { max-width:780px; }
  .hero-showcase { max-width:720px; width:100%; margin-inline:auto; min-height:620px; }
  .hero-assurances { grid-template-columns:repeat(4,max-content); }
  .split-feature { grid-template-columns:1fr; }
  .split-feature > div:first-child { max-width:720px; }
}
@media (max-width:780px) {
  .hero-copy .eyebrow { white-space:normal; }
  .hero-assurances { grid-template-columns:repeat(2,max-content); white-space:normal; }
  .display-title,
  .hero-copy h1 { font-size:clamp(2.7rem,11vw,3.8rem); }
  .readiness-ring { grid-template-columns:100px 1fr; }
  .readiness-ring__circle { width:96px; height:96px; }
  .readiness-ring__circle strong { font-size:1.75rem; }
  .profile-preview--floating { width:auto; left:0; right:0; }
  .university-card__media img { height:220px; }
}
@media (max-width:560px) {
  .hero-assurances { grid-template-columns:1fr 1fr; gap:.65rem .75rem; }
  .hero-showcase { min-height:unset; }
  .readiness-ring { grid-template-columns:1fr; }
  .readiness-ring__circle { margin-inline:auto; }
  .profile-preview__header,
  .profile-preview__footer { align-items:flex-start; }
  .display-title,
  .hero-copy h1 { font-size:2.55rem; }
}

/* =========================================================
   UI cleanup patch v0.3 — layout, search, content refinements
   ========================================================= */

/* Search modal */
.site-search-modal {
  position:fixed;
  inset:0;
  z-index:80;
  display:grid;
  place-items:start center;
  padding:110px 1rem 1rem;
}
.site-search-modal__backdrop {
  position:absolute;
  inset:0;
  border:0;
  background:rgba(14,25,24,.48);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.site-search-modal__dialog {
  position:relative;
  z-index:1;
  width:min(720px,100%);
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:24px;
  box-shadow:0 24px 80px rgba(15,35,32,.22);
  padding:1.25rem;
}
.site-search-modal__header {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:flex-start;
  margin-bottom:1rem;
}
.site-search-modal__header h2 {
  margin:.15rem 0 0;
  font-size:1.35rem;
  letter-spacing:-.025em;
}
.site-search-form {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.75rem;
}
.ui-input-wrap--large input {
  min-height:52px;
  font-size:1rem;
}
.site-search-modal__hint {
  margin:.75rem 0 0;
  color:var(--text-tertiary);
  font-size:.86rem;
}
.mobile-header-search { margin-bottom:.75rem; }
.sr-only {
  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;
}

/* Programs page: prevent result grid from forcing horizontal overflow. */
.explorer-layout {
  grid-template-columns:minmax(250px,300px) minmax(0,1fr);
  gap:1.5rem;
}
.explorer-results {
  min-width:0;
  width:100%;
  overflow:hidden;
}
.explorer-results .program-cards-grid {
  width:100%;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.program-spotlight-card {
  min-width:0;
  overflow:hidden;
}
.program-spotlight-card__top,
.program-spotlight-card__footer {
  min-width:0;
  flex-wrap:wrap;
}
.program-spotlight-card__top p,
.program-spotlight-card h2,
.program-spotlight-card h3,
.program-spotlight-card li,
.results-toolbar--card small {
  overflow-wrap:anywhere;
  word-break:normal;
}
.results-toolbar--card {
  min-width:0;
  width:100%;
  overflow:hidden;
}
.results-toolbar--card > div { min-width:0; }
.results-toolbar--card small {
  display:block;
  white-space:normal;
  line-height:1.45;
}
.filter-panel {
  min-width:0;
}
.filter-panel form { min-width:0; }
.filter-panel input,
.filter-panel select { width:100%; min-width:0; }

/* Featured universities: centered introduction + four cards in one row on desktop. */
.featured-universities-section {
  padding-block:clamp(4rem,6vw,5.8rem);
}
.featured-universities-heading {
  width:min(780px,100%);
  margin:0 auto 2.2rem;
  text-align:center;
}
.featured-universities-heading .eyebrow {
  justify-content:center;
}
.featured-universities-heading h2 {
  margin:.3rem auto .8rem;
  max-width:760px;
}
.featured-universities-heading p {
  max-width:690px;
  margin:0 auto .8rem;
  color:var(--text-secondary);
}
.featured-universities-heading .text-link {
  justify-content:center;
}
.university-grid--home-four {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}
.university-card--compact {
  min-width:0;
}
.university-card--compact .university-card__media img {
  height:185px;
}
.university-card--compact .university-card__body {
  padding:.95rem 1rem 1rem;
}
.university-card--compact h3 {
  font-size:1rem;
  line-height:1.35;
}
.university-card--compact .university-card__meta {
  font-size:.82rem;
}
.university-card--compact .university-card__body > p:last-child {
  margin-top:.55rem;
  font-size:.86rem;
  line-height:1.52;
}
.university-card--compact .university-card__badge {
  top:10px;
  left:10px;
  padding:.35rem .58rem;
  font-size:.7rem;
}

/* Country guides: give detail enough width to breathe. */
.page-intro--centered {
  text-align:center;
  max-width:900px;
}
.page-intro--centered .eyebrow {
  justify-content:center;
}
.page-intro--centered h1,
.page-intro--centered > p:last-child {
  margin-left:auto;
  margin-right:auto;
}
.destination-grid--comfortable {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.25rem;
  padding-bottom:4rem;
}
.destination-card--wide {
  display:grid;
  grid-template-columns:minmax(210px,.85fr) minmax(0,1.15fr);
  overflow:hidden;
}
.destination-card--wide .destination-card__media {
  border-radius:24px 0 0 24px;
  min-height:100%;
}
.destination-card--wide .destination-card__media img {
  height:100%;
  min-height:330px;
}
.destination-card--wide .destination-card__body {
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:.9rem;
  padding:1.2rem 1.25rem;
}
.destination-card__flag--image {
  overflow:hidden;
  background:#fff;
  border:1px solid var(--border);
}
.destination-card__flag--image img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.destination-card__summary {
  margin:.2rem 0 0 !important;
}
.destination-facts {
  display:grid;
  gap:.65rem;
}
.destination-facts > div {
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:.55rem;
  align-items:start;
  color:var(--text-secondary);
  font-size:.9rem;
}
.destination-facts svg {
  width:1rem;
  height:1rem;
  margin-top:.18rem;
  color:var(--primary);
}
.destination-card--wide .ui-button {
  align-self:flex-start;
}

/* Resources */
.resource-card-grid--expanded {
  grid-template-columns:repeat(4,minmax(0,1fr));
  padding-bottom:2rem;
}
.section-heading--centered {
  text-align:center;
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
}
.section-heading--centered .eyebrow { justify-content:center; }
.section-heading--centered h2 { margin-left:auto; margin-right:auto; }
.section-heading--centered > p:last-child {
  color:var(--text-secondary);
  max-width:640px;
  margin:.65rem auto 0;
}
.faq-list--centered {
  width:min(850px,100%);
  margin-inline:auto;
}

/* About page */
.about-intro { max-width:930px; }
.about-story-grid {
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:1.25rem;
  align-items:stretch;
}
.about-story-card {
  border:1px solid var(--border);
  background:var(--surface);
  border-radius:24px;
  padding:1.5rem;
  box-shadow:var(--shadow-sm);
}
.about-story-card--primary {
  background:linear-gradient(135deg, rgba(19,78,74,.045), rgba(216,177,92,.07));
}
.about-story-card h2 {
  margin:.35rem 0 .75rem;
  font-size:clamp(1.55rem,2.2vw,2.15rem);
  line-height:1.12;
  letter-spacing:-.035em;
}
.about-story-card p { color:var(--text-secondary); }
.about-list {
  list-style:none;
  margin:1rem 0 0;
  padding:0;
  display:grid;
  gap:.8rem;
}
.about-list li {
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:.65rem;
  align-items:start;
}
.about-list svg {
  width:1.05rem;
  height:1.05rem;
  color:var(--success);
  margin-top:.16rem;
}
.about-values-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}
.about-values-grid article {
  min-width:0;
  padding:1.25rem;
  border:1px solid var(--border);
  border-radius:22px;
  background:var(--surface);
}
.about-values-grid svg { color:var(--primary); }
.about-values-grid h2 {
  margin:.65rem 0 .45rem;
  font-size:1.08rem;
}
.about-values-grid p {
  margin:0;
  color:var(--text-secondary);
  font-size:.9rem;
}

/* How it works */
.journey-timeline {
  display:grid;
  gap:0;
  width:min(960px,calc(100% - 2rem));
  padding-bottom:4rem;
}
.journey-step {
  position:relative;
  display:grid;
  grid-template-columns:86px minmax(0,1fr);
  gap:1.25rem;
  padding:0 0 1.6rem;
}
.journey-step:not(:last-child)::before {
  content:'';
  position:absolute;
  left:42px;
  top:70px;
  bottom:0;
  width:1px;
  background:var(--border-strong);
}
.journey-step__number {
  width:70px;
  height:70px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--primary);
  color:#fff;
  font-weight:800;
  letter-spacing:.05em;
  box-shadow:0 10px 25px rgba(19,78,74,.18);
}
.journey-step__content {
  border:1px solid var(--border);
  border-radius:24px;
  background:var(--surface);
  padding:1.25rem 1.35rem;
  box-shadow:var(--shadow-sm);
}
.journey-step__content > svg {
  color:var(--primary);
  width:1.35rem;
  height:1.35rem;
}
.journey-step__content h2 {
  margin:.5rem 0 .5rem;
  font-size:1.35rem;
  letter-spacing:-.025em;
}
.journey-step__content > p { color:var(--text-secondary); }
.journey-step__content ul {
  margin:.8rem 0 0 1.1rem;
  color:var(--text-secondary);
}
.how-notice-section { padding-block:2rem; }
.how-notice {
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  gap:1rem;
  align-items:start;
  padding:1.25rem;
  border:1px solid rgba(19,78,74,.16);
  border-radius:22px;
  background:rgba(255,255,255,.7);
}
.how-notice > div:first-child {
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:var(--primary-soft);
  color:var(--primary);
}
.how-notice h2 { margin:.05rem 0 .35rem; font-size:1.2rem; }
.how-notice p { margin:0; color:var(--text-secondary); }

/* Footer wording cleanup */
.footer-mini-stats span { white-space:nowrap; }

@media (max-width:1180px) {
  .university-grid--home-four { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .resource-card-grid--expanded,
  .about-values-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .destination-grid--comfortable { grid-template-columns:1fr; }
}
@media (max-width:980px) {
  .explorer-layout { grid-template-columns:1fr; }
  .filter-panel { position:static; }
  .explorer-results .program-cards-grid { grid-template-columns:1fr; }
  .about-story-grid { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  .site-search-modal { padding-top:88px; }
  .site-search-form { grid-template-columns:1fr; }
  .destination-card--wide { grid-template-columns:1fr; }
  .destination-card--wide .destination-card__media { border-radius:24px 24px 0 0; }
  .destination-card--wide .destination-card__media img { min-height:230px; height:230px; }
  .resource-card-grid--expanded,
  .about-values-grid { grid-template-columns:1fr; }
  .journey-step { grid-template-columns:58px minmax(0,1fr); gap:.75rem; }
  .journey-step__number { width:52px; height:52px; font-size:.8rem; }
  .journey-step:not(:last-child)::before { left:26px; top:54px; }
}
@media (max-width:620px) {
  .university-grid--home-four { grid-template-columns:1fr; }
  .featured-universities-heading { margin-bottom:1.5rem; }
}
.country-eyebrow { gap:.5rem; }
.country-flag-inline {
  width:30px;
  height:20px;
  overflow:hidden;
  border-radius:4px;
  border:1px solid var(--border);
  display:inline-block;
  flex:0 0 auto;
}
.country-flag-inline img { width:100%; height:100%; object-fit:cover; display:block; }
