.desktop-nav a.is-active { color: var(--accent); }
.desktop-nav a.is-active::after { width: 100%; }
body.modal-open { overflow: hidden; }

.directory-hero,
.eligibility-hero { position: relative; overflow: hidden; padding: 92px 0 72px; background:
  radial-gradient(circle at 80% 20%, rgba(0,166,125,.18), transparent 28%),
  radial-gradient(circle at 10% 0%, rgba(47,111,237,.14), transparent 25%),
  linear-gradient(180deg, var(--surface-soft), var(--surface)); }
.directory-hero::after,
.eligibility-hero::after { content:""; position:absolute; inset:0; pointer-events:none; background-image:linear-gradient(rgba(116,137,162,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(116,137,162,.06) 1px,transparent 1px); background-size:42px 42px; mask-image:linear-gradient(to bottom,rgba(0,0,0,.7),transparent); }
.directory-hero-grid,
.eligibility-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr); gap:70px; align-items:center; }
.directory-hero h1,
.eligibility-hero h1 { max-width:880px; margin:18px 0 0; font-size:clamp(2.8rem,5.6vw,5.8rem); line-height:.98; letter-spacing:-.055em; }
.directory-hero p,
.eligibility-hero p { max-width:780px; margin:24px 0 0; color:var(--text-soft); font-size:1rem; line-height:1.8; }
.directory-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.directory-stat-card { padding:28px; border:1px solid var(--line); border-radius:28px; background:color-mix(in srgb,var(--surface-raised) 88%,transparent); box-shadow:var(--shadow-lg); backdrop-filter:blur(16px); }
.directory-stat-card > div:first-child { display:flex; align-items:end; gap:12px; }
.directory-stat-card strong { font-size:4rem; line-height:1; letter-spacing:-.06em; }
.directory-stat-card > div:first-child span { padding-bottom:7px; color:var(--text-soft); font-size:.82rem; }
.directory-stat-card > p { margin:20px 0 0; padding-top:18px; border-top:1px solid var(--line); font-size:.75rem; line-height:1.6; }
.status-legend { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.status-pill { display:inline-flex; align-items:center; gap:6px; width:max-content; padding:7px 10px; border-radius:999px; font-size:.67rem; font-weight:850; letter-spacing:.01em; }
.status-preliminary { background:rgba(0,166,125,.13); color:#087a60; }
.status-manual { background:rgba(232,151,37,.14); color:#9a5e00; }
.status-not { background:rgba(207,70,70,.12); color:#ad3434; }
[data-theme="dark"] .status-preliminary { color:#67e6c4; }
[data-theme="dark"] .status-manual { color:#ffc36f; }
[data-theme="dark"] .status-not { color:#ff9292; }

.directory-section { padding-top:68px; }
.directory-layout { display:grid; grid-template-columns:310px minmax(0,1fr); gap:42px; align-items:start; }
.filter-panel { position:sticky; top:calc(var(--header-height) + 24px); padding:24px; border:1px solid var(--line); border-radius:24px; background:var(--surface-raised); box-shadow:var(--shadow-sm); }
.filter-panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.filter-panel h2 { margin:8px 0 0; font-size:1.32rem; }
.filter-reset { padding:4px 0; border:0; background:none; color:var(--accent); font:inherit; font-size:.72rem; font-weight:800; cursor:pointer; }
.search-field { display:flex; align-items:center; gap:9px; margin-top:22px; padding:11px 13px; border:1px solid var(--line); border-radius:13px; background:var(--surface); }
.search-field .icon { color:var(--text-faint); }
.search-field input { min-width:0; width:100%; border:0; outline:0; background:transparent; color:var(--text); font:inherit; font-size:.82rem; }
.filter-group { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.filter-chip { padding:8px 11px; border:1px solid var(--line); border-radius:999px; background:var(--surface); color:var(--text-soft); font:inherit; font-size:.7rem; font-weight:800; cursor:pointer; }
.filter-chip:hover,
.filter-chip.active { border-color:color-mix(in srgb,var(--accent) 48%,var(--line)); background:var(--accent-soft); color:var(--accent); }
.filter-selects { display:grid; gap:14px; margin-top:22px; }
.filter-selects label,
.form-grid label { display:grid; gap:7px; color:var(--text-soft); font-size:.72rem; font-weight:750; }
.filter-selects select,
.form-grid select { width:100%; min-height:46px; padding:0 38px 0 12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); font:inherit; font-size:.8rem; }
.filter-disclosure { display:flex; gap:10px; margin-top:22px; padding:14px; border-radius:14px; background:var(--surface-soft); }
.filter-disclosure .icon { flex:0 0 auto; margin-top:2px; color:var(--accent); }
.filter-disclosure p { margin:0; color:var(--text-soft); font-size:.67rem; line-height:1.6; }
.directory-toolbar { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:20px; }
.directory-toolbar p { margin:0; color:var(--text-soft); font-size:.82rem; }
.directory-toolbar p strong { color:var(--text); font-size:1rem; }
.platform-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.platform-card { min-width:0; padding:21px; border:1px solid var(--line); border-radius:22px; background:var(--surface-raised); box-shadow:var(--shadow-sm); transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.platform-card:hover { transform:translateY(-4px); border-color:color-mix(in srgb,var(--accent) 34%,var(--line)); box-shadow:var(--shadow-md); }
.platform-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.platform-avatar { display:grid; place-items:center; flex:0 0 auto; width:46px; height:46px; border-radius:15px; background:linear-gradient(145deg,#07182e,#0b6d65); color:#fff; font-size:.8rem; font-weight:900; letter-spacing:.02em; box-shadow:0 10px 28px rgba(2,15,28,.16); }
.platform-category { display:block; margin-top:22px; color:var(--accent); font-size:.66rem; font-weight:900; text-transform:uppercase; letter-spacing:.09em; }
.platform-card h3 { margin:7px 0 0; font-size:1.22rem; letter-spacing:-.025em; }
.platform-applicants { min-height:36px; margin:7px 0 0; color:var(--text-soft); font-size:.72rem; }
.platform-features { display:flex; flex-wrap:wrap; gap:6px; min-height:62px; margin-top:16px; align-content:flex-start; }
.platform-features span,
.detail-chip { display:inline-flex; padding:6px 8px; border:1px solid var(--line); border-radius:8px; background:var(--surface-soft); color:var(--text-soft); font-size:.62rem; font-weight:750; }
.platform-card-bottom { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
.platform-card-bottom > span { color:var(--text-faint); font-size:.6rem; }
.platform-card-bottom button { display:inline-flex; align-items:center; gap:6px; padding:0; border:0; background:none; color:var(--accent); font:inherit; font-size:.7rem; font-weight:850; cursor:pointer; }
.platform-card-bottom button .icon { width:14px; height:14px; }
.empty-state { padding:80px 24px; border:1px dashed var(--line); border-radius:24px; text-align:center; background:var(--surface-soft); }
.empty-state h3 { margin:0 0 20px; }
.directory-cta-section { padding-top:0; }
.directory-cta { display:flex; align-items:center; justify-content:space-between; gap:36px; padding:42px 46px; border-radius:28px; background:linear-gradient(135deg,#06162b,#0a2c4d 58%,#07362f); color:#fff; box-shadow:var(--shadow-lg); }
.directory-cta h2 { max-width:760px; margin:9px 0 0; font-size:clamp(1.55rem,3vw,2.7rem); }

.platform-modal { position:fixed; inset:0; z-index:700; display:grid; place-items:center; padding:18px; }
.platform-modal[hidden] { display:none; }
.platform-modal-backdrop { position:absolute; inset:0; background:rgba(2,8,17,.76); backdrop-filter:blur(8px); }
.platform-modal-dialog { position:relative; width:min(900px,100%); max-height:min(90vh,860px); display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--line); border-radius:26px; background:var(--surface); box-shadow:var(--shadow-lg); }
.platform-modal-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 22px; border-bottom:1px solid var(--line); }
.platform-modal-brand { display:flex; align-items:center; gap:14px; }
.platform-modal-head h2 { margin:5px 0 0; font-size:1.35rem; }
.platform-modal-body { overflow:auto; padding:24px; }
.platform-modal-footer { display:flex; justify-content:flex-end; gap:10px; padding:16px 22px; border-top:1px solid var(--line); }
.modal-disclosure { display:flex; gap:13px; padding:17px; border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line)); border-radius:16px; background:var(--accent-soft); }
.modal-disclosure .icon { flex:0 0 auto; color:var(--accent); }
.modal-disclosure p { margin:4px 0 0; color:var(--text-soft); font-size:.75rem; line-height:1.65; }
.modal-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:18px; }
.modal-detail-grid section { padding:18px; border:1px solid var(--line); border-radius:16px; background:var(--surface-raised); }
.modal-detail-grid h3 { margin:0 0 12px; font-size:.86rem; }
.detail-chips { display:flex; flex-wrap:wrap; gap:7px; }
.modal-list { display:grid; gap:9px; margin:0; padding:0; list-style:none; }
.modal-list li { display:flex; gap:9px; color:var(--text-soft); font-size:.72rem; line-height:1.5; }
.mini-check { display:grid; place-items:center; flex:0 0 auto; width:19px; height:19px; border-radius:50%; background:var(--accent-soft); color:var(--accent); font-size:.65rem; font-weight:900; }
.modal-sources { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:18px; padding:15px 17px; border:1px solid var(--line); border-radius:15px; background:var(--surface-soft); }
.modal-sources > div { display:grid; margin-right:auto; }
.modal-sources > div span { color:var(--text-faint); font-size:.61rem; }
.modal-sources > div strong { font-size:.78rem; }
.source-link { display:inline-flex; align-items:center; gap:6px; color:var(--accent); font-size:.7rem; font-weight:850; }
.source-link .icon { width:14px; height:14px; }
.modal-fineprint { margin:14px 0 0; color:var(--text-faint); font-size:.65rem; line-height:1.6; }

.privacy-callout { display:flex; align-items:flex-start; gap:14px; padding:22px; border:1px solid var(--line); border-radius:22px; background:var(--surface-raised); box-shadow:var(--shadow-md); }
.privacy-callout .icon { flex:0 0 auto; width:26px; height:26px; color:var(--accent); }
.privacy-callout p { margin:0; font-size:.8rem; }
.eligibility-section { padding-top:62px; }
.eligibility-layout { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr); gap:36px; align-items:start; }
.assessment-form { display:grid; gap:17px; }
.form-step { padding:26px; border:1px solid var(--line); border-radius:24px; background:var(--surface-raised); box-shadow:var(--shadow-sm); }
.form-step-head { display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.form-step-head > span { display:grid; place-items:center; width:34px; height:34px; border-radius:11px; background:var(--accent-soft); color:var(--accent); font-size:.7rem; font-weight:900; }
.form-step-head h2 { margin:0; font-size:1.1rem; }
.choice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.choice-card,
.need-choice { position:relative; cursor:pointer; }
.choice-card input,
.need-choice input { position:absolute; opacity:0; pointer-events:none; }
.choice-card span { display:grid; place-items:center; min-height:72px; padding:12px; border:1px solid var(--line); border-radius:15px; background:var(--surface); color:var(--text-soft); text-align:center; font-size:.78rem; font-weight:800; transition:.2s ease; }
.choice-card input:checked + span,
.need-choice input:checked + span { border-color:var(--accent); background:var(--accent-soft); color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent); }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.need-choice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.need-choice span { display:flex; align-items:center; min-height:48px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text-soft); font-size:.7rem; font-weight:750; transition:.2s ease; }
.readiness-grid { display:grid; gap:13px; }
.readiness-grid fieldset { display:grid; grid-template-columns:1.5fr repeat(3,auto); align-items:center; gap:8px; margin:0; padding:13px; border:1px solid var(--line); border-radius:14px; }
.readiness-grid legend { float:left; width:auto; margin:0; padding:0 10px 0 0; color:var(--text); font-size:.72rem; font-weight:800; }
.readiness-grid label { position:relative; cursor:pointer; }
.readiness-grid label input { position:absolute; opacity:0; }
.readiness-grid label span { display:block; padding:7px 9px; border:1px solid var(--line); border-radius:9px; color:var(--text-soft); font-size:.65rem; font-weight:800; }
.readiness-grid label input:checked + span { border-color:var(--accent); background:var(--accent-soft); color:var(--accent); }
.assessment-actions { display:flex; gap:10px; }
.assessment-results { position:sticky; top:calc(var(--header-height) + 24px); min-height:520px; padding:26px; border:1px solid var(--line); border-radius:26px; background:linear-gradient(180deg,var(--surface-raised),var(--surface)); box-shadow:var(--shadow-md); }
.results-empty { display:grid; place-items:center; align-content:center; min-height:460px; text-align:center; }
.results-icon { display:grid; place-items:center; width:70px; height:70px; border-radius:22px; background:var(--accent-soft); color:var(--accent); }
.results-icon .icon { width:32px; height:32px; }
.results-empty h2 { margin:20px 0 0; }
.results-empty p { max-width:300px; margin:10px auto 0; color:var(--text-soft); font-size:.8rem; }
.results-heading h2 { margin:8px 0 0; font-size:1.38rem; }
.result-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:18px; }
.result-summary div { display:grid; gap:4px; padding:12px; border:1px solid var(--line); border-radius:13px; background:var(--surface-soft); }
.result-summary strong { font-size:1.35rem; }
.result-summary span { color:var(--text-soft); font-size:.58rem; line-height:1.3; }
.result-groups { display:grid; gap:12px; margin-top:18px; }
.result-group { overflow:hidden; border:1px solid var(--line); border-radius:15px; }
.result-group-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 13px; background:var(--surface-soft); }
.result-group-head h3 { margin:0; font-size:.76rem; }
.result-group-head span { display:grid; place-items:center; min-width:24px; height:24px; padding:0 6px; border-radius:999px; background:var(--surface); font-size:.65rem; font-weight:900; }
.result-platform-list { display:grid; }
.result-platform { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; padding:11px 12px; border-top:1px solid var(--line); color:var(--text); }
.result-platform:first-child { border-top:0; }
.result-platform .platform-avatar { width:36px; height:36px; border-radius:11px; font-size:.65rem; }
.result-platform > span:nth-child(2) { display:grid; min-width:0; }
.result-platform strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.76rem; }
.result-platform small { margin-top:2px; color:var(--text-faint); font-size:.58rem; }
.result-platform .status-pill { font-size:.56rem; }
.result-none { margin:0; padding:14px; color:var(--text-faint); text-align:center; }
.improvement-panel { margin-top:16px; padding:16px; border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line)); border-radius:15px; background:var(--accent-soft); }
.improvement-panel h3 { margin:0 0 10px; font-size:.78rem; }
.improvement-panel ul { display:grid; gap:9px; margin:0; padding:0; list-style:none; }
.improvement-panel li { display:flex; gap:9px; color:var(--text-soft); font-size:.68rem; line-height:1.5; }
.results-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.results-actions .button { flex:1 1 170px; }

@media (max-width:1180px) {
  .platform-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .directory-hero-grid,.eligibility-hero-grid { grid-template-columns:1fr; gap:34px; }
  .directory-stat-card { max-width:620px; }
}
@media (max-width:980px) {
  .directory-layout,.eligibility-layout { grid-template-columns:1fr; }
  .filter-panel,.assessment-results { position:static; }
  .filter-panel { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .filter-panel-head,.filter-disclosure { grid-column:1/-1; }
  .search-field,.filter-group,.filter-selects { margin-top:0; }
  .assessment-results { min-height:auto; }
  .results-empty { min-height:300px; }
}
@media (max-width:720px) {
  .directory-hero,.eligibility-hero { padding:62px 0 48px; }
  .directory-hero h1,.eligibility-hero h1 { font-size:clamp(2.5rem,13vw,4.4rem); }
  .directory-layout { gap:24px; }
  .filter-panel { grid-template-columns:1fr; padding:18px; }
  .filter-panel-head,.filter-disclosure { grid-column:auto; }
  .platform-grid { grid-template-columns:1fr; }
  .platform-card { padding:19px; }
  .directory-toolbar { align-items:flex-start; flex-direction:column; }
  .directory-cta { align-items:flex-start; flex-direction:column; padding:30px 22px; }
  .modal-detail-grid { grid-template-columns:1fr; }
  .platform-modal-dialog { max-height:94vh; border-radius:20px; }
  .platform-modal-body { padding:18px; }
  .platform-modal-footer { flex-wrap:wrap; }
  .platform-modal-footer .button { flex:1; }
  .form-step { padding:20px 17px; }
  .choice-grid,.need-choice-grid,.form-grid { grid-template-columns:1fr; }
  .readiness-grid fieldset { grid-template-columns:repeat(3,1fr); }
  .readiness-grid legend { float:none; grid-column:1/-1; width:100%; margin-bottom:4px; }
  .assessment-actions { display:grid; }
  .assessment-actions .button { width:100%; }
  .result-platform { grid-template-columns:auto minmax(0,1fr); }
  .result-platform .status-pill { grid-column:2; }
}
@media (max-width:430px) {
  .directory-hero-actions { display:grid; }
  .directory-hero-actions .button { width:100%; }
  .directory-stat-card strong { font-size:3.2rem; }
  .result-summary { grid-template-columns:1fr; }
  .readiness-grid fieldset { grid-template-columns:1fr; }
  .readiness-grid legend { grid-column:auto; }
}
.assessment-save-panel{margin-top:24px;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.assessment-save-panel h3{margin:0 0 8px}.assessment-save-panel p{color:var(--text-soft);margin:0 0 16px}.assessment-save-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.assessment-save-grid label{display:grid;gap:7px;font-weight:700;font-size:.84rem}.assessment-save-grid input{width:100%;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);color:var(--text);padding:11px 12px;font:inherit}.assessment-save-consent{display:flex!important;align-items:flex-start;gap:10px;grid-column:1/-1;font-weight:500!important;color:var(--text-soft)}.assessment-save-consent input{width:auto;margin-top:3px}.assessment-save-actions{grid-column:1/-1;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.assessment-save-status{min-height:22px;margin-top:10px}.assessment-save-status.error{color:#bd3f4b}.assessment-save-status.success{color:#0a7c5e}@media(max-width:640px){.assessment-save-grid{grid-template-columns:1fr}.assessment-save-consent,.assessment-save-actions{grid-column:auto}}

/* V4.7 platform brand assets */
.platform-logo-shell{position:relative;overflow:hidden;padding:7px;background:#fff;border:1px solid color-mix(in srgb,var(--line) 75%,transparent);box-shadow:0 10px 28px rgba(2,15,28,.12)}
.platform-logo-shell img,.platform-logo-shell b{grid-area:1/1}
.platform-logo-shell img{display:block;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .16s ease}
.platform-logo-shell b{display:grid;place-items:center;width:100%;height:100%;border-radius:9px;background:linear-gradient(145deg,#07182e,#0b6d65);color:#fff;font-size:.72rem;font-weight:900;letter-spacing:.02em}
.platform-logo-shell.has-logo img{opacity:1}
.platform-logo-shell.has-logo b{display:none}
.platform-modal-logo{width:52px;height:52px;border-radius:16px}
.result-platform .platform-logo-shell{padding:5px}
html[data-theme="dark"] .platform-logo-shell{background:#fff;border-color:rgba(255,255,255,.12)}
