/* Scholarship pages -- tool + ledger blocks GENERATED by seeds/tools/gen_scholarships_assets.py
   (do not hand-edit those: re-run the generator; all rem sizing is rewritten to absolute px --
   see rem_to_px()). Tool CSS is scoped under .sf-app, the ledger under .sf-ledger.
   The hub block is HAND-AUTHORED (see its own header comment below) -- it is NOT generator
   output, ported comp-verbatim from Subash's redesigned /scholarships/ comp 2026-07-13. */

/* ---- tool (scoped from tools/scholarship-finder/styles.css) ---- */
.sf-app {
  --accent:#1a56db; --accent-dark:#1e3a8a; --accent-soft:#eff4ff;
  --ink:#1f2937; --muted:#6b7280; --line:#e5e7eb; --bg:#f7f8fb; --card:#fff;
  --full:#0f9d58; --partial:#d97706; --stipend:#7c3aed; --tuition:#0891b2;
  --radius:12px; --shadow:0 1px 3px rgba(16,24,40,.08),0 1px 2px rgba(16,24,40,.04);
  --maxw:1180px;
}.sf-app * {box-sizing:border-box}.sf-app {margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}.sf-app .sf-wrap {max-width:var(--maxw);margin:0 auto;padding:0 20px}.sf-app a {color:var(--accent);text-decoration:none}.sf-app .sf-hero {background:linear-gradient(135deg,var(--accent-dark),var(--accent));color:#fff;padding:40px 0 34px}.sf-app .sf-hero h1 {margin:0 0 8px;font-size:32px;letter-spacing:-.02em}.sf-app .sf-sub {margin:0 0 10px;font-size:16.8px;max-width:760px;opacity:.96}.sf-app .sf-sub strong {font-weight:700}.sf-app .sf-trust {margin:0;font-size:13.6px;opacity:.9}.sf-app .sf-layout {display:grid;grid-template-columns:280px 1fr;gap:28px;padding-top:28px;padding-bottom:40px;align-items:start}.sf-app .sf-filters {background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;position:sticky;top:16px;box-shadow:var(--shadow)}.sf-app .sf-filters-head {display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.sf-app .sf-filters-head h2 {margin:0;font-size:16.8px}.sf-app .sf-link-btn {background:none;border:none;color:var(--accent);cursor:pointer;font-size:13.6px;padding:0}.sf-app .sf-field {margin:14px 0}.sf-app .sf-field label {display:block;font-size:12.8px;font-weight:600;color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.03em}.sf-app .sf-field input, .sf-app .sf-field select, .sf-app .sf-score-grid input {width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;font-size:14.72px;background:#fff}.sf-app .sf-field input:focus, .sf-app .sf-field select:focus {outline:2px solid var(--accent-soft);border-color:var(--accent)}.sf-app .sf-toggle {display:flex;align-items:center;gap:8px;margin:14px 0;font-size:14.72px;font-weight:600;cursor:pointer}.sf-app .sf-toggle input {width:16px;height:16px;accent-color:var(--accent)}.sf-app .sf-group {border:none;border-top:1px solid var(--line);margin:14px 0 0;padding:14px 0 0}.sf-app .sf-group legend {font-size:12.8px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;padding:0}.sf-app .sf-checks {display:flex;flex-direction:column;gap:6px;margin-top:8px}.sf-app .sf-checks label {display:flex;align-items:center;gap:8px;font-size:14.4px;cursor:pointer}.sf-app .sf-checks input {accent-color:var(--accent)}.sf-app .sf-checks .ct {margin-left:auto;color:var(--muted);font-size:12.8px}.sf-app .sf-scrollable .sf-checks {max-height:230px;overflow-y:auto;padding-right:4px}.sf-app .sf-scores {margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.sf-app .sf-scores summary {cursor:pointer;font-size:14.4px;font-weight:600}.sf-app .sf-hint {font-size:12.48px;color:var(--muted);margin:8px 0}.sf-app .sf-score-grid {display:grid;grid-template-columns:1fr 1fr;gap:8px}.sf-app .sf-score-grid label {font-size:12.48px;font-weight:600;color:var(--muted)}.sf-app .sf-results-bar {display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:10px}.sf-app .sf-count {font-weight:700;font-size:16.8px}.sf-app .sf-sort {font-size:13.6px;color:var(--muted)}.sf-app .sf-sort select {margin-left:6px;padding:6px 8px;border:1px solid var(--line);border-radius:8px}.sf-app .sf-chips {display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.sf-app .sf-chip {background:var(--accent-soft);color:var(--accent-dark);border-radius:999px;padding:4px 10px;font-size:12.8px;display:inline-flex;gap:6px;align-items:center}.sf-app .sf-chip button {background:none;border:none;color:var(--accent-dark);cursor:pointer;font-weight:700;padding:0;line-height:1}.sf-app .sf-lead {background:linear-gradient(120deg,#fff,var(--accent-soft));border:1px solid #dbe5ff;border-radius:var(--radius);padding:18px;display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:18px;box-shadow:var(--shadow)}.sf-app .sf-lead-body {flex:1 1 260px}.sf-app .sf-lead-body h3 {margin:0 0 4px;font-size:16.8px}.sf-app .sf-lead-body p {margin:0;font-size:14.08px;color:var(--muted)}.sf-app .sf-lead-form {display:flex;gap:8px;flex-wrap:wrap}.sf-app .sf-lead-form input {padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-size:14.4px}.sf-app .sf-lead-form button {background:var(--accent);color:#fff;border:none;border-radius:8px;padding:9px 16px;font-weight:600;cursor:pointer;white-space:nowrap}.sf-app .sf-lead-form button:hover {background:var(--accent-dark)}.sf-app .sf-lead-done {margin:0;color:var(--full);font-weight:600;width:100%}.sf-app .sf-cards {display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.sf-app .sf-card {background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;box-shadow:var(--shadow)}.sf-app .sf-card-top {display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.sf-app .sf-card-top-right {display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.sf-app .sf-card h3 {margin:0 0 2px;font-size:16.32px;line-height:1.3}.sf-app .sf-card .prov {font-size:13.12px;color:var(--muted);margin:0 0 10px}.sf-app .sf-badges {display:flex;flex-wrap:wrap;gap:5px;margin:0 0 10px}.sf-app .sf-badge {font-size:11.52px;font-weight:700;padding:3px 8px;border-radius:999px;color:#fff;text-transform:capitalize}.sf-app .b-full {background:var(--full)}.sf-app .b-partial {background:var(--partial)}.sf-app .b-stipend {background:var(--stipend)}.sf-app .b-tuition {background:var(--tuition)}.sf-app .sf-tag {font-size:11.52px;background:#f1f3f9;color:#374151;border-radius:999px;padding:3px 8px;font-weight:600}.sf-app .sf-flag {font-size:11.52px;background:#e7f8ee;color:#0f7a44;border:1px solid #b6e6c9;border-radius:999px;padding:3px 8px;font-weight:700}.sf-app .sf-vbadge {font-size:11.52px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.sf-app .sf-vbadge-ok {background:#e7f6ee;color:#0f7a3d}.sf-app .sf-vbadge-review {background:#fff4e5;color:#a15c00}.sf-app .sf-amount {font-size:14.4px;font-weight:600;margin:0 0 8px}.sf-app .sf-elig {font-size:13.6px;color:#374151;margin:0 0 10px;flex:1}.sf-app .sf-meta {font-size:12.8px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 14px;margin-bottom:12px}.sf-app .sf-meta b {color:var(--ink)}.sf-app .sf-card-foot {display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:12px}.sf-app .sf-apply {background:var(--accent);color:#fff;padding:9px 16px;border-radius:8px;font-weight:700;font-size:13.76px;box-shadow:0 1px 2px rgba(16,24,40,.15)}.sf-app .sf-apply:hover {background:var(--accent-dark)}.sf-app .sf-conf {font-size:11.52px;color:var(--muted)}.sf-app .sf-conf.med {color:var(--partial)}.sf-app .sf-country {font-size:12.48px;font-weight:700;color:var(--accent-dark);background:var(--accent-soft);padding:3px 9px;border-radius:999px;white-space:nowrap}.sf-app .sf-empty {padding:40px;text-align:center;color:var(--muted);background:var(--card);border:1px dashed var(--line);border-radius:var(--radius)}.sf-app .sf-cta-row {display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}.sf-app .sf-cta {display:flex;flex-direction:column;gap:4px;padding:18px;border-radius:var(--radius);border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow)}.sf-app .sf-cta strong {font-size:16px;color:var(--ink)}.sf-app .sf-cta span {font-size:13.76px;color:var(--accent-dark);font-weight:600}.sf-app .sf-cta-loan {border-left:4px solid var(--tuition)}.sf-app .sf-cta-adm {border-left:4px solid var(--accent)}.sf-app .sf-cta:hover {box-shadow:0 4px 12px rgba(16,24,40,.1)}.sf-app .sf-archived {margin:36px auto 0;padding-top:26px;border-top:2px dashed var(--line)}.sf-app .sf-arch-head {margin:0 0 4px;font-size:18.4px;color:#b91c1c}.sf-app .sf-arch-intro {margin:0 0 16px;font-size:13.76px;color:var(--muted);max-width:760px}.sf-app .sf-card-arch {background:#fffbfa;border-color:#f3d6d0}.sf-app .b-arch {background:#b91c1c}.sf-app .sf-apply-arch {background:#6b7280}.sf-app .sf-apply-arch:hover {background:#4b5563}.sf-app .sf-foot {padding:24px 20px 40px;color:var(--muted);font-size:13.12px}.sf-app .sf-foot p {margin:4px 0}@media(max-width:860px) {.sf-app .sf-layout {grid-template-columns:1fr}.sf-app .sf-filters {position:static}.sf-app .sf-cta-row {grid-template-columns:1fr}
}.sf-app .sf-static-preview {padding-top:24px}.sf-app .sf-static-preview h2 {margin:0 0 6px;font-size:20.8px}.sf-app .sf-preview-note {margin:0 0 16px;font-size:13.76px;color:var(--muted)}.sf-app .sf-preview-stats {display:flex;flex-wrap:wrap;gap:14px;margin-bottom:14px}.sf-app .sf-preview-stat {background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px 18px;text-align:center;box-shadow:var(--shadow)}.sf-app .sf-preview-num {display:block;font-size:20.8px;font-weight:800;color:var(--accent-dark)}.sf-app .sf-preview-lab {display:block;font-size:12.16px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.sf-app .sf-preview-countries {display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.sf-app .sf-preview-chip {background:var(--accent-soft);color:var(--accent-dark);border-radius:999px;padding:5px 12px;font-size:13.12px}.sf-app .sf-preview-subhead {font-size:16px;margin:10px 0 12px;color:var(--ink)}.sf-app .sf-preview-cards {margin-bottom:8px}

/* ---- hub ----
   HAND-AUTHORED 2026-07-13 (comp-verbatim redesign, PR pages/scholarships-redesign) --
   NOT regenerated by gen_scholarships_assets.py. Ported verbatim from Subash's approved
   /scholarships/ comp (scholarships_ref.html), every selector scoped under .sf-hub so
   nothing bleeds into .sf-app (finder) or .sf-ledger below, which share this file. The
   comp's page-level rules (:root, *, html, body, bare h1-h4/a) are re-homed onto .sf-hub
   for the same reason -- they cannot ship unscoped in a file three templates share.
   `html{scroll-behavior:smooth}` from the comp is dropped: it targets the root <html>
   element, which cannot be scoped to .sf-hub without a global (site-wide) rule, and the
   hub has no in-page anchor links that depend on it. Next regen of this file MUST re-apply
   this block rather than reverting to the old narrow-column hub CSS -- see PLAYBOOK.md
   "Copy ownership" / SEO-COPY doctrine for the general pattern this follows. */
.sf-hub,.sf-hub *{margin:0;padding:0;box-sizing:border-box}
.sf-hub{
  --bg-navy:#13217c;--primary-blue:#3b5bff;--cta-magenta:#cc00cc;--accent-blue:#e6ebff;
  --text-white:#fffdfe;--text-dark:#333;--text-gray:#808080;--success-green:#28a745;--amber:#d98a00;
  --font-heading:'Poppins',sans-serif;--font-body:'Inter',sans-serif;--container-width:1200px;
  font-family:var(--font-body);color:var(--text-dark);line-height:1.5;
}
.sf-hub h1,.sf-hub h2,.sf-hub h3,.sf-hub h4{font-family:var(--font-heading);font-weight:600}
.sf-hub a{color:var(--primary-blue)}
.sf-hub .container{width:100%;max-width:var(--container-width);padding:0 40px;margin:0 auto}
.sf-hub .section{padding:60px 0}
.sf-hub .section-light{background:#e6ebff}
.sf-hub .section-title{font-size:36px;line-height:48px;color:var(--primary-blue);text-align:center;margin-bottom:14px}
.sf-hub .section-subtitle{font-size:18px;line-height:29px;color:var(--text-dark);text-align:center;max-width:760px;margin:0 auto 44px}
.sf-hub .btn{display:inline-block;padding:15px 32px;border-radius:10px;font-weight:600;font-size:17px;text-decoration:none;cursor:pointer;border:none;transition:all .3s ease;font-family:var(--font-heading)}
.sf-hub .btn-magenta{background-color:var(--cta-magenta);color:var(--text-white)}
.sf-hub .btn-magenta:hover{background-color:#a600a6}
.sf-hub .btn-blue{background-color:var(--primary-blue);color:var(--text-white)}
.sf-hub .btn-blue:hover{background-color:var(--bg-navy)}

/* ===== HERO ===== */
.sf-hub .hero{background-color:var(--bg-navy);color:var(--text-white);padding:60px 0 110px;text-align:center}
.sf-hub .hero h1{font-size:42px;line-height:56px;margin-bottom:22px}
.sf-hub .hero-subhead{font-family:var(--font-heading);font-size:22px;line-height:32px;font-weight:600;max-width:800px;margin:0 auto 16px;color:#fffdfe}
.sf-hub .hero-answer{font-size:18px;line-height:30px;max-width:780px;margin:0 auto 30px;color:#fffdfe}
.sf-hub .hero-note{margin-top:16px;font-size:16px;color:#fffdfe}

/* ===== STATS BAR (single panel, GRE-page style) ===== */
.sf-hub .stats-bar{background:#fff;border-radius:20px;padding:34px 24px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:-83px;position:relative;z-index:5;text-align:center}
.sf-hub .stat-item{padding:4px 14px}
.sf-hub .stat-item b{display:block;font-family:var(--font-heading);font-size:42px;line-height:1;color:var(--bg-navy);font-weight:600;margin-bottom:8px}
.sf-hub .stat-item p{font-size:14px;line-height:1.4;color:#333;max-width:190px;margin:0 auto}
.sf-hub .stat-item p span{color:var(--cta-magenta);font-weight:600}

/* ===== CONTENT ===== */
.sf-hub .lead-note{font-size:18px;line-height:29px;max-width:920px;margin:0 auto 40px;text-align:center;color:#333333}
.sf-hub .data-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}
.sf-hub .data-table .table-title-row{background:var(--bg-navy);color:#fffdfe;font-family:var(--font-heading);font-size:20px;font-weight:600;padding:16px 20px;text-align:left;border-right:none}

/* Calculator-pages table design */
.sf-hub .table-responsive{overflow:hidden;border-radius:16px;background:#fffdfe;width:100%;box-shadow:0 4px 18px rgba(19,33,124,0.05)}
.sf-hub .data-table{width:100%;border-collapse:collapse}
.sf-hub .data-table thead th{background:#FFF6E5;color:#333333;padding:16px 20px;text-align:left;font-family:var(--font-body);font-size:16px;font-weight:600;border-right:1.5px solid rgba(128,128,128,0.4)}
.sf-hub .data-table thead th:last-child{border-right:none;text-align:left}
.sf-hub .data-table tbody td{background:#fffdfe;padding:15px 20px;font-size:16px;font-family:var(--font-body);color:var(--text-dark);border-top:1.5px solid rgba(128,128,128,0.4);border-right:1.5px solid rgba(128,128,128,0.4)}
.sf-hub .data-table tbody td:last-child{border-right:none;text-align:left;font-weight:700;color:var(--primary-blue);font-family:var(--font-heading)}
.sf-hub .card-foot-note{font-size:14px;color:var(--text-gray);font-style:italic;margin-top:12px}

/* ===== HOW WE CHECK ===== */
.sf-hub .prose{max-width:820px;margin:0 auto}
.sf-hub .prose p{font-size:18px;line-height:30px;margin-bottom:18px;color:#333333}
.sf-hub .verify-table-wrap{max-width:900px;margin:30px auto;border-radius:16px;overflow:hidden;border:1px solid var(--accent-blue);box-shadow:0 4px 18px rgba(19,33,124,0.05)}
.sf-hub .verify-table{width:100%;border-collapse:collapse;background:#e6ebff}
.sf-hub .verify-table th,.sf-hub .verify-table td{padding:16px 22px;text-align:left;font-size:16px;line-height:24px;border-bottom:1px solid rgba(128,128,128,0.4);border-right:1px solid rgba(128,128,128,0.4);vertical-align:top}
.sf-hub .verify-table th:last-child,.sf-hub .verify-table td:last-child{border-right:none}
.sf-hub .verify-table thead th{background:#13217c;color:#fffdfe;font-size:14px}
.sf-hub .verify-table tbody tr:last-child td{border-bottom:none}
.sf-hub .status-pill{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-family:var(--font-heading);white-space:nowrap}
.sf-hub .status-pill::before{content:"";width:10px;height:10px;border-radius:50%;flex-shrink:0}
.sf-hub .status-confirmed::before{background:var(--success-green)}
.sf-hub .status-pending::before{background:var(--amber)}
.sf-hub .status-corrected::before{background:var(--primary-blue)}
.sf-hub .verify-count{font-family:var(--font-heading);font-weight:700;font-size:18px;color:var(--text-dark);white-space:nowrap}
.sf-hub .callout{max-width:820px;margin:34px auto 0;background:var(--accent-blue);border-left:4px solid var(--primary-blue);border-radius:10px;padding:20px 26px;font-size:16px;line-height:26px;color:#333333}

/* ===== FAQ (matches voucher/destination pages) ===== */
.sf-hub .faq-layout{display:grid;grid-template-columns:2fr 3fr;gap:40px;align-items:start}
.sf-hub .faq-image-col{position:sticky;top:40px}
.sf-hub .faq-image-col img{width:100%;max-width:420px;height:auto;border-radius:20px;display:block}
.sf-hub .faq-item{background:var(--primary-blue);margin-bottom:18px;overflow:hidden;border-radius:10px}
.sf-hub .faq-question{padding:20px 50px 20px 22px;font-size:18px;line-height:28px;font-weight:500;color:var(--text-white);cursor:pointer;position:relative;user-select:none;font-family:var(--font-heading)}
.sf-hub .faq-question::after{content:"\203A";position:absolute;right:26px;top:50%;transform:translateY(-50%) rotate(0deg);font-size:26px;color:#fff;line-height:1;transition:transform 0.3s ease}
.sf-hub .faq-question.active::after{transform:translateY(-50%) rotate(90deg)}
.sf-hub .faq-answer{background-color:#fffdfe;max-height:0;overflow:hidden;transition:max-height 0.4s ease,padding 0.4s ease;padding:0 22px;font-size:16px;line-height:26px;color:#3b5bff}
.sf-hub .faq-answer.active{max-height:500px;padding:18px 22px}
.sf-hub .faq-answer a{color:var(--cta-magenta);font-weight:600}

/* ===== FINAL CTA ===== */
.sf-hub .cta-band{background:var(--bg-navy);color:var(--text-white);text-align:center;padding:70px 0}
.sf-hub .cta-band h2{font-size:36px;line-height:48px;color:#fffdfe;margin-bottom:14px}
.sf-hub .cta-band p{font-size:18px;line-height:28px;max-width:640px;margin:0 auto 30px;color:#fffdfe}

/* ===== RESPONSIVE ===== */
@media (max-width:960px){
  .sf-hub .stats-bar{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:768px){
  .sf-hub .container{padding:0 20px}
  .sf-hub .section{padding:40px 0}
  .sf-hub .hero{padding:40px 0 110px}
  .sf-hub .hero h1{font-size:32px;line-height:44px}
  .sf-hub .hero-subhead{font-size:20px;line-height:29px}
  .sf-hub .hero-answer{font-size:16px;line-height:26px}
  .sf-hub .section-title,.sf-hub .cta-band h2{font-size:26px;line-height:36px}
  .sf-hub .db-table-title{font-size:20px;line-height:28px}
  .sf-hub .data-table thead th,.sf-hub .data-table tbody td{font-size:14px;padding:12px 14px}
  .sf-hub .lead-note,.sf-hub .prose p{font-size:16px;line-height:26px}
  /* Stack the verification table into cards on phones */
  .sf-hub .verify-table thead{display:none}
  .sf-hub .verify-table,.sf-hub .verify-table tbody,.sf-hub .verify-table tr,.sf-hub .verify-table td{display:block;width:100%}
  .sf-hub .verify-table tr{padding:16px 18px;border-bottom:1px solid rgba(128,128,128,0.3)}
  .sf-hub .verify-table tbody tr:last-child{border-bottom:none}
  .sf-hub .verify-table td{padding:0;border:none;font-size:15px;line-height:22px}
  .sf-hub .verify-table td:first-child{margin-bottom:6px}
  .sf-hub .verify-table td[data-label="Records"]{margin-bottom:8px}
  .sf-hub .verify-table td[data-label="Records"]::before,.sf-hub .verify-table td[data-label="What it means"]::before{content:attr(data-label);display:block;font-family:var(--font-heading);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:0.5px;color:var(--text-gray);margin-bottom:2px}
  .sf-hub .verify-table .verify-count{font-size:20px}
  .sf-hub .data-grid{grid-template-columns:1fr;gap:20px}
  .sf-hub .stat-card b{font-size:32px}
  .sf-hub .faq-layout{display:flex;flex-direction:column;gap:26px}
  .sf-hub .faq-image-col{display:none}
}
@media (max-width:460px){
  .sf-hub .stats-bar{grid-template-columns:1fr}
  .sf-hub .hero h1{font-size:30px;line-height:40px}
}

/* ---- ledger (scoped from tools/scholarship-finder/ledger.html) ---- */
.sf-ledger {--accent:#1a56db;--accent-dark:#1e3a8a;--accent-soft:#eff4ff;--ink:#1f2937;--muted:#6b7280;--line:#e5e7eb;--bg:#f7f8fb;--card:#fff;--ok:#0f9d58;--warn:#d97706;--radius:12px;--shadow:0 1px 3px rgba(16,24,40,.08),0 1px 2px rgba(16,24,40,.04);--maxw:960px}.sf-ledger * {box-sizing:border-box}.sf-ledger {margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.55}.sf-ledger .vl-wrap {max-width:var(--maxw);margin:0 auto;padding:0 20px}.sf-ledger a {color:var(--accent);text-decoration:none}.sf-ledger .vl-hero {background:linear-gradient(135deg,var(--accent-dark),var(--accent));color:#fff;padding:44px 0 34px}.sf-ledger .vl-hero h1 {margin:0 0 8px;font-size:32px;letter-spacing:-.02em}.sf-ledger .vl-hero p {margin:0;max-width:720px;opacity:.96}.sf-ledger .vl-asof {display:inline-block;margin-top:12px;font-size:12.8px;background:rgba(255,255,255,.16);padding:4px 12px;border-radius:999px}.sf-ledger .vl-stats {display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin:26px auto}.sf-ledger .vl-stat {background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.sf-ledger .vl-num {font-size:30.4px;font-weight:800;letter-spacing:-.02em;color:var(--accent-dark)}.sf-ledger .vl-lab {font-size:13.76px;font-weight:700;margin:2px 0 8px}.sf-ledger .vl-stat p {margin:0;font-size:12.48px;color:var(--muted)}.sf-ledger .vl-sec {background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);margin:18px auto}.sf-ledger .vl-sec h2 {margin:0 0 12px;font-size:19.2px}.sf-ledger .vl-sec h2.red {color:#b91c1c}.sf-ledger .vl-sec ul {margin:0;padding-left:20px}.sf-ledger .vl-sec li {margin:7px 0;font-size:14.72px}.sf-ledger .vl-sec li b {color:var(--ink)}.sf-ledger .vl-arch {border:1px solid #f3d6d0;background:#fffbfa;border-radius:10px;padding:14px 16px;margin:12px 0}.sf-ledger .vl-arch-top {display:flex;justify-content:space-between;align-items:center;gap:10px}.sf-ledger .vl-arch-top h3 {margin:0;font-size:16px}.sf-ledger .vl-badge {font-size:11.2px;font-weight:700;background:#b91c1c;color:#fff;padding:3px 9px;border-radius:999px;white-space:nowrap}.sf-ledger .vl-prov {margin:4px 0;font-size:12.8px;color:var(--muted)}.sf-ledger .vl-note {margin:6px 0 10px;font-size:14.4px}.sf-ledger .vl-cta {display:block;text-align:center;background:var(--accent);color:#fff;font-weight:600;padding:14px;border-radius:var(--radius);margin:22px auto}.sf-ledger .vl-cta:hover {background:var(--accent-dark)}.sf-ledger .vl-foot {padding:20px;color:var(--muted);font-size:13.12px;text-align:center}.sf-ledger .vl-disclaimer {background:var(--accent-soft);border:1px solid #cdd9f5;border-left:4px solid var(--accent);border-radius:10px;padding:13px 16px;margin:0 auto 8px;font-size:14.4px}@media(max-width:640px) {.sf-ledger .vl-hero h1 {font-size:25.6px}}

/* ════════════════════════════════════════════════════════════════════════════
   Bricks integration reset (galv scholarships v0.1).
   Same neutralization as admissions.css / destination.css: Bricks renders the root as
   <main#brx-content.brxe-container> (flex + content-max-width) and wraps the shortcode
   in .brxe-text; those rules are emitted inline and load AFTER this file. The finder is
   a full-bleed app, so the wrappers must not constrain it. The `galv-sf` body class is
   added by scholarships_shortcodes.php off the page's _galv_sf_page meta.
   ════════════════════════════════════════════════════════════════════════════ */
body.galv-sf #brx-content.brxe-container,
body.galv-sf .brxe-text {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    display: block !important;
    gap: 0 !important;
    align-items: stretch !important;
}
/* Hub redesign 2026-07-13: the new /scholarships/ hub is full-bleed bands (.hero, .cta-band,
   .section-light) that each need to reach the viewport edge, with .container inside them
   owning the side gutter responsively. Unlike the old narrow reading-column hub, .sf-hub
   itself must NOT get an extra wrapper gutter here -- that would inset every band short of
   the edge and double the padding on mobile. No rule needed: the shared reset above already
   zeroes Bricks' own wrapper padding for every sf mode. */
