/* Shared public experience. Program color identifies the subject, not status. */
:root { --surface: #fff; --page-bg: #f6f8f7; --line: #e3e9e6; --muted: #67766f; --specialist: #4b63a1; }
body { background: var(--page-bg); background-attachment: initial; }
.hero-title { font-family: inherit; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.15; letter-spacing: -.035em; }
.brand-nav { background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.brand-nav .dropdown-menu { border: 1px solid var(--line); border-radius: 12px; padding: 8px; box-shadow: 0 12px 30px #13211f0d; }
.brand-nav .dropdown-item { padding: 9px 12px; border-radius: 6px; color: var(--brand-ink); }
.brand-nav .dropdown-item:hover { background: #f0f5f2; }
.program-pmmb { --program-color: #0d7a5f; --program-tint: #edf6f1; }
.program-pmme { --program-color: #4b63a1; --program-tint: #eef1f9; }
.landing-page { padding-top: 8px; }
.landing-intro { padding: 25px 0 36px; }
.section-label { color: var(--muted); font-size: .72rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.signal-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--brand-accent); margin-right: 7px; }
.landing-intro h1 { max-width: 850px; font-size: clamp(2.1rem, 4.3vw, 3.55rem); font-weight: 650; letter-spacing: -.045em; line-height: 1.1; margin: 0 0 18px; }
.landing-description { color: var(--muted); font-size: 1.05rem; line-height: 1.6; margin-bottom: 23px; }
.landing-search { display: flex; align-items: center; gap: 12px; max-width: 650px; padding: 7px 7px 7px 18px; background: #fff; border: 1px solid #d7e1db; border-radius: 12px; box-shadow: 0 3px 8px #13211f04; }
.landing-search > i { color: var(--muted); }
.landing-search input { min-width: 0; width: 100%; border: 0; background: transparent; outline: 0; padding: 8px 0; font-size: .95rem; }
.landing-search:focus-within { outline: 2px solid var(--brand-accent); outline-offset: 2px; }
.landing-search button { flex-shrink: 0; border: 0; border-radius: 8px; background: var(--brand-accent); color: #fff; font-size: .85rem; font-weight: 650; padding: 12px 17px; }
.landing-search button i { margin-left: 9px; }
.specialist-shortcut { display: inline-block; margin-top: 13px; color: var(--muted); font-size: .8rem; }
.specialist-shortcut strong { color: var(--specialist); font-weight: 600; }
.landing-section { margin-bottom: 34px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 15px; }
.section-heading h2 { font-size: 1.25rem; font-weight: 650; margin: 0; letter-spacing: -.02em; }
.section-heading p { font-size: .85rem; color: var(--muted); margin: 5px 0 0; }
.section-heading .section-label { display: block; margin-bottom: 8px; }
.quiet-link { color: var(--brand-accent); font-size: .85rem; font-weight: 600; white-space: nowrap; }
.quiet-link span { margin-left: 6px; }
.program-directory { background: #fff; border: 1px solid var(--line); border-radius: 15px; overflow: hidden; }
.program-row { display: grid; grid-template-columns: 1.6fr 1.25fr .65fr auto; align-items: center; gap: 22px; padding: 25px 24px; }
.program-row + .program-row { border-top: 1px solid var(--line); }
.program-main { display: flex; align-items: flex-start; gap: 13px; }
.program-symbol { display: inline-flex; align-items: center; justify-content: center; width: 43px; height: 43px; flex-shrink: 0; border-radius: 12px; background: var(--program-tint); color: var(--program-color); font-size: 1.15rem; }
.program-symbol svg, .course-icon svg { width: 22px; height: 22px; }
.program-caption { display: block; font-size: .68rem; font-weight: 650; color: var(--program-color, var(--muted)); margin-bottom: 4px; }
.program-main h3 { font-size: 1rem; line-height: 1.35; letter-spacing: -.015em; font-weight: 650; margin: 0 0 5px; }
.program-main p { font-size: .77rem; color: var(--muted); margin: 0; line-height: 1.45; }
.program-current { display: grid; justify-items: start; gap: 7px; }
.program-current > strong { font-size: .83rem; font-weight: 600; }
.registration-period, .program-current small { font-size: .72rem; color: var(--muted); line-height: 1.5; }
.call-badge { display: inline-flex; align-items: center; gap: 5px; font-size: .68rem; font-weight: 650; padding: 3px 7px; border-radius: 5px; }
.call-open { color: #246943; background: #edf6ed; }
.call-closed { color: #606a66; background: #edf0ee; border: 1px dashed #bfc8c3; }
.program-numbers { display: grid; gap: 2px; }
.program-numbers strong { font-size: 1.8rem; line-height: 1.15; font-weight: 650; letter-spacing: -.03em; }
.program-numbers span, .program-numbers small { font-size: .72rem; color: var(--muted); }
.program-action { display: grid; justify-items: end; gap: 10px; }
.program-button { color: var(--program-color); background: var(--program-tint); border: 1px solid transparent; border-radius: 8px; padding: 10px 13px; font-size: .8rem; font-weight: 650; white-space: nowrap; }
.program-button:hover { color: var(--program-color); border-color: var(--program-color); }
.program-button span { margin-left: 8px; }
.program-source { font-size: .72rem; color: var(--muted); }
.program-mobile-count { display: none; margin-top: 7px !important; }
.data-note { font-size: .73rem; color: var(--muted); line-height: 1.6; margin: 10px 0 0; }
.discovery-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.discovery-links > a { display: flex; align-items: center; gap: 12px; color: var(--brand-ink); border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; }
.discovery-links > a:hover { background: #fff; }
.discovery-icon { color: var(--muted); font-size: 1.2rem; }
.discovery-links strong { display: block; font-size: .86rem; font-weight: 600; }
.discovery-links small { display: block; margin-top: 4px; font-size: .76rem; color: var(--muted); }
.discovery-links > a > span:last-child { margin-left: auto; color: var(--muted); }
.editorial-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.editorial-card { display: flex; flex-direction: column; padding: 22px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.editorial-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 16px; }
.editorial-meta time { color: var(--muted); font-size: .7rem; }
.program-tag { display: inline-flex; background: var(--program-tint, #edf0ee); color: var(--program-color, var(--muted)); border-radius: 5px; padding: 4px 7px; font-size: .68rem; font-weight: 600; }
.editorial-card h3 { font-size: 1rem; font-weight: 600; line-height: 1.5; margin-bottom: 10px; }
.editorial-card h3 a { color: var(--brand-ink); }
.editorial-card p { font-size: .8rem; line-height: 1.6; color: var(--muted); }
.editorial-card > .quiet-link { margin-top: auto; }
.news-section { padding-block: 8px; }
.news-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 35px; }
.news-list article { display: flex; align-items: start; gap: 13px; padding-block: 14px; border-top: 1px solid var(--line); }
.news-list time { color: var(--muted); font-size: .75rem; padding-top: 2px; }
.news-list h3 { font-size: .85rem; line-height: 1.5; font-weight: 500; margin: 0; }
.news-list h3 a { color: var(--brand-ink); }
.membership-banner { display: flex; align-items: center; justify-content: space-between; gap: 24px; border-top: 1px solid var(--line); padding: 28px 0 0; }
.membership-banner h2 { font-size: 1.15rem; font-weight: 600; margin: 6px 0 8px; }
.membership-banner p { color: var(--muted); font-size: .82rem; max-width: 620px; margin: 0; }
.membership-banner .btn { font-size: .8rem; white-space: nowrap; }
@media (max-width: 1100px) { .program-row { grid-template-columns: 1.6fr 1.25fr auto; } .program-numbers { display: none; } .program-mobile-count { display: block; } }
@media (max-width: 767.98px) {
    .landing-intro { padding: 16px 2px 27px; }
    .landing-intro h1 { font-size: clamp(2rem, 7.8vw, 2.7rem); }
    .landing-description { font-size: .94rem; }
    .landing-search { padding-left: 12px; gap: 8px; }
    .landing-search input { font-size: .8rem; }
    .landing-search button { font-size: .75rem; padding: 11px; }
    .landing-search button i { display: none; }
    .specialist-shortcut { line-height: 1.6; }
    .section-heading h2 { font-size: 1.12rem; }
    .section-heading .quiet-link { font-size: .75rem; }
    .program-row { grid-template-columns: minmax(0, 1fr) auto; gap: 17px 12px; padding: 20px 17px; }
    .program-main { grid-column: 1 / -1; }
    .program-current { min-width: 0; }
    .program-action { align-self: end; gap: 9px; }
    .program-numbers { display: none; }
    .program-button { font-size: .75rem; padding: 10px; }
    .program-button span { margin-left: 2px; }
    .program-source { font-size: .67rem; }
    .program-main h3 { font-size: .98rem; }
    .program-main p { font-size: .75rem; }
    .discovery-links, .editorial-grid, .news-list { grid-template-columns: 1fr; gap: 12px; }
    .editorial-card { padding: 19px; }
    .membership-banner { flex-direction: column; align-items: flex-start; gap: 15px; }
}
@media (prefers-reduced-motion: reduce) { .btn:hover, .hover-lift:hover { transform: none; } }
:where(.landing-page, .specialist-browser, .city-overview) a:focus-visible,
:where(.landing-page, .specialist-browser, .city-overview) summary:focus-visible { outline: 3px solid var(--brand-accent); outline-offset: 3px; }

/* Course discovery and opportunities use the same context and filters. */
.call-details { background: #fff; border: 1px solid var(--line); border-radius: 13px; margin-bottom: 22px; }
.call-details > summary { list-style: none; cursor: pointer; padding: 21px 23px; border-radius: 13px; }
.call-details > summary::-webkit-details-marker { display: none; }
.call-details > summary:focus-visible { outline: 3px solid var(--program-color, var(--specialist)); outline-offset: 3px; }
.call-details-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.call-details-heading > span:first-child { display: grid; gap: 7px; }
.call-details-heading strong { font-size: 1rem; font-weight: 600; line-height: 1.5; }
.call-details-toggle { display: inline-flex; align-items: center; gap: 9px; color: var(--program-color, var(--specialist)); font-size: .76rem; white-space: nowrap; }
.call-details-context { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 13px; font-size: .76rem; color: var(--muted); }
.call-details-counts { display: block; color: var(--muted); font-size: .8rem; line-height: 1.6; margin-top: 10px; }
.call-details-hide, .call-details[open] .call-details-show { display: none; }
.call-details[open] .call-details-hide { display: inline; }
.call-details[open] .call-details-chevron { transform: rotate(180deg); }
.call-details-body { border-top: 1px solid var(--line); padding: 21px 23px; }
.call-details-title { font-size: .9rem; font-weight: 500; margin-bottom: 20px; }
.call-details-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 16px; margin: 0; }
.call-details-metrics dt { color: var(--muted); font-size: .73rem; font-weight: 500; }
.call-details-metrics dd { font-size: 1.65rem; font-weight: 600; margin: 4px 0 0; }
.call-details-dates { margin-top: 20px; color: var(--muted); font-size: .77rem; line-height: 1.6; }
.call-details-dates p { margin-bottom: 8px; }
@media (max-width: 575.98px) {
    .call-details > summary, .call-details-body { padding: 18px; }
    .call-details-heading { align-items: start; gap: 12px; }
    .call-details-toggle { font-size: .7rem; padding-top: 3px; }
    .call-details-heading strong { font-size: .9rem; }
}
.browse-heading { padding: 10px 0 25px; }
.browse-heading h1, .city-heading h1 { font-size: clamp(1.8rem, 3.5vw, 2.7rem); line-height: 1.15; font-weight: 650; letter-spacing: -.035em; margin: 8px 0 12px; }
.browse-heading > p:last-child { color: var(--muted); font-size: .95rem; }
.browse-controls { background: #fff; border: 1px solid var(--line); border-radius: 13px; padding: 21px 23px; margin-bottom: 27px; }
.browse-context { display: grid; grid-template-columns: 1fr .8fr 1.2fr; align-items: center; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--line); margin-bottom: 18px; }
.browse-controls label { font-size: .75rem; font-weight: 600; letter-spacing: 0; margin-bottom: 7px; }
.browse-controls .form-select, .browse-controls .form-control { font-size: .85rem; padding: 11px; border-radius: 8px; }
.browse-status { display: grid; gap: 8px; justify-items: start; }
.browse-filters { display: grid; grid-template-columns: 1.2fr .7fr 1fr 1fr auto; align-items: end; gap: 15px; }
.browse-filters.in-city { grid-template-columns: 1fr 1fr 1fr auto; }
.specialist-basic-filters { display: grid; grid-template-columns: 1.2fr .7fr 1fr auto; gap: 15px; align-items: end; }
.specialist-basic-filters.in-city { grid-template-columns: 1fr 1fr auto; }
.specialist-premium-filters { margin-top: 20px; padding: 17px; background: #fcfaf4; border: 1px solid #ebe2c9; border-radius: 10px; }
.specialist-premium-heading { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; font-size: .75rem; font-weight: 600; color: #89651a; margin-bottom: 15px; }
.specialist-premium-heading a { color: #89651a; }
.specialist-premium-fields { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 20px; }
.specialist-zero-filter { display: flex; align-items: center; gap: 10px; padding-top: 22px; }
.specialist-zero-filter label { margin-bottom: 0; }
.pmmb-premium-fields { grid-template-columns: 1fr 1fr 1fr; }
.pmmb-city-grid .course-icon { color: var(--program-color); background: var(--program-tint); }
.pmmb-city-grid .course-card:hover { border-color: var(--program-color); }
.pmmb-city-grid .course-action { color: var(--program-color); }
.pmmb-city-grid .pmmb-city-heading { display: flex; justify-content: space-between; align-items: center; }
.pmmb-city-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin: 0; }
.pmmb-city-metrics dt { color: var(--muted); font-size: .72rem; font-weight: 500; }
.pmmb-city-metrics dd { color: var(--brand-ink); font-size: 1.5rem; font-weight: 600; margin: 5px 0 0; }
.city-browser a:focus-visible { outline: 3px solid var(--program-color); outline-offset: 3px; }
.city-browser .browse-heading > p:not(.program-caption) { color: var(--muted); font-size: .93rem; }
@media (max-width: 991.98px) { .pmmb-premium-fields { grid-template-columns: 1fr; } .pmmb-premium-fields .specialist-zero-filter { padding-top: 0; } }
@media (max-width: 767.98px) { .specialist-basic-filters, .specialist-basic-filters.in-city, .specialist-premium-fields { grid-template-columns: 1fr; } .specialist-zero-filter { padding-top: 0; } }
.browse-sources { display: flex; flex-wrap: wrap; gap: 17px; margin-top: 18px; }
.browse-sources a { color: var(--muted); font-size: .72rem; }
.browse-sources a:hover { color: var(--program-color); }
.course-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; }
.course-card { display: flex; flex-direction: column; gap: 12px; border: 1px solid var(--line); border-radius: 12px; padding: 22px; background: #fff; color: var(--brand-ink); }
.course-card:hover { color: var(--brand-ink); border-color: var(--specialist); box-shadow: 0 3px 12px #4b63a10b; }
.course-icon { color: var(--specialist); width: 37px; height: 37px; border-radius: 10px; background: #eef1f9; display: flex; align-items: center; justify-content: center; }
.course-card h3 { font-size: 1rem; font-weight: 600; line-height: 1.5; margin: 0; }
.course-card p { color: var(--muted); font-size: .8rem; margin: 0; }
.course-card > div { display: flex; gap: 15px; font-size: .76rem; color: var(--muted); }
.course-card > div strong { color: var(--brand-ink); }
.course-action { display: flex; justify-content: space-between; border-top: 1px solid var(--line); padding-top: 13px; margin-top: auto; font-size: .8rem; font-weight: 600; color: var(--specialist); }
.opportunity-list { background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.opportunity-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 25px; padding: 22px; }
.opportunity-item + .opportunity-item { border-top: 1px solid var(--line); }
.opportunity-item h3 { font-size: 1rem; font-weight: 600; margin: 6px 0; }
.opportunity-item .quiet-link { font-size: .75rem; margin-top: 10px; display: inline-block; }
.opportunity-item dl { display: flex; gap: 25px; margin: 0; text-align: center; }
.opportunity-item dt { font-size: .7rem; color: var(--muted); font-weight: 500; }
.opportunity-item dd { font-size: 1.5rem; font-weight: 600; margin-bottom: 0; }
.quota-breakdown { grid-column: 1 / -1; font-size: .76rem; color: var(--muted); }
.quota-breakdown summary { cursor: pointer; color: var(--specialist); font-weight: 600; width: fit-content; }
.quota-grid { display: grid; grid-template-columns: minmax(100px, 1.5fr) repeat(2, 1fr); gap: 10px; padding: 17px 0 0; max-width: 500px; }
.quota-grid strong { color: var(--brand-ink); font-weight: 500; }
.municipality-links { padding: 18px 20px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font-size: .8rem; }
.municipality-links summary { cursor: pointer; color: var(--brand-ink); font-weight: 600; }
.municipality-links > div:not(.city-history-columns) { display: flex; flex-wrap: wrap; gap: 12px 24px; padding-top: 17px; }
.municipality-links a { color: var(--brand-accent); }
.empty-browse { padding: 30px; border: 1px dashed #d6dfd9; border-radius: 12px; color: var(--muted); }
.empty-browse h2, .empty-browse h3 { font-size: 1.05rem; color: var(--brand-ink); }
.empty-browse p { font-size: .85rem; }
.specialist-browser .pagination .page-link { border: 1px solid var(--line); border-radius: 8px; color: var(--specialist); background: #fff; }
.specialist-browser .pagination .active .page-link { background: var(--specialist); color: #fff; }
.quiet-breadcrumb { display: flex; gap: 9px; color: var(--muted); font-size: .78rem; margin: 12px 0 18px; }
.quiet-breadcrumb a { color: var(--muted); }
.city-heading h1 { margin-bottom: 7px; }
.city-heading h1 span { color: var(--muted); font-weight: 450; }
.city-heading p { font-size: .85rem; color: var(--muted); }
.city-tabs { display: flex; gap: 25px; border-bottom: 1px solid var(--line); margin: 23px 0 27px; }
.city-tabs a { font-size: .85rem; font-weight: 600; padding: 12px 0; color: var(--muted); border-bottom: 2px solid transparent; }
.city-tabs a > span { color: var(--program-color); font-size: .6rem; margin-right: 4px; }
.city-tabs a.selected, .public-page .city-tabs a.selected { color: var(--program-color, var(--brand-ink)); border-bottom-color: var(--program-color, var(--brand-ink)); }
.city-history { margin-top: 26px; }
.city-history-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding-top: 20px; }
.city-history h2 { font-size: .9rem; }
.city-history ul { padding: 0; list-style: none; }
.city-history li { padding: 10px 0; border-bottom: 1px solid var(--line); }
.city-history small { display: block; margin-top: 4px; color: var(--muted); line-height: 1.5; }
.city-reading-note { padding-top: 25px; max-width: 750px; }
.city-reading-note h2 { font-size: 1rem; font-weight: 600; }
.city-reading-note p { font-size: .85rem; line-height: 1.7; color: var(--muted); }
.public-page .call-card { background: #fff; border-radius: 12px; border-top: 3px solid var(--program-color); }
.public-page .call-card.closed { background: #f1f3f2; }

/* Persistent navigation and shared search. */
:root { --brand-gold: #ad842b; --gold-soft: #fbf6e8; }
html { scroll-padding-top: var(--sticky-header-height, 120px); }
.site-header { position: sticky; top: 0; z-index: 1030; background: var(--page-bg); margin-bottom: 24px; }
.site-header::before { content: ""; position: absolute; inset: 0; background: var(--page-bg); box-shadow: 0 0 0 100vmax var(--page-bg); clip-path: inset(0 -100vmax); z-index: -1; }
.brand-nav { position: relative; border-top: 2px solid #d9c27c; box-shadow: 0 5px 20px #13211f06; }
.header-layout { display: flex; flex-wrap: nowrap !important; gap: 8px; }
.header-layout .navbar-brand { flex-shrink: 0; font-size: 1rem; }
.header-search { flex: 1 1 360px; min-width: 260px; max-width: 420px; margin-right: 8px; }
.brand-nav .navbar-collapse { flex-grow: 0; margin-left: auto; }
.brand-nav .nav-link { font-size: .8rem; white-space: nowrap; padding-inline: 8px; }
.brand-nav .btn { padding: .45rem .7rem; font-size: .78rem; }
.header-profile { max-width: 75px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--brand-ink); font-size: .8rem; }
.brand-nav .nav-premium { color: #89651a; background: var(--gold-soft); border-radius: 7px; margin-left: 4px; }
.brand-nav .nav-premium span { color: var(--brand-gold); }
.brand-nav .navbar-toggler-icon { width: 1.2rem; height: 1.2rem; }
.smart-search { position: relative; width: 100%; }
.search-input-row { display: flex; gap: 6px; align-items: center; border: 1px solid #dbe3de; background: #fff; border-radius: 10px; padding: 4px; }
.search-input-row:focus-within { border-color: var(--brand-gold); box-shadow: 0 0 0 3px #d8bd741c; }
.search-input-row input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--brand-ink); padding: 5px 8px; font-size: .8rem; }
.search-input-row button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 0; border-radius: 7px; background: var(--brand-accent); color: #fff; padding: 7px 10px; font-weight: 600; font-size: .8rem; }
.search-compact .search-input-row { background: #f9fbfa; padding: 2px; }
.search-compact input { font-size: .82rem; padding: 5px 9px; }
.search-compact button { background: transparent; color: var(--brand-muted); padding: 5px 6px; }
.search-compact button span { display: none; }
.search-large { max-width: 760px; }
.hero-search-label { display: block; font-size: .83rem; font-weight: 600; margin: 26px 0 11px; }
.search-large .search-input-row { padding: 8px 8px 8px 14px; border: 1px solid #d7c48f; border-radius: 14px; box-shadow: 0 7px 24px #9977270c; }
.search-large input { font-size: 1rem; padding: 11px 8px; }
.search-large button { padding: 14px 19px; font-size: .87rem; flex-shrink: 0; }
.landing-hero { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, 1fr); align-items: center; gap: 44px; }
.landing-hero-main { min-width: 0; }
.landing-hero .landing-description { max-width: 620px; }
.landing-invitation { background: #fff; border: 1px solid var(--line); border-top: 3px solid #d4b568; border-radius: 14px; padding: 26px; }
.landing-invitation > .section-label { color: #997424; font-size: .68rem; }
.landing-invitation h2 { font-size: 1.35rem; font-weight: 600; line-height: 1.4; letter-spacing: -.025em; margin: 15px 0 12px; }
.landing-invitation > p { color: var(--muted); font-size: .82rem; line-height: 1.7; }
.landing-invitation ul { padding: 0; margin: 22px 0; display: grid; gap: 17px; list-style: none; }
.landing-invitation li { display: flex; gap: 10px; }
.landing-invitation li > span:first-child { color: var(--brand-accent); font-size: .85rem; }
.landing-invitation li strong { display: block; font-size: .8rem; font-weight: 600; margin-bottom: 5px; }
.landing-invitation li small { display: block; color: var(--muted); font-size: .74rem; line-height: 1.6; }
.landing-invitation > .btn { padding: 12px; font-size: .82rem; }
.landing-invitation .landing-invitation-login { font-size: .73rem; text-align: center; margin: 13px 0 0; }
.landing-invitation-login a { color: var(--brand-accent); font-weight: 600; }
@media (max-width: 991.98px) { .landing-hero { grid-template-columns: 1fr; gap: 26px; } .landing-invitation { max-width: 760px; } }
.search-suggestions { position: absolute; top: calc(100% + 7px); left: 0; width: min(440px, calc(100vw - 32px)); padding: 5px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 14px 35px #13211f1c; z-index: 1060; max-height: min(360px, 48vh); overflow-y: auto; }
.search-large .search-suggestions { width: 100%; }
.search-suggestions a { display: flex; gap: 10px; align-items: flex-start; border-radius: 8px; padding: 10px; color: var(--brand-ink); }
.search-suggestions a:hover, .search-suggestions a[aria-selected="true"] { background: #f1f6f3; }
.search-kind { background: var(--program-tint); color: var(--program-color); padding: 3px 5px; border-radius: 4px; font-size: .62rem; flex-shrink: 0; }
.search-suggestions strong { display: block; font-size: .8rem; font-weight: 600; line-height: 1.4; }
.search-suggestions small { display: block; color: var(--muted); font-size: .68rem; margin-top: 3px; }
.search-empty { padding: 12px; margin: 0; color: var(--muted); font-size: .8rem; }
.search-page-results { margin-top: 24px; display: grid; gap: 10px; }
.search-page-result { display: flex; gap: 15px; align-items: center; padding: 17px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--brand-ink); }
.search-page-result small { display: block; font-size: .75rem; color: var(--muted); margin-top: 4px; }
.search-page-result > span:last-child { margin-left: auto; }

/* A member's home: their city, profile and official result history. */
.landing-intro h1.member-title { font-size: clamp(1.8rem, 3.4vw, 2.7rem); }
.member-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.member-card { padding: 22px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.member-card .section-heading { align-items: center; }
.member-card .section-heading h2 { font-size: 1.1rem; }
.member-count { font-size: .75rem; background: var(--gold-soft); color: #89651a; border-radius: 5px; padding: 3px 6px; vertical-align: middle; }
.member-city-programs { display: grid; gap: 10px; margin: 22px 0; }
.member-city-programs > a { display: flex; align-items: center; gap: 12px; padding: 13px 0; border-top: 1px solid var(--line); color: var(--brand-ink); }
.member-city-programs strong { display: block; font-size: .85rem; font-weight: 600; }
.member-city-programs small { display: block; font-size: .72rem; color: var(--muted); margin-top: 4px; }
.member-city-programs > a > span:last-child { margin-left: auto; color: var(--program-color); }
.recent-applications { display: grid; gap: 0; }
.recent-application { display: flex; align-items: flex-start; gap: 10px; padding: 12px 0; border-top: 1px solid var(--line); color: var(--brand-ink); }
.recent-application .program-tag { flex-shrink: 0; }
.recent-application strong { display: block; font-size: .83rem; font-weight: 600; }
.recent-application small { display: block; font-size: .7rem; color: var(--muted); margin-top: 4px; }
.recent-application > span:last-child { margin-left: auto; color: var(--program-color); }
.member-empty { padding: 15px 0; font-size: .85rem; }
.member-empty p { color: var(--muted); font-size: .78rem; margin-top: 9px; }
.member-premium { grid-column: 1 / -1; display: flex; align-items: center; gap: 14px; padding: 16px 20px; border: 1px solid #ebdfbb; background: var(--gold-soft); border-radius: 10px; }
.member-premium > span { color: var(--brand-gold); font-size: 1.5rem; }
.member-premium strong { font-size: .86rem; font-weight: 600; }
.member-premium p { font-size: .76rem; color: #786b49; margin: 3px 0 0; }
.member-premium > a { margin-left: auto; font-size: .8rem; font-weight: 650; color: #89651a; white-space: nowrap; }
.personal-result { display: flex; flex-wrap: wrap; gap: 20px; }
.personal-result small { display: block; color: var(--muted); font-size: .73rem; margin-bottom: 5px; }
.personal-result strong { font-size: .9rem; }

/* Published specialist results. No live-signup or approval prediction. */
.specialist-results { margin-block: 22px 30px; }
.result-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.result-metrics article { padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.result-metrics article > span { display: block; color: var(--muted); font-size: .75rem; }
.result-metrics strong { display: block; font-size: 1.6rem; font-weight: 600; margin: 8px 0 3px; }
.result-metrics small { font-size: .68rem; color: var(--muted); }
.result-distributions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.result-distributions > span { padding: 5px 8px; border: 1px solid var(--line); border-radius: 5px; color: var(--muted); font-size: .7rem; background: #fff; }
.result-distributions strong { color: var(--brand-ink); margin-left: 4px; }
.results-details { margin-top: 18px; border: 1px solid var(--line); border-radius: 11px; background: #fff; overflow: hidden; }
.results-details > summary { cursor: pointer; padding: 17px 20px; font-size: .86rem; font-weight: 600; color: var(--specialist); }
.results-details > summary > span { font-weight: 450; color: var(--muted); font-size: .75rem; margin-left: 10px; }
.results-filters { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr auto; align-items: end; gap: 10px; padding: 0 18px 16px; }
.results-filters label { font-size: .72rem !important; }
.results-filters select { font-size: .75rem; padding: 8px; }
.result-table { font-size: .78rem; --bs-table-bg: transparent; }
.result-table th { color: var(--muted); font-size: .7rem; font-weight: 600; background: #f7f9f8; }
.result-table td, .result-table th { padding: 12px 15px; }
.result-table caption { padding: 10px 15px; color: var(--muted); font-size: .72rem; }
.result-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 20px; padding: 15px; font-size: .8rem; }
.result-pagination a { color: var(--specialist); }
.results-access { display: flex; align-items: center; gap: 17px; padding: 22px; background: #fff; border: 1px solid var(--line); border-radius: 11px; }
.results-access-icon { color: var(--specialist); font-size: 1.7rem; }
.results-access h3 { font-size: 1rem; margin: 0 0 7px; }
.results-access p { color: var(--muted); font-size: .82rem; margin: 0; }
.results-access .program-button { margin-left: auto; }

/* Candidate history uses the shared program colors and card structure. */
.applications-heading { display: flex; justify-content: space-between; align-items: start; gap: 20px; }
.applications-heading > div > p:last-child { color: var(--muted); font-size: .93rem; max-width: 690px; margin-bottom: 0; }
.applications-print { border: 1px solid var(--line); background: #fff; border-radius: 8px; padding: 9px 13px; font-size: .78rem; white-space: nowrap; }
.applications-print i { margin-right: 5px; }
.applications-context { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; border: 1px solid var(--line); background: #fff; border-radius: 10px; padding: 15px 18px; color: var(--muted); font-size: .78rem; }
.applications-context > span:first-child { color: var(--brand-ink); }
.applications-context > a { margin-left: auto; }
.applications-program { margin-top: 30px; }
.applications-list { display: grid; gap: 16px; }
.application-card { background: #fff; border: 1px solid var(--line); border-left: 3px solid var(--program-color); border-radius: 12px; padding: 22px; }
.application-card-heading { display: flex; justify-content: space-between; align-items: start; gap: 15px; }
.application-card-heading .call-badge { flex-shrink: 0; }
.application-round { color: var(--muted); font-size: .74rem; margin-bottom: 7px; }
.application-card h3 { font-size: 1.07rem; font-weight: 600; line-height: 1.45; margin: 0; }
.application-location { color: var(--muted); font-size: .8rem; line-height: 1.6; margin: 9px 0 0; }
.application-metrics { display: grid; grid-template-columns: 1.5fr repeat(4, 1fr); gap: 16px; border-top: 1px solid var(--line); padding-top: 18px; margin: 18px 0; }
.application-metrics dt { color: var(--muted); font-size: .73rem; font-weight: 500; margin-bottom: 6px; }
.application-metrics dd { font-size: .95rem; font-weight: 600; line-height: 1.5; margin: 0; overflow-wrap: anywhere; }
.application-status dd { font-size: .83rem; }
.application-card-actions { display: flex; justify-content: space-between; align-items: center; gap: 15px; border-top: 1px solid var(--line); padding-top: 17px; }
.application-card-actions > .quiet-link { font-size: .77rem; }
.applications-empty { margin-top: 28px; background: #fff; }
.applications-empty-icon { display: block; font-size: 1.8rem; margin-bottom: 18px; color: var(--brand-gold); }
.applications-empty > p { max-width: 640px; }
.applications-empty > div { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin-top: 20px; font-size: .8rem; }
.applications-page a:focus-visible, .applications-print:focus-visible { outline: 3px solid var(--program-color, var(--brand-accent)); outline-offset: 3px; }
@media (max-width: 767.98px) {
    .applications-heading { flex-wrap: wrap; gap: 14px; }
    .applications-context > a { margin-left: 0; }
    .application-card { padding: 18px; }
    .application-card-heading { flex-wrap: wrap; gap: 10px; }
    .application-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 22px; }
    .application-status { grid-column: 1 / -1; }
    .application-card-actions { align-items: start; flex-direction: column; }
    .applications-program > .section-heading { align-items: start; flex-wrap: wrap; }
}
@media print {
    .applications-print, .applications-context > a, .application-card-actions, .applications-program > .section-heading > a { display: none; }
    .application-card { break-inside: avoid; }
}

/* Profile settings keep account and plan information in quiet, readable cards. */
.profile-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.profile-sidebar { display: grid; gap: 20px; min-width: 0; }
.profile-page .member-card h2 { font-size: 1.05rem; font-weight: 600; margin-bottom: 12px; }
.profile-page .member-card p { color: var(--muted); font-size: .82rem; line-height: 1.65; }
.profile-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
.profile-field-wide { grid-column: 1 / -1; }
.profile-page label { font-size: .78rem; font-weight: 600; margin-bottom: 8px; }
.profile-fields .form-control { padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; font-size: .85rem; }
.profile-fields select { padding-right: 22px; }
.profile-fields .form-control:disabled { color: var(--muted); background: #f2f5f3; }
.profile-lock-note { display: flex; align-items: start; gap: 10px; padding: 14px; margin-top: 20px; border-radius: 8px; background: var(--gold-soft); }
.profile-lock-note i { color: var(--brand-gold); margin-top: 4px; font-size: .8rem; }
.profile-lock-note p { margin: 0; }
.profile-lock-note a { color: var(--brand-accent); }
.profile-identity { display: grid; gap: 16px; margin-bottom: 20px; }
.profile-identity dt { color: var(--muted); font-size: .75rem; font-weight: 500; }
.profile-identity dd { color: var(--brand-ink); font-size: .87rem; margin: 4px 0 0; overflow-wrap: anywhere; }
.profile-sidebar .quiet-link { font-size: .8rem; }
.profile-plan { border-top: 3px solid #d4b568; }
.profile-plan .premium-label { margin-bottom: 14px; }
.profile-plan .program-button { display: inline-block; margin-top: 14px; white-space: normal; }
.profile-validity { display: grid; gap: 5px; padding: 14px 0; border-block: 1px solid var(--line); margin: 16px 0; }
.profile-validity span, .profile-validity small { font-size: .75rem; color: var(--muted); }
.profile-validity strong { font-size: 1.1rem; font-weight: 600; }
.profile-referral { background: #fcfaf4; }
.profile-referral h2 { margin-top: 7px; }
.profile-referral-input { display: flex; gap: 8px; }
.profile-referral-input input { width: 100%; min-width: 0; padding: 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-size: .75rem; }
.profile-referral-input button { font-size: .78rem; }
.profile-page a:focus-visible, .profile-page button:focus-visible { outline: 3px solid var(--brand-accent); outline-offset: 3px; }
@media (max-width: 991.98px) { .profile-layout { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .profile-fields { grid-template-columns: 1fr; } }

/* National monitoring keeps the reference separate from notice vacancies. */
.monitoring-heading { display: flex; justify-content: space-between; align-items: start; gap: 24px; }
.monitoring-heading > div > p:last-child { max-width: 650px; color: var(--muted); font-size: .93rem; }
.monitoring-reference { min-width: 230px; padding-top: 8px; }
.monitoring-reference label, .monitoring-reference small { display: block; color: var(--muted); font-size: .75rem; margin-bottom: 8px; }
.monitoring-reference small { margin-top: 8px; }
.monitoring-reference .form-select { font-size: .85rem; border-color: var(--line); border-radius: 8px; }
.monitoring-notice { display: flex; gap: 12px; padding: 15px 18px; background: var(--gold-soft); border: 1px solid #ebdfbb; border-radius: 10px; margin-bottom: 22px; }
.monitoring-notice > span { color: var(--brand-gold); }
.monitoring-notice p { font-size: .82rem; line-height: 1.65; margin: 0; color: var(--muted); }
.monitoring-page a { text-decoration: none; }
.monitoring-notice a, .monitoring-table a { color: var(--brand-accent); }
.monitoring-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.monitoring-kpis h2 { color: var(--muted); font-size: .78rem; font-weight: 500; margin: 0 0 14px; }
.monitoring-kpis article > strong { font-size: clamp(1.5rem, 2.5vw, 2.25rem); font-weight: 600; letter-spacing: -.03em; }
.monitoring-kpis p { font-size: .73rem; line-height: 1.5; color: var(--muted); margin: 7px 0 0; }
.monitoring-vacant { border-top: 3px solid #d4b568; }
.monitoring-state-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; }
.monitoring-state-card { display: block; padding: 21px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--brand-ink); }
.monitoring-state-card:hover { border-color: var(--brand-accent); color: var(--brand-ink); }
.monitoring-state-top, .monitoring-state-rate { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.monitoring-state-top h3 { font-size: 1.35rem; font-weight: 600; margin: 0; }
.monitoring-state-top > span { font-size: .76rem; color: var(--muted); }
.monitoring-state-top strong { color: #89651a; font-size: 1.15rem; }
.monitoring-state-rate { font-size: .75rem; margin-top: 20px; color: var(--muted); }
.monitoring-state-card progress { width: 100%; height: 6px; display: block; margin-top: 8px; border: 0; border-radius: 4px; overflow: hidden; background: #edf2ef; accent-color: var(--brand-accent); }
.monitoring-state-card progress::-webkit-progress-bar { background: #edf2ef; }
.monitoring-state-card progress::-webkit-progress-value { background: var(--brand-accent); }
.monitoring-state-card p { font-size: .72rem; color: var(--muted); margin: 12px 0 18px; }
.monitoring-state-action { display: flex; justify-content: space-between; color: var(--brand-accent); font-size: .78rem; font-weight: 600; border-top: 1px solid var(--line); padding-top: 14px; }
.monitoring-evolution { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 22px; }
.monitoring-chart { height: 300px; }
.monitoring-evolution > *, .monitoring-kpis > * { min-width: 0; }
.monitoring-chart canvas { max-width: 100%; }
.monitoring-comparison h2 { font-size: 1.05rem; font-weight: 600; margin-top: 13px; }
.monitoring-comparison p { color: var(--muted); font-size: .82rem; line-height: 1.65; }
.monitoring-comparison > .quiet-link { display: block; font-size: .8rem; margin-top: 20px; }
.monitoring-change { display: block; font-size: 1.8rem; font-weight: 600; margin: 18px 0; }
.monitoring-table { border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.monitoring-table table { min-width: 700px; font-size: .8rem; }
.monitoring-table th, .monitoring-table td { padding: 15px; border-color: var(--line); }
.monitoring-table thead th { background: #f5f8f6; font-weight: 600; color: var(--muted); }
.monitoring-table caption { padding: 12px 15px; font-size: .72rem; }
.monitoring-city-links { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.monitoring-access { display: inline-flex; align-items: center; gap: 10px; padding: 11px 13px; border: 1px solid #ebdfbb; border-radius: 8px; background: var(--gold-soft); font-size: .78rem; font-weight: 600; }
.monitoring-access > i { color: var(--brand-gold); }
.monitoring-access small { display: block; font-size: .69rem; font-weight: 400; color: var(--muted); margin-top: 4px; }
.monitoring-access:hover { border-color: var(--brand-gold); }
.monitoring-reading > div { display: block !important; }
.monitoring-reading p { color: var(--muted); line-height: 1.7; margin-bottom: 12px; }
.monitoring-page a:focus-visible { outline: 3px solid var(--brand-accent); outline-offset: 3px; }
@media (max-width: 991.98px) { .monitoring-state-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .monitoring-evolution { grid-template-columns: 1fr; } }
@media (max-width: 767.98px) { .monitoring-heading { flex-direction: column; gap: 14px; } .monitoring-reference { width: 100%; } .monitoring-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .monitoring-kpis .member-card { padding: 17px; } }
@media (max-width: 575.98px) { .monitoring-state-grid { grid-template-columns: 1fr; } }

/* Sign-in and registration share the account experience. */
.auth-page { max-width: 1150px; margin-inline: auto; }
.auth-login { max-width: 1050px; }
.auth-page .browse-heading > p:last-child { max-width: 720px; }
.auth-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: start; gap: 34px; }
.auth-login .auth-layout { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
.auth-form-card { padding: 28px; }
.auth-form-card > h2 { font-size: 1.15rem; font-weight: 600; margin: 0 0 24px; }
.auth-required-note { color: var(--muted); font-size: .73rem; margin: -12px 0 24px; }
.auth-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
.auth-fields-single { grid-template-columns: 1fr; }
.auth-field-wide, .auth-group-heading { grid-column: 1 / -1; }
.auth-field label { display: block; font-size: .78rem; font-weight: 600; margin-bottom: 8px; }
.auth-required { color: var(--muted); font-weight: 400; }
.auth-field .form-control, .auth-field .form-select { border: 1px solid var(--line); border-radius: 8px; padding: 11px 12px; font-size: .87rem; }
.auth-field .form-select { padding-right: 34px; }
.auth-field-help { color: var(--muted); font-size: .72rem; line-height: 1.6; margin-top: 10px; }
.auth-field-help ul { padding-left: 17px; margin-bottom: 0; }
.auth-group-heading { border-top: 1px solid var(--line); padding-top: 22px; margin-top: 3px; }
.auth-group-heading h3 { font-size: .9rem; font-weight: 600; margin-bottom: 7px; }
.auth-group-heading p { color: var(--muted); font-size: .77rem; line-height: 1.65; margin: 0; }
.auth-submit { display: block; width: 100%; padding: 12px; font-size: .85rem; margin-top: 25px; }
.auth-forgot { display: block; margin: 16px 0 0 auto; border: 0; background: transparent; padding: 0; font-size: .77rem; }
.auth-switch { border-top: 1px solid var(--line); padding-top: 20px; margin: 23px 0 0; color: var(--muted); font-size: .8rem; text-align: center; line-height: 1.7; }
.auth-switch a { color: var(--brand-accent); font-weight: 600; }
.auth-benefits { border: 1px solid #ebe2c9; border-top: 3px solid #d4b568; border-radius: 13px; padding: 27px; background: #fcfaf4; }
.auth-benefits > .section-label { color: #89651a; font-size: .68rem; }
.auth-benefits h2 { font-size: 1.55rem; font-weight: 600; letter-spacing: -.03em; line-height: 1.35; margin: 16px 0; }
.auth-benefits > p { color: var(--muted); font-size: .83rem; line-height: 1.7; }
.auth-benefits ul { list-style: none; display: grid; gap: 22px; padding: 0; margin: 26px 0; }
.auth-benefits li { display: flex; gap: 11px; font-size: .78rem; line-height: 1.65; color: var(--muted); }
.auth-benefits li > span:first-child { color: var(--brand-accent); }
.auth-benefits li strong { display: block; font-weight: 600; color: var(--brand-ink); margin-bottom: 5px; }
.auth-benefits .quiet-link { font-size: .77rem; white-space: normal; }
.auth-page a:focus-visible, .auth-page button:focus-visible { outline: 3px solid var(--brand-accent); outline-offset: 3px; }
.auth-recovery { border: 1px solid var(--line); border-radius: 12px; }
@media (max-width: 991.98px) { .auth-layout, .auth-login .auth-layout { grid-template-columns: 1fr; gap: 22px; } .auth-page { max-width: 720px; } }
@media (max-width: 575.98px) { .auth-fields { grid-template-columns: 1fr; } .auth-form-card, .auth-benefits { padding: 22px; } }

/* City-first PMM-E overview: call results and current practice have separate scopes. */
.city-specialist-intro { padding: 0 0 22px; }
.city-specialist-intro h2 { font-size: 1.45rem; font-weight: 600; letter-spacing: -.025em; margin: 10px 0; }
.city-specialist-intro > p:last-child { color: var(--muted); font-size: .88rem; line-height: 1.7; }
.city-specialist-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.city-specialist-kpis > article, .city-specialist-kpis > a { display: grid; align-content: start; gap: 9px; color: var(--brand-ink); }
.city-specialist-kpis span, .city-specialist-kpis small { font-size: .74rem; line-height: 1.6; color: var(--muted); }
.city-specialist-kpis strong { font-size: 2rem; font-weight: 600; }
.city-specialist-active-link { border-top: 3px solid #d4b568; }
.city-specialist-active-link:hover { border-color: var(--specialist); }
.city-specialist-courses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.city-course-summary { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.city-course-summary h3 { font-size: 1.03rem; line-height: 1.55; font-weight: 600; margin: 0; }
.city-course-numbers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; }
.city-course-numbers dt { font-size: .72rem; color: var(--muted); font-weight: 500; }
.city-course-numbers dd { font-size: 1.45rem; font-weight: 600; margin: 5px 0 0; }
.city-course-performance { display: flex; flex-wrap: wrap; gap: 15px 30px; padding-top: 15px; border-top: 1px solid var(--line); }
.city-course-performance span { color: var(--muted); font-size: .73rem; display: block; }
.city-course-performance strong { display: block; font-size: 1.05rem; font-weight: 600; margin-top: 5px; }
.city-course-summary > .data-note { margin: 0; }
.city-course-summary .course-action { margin-top: auto; }
.city-specialists .opportunity-item > dl { flex-wrap: wrap; gap: 15px 24px; }
.city-specialists .opportunity-item > dl dd { font-size: 1.2rem; }
.city-active-table { border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.city-active-table table { min-width: 1050px; font-size: .78rem; }
.city-active-table th, .city-active-table td { padding: 16px; border-color: var(--line); }
.city-active-table thead th { color: var(--muted); background: #f5f7fa; font-weight: 600; }
.city-active-table td > strong { font-size: .78rem; font-weight: 600; }
.city-active-table td > small { display: block; color: var(--muted); font-size: .7rem; line-height: 1.6; margin-top: 5px; }
.city-active-table caption { padding: 12px 16px; color: var(--muted); font-size: .7rem; }
.city-active-status { display: inline-block; color: #89651a; background: var(--gold-soft); padding: 5px 8px; border-radius: 6px; font-size: .7rem; }
.city-active-upgrade { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 22px; margin-top: 16px; border: 1px solid #e7dcc0; border-radius: 12px; background: #fcfaf4; }
.city-active-upgrade h3 { font-size: 1rem; font-weight: 600; margin: 9px 0; }
.city-active-upgrade p { color: var(--muted); font-size: .8rem; line-height: 1.7; margin: 0; max-width: 650px; }
.city-specialists a:focus-visible { outline: 3px solid var(--specialist); outline-offset: 3px; }
.city-specialists .quiet-link { white-space: normal; }
.city-active-section, #city-courses, #course-opportunities { scroll-margin-top: calc(var(--sticky-header-height, 110px) + 20px); }
@media (max-width: 991.98px) { .city-specialist-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .city-active-upgrade { flex-direction: column; align-items: start; } }
@media (max-width: 767.98px) { .city-specialist-courses { grid-template-columns: 1fr; } .city-specialists .opportunity-item { grid-template-columns: 1fr; } .city-specialists .opportunity-item > dl { justify-content: start; text-align: left; } }
@media (max-width: 575.98px) { .city-specialist-kpis { gap: 12px; } .city-specialist-kpis .member-card { padding: 17px; } .city-specialist-kpis strong { font-size: 1.7rem; } }

/* Premium follows the shared typography and restrained gold accents. */
.premium-page { padding-top: 14px; }
.premium-intro { max-width: 760px; margin-bottom: 32px; }
.premium-label { display: inline-flex; align-items: center; gap: 7px; color: #8b681e; background: var(--gold-soft); padding: 6px 10px; border: 1px solid #ebdfbb; border-radius: 6px; font-size: .75rem; font-weight: 600; margin-bottom: 18px; }
.premium-label > span { color: var(--brand-gold); }
.premium-intro h1 { font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.12; letter-spacing: -.035em; font-weight: 650; margin-bottom: 18px; }
.premium-intro > p { color: var(--muted); font-size: 1rem; line-height: 1.65; margin-bottom: 18px; max-width: 680px; }
.premium-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(310px, .85fr); gap: 32px; align-items: start; }
.premium-content { min-width: 0; }
.premium-section { margin-bottom: 32px; }
.premium-features { background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.premium-features article { display: flex; gap: 16px; padding: 21px; }
.premium-features article + article { border-top: 1px solid var(--line); }
.premium-feature-icon { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 9px; color: #997424; background: var(--gold-soft); font-size: .75rem; font-weight: 600; }
.premium-features h3 { font-size: 1rem; font-weight: 600; margin: 0 0 8px; }
.premium-features p { font-size: .83rem; line-height: 1.65; color: var(--muted); margin: 0; }
.premium-plan { position: sticky; top: calc(var(--sticky-header-height, 90px) + 10px); padding: 25px; border: 1px solid #e7dcc0; border-top: 3px solid #d4b568; border-radius: 13px; background: #fff; }
.premium-plan-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.premium-plan-top > span:first-child { color: var(--brand-gold); font-size: 1.5rem; }
.premium-plan-top > span:last-child { font-size: .71rem; color: var(--muted); }
.premium-plan h2 { font-size: 1.35rem; line-height: 1.35; font-weight: 650; margin: 10px 0; letter-spacing: -.02em; }
.premium-plan-description { color: var(--muted); font-size: .84rem; line-height: 1.6; }
.premium-price { display: flex; align-items: baseline; gap: 7px; margin: 21px 0 2px; }
.premium-price > span { font-size: 1.1rem; color: var(--muted); }
.premium-price > strong { font-size: 3rem; line-height: 1.1; font-weight: 650; letter-spacing: -.045em; }
.premium-duration { font-size: .82rem; margin: 6px 0 12px; }
.premium-payment { font-size: .73rem; color: var(--muted); margin-bottom: 20px; }
.premium-plan > .btn { font-size: .83rem; padding: 12px; }
.premium-secure { text-align: center; font-size: .7rem; color: var(--muted); margin: 10px 0 0; }
.premium-plan-includes { list-style: none; padding: 20px 0; margin: 20px 0 0; border-top: 1px solid var(--line); display: grid; gap: 12px; }
.premium-plan-includes li { display: flex; gap: 9px; font-size: .8rem; }
.premium-plan-includes li > span { color: var(--brand-accent); }
.premium-plan-note { background: #faf8f1; border-radius: 8px; padding: 13px; }
.premium-plan-note strong { font-size: .75rem; font-weight: 600; }
.premium-plan-note p { color: var(--muted); font-size: .72rem; line-height: 1.6; margin: 6px 0 0; }
.premium-plan-secondary { display: block; text-align: center; color: var(--brand-accent); font-size: .8rem; margin-top: 15px; }
.premium-validity { font-size: .82rem; margin-block: 20px; color: var(--muted); }
.premium-validity strong { color: var(--brand-ink); }
.premium-comparison { background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.premium-comparison table { min-width: 520px; font-size: .76rem; --bs-table-bg: transparent; }
.premium-comparison thead th { padding: 15px 12px; font-weight: 600; color: var(--muted); background: #f7f9f8; white-space: nowrap; }
.premium-comparison tbody th { font-weight: 500; min-width: 200px; }
.premium-comparison tbody th, .premium-comparison tbody td { padding: 15px 12px; border-color: var(--line); }
.premium-comparison th:last-child, .premium-comparison td:last-child { background: #fbf7eb; color: #86651e; font-weight: 600; }
.premium-comparison caption { padding: 12px; color: var(--muted); font-size: .7rem; }
.premium-faq details { border-bottom: 1px solid var(--line); padding: 16px 0; }
.premium-faq summary { cursor: pointer; font-size: .88rem; font-weight: 600; }
.premium-faq details p { color: var(--muted); font-size: .82rem; line-height: 1.7; margin: 12px 0 0; }
.premium-faq details a { color: var(--brand-accent); }
@media (max-width: 991.98px) {
    .premium-layout { grid-template-columns: 1fr; gap: 26px; }
    .premium-plan { position: static; order: -1; }
    .premium-intro { margin-bottom: 25px; }
}
@media (max-width: 575.98px) {
    .premium-page { padding-top: 5px; }
    .premium-plan { padding: 21px; }
    .premium-intro h1 { font-size: 2rem; }
    .premium-intro > p { font-size: .9rem; }
    .premium-features article { padding: 18px; gap: 12px; }
    .premium-features h3 { font-size: .93rem; }
}
:where(.premium-page) a:focus-visible, :where(.premium-page) summary:focus-visible { outline: 3px solid var(--brand-accent); outline-offset: 3px; }
@media (max-width: 1199.98px) {
    .header-layout { flex-wrap: wrap !important; gap: 6px; }
    .header-search { order: 5; flex-basis: 100%; max-width: none; min-width: 0; margin-right: 0; }
    .brand-nav .navbar-collapse { order: 4; flex-basis: 100%; max-height: calc(100dvh - 145px); overflow-y: auto; }
    .brand-nav .nav-link { padding-block: 9px; }
    .mobile-account { order: 2; }
    .brand-nav .navbar-toggler { order: 3; }
    .brand-nav .nav-premium { width: fit-content; margin-left: 0; }
    .search-compact input { font-size: .78rem; }
}
@media (max-width: 767.98px) {
    .member-overview { grid-template-columns: 1fr; }
    .member-card { padding: 18px; }
    .member-premium { flex-wrap: wrap; padding: 16px; gap: 9px 13px; }
    .member-premium > div { flex: 1; }
    .member-premium > a { margin-left: 32px; }
    .result-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .result-metrics article { padding: 15px; }
    .results-filters { grid-template-columns: 1fr 1fr; }
    .results-filters > div:first-child { grid-column: 1 / -1; }
    .results-filters > button { width: fit-content; }
    .results-access { flex-wrap: wrap; padding: 18px; }
    .results-access > div { flex: 1; }
    .results-access .program-button { margin-left: 39px; }
    .search-large input { font-size: .88rem; padding: 11px 3px; }
    .search-large button { font-size: .78rem; padding: 12px; }
    .search-large .search-input-row { padding: 6px 6px 6px 10px; }
    .hero-search-label { font-size: .78rem; }
    .landing-invitation { padding: 22px; }
    .landing-hero .specialist-shortcut { line-height: 1.7; }
}
@media (max-width: 991.98px) {
    .course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .browse-filters, .browse-filters.in-city { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .browse-filters > div:first-child { grid-column: 1 / -1; }
    .browse-filters > button { justify-self: start; }
}
@media (max-width: 767.98px) {
    .browse-context { grid-template-columns: 1fr 1fr; gap: 14px; }
    .browse-status { grid-column: 1 / -1; }
    .browse-filters, .browse-filters.in-city { grid-template-columns: 1fr; gap: 13px; }
    .browse-controls { padding: 17px; }
    .course-grid { grid-template-columns: 1fr; }
    .course-card { padding: 19px; }
    .course-card > .course-icon { display: none; }
    .city-tabs { justify-content: space-between; gap: 9px; }
    .city-tabs a { font-size: .76rem; }
    .city-history-columns { grid-template-columns: 1fr; }
    .opportunity-item { padding: 18px; gap: 15px; }
    .opportunity-item dl { gap: 15px; }
    .city-directory .program-row { gap: 15px; }
}

/* City program dashboards share one visual language and compact activity tables. */
.city-active-table table { min-width: 800px; }
.city-active-table .status-active { color: #21674f; background: #eaf5ef; }
.city-active-table .status-ending { color: #82601d; background: #fbf3dc; }
.city-active-table .status-review { color: #9a493c; background: #faeee9; }
.city-active-table .status-extended { color: #4b63a1; background: #edf0f9; }
.city-active-table .status-unknown { color: #69736e; background: #f0f3f1; }
.city-active-status { white-space: nowrap; }
.city-panorama .quiet-link { white-space: normal; }
.city-panorama a:focus-visible { outline: 3px solid var(--brand-accent); outline-offset: 3px; }
.city-pmmb-scope { display: flex; align-items: end; gap: 18px; margin-top: 18px; }
.city-pmmb-scope > div { max-width: 330px; flex: 1; }
.city-pmmb-scope label { display: block; font-size: .76rem; font-weight: 600; margin-bottom: 7px; }
.city-territory-note { margin-top: 20px; padding: 15px; border: 1px solid #e7dcc0; border-radius: 10px; background: #fcfaf4; }
.city-pmmb-breakdowns { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 20px 0; }
.city-pmmb-breakdowns h3, .city-monitoring-card h3 { font-size: 1rem; font-weight: 600; margin: 0 0 15px; }
.city-distribution + .city-distribution { margin-top: 16px; }
.city-distribution > div:first-child { display: flex; justify-content: space-between; font-size: .78rem; margin-bottom: 7px; }
.city-distribution-track { height: 6px; border-radius: 5px; background: #edf2ef; overflow: hidden; }
.city-distribution-track > span { display: block; height: 100%; background: #4b9980; border-radius: 5px; }
.city-monitoring-card + .city-monitoring-card { margin-top: 15px; }
.city-monitoring-numbers { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; margin: 20px 0; }
.city-monitoring-numbers dt { font-size: .75rem; color: var(--muted); font-weight: 500; }
.city-monitoring-numbers dd { font-size: 1.6rem; font-weight: 600; margin: 6px 0 0; }
#city-results { scroll-margin-top: calc(var(--sticky-header-height, 110px) + 20px); }
@media (max-width: 767.98px) {
    .city-pmmb-breakdowns { grid-template-columns: 1fr; }
    .city-monitoring-numbers { grid-template-columns: 1fr 1fr; }
    .city-pmmb-scope { flex-wrap: wrap; }
    .city-pmmb-scope > div { flex-basis: 100%; max-width: none; }
}

.city-specialists .opportunity-item[id] { scroll-margin-top: calc(var(--sticky-header-height, 110px) + 20px); }


/* Program panoramas and recommendation cards use the shared city typography. */
.analysis-page .browse-heading { margin-bottom: 24px; }
.analysis-page .member-card h3 { font-size: 1.08rem; line-height: 1.5; font-weight: 600; margin: 8px 0 12px; }
.analysis-page .landing-section > h2 { font-size: 1.35rem; font-weight: 600; margin: 20px 0 12px; }
.analysis-page .landing-section > p { color: var(--muted); font-size: .85rem; line-height: 1.7; }
.analysis-page .member-card > p:not(.program-caption) { font-size: .83rem; line-height: 1.65; }
.analysis-page .member-card .program-button { display: inline-block; margin-top: 12px; }
.analysis-page .city-specialist-courses { margin-bottom: 18px; }
.analysis-page .browse-filters { padding-bottom: 16px; }

/* PMM-E: a single activity snapshot, with accessible charts and geographic links. */
.specialist-panorama .snapshot-month { display: block; font-size: 1.5rem; font-weight: 600; margin: 8px 0; }
.snapshot-charts { display: grid; grid-template-columns: 1fr 1.2fr; gap: 22px; margin-top: 26px; }
.snapshot-chart { min-width: 0; }
.snapshot-chart .section-heading h2 { font-size: 1.12rem; }
.snapshot-chart .section-heading p { font-size: .78rem; }
.snapshot-bars { list-style: none; padding: 0; margin: 0; display: grid; gap: 19px; }
.snapshot-state-bars { max-height: 560px; overflow-y: auto; padding-right: 8px; }
.snapshot-bar-label { display: flex; justify-content: space-between; align-items: start; gap: 15px; font-size: .78rem; line-height: 1.6; margin-bottom: 7px; }
.snapshot-bar-label > span:last-child { flex-shrink: 0; }
.snapshot-bar-label small { color: var(--muted); font-size: .7rem; margin-left: 5px; }
.snapshot-bar-track { height: 8px; border-radius: 5px; background: #eef1f6; overflow: hidden; }
.snapshot-bar-track > span { display: block; height: 100%; border-radius: 5px; background: #788bc2; }
.snapshot-bar-link { display: block; color: var(--brand-ink); padding: 5px; border-radius: 7px; }
.snapshot-bar-link:hover { background: var(--program-tint); color: var(--program-color); }
.snapshot-bar-link:hover .snapshot-bar-track > span { background: var(--program-color); }
.snapshot-timing { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.snapshot-timing article { display: grid; gap: 10px; }
.snapshot-timing article > span, .snapshot-timing small { color: var(--muted); font-size: .76rem; }
.snapshot-timing strong { font-size: 1.8rem; font-weight: 600; }
.snapshot-timing .snapshot-timing-extended .snapshot-bar-track > span { background: #c4a45e; }
.snapshot-timing .snapshot-timing-review .snapshot-bar-track > span { background: #b98671; }
.snapshot-timing .snapshot-timing-unknown .snapshot-bar-track > span { background: #9ca8a0; }
.snapshot-course-list { margin-bottom: 28px; }
.specialist-panorama a:focus-visible, .specialist-panorama summary:focus-visible { outline: 3px solid var(--program-color); outline-offset: 3px; }
@media (max-width: 991.98px) { .snapshot-charts { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .snapshot-timing { grid-template-columns: 1fr 1fr; } .snapshot-bar-label { font-size: .74rem; } }


/* Personal applications: explicit call scope and comparable ranking changes. */
.applications-filter { display: flex; align-items: end; flex-wrap: wrap; gap: 14px; padding: 18px; margin-bottom: 18px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.applications-filter > div { flex: 1; min-width: 220px; }
.applications-filter label { display: block; font-size: .76rem; font-weight: 600; margin-bottom: 7px; }
.applications-filter .quiet-link { padding: 10px 0; }
.application-progress { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; padding: 13px 15px; margin: 0 0 17px; border-radius: 8px; background: #f1f4f2; }
.application-progress strong { font-size: .8rem; font-weight: 600; }
.application-progress > span { font-size: .75rem; line-height: 1.6; color: var(--muted); }
.application-progress.progress-up { background: #edf6f1; color: #21674f; }
.application-progress.progress-down { background: #faefec; color: #944d40; }
.application-progress.progress-same { color: #52635a; }
@media print { .applications-filter { display: none; } }


/* Each personal application keeps round snapshots inside one card. */
.application-result-source { color: var(--muted); font-size: .76rem; margin: 13px 0 0; }
.application-result-source strong { color: var(--brand-ink); font-weight: 600; }
.application-missing { border: 1px solid #e8dbb7; background: #fcf9ef; border-radius: 9px; padding: 14px 16px; margin-top: 15px; }
.application-missing strong { font-size: .8rem; color: #806220; }
.application-missing p, .application-pending { font-size: .76rem; line-height: 1.7; color: var(--muted); margin: 7px 0 0; }
.application-history { margin-bottom: 17px; border-top: 1px solid var(--line); padding-top: 15px; }
.application-history summary { cursor: pointer; font-size: .78rem; font-weight: 600; }
.application-history summary span { font-weight: 400; color: var(--muted); margin-left: 10px; }
.application-history table { min-width: 420px; font-size: .75rem; margin: 14px 0 0; }
.application-history th { color: var(--muted); font-weight: 500; }
.application-history td, .application-history th { padding: 12px 8px; border-color: var(--line); }
.application-history summary:focus-visible { outline: 3px solid var(--program-color); outline-offset: 3px; }
