/* Scoped public directory and shared provider details. No global theme overrides. */
.pp-page, .pp-workspace {
    --pp-ink: #18233b; --pp-muted: #66738a; --pp-border: #e4e8f0;
    --pp-bg: #f7f8fc; --pp-surface: #fff; --pp-primary: #4f46e5; --pp-tint: #eef0ff;
    color: var(--pp-ink);
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.65;
}
.pp-page *, .pp-page *::before, .pp-page *::after, .pp-workspace *, .pp-workspace *::before, .pp-workspace *::after { box-sizing: border-box; }
.pp-page { background: var(--pp-bg); }
.pp-page [hidden], .pp-workspace [hidden] { display: none !important; }
.pp-wrap { width: min(1180px, calc(100% - 64px)); margin-inline: auto; }
.pp-icon { display: inline-block; width: 20px; height: 20px; flex-shrink: 0; vertical-align: middle; }
.pp-page a { color: var(--pp-primary); text-decoration: none; }
.pp-page a:hover { text-decoration: none; }
.pp-page :is(a, button, input, textarea, select):focus-visible { outline: 3px solid #818cf8; outline-offset: 4px; }
.pp-page h1, .pp-page h2, .pp-page h3 { color: var(--pp-ink); font-family: inherit; font-weight: 750; letter-spacing: -.035em; line-height: 1.2; }
.pp-page h1 { font-size: clamp(32px, 3.8vw, 46px); margin: 0 0 22px; overflow-wrap: anywhere; }
.pp-page h2 { font-size: 27px; margin: 0 0 12px; }
.pp-page h3 { font-size: 18px; margin: 0; }
.pp-page p { margin: 0; }
.pp-eyebrow { display: flex; align-items: center; gap: 8px; font-size: 10px; font-weight: 750; letter-spacing: .12em; color: var(--pp-primary); margin: 0 0 16px !important; line-height: 1.6; }
.pp-eyebrow-dot { width: 6px; height: 6px; border-radius: 50%; background: #6366f1; box-shadow: 0 0 0 4px #6366f112; }
.pp-hero { position: relative; padding: 132px 0 54px; border-bottom: 1px solid var(--pp-border); background: radial-gradient(ellipse at 25% 0, #e9edff 0, transparent 65%), linear-gradient(110deg, #fafbff, #f4f6fc); }
.pp-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 68px; align-items: center; }
.pp-hero-copy h1 span { color: #777e9a; }
.pp-lead { max-width: 600px; color: var(--pp-muted); font-size: 16px; line-height: 1.8; margin-bottom: 26px !important; }
.pp-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.pp-button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; border: 1px solid transparent; border-radius: 8px; padding: 11px 18px; background: #4f46e5; color: #fff !important; font: inherit; font-size: 13px; font-weight: 650; line-height: 1.5; cursor: pointer; transition: background .15s, box-shadow .15s; text-decoration: none !important; }
.pp-button:hover { background: #4338ca; box-shadow: 0 4px 12px #4f46e51a; }
.pp-button .pp-icon { width: 17px; height: 17px; }
.pp-secondary { color: var(--pp-ink) !important; border-color: var(--pp-border); background: var(--pp-surface); }
.pp-secondary:hover { background: var(--pp-tint); border-color: #c7c9ed; }
.pp-hero-footnote { display: flex; flex-wrap: wrap; gap: 8px 18px; color: var(--pp-muted); font-size: 11px; margin-top: 22px; }
.pp-hero-footnote span { display: inline-flex; align-items: center; gap: 7px; }
.pp-hero-footnote span::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: #929cb4; }
.pp-community-card { padding: 28px; border: 1px solid #e0e5f5; background: var(--pp-surface); border-radius: 15px; box-shadow: 0 12px 35px #293e7606; }
.pp-icon-tile { display: inline-flex; width: 44px; height: 44px; border-radius: 12px; align-items: center; justify-content: center; background: var(--pp-tint); color: var(--pp-primary); margin-bottom: 22px; }
.pp-icon-tile .pp-icon { width: 23px; height: 23px; }
.pp-community-card .pp-eyebrow { font-size: 9px; margin-bottom: 9px !important; }
.pp-community-card h2 { font-size: 22px; }
.pp-community-card > p:not(.pp-eyebrow) { color: var(--pp-muted); font-size: 13px; line-height: 1.8; margin-bottom: 20px; }
.pp-community-link { display: inline-flex; align-items: center; gap: 9px; font-size: 12px; font-weight: 650; }
.pp-community-link .pp-icon { width: 14px; height: 14px; }
.pp-main { padding-block: 42px 64px; scroll-margin-top: 96px; }
.pp-section-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.pp-section-heading .pp-eyebrow { margin-bottom: 7px !important; }
.pp-section-heading h2 { margin-bottom: 0; }
.pp-result-count { color: var(--pp-muted); font-size: 12px; }
.pp-result-count strong { color: var(--pp-ink); }
.pp-result-count span { margin-left: 5px; }
.pp-filter-bar { display: flex; gap: 14px; align-items: center; padding: 15px 19px; border: 1px solid var(--pp-border); border-radius: 11px; background: var(--pp-surface); margin-bottom: 24px; }
.pp-filter-label { display: flex; align-items: center; gap: 10px; color: var(--pp-muted); font-size: 13px; margin-right: auto; }
.pp-filter-control { position: relative; min-width: 210px; }
.pp-filter-control label { position: absolute; top: -7px; left: 10px; padding-inline: 4px; font-size: 9px; font-weight: 650; background: var(--pp-surface); color: var(--pp-muted); }
.pp-page select, .pp-page textarea { font: inherit; color: var(--pp-ink); border: 1px solid var(--pp-border); border-radius: 7px; background: var(--pp-surface); }
.pp-page select { width: 100%; padding: 10px 30px 10px 12px; font-size: 12px; min-height: 44px; }
.pp-clear-link { font-size: 12px; white-space: nowrap; padding-block: 8px; }
.pp-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.pp-card { background: var(--pp-surface); border: 1px solid var(--pp-border); border-radius: 13px; padding: 27px; min-width: 0; overflow-wrap: anywhere; }
.pp-provider-card { display: flex; flex-direction: column; padding: 23px; transition: border-color .2s, box-shadow .2s; }
.pp-provider-card:hover { border-color: #c5c9ee; box-shadow: 0 6px 24px #28336509; }
.pp-card-heading { display: flex; gap: 13px; align-items: center; margin-bottom: 20px; min-width: 0; }
.pp-card-heading > div { min-width: 0; }
.pp-card-heading h3 { font-size: 17px; line-height: 1.4; }
.pp-card-heading h3 a { color: var(--pp-ink); }
.pp-avatar { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid #dfe2fa; border-radius: 12px; background: linear-gradient(135deg, #f0f2ff, #e9edff); color: #4f46e5; font-size: 20px; font-weight: 750; flex-shrink: 0; }
.pp-card-caption { font-size: 10px; color: var(--pp-muted); }
.pp-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.pp-tags span { padding: 3px 8px; border: 1px solid var(--pp-border); border-radius: 5px; font-size: 10px; font-weight: 600; color: var(--pp-muted); background: var(--pp-bg); }
.pp-summary { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-size: 12px; color: var(--pp-muted); line-height: 1.85; margin: 16px 0 20px !important; }
.pp-card-coverage { display: flex; align-items: start; gap: 8px; margin-top: auto; font-size: 11px; color: var(--pp-ink); }
.pp-card-coverage .pp-icon { width: 15px; height: 15px; color: var(--pp-muted); margin-top: 2px; }
.pp-card-facts { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 10px; font-size: 10px; color: var(--pp-muted); }
.pp-card-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 14px; border-top: 1px solid var(--pp-border); padding-top: 18px; margin-top: 20px; }
.pp-card-price { display: flex; flex-direction: column; font-size: 11px; color: var(--pp-muted); }
.pp-card-price small { font-size: 9px; margin-bottom: 4px; }
.pp-card-price strong { font-size: 13px; color: var(--pp-ink); font-weight: 650; }
.pp-card-action { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 650; }
.pp-card-action .pp-icon { width: 15px; height: 15px; }
.pp-empty { display: flex; flex-direction: column; align-items: center; text-align: center; border: 1px solid var(--pp-border); border-radius: 13px; background: var(--pp-surface); padding: 42px 28px 0; overflow: hidden; }
.pp-empty-icon { display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; border: 1px solid #e3e7fb; border-radius: 18px; color: var(--pp-primary); background: var(--pp-tint); margin-bottom: 22px; }
.pp-empty-icon .pp-icon { width: 29px; height: 29px; }
.pp-empty h2 { font-size: 24px; max-width: 520px; }
.pp-empty > p:not(.pp-eyebrow) { max-width: 530px; font-size: 13px; color: var(--pp-muted); line-height: 1.85; margin: 0 0 23px; }
.pp-empty > .pp-actions { justify-content: center; margin-bottom: 35px; }
.pp-empty-steps { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px 28px; width: calc(100% + 56px); padding: 18px; border-top: 1px solid var(--pp-border); background: var(--pp-bg); color: var(--pp-muted); font-size: 11px; }
.pp-empty-steps b { color: #8b90ad; font-weight: 600; margin-right: 6px; font-size: 10px; }
.pp-empty-steps i { font-style: normal; color: #b9bfce; }
.pp-notice { display: flex; align-items: start; gap: 12px; padding: 20px 2px; color: var(--pp-muted); font-size: 11px; line-height: 1.8; }
.pp-notice .pp-icon { width: 17px; height: 17px; margin-top: 2px; }
.pp-build { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 32px 36px; background: var(--pp-surface); border: 1px solid var(--pp-border); border-radius: 13px; margin-top: 20px; }
.pp-build .pp-eyebrow { margin-bottom: 8px !important; }
.pp-build h2 { font-size: 23px; }
.pp-build p:not(.pp-eyebrow) { max-width: 610px; color: var(--pp-muted); font-size: 13px; }
.pp-build > .pp-button { flex-shrink: 0; }
.pp-pagination { display: flex; align-items: center; justify-content: center; gap: 18px; padding-top: 26px; font-size: 12px; color: var(--pp-muted); }
.pp-profile-hero { padding: 110px 0 30px; background: linear-gradient(120deg, #f7f8ff, #f0f3fc); border-bottom: 1px solid var(--pp-border); }
.pp-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; color: var(--pp-muted); font-size: 11px; margin-bottom: 32px; }
.pp-breadcrumb a { color: var(--pp-muted); }
.pp-profile-identity { display: flex; align-items: center; gap: 22px; }
.pp-profile-identity > div { min-width: 0; }
.pp-profile-identity h1 { margin-bottom: 14px; font-size: 38px; }
.pp-profile-identity .pp-eyebrow { margin-bottom: 8px !important; }
.pp-avatar-large { width: 76px; height: 76px; border-radius: 18px; font-size: 31px; }
.pp-updated { font-size: 11px; color: var(--pp-muted); margin-top: 24px !important; }
.pp-profile-main { padding-block: 30px 60px; }
.pp-profile-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 24px; align-items: start; }
.pp-overview { padding: 30px; }
.pp-overview .pp-section-heading { align-items: center; gap: 10px; }
.pp-overview h2 { font-size: 22px; }
.pp-source-label { font-size: 10px; color: var(--pp-muted); background: var(--pp-bg); border: 1px solid var(--pp-border); border-radius: 5px; padding: 4px 8px; }
.pp-description { color: var(--pp-muted); font-size: 13px; line-height: 1.9; white-space: pre-line; margin: 20px 0 25px !important; }
.pp-detail-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; margin: 0 0 32px; }
.pp-detail-list > div { border-top: 1px solid var(--pp-border); padding: 15px 0; min-width: 0; }
.pp-detail-list dt { font-size: 10px; font-weight: 500; color: var(--pp-muted); margin-bottom: 5px; }
.pp-detail-list dd { font-size: 12px; font-weight: 600; margin: 0; color: var(--pp-ink); overflow-wrap: anywhere; }
.pp-content-heading { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 16px; }
.pp-content-heading h3 { font-size: 17px; font-weight: 650; letter-spacing: -.02em; margin: 0; }
.pp-content-heading > span { font-size: 10px; color: var(--pp-muted); }
.pp-coverage { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; list-style: none; padding: 0; margin: 0; }
.pp-coverage li { display: flex; align-items: start; gap: 11px; padding: 13px; border: 1px solid var(--pp-border); border-radius: 8px; min-width: 0; }
.pp-country-code { display: inline-flex; justify-content: center; align-items: center; width: 31px; height: 31px; border-radius: 6px; background: var(--pp-bg); color: var(--pp-muted); font-size: 9px; font-weight: 700; flex-shrink: 0; }
.pp-coverage li div { min-width: 0; }
.pp-coverage strong { display: block; font-size: 11px; font-weight: 650; }
.pp-coverage li div > span { display: block; color: var(--pp-muted); font-size: 10px; margin-top: 3px; overflow-wrap: anywhere; }
.pp-profile-aside { position: sticky; top: 96px; min-width: 0; }
.pp-contact { display: flex; flex-direction: column; gap: 12px; border-top: 3px solid #6366f1; }
.pp-contact .pp-eyebrow { margin-bottom: 0 !important; }
.pp-contact h2 { font-size: 23px; margin-bottom: 5px; }
.pp-contact-price { padding-block: 16px; border-block: 1px solid var(--pp-border); margin-block: 4px; }
.pp-contact-price > span { font-size: 10px; color: var(--pp-muted); }
.pp-contact-price p { margin-top: 3px; }
.pp-contact-price strong { font-size: 23px; letter-spacing: -.03em; }
.pp-contact-price p span { color: var(--pp-muted); font-size: 12px; }
.pp-contact > p:not(.pp-eyebrow) { font-size: 12px; color: var(--pp-muted); margin-bottom: 8px; }
.pp-share-area { text-align: center; border-top: 1px solid var(--pp-border); padding-top: 15px; margin-top: 6px; }
.pp-text-button { display: inline-flex; align-items: center; gap: 7px; border: 0; background: none; color: var(--pp-muted); padding: 8px; font: inherit; font-size: 11px; cursor: pointer; min-height: 40px; }
.pp-text-button .pp-icon { width: 15px; height: 15px; }
.pp-share-status { display: block; font-size: 10px; color: var(--pp-primary); }
.pp-sidebar-note { font-size: 11px; line-height: 1.8; color: var(--pp-muted); padding: 18px 4px; }
.pp-report-link { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; color: var(--pp-muted) !important; margin: 0 4px; }
.pp-report-link .pp-icon { width: 14px; height: 14px; }
.pp-muted { color: var(--pp-muted); font-size: 12px; }
.pp-success { padding: 16px 20px; border: 1px solid #c5e6d5; background: #eefaf3; border-radius: 9px; color: #247450; margin-bottom: 24px; font-size: 13px; }
.pp-report-page { padding: 116px 24px 64px; }
.pp-report-wrap { max-width: 680px; margin: auto; }
.pp-back-link { display: inline-block; margin-bottom: 24px; font-size: 12px; }
.pp-report-card { padding: 36px; }
.pp-report-card h1 { font-size: 32px; }
.pp-report-card > p:not(.pp-eyebrow) { color: var(--pp-muted); font-size: 13px; margin-bottom: 28px; }
.pp-report-card label { font-size: 12px; font-weight: 650; }
.pp-page textarea { width: 100%; display: block; padding: 14px; font-size: 13px; resize: vertical; margin: 9px 0; min-height: 140px; }
.pp-field-help { color: var(--pp-muted); font-size: 11px; line-height: 1.7; }
.pp-report-actions { display: flex; justify-content: space-between; align-items: center; margin-top: 25px; font-size: 12px; }
.pp-error { color: #b42337; background: #fff3f4; border: 1px solid #f4cfd5; border-radius: 8px; padding: 14px 18px; font-size: 12px; margin-bottom: 20px; }
.pp-error ul { list-style: disc; padding-left: 17px; margin: 0; }
.pp-page .validation-summary-valid, .pp-workspace .validation-summary-valid { display: none; }
.pp-submitting::before { content: ""; display: inline-block; width: 12px; height: 12px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; margin-right: 7px; vertical-align: middle; animation: pp-spin .7s linear infinite; }
@keyframes pp-spin { to { transform: rotate(360deg); } }
html.dark .pp-page, html[data-theme="dark"] .pp-workspace {
    --pp-ink: #e7ecf6; --pp-muted: #a6b1c7; --pp-border: #2d3850; --pp-bg: #141e30;
    --pp-surface: #1b273c; --pp-primary: #b0baff; --pp-tint: #252f4d;
}
html.dark .pp-hero, html.dark .pp-profile-hero { background: linear-gradient(115deg, #19243d, #141e30); }
html.dark .pp-hero-copy h1 span { color: #a6b4d9; }
html.dark .pp-community-card { border-color: var(--pp-border); }
html.dark .pp-avatar { background: #27314e; color: #b0baff; border-color: #3a4562; }
html.dark .pp-empty-icon { border-color: var(--pp-border); }
html.dark .pp-success { background: #1c3c31; border-color: #2e5b48; color: #a3e1be; }
html.dark .pp-error { background: #3c2431; border-color: #623344; color: #ffb1bf; }
@media (max-width: 1050px) {
    .pp-hero-grid { grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; }
    .pp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pp-profile-grid { grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; }
    .pp-overview { padding: 23px; }
    .pp-coverage { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .pp-wrap { width: calc(100% - 36px); }
    .pp-hero { padding: 110px 0 32px; }
    .pp-hero-grid, .pp-profile-grid { grid-template-columns: 1fr; }
    .pp-hero-grid { gap: 28px; }
    .pp-page h1 { font-size: 34px; }
    .pp-lead { font-size: 14px; }
    .pp-community-card { padding: 22px; }
    .pp-community-card .pp-icon-tile { float: left; margin: 0 15px 0 0; width: 38px; height: 38px; }
    .pp-community-card h2 { font-size: 20px; }
    .pp-community-card > p:not(.pp-eyebrow) { clear: both; padding-top: 14px; margin-bottom: 12px; }
    .pp-main { padding-top: 30px; }
    .pp-section-heading { gap: 10px; margin-bottom: 18px; }
    .pp-section-heading h2 { font-size: 23px; }
    .pp-filter-bar { flex-wrap: wrap; gap: 13px 10px; padding: 16px; }
    .pp-filter-label { width: 100%; margin: 0 0 3px; }
    .pp-filter-control { flex: 1; min-width: 120px; }
    .pp-grid { grid-template-columns: 1fr; }
    .pp-provider-card { padding: 23px; }
    .pp-empty { padding: 30px 20px 0; }
    .pp-empty h2 { font-size: 23px; }
    .pp-empty-steps { flex-direction: column; gap: 11px; width: calc(100% + 40px); text-align: left; padding: 18px 26px; }
    .pp-empty-steps i { display: none; }
    .pp-build { flex-direction: column; align-items: start; gap: 22px; padding: 24px; }
    .pp-build h2 { font-size: 22px; }
    .pp-profile-hero { padding: 100px 0 26px; }
    .pp-profile-identity { gap: 15px; align-items: start; }
    .pp-avatar-large { width: 54px; height: 54px; border-radius: 13px; font-size: 24px; }
    .pp-profile-identity h1 { font-size: 29px; }
    .pp-profile-identity .pp-eyebrow { font-size: 8px; }
    .pp-breadcrumb { margin-bottom: 25px; }
    .pp-profile-aside { position: static; }
    .pp-overview { padding: 23px; }
    .pp-overview h2 { font-size: 21px; }
    .pp-report-page { padding: 100px 18px 44px; }
    .pp-report-card { padding: 24px; }
    .pp-report-card h1 { font-size: 29px; }
}
@media (prefers-reduced-motion: reduce) {
    .pp-page *, .pp-workspace * { transition: none !important; animation: none !important; }
}
