/* v28 premium product typography and dashboard readability */

.app-authenticated {
    font-family: "Segoe UI Variable Text", "Segoe UI", Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 15px;
    line-height: 1.55;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.app-authenticated button,
.app-authenticated input,
.app-authenticated select,
.app-authenticated textarea { font: inherit; }

.app-authenticated .site-header .brand { font-size: 22px; }
.app-authenticated .app-main-nav>a:not(.button) {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    padding-inline: 14px;
    font-size: 14px;
    font-weight: 720;
}
.app-authenticated .nav-create-button { min-height: 44px; padding-inline: 17px; font-size: 13px; }
.app-authenticated .account-menu>summary { min-height: 46px; padding: 6px 9px; }
.app-authenticated .account-avatar { width: 34px; height: 34px; flex-basis: 34px; font-size: 13px; }
.app-authenticated .account-copy strong { font-size: 12px; line-height: 1.25; }
.app-authenticated .account-copy small { margin-top: 2px; font-size: 10px; line-height: 1.25; }
.app-authenticated .account-menu-label { font-size: 10px; }
.app-authenticated .account-menu-panel>a,
.app-authenticated .account-menu-panel form>button { min-height: 52px; }
.app-authenticated .account-menu-panel strong { font-size: 12px; }
.app-authenticated .account-menu-panel small { margin-top: 2px; font-size: 10px; line-height: 1.4; }
.app-authenticated .app-footer { font-size: 12px; }

.app-authenticated .builder-form label,
.app-authenticated .structured-editor label { font-size: 14px; }
.app-authenticated .builder-form input[type=text],
.app-authenticated .builder-form input[type=email],
.app-authenticated .builder-form input[type=tel],
.app-authenticated .builder-form input[type=url],
.app-authenticated .builder-form input[type=password],
.app-authenticated .builder-form input[type=datetime-local],
.app-authenticated .builder-form select,
.app-authenticated .builder-form textarea { font-size: 15px; line-height: 1.5; }
.app-authenticated .field-help,
.app-authenticated .professional-tip,
.app-authenticated .mode-guidance p,
.app-authenticated .context-help p { font-size: 12px; line-height: 1.6; }
.app-authenticated .app-heading h1 { font-size: 50px; line-height: 1; }
.app-authenticated .app-heading>div>p { font-size: 14px; line-height: 1.65; }
.app-authenticated .panel-head h2 { font-size: 27px; }
.app-authenticated .panel-head>a,
.app-authenticated .text-link,
.app-authenticated .button { font-size: 13px; }
.app-authenticated .stat-grid span { font-size: 12px; }
.app-authenticated .stat-grid small,
.app-authenticated .data-table small { font-size: 11px; line-height: 1.45; }
.app-authenticated .data-table strong { font-size: 14px; }
.app-authenticated .builder-step legend strong,
.app-authenticated .design-section-head>strong { font-size: 16px; }
.app-authenticated .builder-step legend small,
.app-authenticated .design-section-head>small,
.app-authenticated .advanced-design summary small,
.app-authenticated .scan-safety-note span { font-size: 11px; line-height: 1.55; }
.app-authenticated .type-grid span { min-height: 40px; font-size: 12px; }
.app-authenticated .choice small { font-size: 11px; }
.app-authenticated .choice em { font-size: 10px; }
.app-authenticated .visual-choice-label,
.app-authenticated .center-badge-divider,
.app-authenticated .logo-workbench-actions { font-size: 11px; }
.app-authenticated .visual-option-grid button>strong,
.app-authenticated .badge-option-grid button>strong,
.app-authenticated .template-card>strong { font-size: 12px; }
.app-authenticated .visual-option-grid button>small,
.app-authenticated .design-template-section .template-card>small { font-size: 10px; line-height: 1.4; }

.dashboard-page {
    --dash-caption: 10px;
    --dash-label: 11px;
    --dash-copy: 12px;
    --dash-body: 14px;
    color: var(--dash-ink);
    font-size: 15px;
    line-height: 1.5;
}

.dashboard-page h1,
.dashboard-page h2,
.dashboard-page h3,
.dashboard-page strong { text-wrap: balance; }
.dashboard-page small,
.dashboard-page span,
.dashboard-page p { overflow-wrap: anywhere; }
.dashboard-page strong,
.dashboard-page b,
.dashboard-page time,
.dashboard-page .pulse-number,
.dashboard-page .dashboard-kpi,
.dashboard-page .performance-highlights,
.dashboard-page .audience-values,
.dashboard-page .country-row,
.dashboard-page .city-card-metrics,
.dashboard-page .health-total,
.dashboard-page .health-legend { font-variant-numeric: tabular-nums; }

.dashboard-page .section-number {
    margin-bottom: 8px;
    font-size: 11px;
    font-weight: 850;
    line-height: 1.25;
    letter-spacing: .13em;
}

.dashboard-command { min-height: 382px; padding: 54px 56px; }
.dashboard-overline { font-size: 12px; }
.dashboard-command-copy h1 { font-size: clamp(52px, 5.1vw, 76px); line-height: .95; }
.dashboard-command-copy>p { max-width: 610px; font-size: 16px; line-height: 1.7; }
.dashboard-command-actions .button { min-height: 50px; padding-inline: 22px; font-size: 14px; }
.dashboard-text-link { min-height: 44px; font-size: 13px; }
.dashboard-command-pulse { padding: 25px; }
.pulse-topline { font-size: 11px; line-height: 1.35; }
.pulse-number>span { font-size: 12px; }
.pulse-number>strong { margin-top: 3px; font-size: 64px; }
.pulse-number>small { font-size: 11px; line-height: 1.4; }
.pulse-footer small { font-size: 10px; line-height: 1.35; }
.pulse-footer strong { margin-top: 4px; font-size: 17px; }

.dashboard-plan { min-height: 70px; padding: 16px 20px; }
.dashboard-plan-state small { font-size: 10px; line-height: 1.3; }
.dashboard-plan-state strong { margin-top: 2px; font-size: 14px; }
.dashboard-plan-badge { padding: 5px 9px; font-size: 10px; }
.dashboard-plan-message strong { font-size: 13px; }
.dashboard-plan-message span { margin-top: 4px; font-size: 12px; line-height: 1.5; }
.dashboard-plan>a { min-height: 42px; padding: 9px 12px; font-size: 12px; }

.dashboard-onboarding { padding: 23px 25px; }
.dashboard-onboarding h2 { font-size: 19px; }
.dashboard-onboarding p { margin-top: 5px; font-size: 12px; line-height: 1.5; }
.dashboard-onboarding-progress small { margin-top: 8px; font-size: 11px; }
.dashboard-onboarding li { min-height: 56px; padding: 10px; }
.dashboard-onboarding li>i { width: 28px; height: 28px; flex-basis: 28px; font-size: 11px; }
.dashboard-onboarding li strong { font-size: 11px; line-height: 1.3; }
.dashboard-onboarding li small { margin-top: 3px; font-size: 10px; line-height: 1.35; }

.dashboard-kpi { min-height: 112px; grid-template-columns: 44px 1fr auto; gap: 14px; padding: 21px; }
.dashboard-kpi-icon { width: 44px; height: 44px; border-radius: 13px; font-size: 18px; }
.dashboard-kpi div small { font-size: 11px; line-height: 1.35; }
.dashboard-kpi div strong { margin-top: 5px; font-size: 34px; }
.dashboard-kpi p { font-size: 12px; line-height: 1.35; }
.dashboard-kpi p span { margin-top: 2px; font-size: 10px; line-height: 1.35; }

.dashboard-panel { padding: 29px; }
.dashboard-panel-head h2 { font-size: 28px; line-height: 1.08; }
.dashboard-panel-head p { margin-top: 7px; font-size: 12px; line-height: 1.55; }
.dashboard-panel-head>a { min-height: 40px; align-items: center; margin-top: 2px; font-size: 12px; }
.dashboard-date-pill { min-height: 38px; padding: 8px 12px; font-size: 11px; }
.dashboard-range-switch { gap: 4px; padding: 5px; }
.dashboard-range-switch a { min-width: 42px; min-height: 36px; font-size: 10px; }

.performance-highlights { gap: 42px; margin-top: 28px; }
.performance-highlights small { font-size: 10px; line-height: 1.35; }
.performance-highlights strong { margin-top: 4px; font-size: 17px; }
.chart-series-key { gap: 20px; margin-top: -25px; font-size: 10px; }
.chart-series-key i,
.geo-legend i { width: 13px; height: 7px; }
.chart-series-key i.unique,
.geo-legend i.unique { height: 4px; }
.dashboard-chart { grid-template-columns: 42px minmax(0, 1fr); height: 290px; }
.chart-y-axis { padding-right: 10px; font-size: 10px; }
.chart-column>b { min-width: 132px; padding: 10px 12px; border-radius: 10px; font-size: 11px; line-height: 1.4; }
.chart-column>b strong { font-size: 12px; }
.chart-column>b span { margin-top: 3px; font-size: 10px; }
.chart-column>b small { margin-top: 4px; font-size: 10px; }
.chart-column>small { top: calc(100% + 8px); font-size: 9px; }
.dashboard-chart-empty strong { font-size: 14px; }
.dashboard-chart-empty p { margin-top: 6px; font-size: 11px; line-height: 1.55; }

.audience-ring-row { grid-template-columns: 116px 1fr; gap: 19px; padding: 18px; }
.audience-ring { width: 104px; height: 104px; }
.audience-ring strong { font-size: 25px; }
.audience-ring small { font-size: 10px; }
.audience-ring-row>div:last-child small { font-size: 10px; }
.audience-ring-row>div:last-child strong { margin: 5px 0; font-size: 17px; }
.audience-ring-row>div:last-child span { font-size: 11px; line-height: 1.5; }
.audience-tabs { gap: 5px; padding: 5px; }
.audience-tabs button { min-height: 40px; padding: 8px; font-size: 10px; }
.audience-breakdown { min-height: 206px; padding-top: 19px; }
.audience-row { grid-template-columns: minmax(100px, .85fr) minmax(65px, 1fr) 60px; gap: 10px; margin-bottom: 15px; }
.audience-row strong,
.audience-values strong { font-size: 11px; }
.audience-row small,
.audience-values small { font-size: 10px; }
.audience-row>b { font-size: 10px; }
.audience-row>i { height: 8px; }
.audience-row>i>em { height: 8px; }
.audience-row>i>b { top: 2px; height: 4px; }
.audience-empty { height: 160px; }
.audience-empty strong { font-size: 13px; }
.audience-empty small { margin-top: 4px; font-size: 10px; line-height: 1.5; }
.dashboard-privacy-note { gap: 8px; padding-top: 15px; font-size: 10px; line-height: 1.5; }
.dashboard-privacy-note i { font-size: 14px; }

.dashboard-countries,
.dashboard-cities { min-height: 535px; }
.geo-feature { grid-template-columns: 50px minmax(0, 1fr) auto; gap: 14px; margin: 25px 0 22px; padding: 16px; }
.geo-feature-mark { width: 50px; height: 50px; font-size: 20px; }
.geo-feature small { font-size: 10px; }
.geo-feature strong { margin-top: 4px; font-size: 16px; }
.geo-feature span { margin-top: 4px; font-size: 11px; }
.geo-feature>b { min-width: 48px; height: 48px; font-size: 12px; }
.country-chart { gap: 16px; }
.country-row { grid-template-columns: minmax(110px, .78fr) minmax(120px, 1.3fr) 54px; gap: 12px; }
.country-row>span strong,
.country-row>b strong { font-size: 11px; }
.country-row>span small,
.country-row>b small { margin-top: 3px; font-size: 10px; }
.country-bars { height: 12px; }
.country-bars i { height: 12px; }
.country-bars em { top: 4px; height: 4px; }
.geo-legend { gap: 18px; margin-top: 21px; padding-top: 14px; font-size: 10px; }

.city-grid { gap: 12px; margin-top: 25px; }
.city-card { min-height: 170px; padding: 16px; }
.city-card>header { font-size: 10px; }
.city-card>header b { padding: 4px 7px; font-size: 10px; }
.city-card h3 { margin-top: 15px; font-size: 16px; }
.city-card>p { margin-top: 3px; font-size: 11px; }
.city-bars { height: 9px; margin: 16px 0 14px; }
.city-bars i { height: 9px; }
.city-bars em { top: 3px; height: 4px; }
.city-card-metrics { gap: 6px; }
.city-card-metrics strong { font-size: 11px; }
.city-card-metrics small { margin-top: 3px; font-size: 10px; line-height: 1.3; white-space: normal; }
.geo-data-note { gap: 8px; margin-top: 18px; padding-top: 14px; font-size: 10px; line-height: 1.55; }
.geo-data-note i { font-size: 14px; }
.geo-empty strong { font-size: 14px; }
.geo-empty p { margin-top: 6px; font-size: 11px; line-height: 1.55; }

.health-total strong { font-size: 48px; }
.health-total span { font-size: 12px; }
.health-legend>span { min-height: 62px; padding: 13px 9px 11px 24px; }
.health-legend>span>i { left: 10px; top: 17px; width: 7px; height: 7px; }
.health-legend strong { font-size: 15px; }
.health-legend small { margin-top: 2px; font-size: 10px; }
.quickstart-grid { gap: 11px; margin-top: 25px; }
.quickstart-grid>a { grid-template-columns: 42px 1fr auto; min-height: 92px; padding: 14px; }
.quickstart-grid>a>i { width: 42px; height: 42px; font-size: 18px; }
.quickstart-grid strong { font-size: 13px; }
.quickstart-grid small { margin-top: 4px; font-size: 10px; line-height: 1.4; }
.quickstart-grid>a>b { font-size: 13px; }

.dashboard-recent>.dashboard-panel-head { padding: 29px 29px 20px; }
.dashboard-campaign-head,
.dashboard-campaign-list>a { grid-template-columns: 48px minmax(190px, 1.45fr) minmax(105px, .6fr) 92px 98px 100px 24px; gap: 13px; }
.dashboard-campaign-head { padding: 11px 12px; font-size: 10px; }
.dashboard-campaign-list>a { min-height: 78px; padding: 12px; }
.campaign-mark { width: 44px; height: 44px; font-size: 19px; }
.campaign-identity strong { font-size: 13px; }
.campaign-identity small { margin-top: 4px; font-size: 10px; }
.campaign-type strong,
.campaign-scans strong,
.dashboard-campaign-list time strong { font-size: 11px; }
.campaign-type small,
.campaign-scans small,
.dashboard-campaign-list time small { margin-top: 3px; font-size: 10px; }
.campaign-state { min-height: 30px; padding: 6px 9px; font-size: 10px; }
.campaign-state i { width: 6px; height: 6px; }
.campaign-arrow { font-size: 15px; }
.dashboard-empty-state p { font-size: 13px; line-height: 1.6; }

.dashboard-page a:focus-visible,
.dashboard-page button:focus-visible,
.dashboard-page [tabindex="0"]:focus-visible {
    outline: 3px solid var(--dash-coral);
    outline-offset: 3px;
}

@media (max-width: 1100px) {
    .dashboard-command { min-height: 370px; padding: 44px; }
    .dashboard-kpi { grid-template-columns: 42px 1fr; }
    .dashboard-kpi p { grid-column: 2; text-align: left; }
    .dashboard-kpi p span { display: inline; }
    .city-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 960px) {
    .app-authenticated .app-main-nav>a:not(.button) { display: flex; width: 100%; min-height: 46px; font-size: 15px; }
    .app-authenticated .account-menu>summary { min-height: 52px; }
    .dashboard-command { grid-template-columns: 1fr; }
    .dashboard-command-pulse { min-height: 285px; }
    .dashboard-plan { grid-template-columns: 1fr auto; }
    .dashboard-plan-message { grid-column: 1 / -1; grid-row: 2; }
    .dashboard-onboarding { grid-template-columns: 1fr .45fr; }
    .dashboard-onboarding ol { grid-column: 1 / -1; }
    .dashboard-kpis { grid-template-columns: 1fr 1fr; }
    .dashboard-primary-grid,
    .dashboard-secondary-grid,
    .dashboard-geo-grid { grid-template-columns: 1fr; }
    .dashboard-countries,
    .dashboard-cities { min-height: auto; }
    .dashboard-audience { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; }
    .dashboard-audience>.dashboard-panel-head,
    .dashboard-audience>.audience-tabs,
    .dashboard-audience>.dashboard-privacy-note { grid-column: 1 / -1; }
    .dashboard-campaign-head,
    .dashboard-campaign-list>a { grid-template-columns: 48px minmax(180px, 1fr) 92px 92px 90px 24px; }
    .dashboard-campaign-head span:nth-child(2),
    .campaign-type { display: none; }
}

@media (max-width: 700px) {
    .dashboard-page { padding-top: 22px; }
    .dashboard-command { min-height: auto; padding: 34px 26px; }
    .dashboard-command-copy h1 { margin-top: 21px; font-size: 47px; }
    .dashboard-command-copy>p { font-size: 15px; }
    .dashboard-command-actions { align-items: stretch; flex-direction: column; gap: 12px; }
    .dashboard-command-actions .button { width: 100%; }
    .dashboard-text-link { justify-content: center; }
    .dashboard-command-pulse { min-height: 275px; padding: 21px; }
    .pulse-number>strong { font-size: 54px; }
    .dashboard-plan { grid-template-columns: 1fr; gap: 12px; }
    .dashboard-plan-message { grid-column: auto; grid-row: auto; }
    .dashboard-plan>a { justify-self: start; }
    .dashboard-onboarding { grid-template-columns: 1fr; }
    .dashboard-onboarding ol { grid-column: auto; grid-template-columns: 1fr; }
    .dashboard-kpis { gap: 10px; }
    .dashboard-kpi { grid-template-columns: 40px 1fr; min-height: 108px; padding: 17px; }
    .dashboard-kpi-icon { width: 40px; height: 40px; }
    .dashboard-kpi div strong { font-size: 30px; }
    .dashboard-panel { padding: 23px 19px; }
    .dashboard-panel-head { align-items: flex-start; flex-direction: column; gap: 11px; }
    .dashboard-panel-head h2 { font-size: 26px; }
    .performance-highlights { justify-content: space-between; gap: 12px; margin-left: 34px; }
    .chart-series-key { justify-content: flex-start; margin: 12px 0 4px 34px; }
    .dashboard-chart { grid-template-columns: 31px minmax(0, 1fr); height: 255px; }
    .chart-column>small { display: none; }
    .dashboard-chart-empty { left: 48px; right: 19px; }
    .dashboard-audience { display: block; }
    .audience-ring-row { margin-bottom: 22px; }
    .audience-tabs { grid-template-columns: 1fr 1fr; }
    .country-row { grid-template-columns: minmax(100px, .8fr) minmax(90px, 1fr) 50px; gap: 8px; }
    .city-grid { grid-template-columns: 1fr 1fr; }
    .quickstart-grid { grid-template-columns: 1fr; }
    .quickstart-grid>a { min-height: 82px; }
    .health-legend { grid-template-columns: 1fr 1fr; }
    .dashboard-recent>.dashboard-panel-head { padding: 23px 20px 16px; }
    .dashboard-campaign-list { padding-inline: 8px; }
    .dashboard-campaign-head { display: none; }
    .dashboard-campaign-list>a { grid-template-columns: 48px minmax(0, 1fr) auto 20px; gap: 10px; min-height: 78px; padding-inline: 9px; }
    .campaign-type,
    .campaign-scans,
    .dashboard-campaign-list time { display: none; }
}

@media (max-width: 430px) {
    .dashboard-command { padding-inline: 22px; }
    .dashboard-command-copy h1 { font-size: 42px; }
    .dashboard-kpis { grid-template-columns: 1fr; }
    .dashboard-kpi { grid-template-columns: 42px 1fr auto; }
    .dashboard-kpi p { grid-column: auto; text-align: right; }
    .dashboard-kpi p span { display: block; }
    .performance-highlights { margin-left: 31px; }
    .performance-highlights small { font-size: 10px; }
    .audience-ring-row { grid-template-columns: 94px 1fr; padding: 14px; }
    .audience-ring { width: 84px; height: 84px; }
    .audience-ring strong { font-size: 21px; }
    .country-row { grid-template-columns: minmax(95px, .8fr) 1fr; }
    .country-row>b { grid-column: 2; margin-top: -8px; text-align: left; }
    .country-row>b strong,
    .country-row>b small { display: inline; }
    .city-grid { grid-template-columns: 1fr; }
    .city-card { min-height: auto; }
    .campaign-state { display: none; }
    .dashboard-campaign-list>a { grid-template-columns: 48px minmax(0, 1fr) 20px; }
}

@media (prefers-contrast: more) {
    .dashboard-page { background: #f4f2eb; }
    .dashboard-panel,
    .dashboard-kpi,
    .dashboard-plan,
    .dashboard-onboarding,
    .city-card,
    .quickstart-grid>a { border-color: rgba(16, 42, 42, .34); }
    .dashboard-page p,
    .dashboard-page small { color: rgba(16, 42, 42, .75); }
}
