/**
 * Day 24 Sprint 2 — Dashboard styles.
 *
 * Shared dla: login, verify-failed, start-trial, main.
 *
 * Brand: cream + lime accent + Inter Tight headings + JetBrains Mono numbers.
 * Mobile-first responsive. prefers-reduced-motion respected.
 */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

:root {
    --pa-cream: #faf8f3;
    --pa-paper: #ffffff;
    --pa-ink: #1a1a1a;
    --pa-muted: #6b6b6b;
    --pa-border: #e6e3da;
    --pa-accent: oklch(0.86 0.18 125);
    --pa-accent-text: #1a1a1a;
    --pa-error-bg: #fef2f2;
    --pa-error-border: #fecaca;
    --pa-error-text: #991b1b;
    --pa-success-bg: #f0fdf4;
    --pa-success-border: #bbf7d0;
    --pa-success-text: #166534;
    --pa-radius: 12px;
    --pa-radius-sm: 8px;
    --pa-shadow: 0 1px 2px rgba(20,20,20,0.04), 0 4px 12px rgba(20,20,20,0.06);
    --font-body: -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    --font-display: 'Inter Tight', var(--font-body);
    --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
}

.pa-geo-dashboard-body {
    background: var(--pa-cream);
    color: var(--pa-ink);
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.5;
    min-height: 100vh;
}

.pa-geo-visually-hidden {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ─── Auth shared (login, verify-failed, start-trial) ─────────────────────── */

.pa-geo-dashboard-body--auth {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
}

.pa-geo-auth-wrap {
    width: 100%;
    max-width: 480px;
}

.pa-geo-auth-wrap--trial {
    max-width: 540px;
}

.pa-geo-auth-card {
    background: #ffffff;
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius);
    padding: 2rem 2rem 1.75rem;
    box-shadow: var(--pa-shadow);
}

.pa-geo-auth-card--error {
    border-color: var(--pa-error-border);
    background: var(--pa-error-bg);
}

.pa-geo-auth-logo {
    display: inline-block;
    text-decoration: none;
    color: var(--pa-ink);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-bottom: 1.5rem;
}

.pa-geo-auth-logo-tld {
    font-family: var(--font-mono);
    color: var(--pa-accent);
    margin-left: 0.05em;
    font-size: 0.95em;
}

.pa-geo-auth-title {
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.02em;
    margin-bottom: 0.5rem;
}

.pa-geo-auth-lead {
    color: var(--pa-muted);
    margin-bottom: 1.5rem;
    line-height: 1.5;
}

.pa-geo-auth-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pa-geo-auth-form input[type="email"],
.pa-geo-auth-form input[type="text"] {
    width: 100%;
    padding: 0.875rem 1rem;
    border: 1.5px solid var(--pa-border);
    border-radius: var(--pa-radius-sm);
    background: #ffffff;
    color: var(--pa-ink);
    font-size: 1rem;
    font-family: inherit;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.pa-geo-auth-form input:focus {
    outline: none;
    border-color: var(--pa-accent);
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--pa-accent) 35%, transparent);
}

.pa-geo-auth-checkbox {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    font-size: 0.875rem;
    color: var(--pa-muted);
    line-height: 1.4;
    cursor: pointer;
}

.pa-geo-auth-checkbox input {
    margin-top: 0.2rem;
    flex: 0 0 auto;
}

.pa-geo-auth-checkbox a {
    color: var(--pa-ink);
    text-decoration: underline;
}

.pa-geo-auth-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.875rem 1.5rem;
    background: var(--pa-accent);
    color: var(--pa-accent-text);
    border: 0;
    border-radius: var(--pa-radius-sm);
    font-size: 1rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background 0.15s, transform 0.05s;
    text-decoration: none;
}

.pa-geo-auth-button:hover:not(:disabled) {
    background: color-mix(in oklch, var(--pa-accent) 88%, black);
}

.pa-geo-auth-button:active:not(:disabled) {
    transform: translateY(1px);
}

.pa-geo-auth-button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.pa-geo-auth-button--link {
    display: inline-block;
    margin-top: 1rem;
    text-align: center;
    width: 100%;
}

.pa-geo-auth-button-spinner {
    display: none;
    width: 16px;
    height: 16px;
    border: 2px solid color-mix(in oklch, var(--pa-ink) 30%, transparent);
    border-top-color: var(--pa-ink);
    border-radius: 50%;
    animation: pa-spin 0.7s linear infinite;
}

.pa-geo-auth-button.is-loading .pa-geo-auth-button-spinner {
    display: inline-block;
}

@keyframes pa-spin { to { transform: rotate(360deg); } }

.pa-geo-auth-error {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    background: var(--pa-error-bg);
    border: 1px solid var(--pa-error-border);
    color: var(--pa-error-text);
    border-radius: var(--pa-radius-sm);
    font-size: 0.9375rem;
}

.pa-geo-auth-success {
    margin-top: 1rem;
    padding: 1rem 1.25rem;
    background: var(--pa-success-bg);
    border: 1px solid var(--pa-success-border);
    color: var(--pa-success-text);
    border-radius: var(--pa-radius-sm);
}

.pa-geo-auth-success strong {
    display: block;
    font-size: 1rem;
    margin-bottom: 0.25rem;
}

.pa-geo-auth-success span {
    font-size: 0.9375rem;
    line-height: 1.5;
}

.pa-geo-auth-footnote {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--pa-border);
    font-size: 0.875rem;
    color: var(--pa-muted);
    text-align: center;
}

.pa-geo-auth-footnote a {
    color: var(--pa-ink);
    text-decoration: underline;
}

/* ─── Trial form ──────────────────────────────────────────────────────────── */

.pa-geo-trial-badge {
    display: inline-flex;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: var(--pa-accent);
    color: var(--pa-accent-text);
    border-radius: 999px;
    font-weight: 600;
    margin-bottom: 1rem;
}

.pa-geo-trial-badge-icon {
    font-family: var(--font-mono);
    font-size: 1.25rem;
    font-weight: 700;
}

.pa-geo-trial-badge-label {
    font-size: 0.9375rem;
}

.pa-geo-trial-mock-banner {
    margin: 1rem 0 1.5rem;
    padding: 1rem 1.25rem;
    background: #fef9c3;
    border: 1px solid #fde047;
    border-radius: var(--pa-radius-sm);
    font-size: 0.875rem;
    color: #713f12;
}

.pa-geo-trial-mock-banner strong {
    display: block;
    margin-bottom: 0.5rem;
    color: #713f12;
}

.pa-geo-trial-mock-banner ul {
    list-style: none;
    padding: 0.25rem 0 0.25rem 0;
}

.pa-geo-trial-mock-banner li {
    padding: 0.125rem 0;
}

.pa-geo-trial-mock-banner code {
    font-family: var(--font-mono);
    background: rgba(0,0,0,0.05);
    padding: 0.125rem 0.375rem;
    border-radius: 4px;
    font-size: 0.8125rem;
}

.pa-geo-trial-form label {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--pa-ink);
}

/* Day 39 hotfix — consumer waiver checkbox w trial form override
   `.pa-geo-trial-form label` (column flex dla card inputs) → przywróć
   horizontalny layout dla checkbox label. Specificity (0,0,2,1) > (0,0,1,1). */
.pa-geo-trial-form label.pa-geo-auth-checkbox {
    flex-direction: row;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 400;
    color: var(--pa-muted);
    line-height: 1.4;
    cursor: pointer;
}

.pa-geo-trial-row--double {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.pa-geo-trial-disclaimer {
    font-size: 0.75rem;
    color: var(--pa-muted);
    line-height: 1.5;
    margin-top: 0.5rem;
}

/* ─── Dashboard main app ──────────────────────────────────────────────────── */

.pa-geo-dashboard-body--app {
    background: var(--pa-cream);
}

.pa-geo-dashboard {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.pa-geo-dashboard-header {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 1rem 1.5rem;
    background: #ffffff;
    border-bottom: 1px solid var(--pa-border);
}

.pa-geo-dashboard-logo {
    text-decoration: none;
    color: var(--pa-ink);
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    display: inline-flex;
    align-items: center;
    gap: 0;
}

.pa-geo-dashboard-logo-mark svg {
    width: 28px;
    height: 28px;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
}

.pa-geo-dashboard-logo-tld {
    font-family: var(--font-mono);
    color: var(--pa-accent);
    font-size: 0.9em;
}

.pa-geo-dashboard-brand {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pa-geo-dashboard-brand-domain {
    font-family: var(--font-mono);
    font-size: 0.875rem;
    color: var(--pa-muted);
    padding: 0.25rem 0.625rem;
    background: var(--pa-cream);
    border-radius: 999px;
}

.pa-geo-dashboard-trial-badge {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.75rem;
    background: var(--pa-cream);
    border: 1px solid var(--pa-border);
    border-radius: 999px;
    font-size: 0.8125rem;
    color: var(--pa-muted);
}

.pa-geo-dashboard-trial-badge strong {
    color: var(--pa-ink);
    font-family: var(--font-mono);
}

.pa-geo-dashboard-nav {
    display: flex;
    gap: 0.25rem;
    align-items: center;
    /* Day 40 B35 fix — nav zawsze w prawo niezależnie od ilości flex children
       w headerze. main.php ma `.pa-geo-dashboard-brand { flex: 1 }` jako spacer,
       brands.php (0 brandów scenariusz) nie ma — bez `margin-left: auto`
       nav skleja się po lewej obok logo. Niespójność UX zgłoszona przez Macieja
       Day 39 wieczór smoke test. */
    margin-left: auto;
}

.pa-geo-dashboard-nav-link {
    text-decoration: none;
    color: var(--pa-muted);
    font-size: 0.9375rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--pa-radius-sm);
    transition: background 0.15s;
}

.pa-geo-dashboard-nav-link:hover { background: var(--pa-cream); }
.pa-geo-dashboard-nav-link.is-active { color: var(--pa-ink); background: var(--pa-cream); font-weight: 600; }
.pa-geo-dashboard-nav-link[aria-disabled="true"] { opacity: 0.5; pointer-events: none; }
.pa-geo-dashboard-nav-link .soon { font-size: 0.75rem; opacity: 0.7; }

.pa-geo-dashboard-main {
    flex: 1;
    padding: 2rem 1.5rem;
    max-width: 1280px;
    margin: 0 auto;
    width: 100%;
}

/* Day 40 night — Lifetime pre-launch deal banner (Maciej pomysł).
   Visible w post-login views dopóki queue ma wolne miejsca i user
   nie ma rezerwacji. Dark bg z lime accent = scarcity signal. */
.pa-geo-lifetime-banner {
    margin: 0 0 2rem;
    background: linear-gradient( 135deg, #14130f 0%, #1f1c14 100% );
    color: #faf8f3;
    border: 1px solid rgba( 200, 222, 60, 0.4 );
    border-radius: 12px;
    overflow: hidden;
    position: relative;
}

.pa-geo-lifetime-banner::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 50%;
    height: 200%;
    background: radial-gradient( circle, rgba(200, 222, 60, 0.18) 0%, transparent 70% );
    pointer-events: none;
}

.pa-geo-lifetime-banner-inner {
    position: relative;
    padding: 1.5rem 1.75rem;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 1.25rem;
    align-items: center;
}

@media (max-width: 768px) {
    .pa-geo-lifetime-banner-inner {
        grid-template-columns: 1fr;
        gap: 1rem;
        padding: 1.25rem 1.5rem;
    }
}

.pa-geo-lifetime-banner-icon {
    font-size: 2rem;
    line-height: 1;
}

@media (max-width: 768px) {
    .pa-geo-lifetime-banner-icon { display: none; }
}

.pa-geo-lifetime-banner-content {
    min-width: 0;
}

.pa-geo-lifetime-banner-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: oklch( 0.86 0.18 125 );
}

.pa-geo-lifetime-banner-pulse {
    width: 8px;
    height: 8px;
    background: oklch( 0.86 0.18 125 );
    border-radius: 50%;
    animation: pa-geo-lifetime-pulse 1.6s ease-in-out infinite;
}

@keyframes pa-geo-lifetime-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: 0.5; transform: scale(1.3); }
}

.pa-geo-lifetime-banner-title {
    font-family: var( --font-display, 'Fraunces', serif );
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.2;
    margin: 0 0 0.5rem;
    color: #faf8f3;
}

.pa-geo-lifetime-banner-title strong {
    color: oklch( 0.86 0.18 125 );
    font-weight: 700;
}

.pa-geo-lifetime-banner-strike {
    display: inline-block;
    margin-left: 0.5rem;
    font-size: 0.875rem;
    font-weight: 400;
    opacity: 0.55;
    text-decoration: line-through;
}

@media (max-width: 640px) {
    .pa-geo-lifetime-banner-strike {
        display: block;
        margin-left: 0;
        margin-top: 0.25rem;
    }
}

.pa-geo-lifetime-banner-lead {
    margin: 0 0 0.5rem;
    font-size: 0.875rem;
    color: rgba( 250, 248, 243, 0.85 );
    line-height: 1.4;
}

.pa-geo-lifetime-banner-stats {
    margin: 0;
    font-size: 0.8125rem;
    color: rgba( 250, 248, 243, 0.7 );
    line-height: 1.4;
}

.pa-geo-lifetime-banner-stat-pro strong,
.pa-geo-lifetime-banner-stat-premium strong {
    color: oklch( 0.86 0.18 125 );
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.pa-geo-lifetime-banner-stat-sep {
    margin: 0 0.5rem;
    opacity: 0.4;
}

.pa-geo-lifetime-banner-cta {
    text-align: center;
}

@media (max-width: 768px) {
    .pa-geo-lifetime-banner-cta { text-align: left; }
}

.pa-geo-lifetime-banner-btn {
    display: inline-block;
    padding: 0.875rem 1.5rem;
    background: oklch( 0.86 0.18 125 );
    color: #14130f;
    text-decoration: none;
    border-radius: 8px;
    font-weight: 600;
    font-size: 1rem;
    transition: background 0.15s ease, transform 0.15s ease;
    white-space: nowrap;
}

.pa-geo-lifetime-banner-btn:hover {
    background: color-mix( in oklch, oklch( 0.86 0.18 125 ) 88%, black );
    transform: translateY( -1px );
}

.pa-geo-lifetime-banner-micro {
    margin: 0.5rem 0 0;
    font-size: 0.6875rem;
    color: rgba( 250, 248, 243, 0.5 );
    line-height: 1.4;
}

@media print, (prefers-reduced-motion: reduce) {
    .pa-geo-lifetime-banner-pulse { animation: none; }
}

.pa-geo-dashboard-greeting h1 {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.02em;
    margin-bottom: 0.5rem;
}

.pa-geo-dashboard-greeting p {
    color: var(--pa-muted);
    margin-bottom: 2rem;
}

.pa-geo-dashboard-greeting strong {
    color: var(--pa-ink);
    font-weight: 600;
}

/* KPI cards */

.pa-geo-dashboard-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}

.pa-geo-dashboard-kpi-card {
    background: #ffffff;
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius);
    padding: 1.25rem 1.5rem;
    box-shadow: var(--pa-shadow);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.pa-geo-dashboard-kpi-label {
    font-size: 0.8125rem;
    color: var(--pa-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 500;
}

.pa-geo-dashboard-kpi-value {
    font-family: var(--font-mono);
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
    color: var(--pa-ink);
    margin-top: 0.25rem;
}

.pa-geo-dashboard-kpi-suffix {
    font-family: var(--font-mono);
    font-size: 1rem;
    color: var(--pa-muted);
    display: inline;
}

.pa-geo-dashboard-kpi-card .pa-geo-dashboard-kpi-value + .pa-geo-dashboard-kpi-suffix {
    display: inline;
    margin-top: -0.5rem;
}

.pa-geo-dashboard-kpi-hint {
    font-size: 0.8125rem;
    color: var(--pa-muted);
    margin-top: auto;
}

/* Cards grid (2-col na desktop) */

.pa-geo-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

.pa-geo-dashboard-card {
    background: #ffffff;
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius);
    padding: 1.5rem;
    box-shadow: var(--pa-shadow);
}

.pa-geo-dashboard-card--chart, .pa-geo-dashboard-card--actions {
    grid-column: span 2;
}

.pa-geo-dashboard-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.pa-geo-dashboard-card-header h2 {
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.pa-geo-dashboard-card-meta {
    font-size: 0.8125rem;
    color: var(--pa-muted);
    font-family: var(--font-mono);
}

/* Day 67 (v1.47.95) Bug 1 — na mobile tytuł + opis karty (np. "Powiadomienia email"
   + "Kontroluj jakie maile...") ściskały się obok siebie (header = flex row). Stackujemy
   pionowo poniżej 768px. Desktop bez zmian. */
@media ( max-width: 768px ) {
    .pa-geo-dashboard-card-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }
}

/* Day 67 (v1.47.95) Bug 2 — wiersz domeny + meta zawijają się na mobile; pigułka
   "➕ Wdroż GeoBoost" nie przelewa się poza viewport. */
@media ( max-width: 768px ) {
    .pa-brand-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
    .pa-brand-meta {
        flex-wrap: wrap;
        gap: 6px;
        max-width: 100%;
    }
}

.pa-geo-dashboard-empty {
    color: var(--pa-muted);
    font-size: 0.9375rem;
    padding: 1rem 0;
    text-align: center;
}

.pa-geo-dashboard-link {
    display: inline-block;
    margin-top: 1rem;
    color: var(--pa-ink);
    text-decoration: underline;
    font-size: 0.875rem;
}

.pa-geo-dashboard-link[aria-disabled="true"] {
    opacity: 0.5;
    pointer-events: none;
}

.pa-geo-dashboard-link .soon {
    font-size: 0.75rem;
    opacity: 0.7;
}

/* Chart placeholder */

.pa-geo-dashboard-chart-placeholder {
    color: var(--pa-muted);
    text-align: center;
    padding: 1rem 0;
}

.pa-geo-dashboard-chart-svg {
    width: 100%;
    max-width: 480px;
    height: 120px;
    color: var(--pa-accent);
    display: block;
    margin: 0 auto 1rem;
    opacity: 0.5;
}

.pa-geo-dashboard-chart-note {
    font-size: 0.875rem;
}

/* Actions */

.pa-geo-dashboard-actions-list {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}

.pa-geo-dashboard-action {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding-bottom: 0.875rem;
    border-bottom: 1px solid var(--pa-border);
}

.pa-geo-dashboard-action:last-child { border-bottom: 0; padding-bottom: 0; }

.pa-geo-dashboard-action-impact {
    flex: 0 0 auto;
    background: var(--pa-cream);
    color: var(--pa-ink);
    font-family: var(--font-mono);
    font-weight: 700;
    font-size: 0.9375rem;
    padding: 0.375rem 0.625rem;
    border-radius: var(--pa-radius-sm);
    border: 1px solid var(--pa-border);
    min-width: 48px;
    text-align: center;
}

.pa-geo-dashboard-action-body strong {
    display: block;
    font-size: 0.9375rem;
    color: var(--pa-ink);
    margin-bottom: 0.25rem;
    font-weight: 600;
}

.pa-geo-dashboard-action-body p {
    color: var(--pa-muted);
    font-size: 0.875rem;
    line-height: 1.4;
}

.pa-geo-dashboard-actions-note {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--pa-border);
    font-size: 0.8125rem;
    color: var(--pa-muted);
    font-style: italic;
}

/* Prompts */

.pa-geo-dashboard-prompts-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pa-geo-dashboard-topic h3 {
    font-size: 0.9375rem;
    font-weight: 600;
    margin-bottom: 0.375rem;
    color: var(--pa-ink);
}

.pa-geo-dashboard-topic ul {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.pa-geo-dashboard-topic li {
    color: var(--pa-muted);
    font-size: 0.875rem;
    padding-left: 1rem;
    position: relative;
    line-height: 1.4;
}

.pa-geo-dashboard-topic li::before {
    content: '→';
    position: absolute;
    left: 0;
    color: var(--pa-accent);
    font-weight: bold;
}

/* Competitors */

.pa-geo-dashboard-competitors-list {
    list-style: none;
    padding: 0;
    counter-reset: comp-counter;
}

.pa-geo-dashboard-competitors-list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.625rem 0;
    border-bottom: 1px solid var(--pa-border);
    counter-increment: comp-counter;
}

.pa-geo-dashboard-competitors-list li:last-child { border-bottom: 0; }

.pa-geo-dashboard-competitors-list li::before {
    content: counter(comp-counter) '.';
    color: var(--pa-muted);
    font-family: var(--font-mono);
    font-size: 0.875rem;
    min-width: 1.5rem;
}

.pa-geo-dashboard-competitor-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.pa-geo-dashboard-competitor-info strong {
    font-size: 0.9375rem;
    color: var(--pa-ink);
}

.pa-geo-dashboard-competitor-domain {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--pa-muted);
}

.pa-geo-dashboard-competitor-score {
    font-family: var(--font-mono);
    font-size: 1rem;
    font-weight: 700;
    color: var(--pa-ink);
    flex: 0 0 auto;
}

/* Footer */

.pa-geo-dashboard-footer {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid var(--pa-border);
    text-align: center;
    color: var(--pa-muted);
    font-size: 0.8125rem;
}

.pa-geo-dashboard-footer a {
    color: var(--pa-ink);
    text-decoration: none;
}

.pa-geo-dashboard-footer a:hover { text-decoration: underline; }

/* Day 32 — Pricing page (/pricing/) */

.pa-geo-dashboard-body--pricing {
    background: var(--pa-cream);
}

.pa-geo-pricing {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.pa-geo-pricing-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem;
    background: #ffffff;
    border-bottom: 1px solid var(--pa-border);
}

.pa-geo-pricing-main {
    flex: 1;
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
}

/* Lifetime banner */

.pa-geo-pricing-lifetime-banner {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.5rem;
    background: linear-gradient( 135deg, var(--pa-accent) 0%, color-mix( in oklch, var(--pa-accent) 80%, white ) 100% );
    color: var(--pa-accent-text);
    border-radius: var(--pa-radius);
    margin-bottom: 2.5rem;
    box-shadow: var(--pa-shadow);
}

.pa-geo-pricing-lifetime-banner-icon {
    font-size: 1.75rem;
    flex: 0 0 auto;
}

.pa-geo-pricing-lifetime-banner-text {
    flex: 1;
    font-size: 0.9375rem;
    line-height: 1.5;
}

.pa-geo-pricing-lifetime-banner-text strong {
    font-weight: 700;
}

.pa-geo-pricing-lifetime-banner-cta {
    flex: 0 0 auto;
    background: var(--pa-ink);
    color: var(--pa-cream);
    padding: 0.625rem 1.25rem;
    border-radius: var(--pa-radius-sm);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9375rem;
    transition: background 0.15s;
    white-space: nowrap;
}

.pa-geo-pricing-lifetime-banner-cta:hover {
    background: #000;
    color: #fff;
}

/* Day 34 — Lifetime reservation form (pricing page #lifetime section) */
.pa-lifetime-form-section {
    margin: 0 0 2.5rem;
    background: var(--pa-paper);
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius);
    padding: 2rem;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.pa-lifetime-form-section h2 {
    font-size: 1.5rem;
    margin: 0 0 0.5rem;
    color: var(--pa-ink);
}

.pa-lifetime-form-section > .pa-lifetime-form-wrap > p {
    color: var(--pa-muted);
    margin-bottom: 1.5rem;
    line-height: 1.5;
}

.pa-lifetime-form-row {
    margin-bottom: 1rem;
}

.pa-lifetime-form-row label {
    display: block;
    font-weight: 600;
    font-size: 0.875rem;
    margin-bottom: 0.375rem;
    color: var(--pa-ink);
}

.pa-lifetime-form-row input[type="text"],
.pa-lifetime-form-row input[type="email"] {
    width: 100%;
    padding: 0.625rem 0.875rem;
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius-sm);
    font-size: 0.9375rem;
    background: var(--pa-cream);
    color: var(--pa-ink);
    transition: border-color 0.15s;
}

.pa-lifetime-form-row input:focus {
    outline: none;
    border-color: var(--pa-accent);
    background: var(--pa-paper);
}

.pa-lifetime-form-checkbox {
    display: flex;
    align-items: flex-start;
}

.pa-lifetime-form-checkbox label {
    display: flex;
    align-items: flex-start;
    font-weight: 400;
    font-size: 0.875rem;
    cursor: pointer;
    line-height: 1.4;
}

.pa-lifetime-form-checkbox input[type="checkbox"] {
    margin-right: 0.5rem;
    margin-top: 0.125rem;
    flex-shrink: 0;
}

#pa-lifetime-submit {
    width: 100%;
    margin-top: 0.5rem;
    background: var(--pa-accent);
    color: var(--pa-ink);
    font-weight: 700;
    font-size: 1rem;
    padding: 0.875rem 1.5rem;
    border-radius: var(--pa-radius-sm);
    border: 0;
    cursor: pointer;
    transition: opacity 0.15s;
}

#pa-lifetime-submit:hover:not(:disabled) {
    opacity: 0.9;
}

#pa-lifetime-submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.pa-lifetime-form-status {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    border-radius: var(--pa-radius-sm);
    font-size: 0.875rem;
    line-height: 1.4;
}

.pa-lifetime-form-status--success {
    background: #dcfce7;
    color: #166534;
    border: 1px solid #86efac;
}

.pa-lifetime-form-status--error {
    background: #fee2e2;
    color: #991b1b;
    border: 1px solid #fca5a5;
}

/* Hero */

.pa-geo-pricing-hero {
    text-align: center;
    margin-bottom: 2.5rem;
}

.pa-geo-pricing-hero h1 {
    font-family: var(--font-display);
    font-size: clamp( 2rem, 4vw, 2.75rem );
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.02em;
    margin-bottom: 0.5rem;
}

.pa-geo-pricing-hero p {
    color: var(--pa-muted);
    font-size: 1.0625rem;
    margin-bottom: 1.5rem;
}

.pa-geo-pricing-toggle {
    display: inline-flex;
    background: #ffffff;
    border: 1px solid var(--pa-border);
    border-radius: 999px;
    padding: 0.25rem;
    gap: 0.25rem;
}

.pa-geo-pricing-toggle-btn {
    background: transparent;
    border: 0;
    padding: 0.5rem 1.25rem;
    border-radius: 999px;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--pa-muted);
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s, color 0.15s;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.pa-geo-pricing-toggle-btn:hover {
    color: var(--pa-ink);
}

.pa-geo-pricing-toggle-btn.is-active {
    background: var(--pa-ink);
    color: #ffffff;
}

.pa-geo-pricing-discount {
    font-size: 0.75rem;
    background: var(--pa-accent);
    color: var(--pa-accent-text);
    padding: 0.125rem 0.375rem;
    border-radius: 999px;
    font-weight: 700;
}

.pa-geo-pricing-toggle-btn.is-active .pa-geo-pricing-discount {
    background: var(--pa-accent);
    color: var(--pa-accent-text);
}

/* Pricing grid (3 cards default, Day 54: 4 cards z Free tier) */

.pa-geo-pricing-grid {
    display: grid;
    grid-template-columns: repeat( 3, 1fr );
    gap: 1.5rem;
    margin-bottom: 3rem;
}

/* Day 65 BugD — Founder 2-card variant: centered on desktop (2 cards in a 3-col
   grid were left-aligned), horizontal scroll-snap on mobile (mirrors the /pricing/
   carousel that was inline-only). Used by templates/dashboard/founder-landing.php. */
.pa-geo-pricing-grid--two-col {
    grid-template-columns: repeat( 2, minmax( 0, 360px ) );
    justify-content: center;
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}
@media ( max-width: 768px ) {
    .pa-geo-pricing-grid--two-col {
        display: flex !important;
        grid-template-columns: none !important;
        flex-direction: row !important;
        gap: 12px !important;
        overflow-x: auto !important;
        scroll-snap-type: x mandatory !important;
        scroll-padding: 20px !important;
        padding: 8px 20px 20px !important;
        margin: 0 -20px 1.5rem !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;
    }
    .pa-geo-pricing-grid--two-col::-webkit-scrollbar { display: none !important; }
    .pa-geo-pricing-grid--two-col .pa-geo-pricing-card {
        flex: 0 0 calc( 100vw - 56px ) !important;
        scroll-snap-align: center !important;
        scroll-snap-stop: always !important;
        min-width: 260px !important;
    }
}

/* Day 54 wieczór HOTFIX v1.43.19 — Free tier WIDE BANNER pod 3 paid cards
   (Maciej feedback: 4 cards za szerokie, tylko 3 mieszczą się w viewport).
   Horizontal layout: left (title+tagline) + middle (features 2-col bullets) +
   right (CTA). Graficznie nawiązuje do paid cards (border + bg) ale wyraźnie
   różny — cream bg + dashed accent border. */
.pa-geo-pricing-free-banner-wrap {
    margin: 0 0 3rem;
}
.pa-geo-pricing-free-banner {
    display: grid;
    grid-template-columns: 1.2fr 1.5fr 0.8fr;
    gap: 2rem;
    align-items: center;
    background: var(--pa-cream, #faf8f3);
    border: 2px dashed var(--pa-accent, #c8ff00);
    border-radius: var(--pa-radius);
    padding: 2rem 2.25rem;
    box-shadow: var(--pa-shadow);
}
.pa-geo-pricing-free-banner__left {
    min-width: 0;
}
.pa-geo-pricing-free-banner__badge {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--pa-accent-text, #4a5e00);
    background: var(--pa-accent, #c8ff00);
    padding: 4px 10px;
    border-radius: 999px;
    margin-bottom: 0.75rem;
}
.pa-geo-pricing-free-banner__title {
    font-size: 1.75rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
    color: var(--pa-ink, #1a1a1a);
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.pa-geo-pricing-free-banner__price {
    font-size: 1rem;
    font-weight: 500;
    color: var(--pa-ink-soft, #6b6b6b);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
}
.pa-geo-pricing-free-banner__tagline {
    font-size: 0.9375rem;
    color: var(--pa-ink-soft, #6b6b6b);
    line-height: 1.5;
    margin: 0;
}
.pa-geo-pricing-free-banner__features ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.4rem 1.25rem;
    font-size: 0.875rem;
    color: var(--pa-ink, #1a1a1a);
}
.pa-geo-pricing-free-banner__features li {
    line-height: 1.4;
}
.pa-geo-pricing-free-banner__features strong {
    font-weight: 600;
}
.pa-geo-pricing-free-banner__action {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
}
.pa-geo-pricing-free-banner__cta {
    text-align: center;
}
.pa-geo-pricing-free-banner__micro {
    font-size: 0.75rem;
    color: var(--pa-ink-soft, #6b6b6b);
    text-align: center;
    font-style: italic;
}
@media (max-width: 900px) {
    .pa-geo-pricing-free-banner {
        grid-template-columns: 1fr;
        gap: 1.25rem;
        padding: 1.5rem 1.25rem;
    }
    .pa-geo-pricing-free-banner__features ul {
        grid-template-columns: 1fr;
        gap: 0.35rem;
    }
}

.pa-geo-pricing-card {
    background: #ffffff;
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius);
    padding: 2rem 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    position: relative;
    box-shadow: var(--pa-shadow);
    transition: transform 0.2s, box-shadow 0.2s;
}

.pa-geo-pricing-card:hover {
    transform: translateY( -2px );
    box-shadow: 0 4px 16px rgba( 20, 20, 20, 0.08 );
}

.pa-geo-pricing-card--featured {
    border: 2px solid var(--pa-accent);
    box-shadow: 0 4px 20px color-mix( in oklch, var(--pa-accent) 30%, transparent );
}

.pa-geo-pricing-card-badge {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX( -50% );
    background: var(--pa-accent);
    color: var(--pa-accent-text);
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.25rem 0.875rem;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.pa-geo-pricing-card-header h2 {
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin-bottom: 0.25rem;
}

.pa-geo-pricing-card-tagline {
    font-size: 0.875rem;
    color: var(--pa-muted);
    line-height: 1.4;
}

.pa-geo-pricing-card-price {
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--pa-border);
    /* Day 33 fix — rezerwacja wysokości dla discount line (yearly), żeby toggle nie przesuwał feature listy */
    min-height: 5.5rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.pa-geo-pricing-card-price-monthly,
.pa-geo-pricing-card-price-yearly {
    display: block;
}

/* Day 33 fix — hidden attribute musi przebijać display: block */
.pa-geo-pricing-card-price-monthly[hidden],
.pa-geo-pricing-card-price-yearly[hidden] {
    display: none !important;
}

.pa-geo-pricing-card-amount {
    font-family: var(--font-mono);
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--pa-ink);
    line-height: 1;
}

.pa-geo-pricing-card-currency {
    font-family: var(--font-mono);
    font-size: 1.25rem;
    color: var(--pa-muted);
    margin-left: 0.25rem;
}

.pa-geo-pricing-card-period {
    color: var(--pa-muted);
    font-size: 1rem;
    margin-left: 0.25rem;
}

.pa-geo-pricing-card-discount {
    display: block;
    font-size: 0.8125rem;
    color: var(--pa-muted);
    margin-top: 0.375rem;
    font-family: var(--font-mono);
}

/* Day 65 — netto-primary B2B pricing display */
.pa-geo-pricing-card-price-net {
    font-family: var(--font-mono);
    font-size: 2.5rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--pa-ink);
    line-height: 1;
}
.pa-geo-pricing-card-price-suffix {
    display: block;
    font-size: 0.9rem;
    color: var(--pa-muted);
    margin-top: 0.35rem;
}
.pa-geo-pricing-card-price-gross {
    display: block;
    font-size: 0.85rem;
    color: var(--pa-muted);
    margin-top: 0.35rem;
    font-family: var(--font-mono);
}

.pa-geo-pricing-card-features {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    flex: 1;
}

.pa-geo-pricing-card-features li {
    color: var(--pa-ink);
    font-size: 0.9375rem;
    line-height: 1.5;
    padding-left: 1.5rem;
    position: relative;
}

.pa-geo-pricing-card-features li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--pa-accent);
    font-weight: bold;
}

.pa-geo-pricing-card-features strong {
    font-weight: 600;
    color: var(--pa-ink);
}

.pa-geo-pricing-card-action {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.375rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--pa-border);
}

.pa-geo-pricing-card-cta {
    width: 100%;
    text-align: center;
    text-decoration: none;
    justify-content: center;
}

.pa-geo-pricing-card-cta--secondary {
    background: var(--pa-ink);
    color: var(--pa-cream);
}

.pa-geo-pricing-card-cta--secondary:hover {
    background: #000;
}

.pa-geo-pricing-card-microcopy {
    font-size: 0.75rem;
    color: var(--pa-muted);
    text-align: center;
}

/* Trust grid */

.pa-geo-pricing-trust {
    text-align: center;
    margin-bottom: 3rem;
}

.pa-geo-pricing-trust h2 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    letter-spacing: -0.01em;
}

.pa-geo-pricing-trust-grid {
    display: grid;
    grid-template-columns: repeat( auto-fit, minmax( 220px, 1fr ) );
    gap: 1.5rem;
    text-align: left;
}

.pa-geo-pricing-trust-grid > div {
    background: #ffffff;
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius-sm);
    padding: 1.25rem;
}

.pa-geo-pricing-trust-grid strong {
    display: block;
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 0.375rem;
    color: var(--pa-ink);
}

.pa-geo-pricing-trust-grid p {
    color: var(--pa-muted);
    font-size: 0.875rem;
    line-height: 1.5;
}

/* FAQ */

.pa-geo-pricing-faq {
    max-width: 720px;
    margin: 0 auto 2rem;
}

.pa-geo-pricing-faq h2 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    text-align: center;
    letter-spacing: -0.01em;
}

.pa-geo-pricing-faq details {
    background: #ffffff;
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius-sm);
    padding: 1rem 1.25rem;
    margin-bottom: 0.625rem;
    transition: border-color 0.15s;
}

.pa-geo-pricing-faq details[open] {
    border-color: var(--pa-accent);
}

.pa-geo-pricing-faq summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--pa-ink);
    font-size: 0.9375rem;
    user-select: none;
    line-height: 1.5;
    list-style: none;
    padding-right: 1.5rem;
    position: relative;
}

.pa-geo-pricing-faq summary::-webkit-details-marker {
    display: none;
}

.pa-geo-pricing-faq summary::after {
    content: '+';
    position: absolute;
    right: 0;
    top: 0;
    font-size: 1.25rem;
    color: var(--pa-muted);
    transition: transform 0.15s;
}

.pa-geo-pricing-faq details[open] summary::after {
    content: '−';
}

.pa-geo-pricing-faq details p {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--pa-border);
    color: var(--pa-muted);
    font-size: 0.9375rem;
    line-height: 1.6;
}

.pa-geo-pricing-faq details p a {
    color: var(--pa-ink);
    text-decoration: underline;
}

@media (max-width: 600px) {
    .pa-geo-pricing-lifetime-banner {
        flex-direction: column;
        text-align: center;
    }
    .pa-geo-pricing-lifetime-banner-cta {
        align-self: stretch;
        text-align: center;
    }
}

/* Day 33 fix — Pełny raport hint + Settings reports + Competitors upgrade note */

.pa-geo-dashboard-pdf-card-hint {
    margin-top: 0.5rem !important;
    color: var(--pa-muted) !important;
    font-size: 0.875rem !important;
    font-style: italic;
}

.pa-geo-dashboard-pdf-card-hint strong {
    color: var(--pa-ink) !important;
    font-style: normal;
}

.pa-geo-dashboard-competitors-upgrade-note {
    margin-bottom: 0.875rem;
    padding: 0.75rem 1rem;
    background: var(--pa-cream);
    border: 1px dashed var(--pa-accent);
    border-radius: var(--pa-radius-sm);
    font-size: 0.8125rem;
    color: var(--pa-ink);
    line-height: 1.5;
}

.pa-geo-dashboard-competitors-upgrade-note strong {
    font-weight: 600;
}

/* Settings — moje raporty */

.pa-geo-settings-reports-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.pa-geo-settings-reports-table thead th {
    text-align: left;
    padding: 0.5rem 0.75rem;
    color: var(--pa-muted);
    font-weight: 500;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--pa-border);
}

.pa-geo-settings-reports-table tbody td {
    padding: 0.625rem 0.75rem;
    border-bottom: 1px solid var(--pa-border);
}

.pa-geo-settings-reports-table tbody tr:last-child td {
    border-bottom: 0;
}

.pa-geo-settings-reports-table code {
    font-size: 0.8125rem;
    background: var(--pa-cream);
    padding: 0.125rem 0.375rem;
    border-radius: 4px;
    color: var(--pa-ink);
}

.pa-geo-settings-report-status {
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.125rem 0.5rem;
    border-radius: 999px;
}

.pa-geo-settings-report-status--ready {
    background: var(--pa-success-bg);
    color: var(--pa-success-text);
    border: 1px solid var(--pa-success-border);
}

.pa-geo-settings-report-status--failed {
    background: var(--pa-error-bg);
    color: var(--pa-error-text);
    border: 1px solid var(--pa-error-border);
}

.pa-geo-settings-report-status--pending {
    background: #fef9c3;
    color: #713f12;
    border: 1px solid #fde047;
}

.pa-geo-settings-report-actions {
    display: flex;
    gap: 0.875rem;
}

.pa-geo-settings-report-actions a {
    color: var(--pa-ink);
    text-decoration: underline;
    font-size: 0.875rem;
}

.pa-geo-settings-reports-note {
    margin-top: 0.875rem;
    padding-top: 0.875rem;
    border-top: 1px solid var(--pa-border);
    font-size: 0.8125rem;
    color: var(--pa-muted);
}

/* Day 32 — Pełen raport L1 PDF card */

.pa-geo-dashboard-pdf-card {
    margin-bottom: 1.5rem;
    background: linear-gradient( 135deg, #ffffff 0%, var(--pa-cream) 100% );
    border: 1px solid var(--pa-border);
}

.pa-geo-dashboard-pdf-card--ready {
    background: linear-gradient( 135deg, #ffffff 0%, var(--pa-success-bg) 100% );
    border-color: var(--pa-success-border);
}

.pa-geo-dashboard-pdf-card--queued,
.pa-geo-dashboard-pdf-card--running {
    background: linear-gradient( 135deg, #ffffff 0%, #fef9c3 100% );
    border-color: #fde047;
}

.pa-geo-dashboard-pdf-card--failed {
    background: linear-gradient( 135deg, #ffffff 0%, var(--pa-error-bg) 100% );
    border-color: var(--pa-error-border);
}

.pa-geo-dashboard-pdf-card-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.pa-geo-dashboard-pdf-card-text {
    flex: 1 1 360px;
    min-width: 0;
}

.pa-geo-dashboard-pdf-card-text h2 {
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 700;
    margin-bottom: 0.375rem;
    line-height: 1.3;
}

.pa-geo-dashboard-pdf-card-text p {
    color: var(--pa-muted);
    font-size: 0.9375rem;
    line-height: 1.5;
    margin: 0;
}

.pa-geo-dashboard-pdf-card-text strong {
    color: var(--pa-ink);
    font-weight: 600;
}

.pa-geo-dashboard-pdf-card-action {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
}

.pa-geo-dashboard-pdf-card-secondary {
    font-size: 0.8125rem;
    color: var(--pa-muted);
}

.pa-geo-dashboard-pdf-card-secondary:hover {
    color: var(--pa-ink);
}

.pa-geo-dashboard-pdf-card-loading {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #713f12;
    font-size: 0.9375rem;
}

.pa-geo-dashboard-pdf-card-spinner {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid color-mix( in oklch, #713f12 30%, transparent );
    border-top-color: #713f12;
    border-radius: 50%;
    animation: pa-spin 0.7s linear infinite;
}

@media (max-width: 768px) {
    .pa-geo-dashboard-pdf-card-content {
        flex-direction: column;
        align-items: stretch;
    }
    .pa-geo-dashboard-pdf-card-action {
        align-items: stretch;
    }
}

/* Day 32 — Competitor deep insights expand panel */

.pa-geo-dashboard-competitor-row {
    padding: 0.625rem 0;
    border-bottom: 1px solid var(--pa-border);
    counter-increment: comp-counter;
    list-style: none;
}

.pa-geo-dashboard-competitor-row:last-child {
    border-bottom: 0;
}

.pa-geo-dashboard-competitor-row::before {
    content: counter(comp-counter) '.';
    color: var(--pa-muted);
    font-family: var(--font-mono);
    font-size: 0.875rem;
    min-width: 1.5rem;
    display: inline-block;
}

.pa-geo-dashboard-competitor-main {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: calc( 100% - 1.75rem );
    vertical-align: top;
}

.pa-geo-dashboard-competitor-toggle {
    background: transparent;
    color: var(--pa-muted);
    border: 0;
    padding: 0.375rem 0;
    margin-top: 0.25rem;
    margin-left: 1.5rem;
    font-size: 0.8125rem;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-family: inherit;
    transition: color 0.15s;
}

.pa-geo-dashboard-competitor-toggle:hover,
.pa-geo-dashboard-competitor-toggle:focus,
.pa-geo-dashboard-competitor-toggle.is-open {
    color: var(--pa-ink);
    outline: none;
}

.pa-geo-dashboard-competitor-toggle-icon {
    font-size: 0.625rem;
    line-height: 1;
    transition: transform 0.15s;
    display: inline-block;
}

/* B13 fix Day 34 — container query zamiast viewport @media.
   Konkurencja card ma ~440px content area → viewport 600px nigdy nie firowało.
   Container query firuje na podstawie ROZMIARU KONTENERA (card), nie viewport.
   Browser support 2024+: Chrome 105, Safari 16, Firefox 110. */
.pa-geo-dashboard-competitors-list {
    container-type: inline-size;
    container-name: pa-competitors;
}

.pa-geo-dashboard-competitor-insights {
    margin-top: 0.75rem;
    margin-left: 0;
    padding: 1.25rem;
    background: var(--pa-cream);
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius-sm);
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

/* Container query — firuje gdy card content area ≥ 420px (typowo desktop) */
@container pa-competitors (min-width: 420px) {
    .pa-geo-dashboard-competitor-insights {
        grid-template-columns: 1fr 1fr;
        gap: 1.25rem;
    }
    .pa-geo-dashboard-competitor-insights .pa-geo-dashboard-insights-section--weakness {
        grid-column: 1 / -1;
    }
}

/* Fallback dla starszych przeglądarek bez container query — viewport @media */
@supports not (container-type: inline-size) {
    @media (min-width: 1100px) {
        .pa-geo-dashboard-competitor-insights {
            grid-template-columns: 1fr 1fr;
            gap: 1.25rem;
        }
        .pa-geo-dashboard-competitor-insights .pa-geo-dashboard-insights-section--weakness {
            grid-column: 1 / -1;
        }
    }
}

.pa-geo-dashboard-competitor-insights[hidden] {
    display: none;
}

.pa-geo-dashboard-insights-section h4 {
    font-size: 0.9375rem;
    font-weight: 600;
    margin: 0 0 0.5rem;
    color: var(--pa-ink);
    line-height: 1.35;
    letter-spacing: -0.01em;
}

.pa-geo-dashboard-insights-section ul {
    margin: 0;
    padding-left: 0;
    list-style: none;
}

.pa-geo-dashboard-insights-section li {
    color: var(--pa-ink);
    font-size: 0.875rem;
    line-height: 1.55;
    padding: 0.25rem 0 0.25rem 1rem;
    position: relative;
}

.pa-geo-dashboard-insights-section li::before {
    content: '•';
    position: absolute;
    left: 0;
    color: var(--pa-muted);
    font-weight: bold;
    line-height: 1.55;
}

.pa-geo-dashboard-insights-section--actionable {
    border-left: 3px solid var(--pa-accent);
    padding-left: 0.875rem;
    background: rgba(200, 232, 112, 0.08);
    border-radius: 0 var(--pa-radius-sm) var(--pa-radius-sm) 0;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    padding-right: 0.5rem;
}

.pa-geo-dashboard-insights-section--actionable li {
    color: var(--pa-ink);
    font-weight: 500;
}

.pa-geo-dashboard-insights-section--weakness {
    background: #fef9c3;
    border-radius: var(--pa-radius-sm);
    padding: 0.875rem 1rem;
    margin: 0;
}

.pa-geo-dashboard-insights-section--weakness h4 {
    color: #713f12;
    margin-bottom: 0.375rem;
}

.pa-geo-dashboard-insights-section--weakness p {
    color: #713f12;
    font-size: 0.875rem;
    line-height: 1.55;
    margin: 0;
}

/* Day 30 — info tooltips ("i" icon + popup) */

.pa-info-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    background: transparent;
    color: var(--pa-muted);
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    transition: color 0.15s, background 0.15s;
    flex: 0 0 auto;
}

.pa-info-icon:hover,
.pa-info-icon:focus,
.pa-info-icon[aria-expanded="true"] {
    color: var(--pa-ink);
    background: var(--pa-cream);
    outline: none;
}

/* Tooltip popup — fixed position żeby nie clip w kartach z overflow:hidden */
.pa-info-tooltip {
    position: fixed;
    inset: auto;
    top: 0;
    left: 0;
    z-index: 1000;
    max-width: 360px;
    background: #ffffff;
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius);
    box-shadow: 0 4px 24px rgba( 20, 20, 20, 0.12 );
    transform: translate( 0, 8px );
    /* Pozycjonowanie ustawiane via JS przy open (CSS:fallback) */
}

.pa-info-tooltip[hidden] {
    display: none;
}

.pa-info-tooltip-inner {
    position: relative;
    padding: 1rem 1.125rem 0.875rem;
}

.pa-info-tooltip-header {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin-bottom: 0.625rem;
    padding-right: 1.5rem; /* miejsce dla close X */
}

.pa-info-tooltip-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--pa-ink);
    line-height: 1.3;
}

.pa-info-tooltip-status {
    flex: 0 0 auto;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.125rem 0.5rem;
    border-radius: 999px;
    line-height: 1.4;
}

.pa-info-tooltip-status--real {
    background: #e8f5e8;
    color: #166534;
    border: 1px solid #bbf7d0;
}

.pa-info-tooltip-status--placeholder {
    background: #fef9c3;
    color: #713f12;
    border: 1px solid #fde047;
}

.pa-info-tooltip-status--hardcoded {
    background: var(--pa-cream);
    color: var(--pa-muted);
    border: 1px solid var(--pa-border);
}

.pa-info-tooltip-body {
    font-size: 0.8125rem;
    color: var(--pa-ink);
    line-height: 1.5;
}

.pa-info-tooltip-body p {
    margin: 0 0 0.5rem;
}

.pa-info-tooltip-body p:last-child {
    margin-bottom: 0;
}

.pa-info-tooltip-body strong {
    font-weight: 600;
    color: var(--pa-ink);
}

.pa-info-tooltip-body ul,
.pa-info-tooltip-body ol {
    /* Day 40 fix — numerowana lista wylewała się poza ramkę dymka
       (browser default padding-left dla <ol> = ~40px, plus brak inheritance
       z .pa-info-tooltip-inner padding 1rem). Margin replaced przez
       padding-left + box-sizing: border-box żeby numbery + content
       mieściły się w 360px max-width tooltip. */
    margin: 0.25rem 0 0.5rem 0;
    padding-left: 1.5rem;
    box-sizing: border-box;
}

.pa-info-tooltip-body ol {
    /* Marker outside fallback gdy lista długa — żeby numbery były aligned */
    list-style-position: outside;
}

.pa-info-tooltip-body li {
    color: var(--pa-muted);
    padding: 0.0625rem 0;
    /* Day 40 — fix dla długich linii (np. <code>Accept: text/markdown</code>)
       żeby nie pchały listy poza ramkę */
    word-break: break-word;
    overflow-wrap: anywhere;
}

.pa-info-tooltip-body code {
    /* Day 40 — code w listach (np. method names) musi break poprawnie */
    word-break: break-word;
    overflow-wrap: anywhere;
    font-size: 0.875em;
    background: rgba( 20, 20, 20, 0.05 );
    padding: 0.0625rem 0.25rem;
    border-radius: 3px;
}

.pa-info-tooltip-close {
    position: absolute;
    top: 0.625rem;
    right: 0.625rem;
    width: 24px;
    height: 24px;
    padding: 0;
    background: transparent;
    color: var(--pa-muted);
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    font-size: 1.5rem;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.15s, background 0.15s;
}

.pa-info-tooltip-close:hover,
.pa-info-tooltip-close:focus {
    color: var(--pa-ink);
    background: var(--pa-cream);
    outline: none;
}

/* Mobile — tooltip jako bottom sheet (full-width, sticky bottom) */
@media (max-width: 480px) {
    .pa-info-tooltip {
        position: fixed !important;
        top: auto !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        max-width: none !important;
        border-radius: var(--pa-radius) var(--pa-radius) 0 0;
        border-bottom: 0;
        transform: none;
    }
}

/* Day 30 — GRI badge w Visibility KPI card */

.pa-geo-dashboard-kpi-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
}

.pa-geo-dashboard-kpi-card-header-left {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    flex: 1;
    min-width: 0;
}

.pa-gri-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.625rem;
    border-radius: 6px;
    font-family: var(--font-mono);
    font-size: 0.8125rem;
    font-weight: 700;
    color: #ffffff;
    line-height: 1.2;
    margin-top: 0.5rem;
    flex: 0 0 auto;
    align-self: flex-start;
}

.pa-gri-badge-letter {
    font-size: 1rem;
}

.pa-gri-badge-label {
    font-family: var(--font-body);
    font-size: 0.6875rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    opacity: 0.95;
}

/* Day 28 — re-run audit button */

.pa-geo-dashboard-greeting-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.pa-geo-dashboard-rerun-btn {
    flex: 0 0 auto;
    background: transparent;
    color: var(--pa-ink);
    border: 1.5px solid var(--pa-border);
    padding: 0.5rem 1rem;
    border-radius: var(--pa-radius-sm);
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s;
    font-family: inherit;
    white-space: nowrap;
}

.pa-geo-dashboard-rerun-btn:hover:not(:disabled) {
    background: var(--pa-cream);
    border-color: var(--pa-accent);
}

.pa-geo-dashboard-rerun-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.pa-geo-dashboard-rerun-status {
    margin-top: 0.75rem;
    padding: 0.625rem 0.875rem;
    border-radius: var(--pa-radius-sm);
    font-size: 0.875rem;
}

.pa-geo-dashboard-rerun-status--success {
    background: var(--pa-success-bg);
    border: 1px solid var(--pa-success-border);
    color: var(--pa-success-text);
}

.pa-geo-dashboard-rerun-status--error {
    background: var(--pa-error-bg);
    border: 1px solid var(--pa-error-border);
    color: var(--pa-error-text);
}

/* Day 27 hotfix — canceled subscription banner */

.pa-geo-dashboard-canceled-banner {
    margin-bottom: 1.5rem;
    padding: 1rem 1.25rem;
    background: #fef9c3;
    border: 1px solid #fde047;
    border-radius: var(--pa-radius-sm);
    color: #713f12;
    font-size: 0.9375rem;
    line-height: 1.5;
}

.pa-geo-dashboard-canceled-banner strong {
    color: #713f12;
    font-weight: 600;
}

.pa-geo-dashboard-canceled-banner a {
    color: #713f12;
    text-decoration: underline;
}

/* ─── Settings page (Day 27) ─────────────────────────────────────────────── */

.pa-geo-settings-main {
    max-width: 760px;
}

.pa-geo-settings-card {
    margin-bottom: 1rem;
}

.pa-geo-settings-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pa-geo-settings-row {
    display: flex;
    flex-direction: column;
}

.pa-geo-settings-row--double {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.pa-geo-settings-form label {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--pa-ink);
}

.pa-geo-settings-form input[type="text"],
.pa-geo-settings-form input[type="email"] {
    width: 100%;
    padding: 0.75rem 0.875rem;
    border: 1.5px solid var(--pa-border);
    border-radius: var(--pa-radius-sm);
    background: #ffffff;
    color: var(--pa-ink);
    font-size: 0.9375rem;
    font-family: inherit;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.pa-geo-settings-form input:focus {
    outline: none;
    border-color: var(--pa-accent);
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--pa-accent) 35%, transparent);
}

.pa-geo-settings-hint {
    font-size: 0.8125rem;
    color: var(--pa-muted);
    font-weight: 400;
    margin-top: 0.125rem;
}

.pa-geo-settings-actions {
    margin-top: 0.5rem;
    display: flex;
    justify-content: flex-end;
}

/* Subscription section */

.pa-geo-settings-mock-badge {
    background: #fef9c3;
    border: 1px solid #fde047;
    color: #713f12;
    padding: 0.25rem 0.625rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.pa-geo-settings-info-grid {
    display: grid;
    grid-template-columns: repeat( auto-fit, minmax( 200px, 1fr ) );
    gap: 1rem 2rem;
    margin: 0 0 1.5rem;
    padding: 0;
}

.pa-geo-settings-info-grid div {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.pa-geo-settings-info-grid dt {
    font-size: 0.8125rem;
    color: var(--pa-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 500;
    margin: 0;
}

.pa-geo-settings-info-grid dd {
    font-size: 0.9375rem;
    color: var(--pa-ink);
    margin: 0;
    font-family: var(--font-mono);
}

.pa-geo-settings-cancel-section {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--pa-border);
}

.pa-geo-settings-cancel-section h3 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.pa-geo-settings-cancel-section p {
    color: var(--pa-muted);
    font-size: 0.9375rem;
    line-height: 1.5;
    margin-bottom: 1rem;
}

.pa-geo-settings-button-danger {
    background: transparent;
    color: #991b1b;
    border: 1.5px solid #fecaca;
    padding: 0.625rem 1.25rem;
    border-radius: var(--pa-radius-sm);
    font-size: 0.9375rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s;
    font-family: inherit;
}

.pa-geo-settings-button-danger:hover:not(:disabled) {
    background: #fef2f2;
    border-color: #fca5a5;
}

.pa-geo-settings-button-danger:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.pa-geo-settings-canceled-banner {
    background: var(--pa-cream);
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius-sm);
    padding: 1rem 1.25rem;
    color: var(--pa-ink);
    font-size: 0.9375rem;
    line-height: 1.5;
}

.pa-geo-settings-canceled-banner strong {
    color: #991b1b;
    font-weight: 600;
}

.pa-geo-settings-canceled-banner a {
    color: var(--pa-ink);
    text-decoration: underline;
}

/* Day 29 — Settings danger zone (RODO delete account) */

.pa-geo-settings-danger {
    border-color: #fecaca;
}

.pa-geo-settings-danger .pa-geo-dashboard-card-header h2 {
    color: #991b1b;
}

.pa-geo-settings-mock-badge--danger {
    background: #fee2e2;
    border-color: #fecaca;
    color: #991b1b;
}

.pa-geo-settings-danger-section h3 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: var(--pa-ink);
}

.pa-geo-settings-danger-section p {
    color: var(--pa-muted);
    font-size: 0.9375rem;
    line-height: 1.5;
    margin-bottom: 1rem;
}

.pa-geo-settings-rodo-details {
    background: var(--pa-cream);
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius-sm);
    padding: 0.75rem 1rem;
    margin-bottom: 1.25rem;
}

.pa-geo-settings-rodo-details summary {
    cursor: pointer;
    font-weight: 500;
    font-size: 0.9375rem;
    color: var(--pa-ink);
    padding: 0.25rem 0;
    user-select: none;
}

.pa-geo-settings-rodo-details summary:hover {
    color: var(--pa-accent-text);
}

.pa-geo-settings-rodo-content {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--pa-border);
    font-size: 0.875rem;
    color: var(--pa-ink);
    line-height: 1.5;
}

.pa-geo-settings-rodo-content h4 {
    font-size: 0.875rem;
    font-weight: 600;
    margin: 0.75rem 0 0.375rem;
    color: var(--pa-ink);
}

.pa-geo-settings-rodo-content ul {
    margin: 0.25rem 0 0.75rem 1.5rem;
    padding: 0;
}

.pa-geo-settings-rodo-content li {
    color: var(--pa-muted);
    font-size: 0.875rem;
    line-height: 1.5;
    padding: 0.125rem 0;
}

.pa-geo-settings-rodo-content strong {
    color: var(--pa-ink);
}

.pa-geo-settings-delete-form {
    margin-top: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}

.pa-geo-settings-delete-form label {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--pa-ink);
    line-height: 1.5;
}

.pa-geo-settings-delete-form input[type="text"] {
    width: 240px;
    padding: 0.625rem 0.875rem;
    border: 1.5px solid var(--pa-border);
    border-radius: var(--pa-radius-sm);
    background: #ffffff;
    color: var(--pa-ink);
    font-size: 0.9375rem;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.pa-geo-settings-delete-form input[type="text"]:focus {
    outline: none;
    border-color: #fecaca;
    box-shadow: 0 0 0 3px #fee2e2;
}

.pa-geo-settings-button-danger--strong {
    background: #dc2626;
    color: #ffffff;
    border-color: #dc2626;
    align-self: flex-start;
}

.pa-geo-settings-button-danger--strong:hover:not(:disabled) {
    background: #991b1b;
    border-color: #991b1b;
}

.pa-geo-settings-button-danger--strong:disabled {
    background: #fca5a5;
    border-color: #fca5a5;
    color: #ffffff;
    cursor: not-allowed;
}

.pa-geo-dashboard-footer-legal {
    margin-top: 0.5rem;
    font-size: 0.75rem;
    color: var(--pa-muted);
}

.pa-geo-dashboard-footer-legal a {
    color: var(--pa-muted);
    text-decoration: underline;
    margin: 0 0.125rem;
}

/* ─── Onboarding screen (Day 26) ─────────────────────────────────────────── */

.pa-geo-dashboard-body--onboarding {
    background: var(--pa-cream);
}

.pa-geo-onboarding-main {
    max-width: 920px;
}

.pa-geo-onboarding-hero {
    text-align: center;
    padding: 2rem 1rem 1.5rem;
}

.pa-geo-onboarding-hero h1 {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.02em;
    margin-bottom: 0.75rem;
}

.pa-geo-onboarding-lead {
    font-size: 1.0625rem;
    color: var(--pa-muted);
    max-width: 580px;
    margin: 0 auto;
    line-height: 1.5;
}

.pa-geo-onboarding-widget {
    margin: 1rem -1rem 0;
}

/* Embedded preview widget — onboarding mode adjustments */

.pa-geo-dashboard-body--onboarding .pa-geo-preview-wrap {
    margin: 0 auto;
    padding: 0 1rem;
}

/* Hide standalone preview-widget title (mamy własny hero h1 powyżej) */
.pa-geo-dashboard-body--onboarding .pa-geo-preview-title {
    display: none;
}

.pa-geo-dashboard-body--onboarding .pa-geo-preview-lead {
    display: none;
}

/* Hide paywall — user już ma trial, nie potrzebujemy paywall CTA */
.pa-geo-dashboard-body--onboarding .pa-geo-preview-paywall {
    display: none !important;
}

/* Onboarding success banner */

.pa-geo-onboarding-success-banner {
    position: fixed;
    bottom: 2rem;
    left: 50%;
    transform: translateX( -50% );
    background: var(--pa-success-bg);
    color: var(--pa-success-text);
    border: 1px solid var(--pa-success-border);
    border-radius: var(--pa-radius);
    padding: 1rem 1.5rem;
    box-shadow: var(--pa-shadow);
    font-size: 0.9375rem;
    z-index: 9999;
    max-width: 90vw;
    animation: pa-onboarding-slide-up 0.3s ease-out;
}

.pa-geo-onboarding-success-banner strong {
    display: inline-block;
    margin-right: 0.375rem;
    font-weight: 700;
}

@keyframes pa-onboarding-slide-up {
    from { opacity: 0; transform: translate( -50%, 20px ); }
    to   { opacity: 1; transform: translate( -50%, 0 ); }
}

/* Mobile */

@media (max-width: 768px) {
    .pa-geo-dashboard-header { flex-wrap: wrap; gap: 1rem; }
    .pa-geo-dashboard-brand { width: 100%; order: 2; }
    .pa-geo-dashboard-trial-badge { order: 3; }
    .pa-geo-dashboard-nav { order: 4; }
    .pa-geo-dashboard-main { padding: 1.5rem 1rem; }
    .pa-geo-dashboard-grid { grid-template-columns: 1fr; }
    .pa-geo-dashboard-card--chart, .pa-geo-dashboard-card--actions { grid-column: span 1; }
    .pa-geo-trial-row--double { grid-template-columns: 1fr; }
    .pa-geo-dashboard-greeting h1 { font-size: 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
    .pa-geo-auth-button-spinner { animation: none; }
}

/* ========================================================================
   Day 34 — llms.txt modal
   ======================================================================== */

.pa-geo-dashboard-action--clickable {
    cursor: pointer;
}

.pa-geo-dashboard-action-cta {
    margin-top: 0.5rem;
    background: var(--pa-accent);
    color: var(--pa-ink);
    border: 0;
    padding: 0.4rem 0.875rem;
    border-radius: var(--pa-radius-sm);
    font-weight: 600;
    font-size: 0.8125rem;
    cursor: pointer;
    transition: opacity 0.15s, transform 0.15s;
}

.pa-geo-dashboard-action-cta:hover {
    opacity: 0.9;
    transform: translateY(-1px);
}

.pa-llms-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.pa-llms-modal[hidden] {
    display: none;
}

.pa-llms-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20, 19, 15, 0.6);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.pa-llms-modal-content {
    position: relative;
    background: var(--pa-paper, #fff);
    border-radius: 12px;
    max-width: 720px;
    width: 100%;
    max-height: calc(100vh - 2rem);
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    overflow: hidden;
}

.pa-llms-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--pa-border);
}

.pa-llms-modal-header h2 {
    font-size: 1.25rem;
    margin: 0;
    color: var(--pa-ink);
}

.pa-llms-modal-close {
    background: none;
    border: 0;
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
    color: var(--pa-muted);
    padding: 0.25rem 0.5rem;
}

.pa-llms-modal-close:hover {
    color: var(--pa-ink);
}

.pa-llms-modal-body {
    padding: 1.5rem;
    overflow-y: auto;
    flex: 1;
}

.pa-llms-modal-intro {
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--pa-ink);
    margin: 0 0 1.5rem;
    padding: 1rem;
    background: var(--pa-cream);
    border-radius: 8px;
    border-left: 3px solid var(--pa-accent);
}

.pa-llms-modal-loading {
    text-align: center;
    padding: 2rem;
}

.pa-llms-spinner {
    display: inline-block;
    width: 32px;
    height: 32px;
    border: 3px solid var(--pa-border);
    border-top-color: var(--pa-accent);
    border-radius: 50%;
    animation: pa-llms-spin 0.8s linear infinite;
    margin-bottom: 0.75rem;
}

@keyframes pa-llms-spin {
    to { transform: rotate(360deg); }
}

.pa-llms-modal-error {
    background: #fee2e2;
    color: #991b1b;
    padding: 1rem;
    border-radius: 8px;
    border: 1px solid #fca5a5;
    margin-bottom: 1rem;
}

.pa-llms-modal-tabs {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--pa-border);
}

.pa-llms-modal-tab {
    background: none;
    border: 0;
    padding: 0.625rem 1rem;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--pa-muted);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: color 0.15s, border-color 0.15s;
}

.pa-llms-modal-tab.is-active {
    color: var(--pa-ink);
    border-bottom-color: var(--pa-accent);
}

.pa-llms-modal-tab-content[hidden] {
    display: none;
}

.pa-llms-modal-meta {
    font-size: 0.8125rem;
    color: var(--pa-muted);
    margin-bottom: 0.75rem;
    font-family: var(--pa-font-mono, ui-monospace, monospace);
}

.pa-llms-modal-preview {
    background: var(--pa-cream);
    border: 1px solid var(--pa-border);
    border-radius: 8px;
    padding: 1rem;
    font-family: var(--pa-font-mono, ui-monospace, 'Monaco', 'Menlo', monospace);
    font-size: 0.8125rem;
    line-height: 1.55;
    color: var(--pa-ink);
    max-height: 360px;
    overflow-y: auto;
    white-space: pre-wrap;
    word-break: break-word;
    margin: 0 0 1rem;
}

.pa-llms-modal-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.pa-llms-modal-btn {
    background: var(--pa-paper);
    border: 1px solid var(--pa-border);
    color: var(--pa-ink);
    padding: 0.625rem 1.25rem;
    border-radius: var(--pa-radius-sm);
    font-weight: 600;
    font-size: 0.9375rem;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

.pa-llms-modal-btn:hover {
    background: var(--pa-cream);
    border-color: var(--pa-ink);
}

.pa-llms-modal-btn--primary {
    background: var(--pa-accent);
    border-color: var(--pa-accent);
}

.pa-llms-modal-btn--primary:hover {
    background: var(--pa-accent);
    border-color: var(--pa-ink);
    opacity: 0.9;
}

.pa-llms-modal-tab-content[data-tab-content="instructions"] details {
    background: var(--pa-cream);
    border: 1px solid var(--pa-border);
    border-radius: 8px;
    padding: 0.75rem 1rem;
    margin-bottom: 0.75rem;
}

.pa-llms-modal-tab-content[data-tab-content="instructions"] details[open] {
    background: var(--pa-paper);
}

.pa-llms-modal-tab-content[data-tab-content="instructions"] summary {
    cursor: pointer;
    padding: 0.25rem 0;
    user-select: none;
}

.pa-llms-modal-tab-content[data-tab-content="instructions"] ol,
.pa-llms-modal-tab-content[data-tab-content="instructions"] ul {
    line-height: 1.6;
    margin: 0.75rem 0;
    padding-left: 1.5rem;
}

.pa-llms-modal-tab-content[data-tab-content="instructions"] ol li,
.pa-llms-modal-tab-content[data-tab-content="instructions"] ul li {
    margin-bottom: 0.375rem;
}

.pa-llms-modal-tab-content[data-tab-content="instructions"] ol li ul,
.pa-llms-modal-tab-content[data-tab-content="instructions"] ol li ol {
    margin-top: 0.375rem;
    margin-bottom: 0.375rem;
}

.pa-llms-modal-tab-content[data-tab-content="instructions"] code {
    background: var(--pa-cream);
    padding: 0.125rem 0.375rem;
    border-radius: 3px;
    font-family: var(--pa-font-mono, ui-monospace, monospace);
    font-size: 0.875em;
}

.pa-llms-modal-tab-content[data-tab-content="instructions"] pre {
    background: var(--pa-ink);
    color: var(--pa-cream);
    padding: 0.75rem;
    border-radius: 6px;
    overflow-x: auto;
    font-size: 0.8125rem;
    margin: 0.5rem 0;
}

.pa-llms-modal-cta-box {
    background: linear-gradient(135deg, var(--pa-accent), rgba(200, 222, 60, 0.5));
    border-radius: 8px;
    padding: 1rem;
    margin-top: 1.5rem;
}

.pa-llms-modal-cta-box p {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--pa-ink);
}

@media (max-width: 600px) {
    .pa-llms-modal-content {
        max-width: calc(100vw - 1rem);
        max-height: calc(100vh - 1rem);
    }
    .pa-llms-modal-actions {
        flex-direction: column;
    }
    .pa-llms-modal-btn {
        width: 100%;
    }
}

/* Day 34 — Implemented actions list (expandable details) */
.pa-geo-dashboard-implemented {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    background: rgba(34, 197, 94, 0.06);
    border: 1px solid rgba(34, 197, 94, 0.18);
    border-radius: var(--pa-radius-sm);
}

.pa-geo-dashboard-implemented summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 0.875rem;
    color: #166534;
    user-select: none;
    list-style: none;
}

.pa-geo-dashboard-implemented summary::-webkit-details-marker {
    display: none;
}

.pa-geo-dashboard-implemented summary::before {
    content: '▸';
    display: inline-block;
    margin-right: 0.375rem;
    transition: transform 0.15s;
    font-size: 0.75rem;
}

.pa-geo-dashboard-implemented[open] summary::before {
    transform: rotate(90deg);
}

.pa-geo-dashboard-implemented-list {
    list-style: none;
    padding: 0;
    margin: 0.625rem 0 0;
}

.pa-geo-dashboard-implemented-list li {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.375rem 0;
    font-size: 0.875rem;
    color: var(--pa-ink);
    border-bottom: 1px solid rgba(34, 197, 94, 0.1);
}

.pa-geo-dashboard-implemented-list li:last-child {
    border-bottom: 0;
}

.pa-geo-dashboard-implemented-check {
    color: #16a34a;
    font-weight: 700;
    flex-shrink: 0;
}

.pa-geo-dashboard-implemented-title {
    flex: 1;
}

.pa-geo-dashboard-implemented-impact {
    font-size: 0.75rem;
    color: var(--pa-muted);
    font-family: var(--pa-font-mono, ui-monospace, monospace);
    flex-shrink: 0;
}

/* ========================================================================
   Day 34 — Konkurencja stats banner (pozycja Twojej + porównanie)
   ======================================================================== */

.pa-geo-dashboard-competitors-stats {
    margin: 0 0 1.5rem;
    padding: 1.25rem;
    background: linear-gradient(135deg, var(--pa-cream), rgba(200, 222, 60, 0.1));
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius);
}

.pa-geo-dashboard-competitors-stats-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.875rem;
    margin-bottom: 0.875rem;
}

@media (min-width: 600px) {
    .pa-geo-dashboard-competitors-stats-row {
        grid-template-columns: repeat(4, 1fr);
    }
}

.pa-geo-dashboard-competitors-stat {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.125rem;
}

.pa-geo-dashboard-competitors-stat-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--pa-ink);
    font-family: var(--pa-font-mono, ui-monospace, monospace);
    letter-spacing: -0.02em;
    line-height: 1.1;
}

.pa-geo-dashboard-competitors-stat-unit {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--pa-muted);
}

.pa-geo-dashboard-competitors-stat-label {
    font-size: 0.75rem;
    color: var(--pa-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 500;
}

.pa-geo-dashboard-competitors-stats-summary {
    margin: 0;
    padding-top: 0.875rem;
    border-top: 1px solid var(--pa-border);
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--pa-ink);
}

/* ========================================================================
   Day 34 round 3 — Competitor strategy modal (insights redesign)
   ======================================================================== */

.pa-comp-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.pa-comp-modal[hidden] {
    display: none;
}

.pa-comp-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20, 19, 15, 0.6);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.pa-comp-modal-content {
    position: relative;
    background: var(--pa-paper, #fff);
    border-radius: 12px;
    max-width: 720px;
    width: 100%;
    max-height: calc(100vh - 2rem);
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    overflow: hidden;
}

.pa-comp-modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--pa-border);
    background: linear-gradient(135deg, var(--pa-cream), rgba(200, 222, 60, 0.08));
}

.pa-comp-modal-header-info {
    display: flex;
    gap: 0.875rem;
    align-items: center;
    flex: 1;
    min-width: 0;
}

.pa-comp-modal-rank {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--pa-muted);
    font-family: var(--pa-font-mono, ui-monospace, monospace);
    flex-shrink: 0;
}

.pa-comp-modal-title-block {
    flex: 1;
    min-width: 0;
}

.pa-comp-modal-title {
    font-size: 1.125rem;
    margin: 0;
    color: var(--pa-ink);
    word-break: break-word;
    line-height: 1.3;
}

.pa-comp-modal-domain {
    font-size: 0.8125rem;
    color: var(--pa-muted);
    text-decoration: none;
    font-family: var(--pa-font-mono, ui-monospace, monospace);
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.125rem;
    word-break: break-all;
}

.pa-comp-modal-domain::after {
    content: '↗';
    font-size: 0.75rem;
}

.pa-comp-modal-domain:hover {
    color: var(--pa-ink);
    text-decoration: underline;
}

.pa-comp-modal-score-block {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    flex-shrink: 0;
}

.pa-comp-modal-score {
    font-size: 1.875rem;
    font-weight: 700;
    color: var(--pa-ink);
    font-family: var(--pa-font-mono, ui-monospace, monospace);
    line-height: 1;
}

.pa-comp-modal-score-unit {
    font-size: 0.75rem;
    color: var(--pa-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 0.25rem;
}

.pa-comp-modal-close {
    background: none;
    border: 0;
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
    color: var(--pa-muted);
    padding: 0.25rem 0.5rem;
    flex-shrink: 0;
}

.pa-comp-modal-close:hover {
    color: var(--pa-ink);
}

.pa-comp-modal-body {
    padding: 1.5rem;
    overflow-y: auto;
    flex: 1;
}

.pa-comp-modal-rationale {
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--pa-muted);
    margin: 0 0 1.5rem;
    padding: 0.875rem 1rem;
    background: var(--pa-cream);
    border-radius: 6px;
    border-left: 3px solid var(--pa-border);
    font-style: italic;
}

.pa-comp-modal-section {
    margin-bottom: 1.5rem;
    padding: 1rem 1.25rem;
    border-radius: 8px;
    background: var(--pa-cream);
    border: 1px solid var(--pa-border);
}

.pa-comp-modal-section h3 {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--pa-ink);
    line-height: 1.3;
}

.pa-comp-modal-section ul,
.pa-comp-modal-section ol {
    margin: 0;
    padding-left: 1.25rem;
}

.pa-comp-modal-section li {
    margin-bottom: 0.5rem;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--pa-ink);
}

.pa-comp-modal-section li:last-child {
    margin-bottom: 0;
}

.pa-comp-modal-section p {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.55;
}

.pa-comp-modal-section--actionable {
    background: rgba(200, 222, 60, 0.1);
    border-color: rgba(200, 222, 60, 0.4);
    border-left: 4px solid var(--pa-accent);
}

.pa-comp-modal-section--actionable h3 {
    color: #2d4a00;
}

.pa-comp-modal-section--weakness {
    background: #fef9c3;
    border-color: #fcd34d;
}

.pa-comp-modal-section--weakness h3 {
    color: #713f12;
}

.pa-comp-modal-section--weakness p {
    color: #713f12;
}

.pa-comp-modal-cta {
    margin-top: 1rem;
    padding: 1rem 1.25rem;
    background: var(--pa-paper);
    border: 1px dashed var(--pa-border);
    border-radius: 8px;
}

.pa-comp-modal-cta p {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.55;
    color: var(--pa-ink);
}

/* Mobile */
@media (max-width: 600px) {
    .pa-comp-modal-content {
        max-width: calc(100vw - 1rem);
        max-height: calc(100vh - 1rem);
    }
    .pa-comp-modal-header-info {
        flex-wrap: wrap;
    }
    .pa-comp-modal-score-block {
        margin-top: 0.5rem;
        align-items: flex-start;
    }
    .pa-comp-modal-rank {
        font-size: 1.25rem;
    }
    .pa-comp-modal-title {
        font-size: 1rem;
    }
}

/* Trigger button styling — nadpisanie istniejącego inline expand */
.pa-geo-dashboard-competitor-toggle[data-competitor-modal-trigger] {
    width: 100%;
    margin-top: 0.5rem;
    padding: 0.5rem 0.875rem;
    background: var(--pa-paper);
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius-sm);
    color: var(--pa-ink);
    font-weight: 500;
    font-size: 0.875rem;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, transform 0.1s;
}

.pa-geo-dashboard-competitor-toggle[data-competitor-modal-trigger]:hover {
    background: var(--pa-cream);
    border-color: var(--pa-ink);
}

.pa-geo-dashboard-competitor-toggle[data-competitor-modal-trigger]:active {
    transform: translateY(1px);
}

/* Day 34 round 6 — Agreement badge (B16 cross-validation) */
.pa-comp-modal-agreement {
    margin-top: 0.5rem;
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 4px;
    display: inline-block;
}

.pa-comp-modal-agreement--verified {
    background: #dcfce7;
    color: #166534;
    border: 1px solid #86efac;
}

.pa-comp-modal-agreement--single {
    background: #fef9c3;
    color: #713f12;
    border: 1px solid #fcd34d;
}

/* Day 34 round 7 — user entry w competitor list (lime highlight) */
.pa-geo-dashboard-competitor-row.is-you {
    background: linear-gradient(90deg, rgba(200, 222, 60, 0.15), rgba(200, 222, 60, 0.05));
    border-left: 4px solid var(--pa-accent);
    padding-left: 0.625rem;
    margin-left: -1rem;
    border-radius: 0 var(--pa-radius-sm) var(--pa-radius-sm) 0;
}

.pa-geo-dashboard-competitor-row.is-you::before {
    color: var(--pa-ink);
    font-weight: 700;
}

.pa-geo-dashboard-competitor-row.is-you .pa-geo-dashboard-competitor-info strong {
    color: var(--pa-ink);
    font-weight: 700;
}

.pa-geo-dashboard-competitor-row.is-you .pa-geo-dashboard-competitor-score {
    color: var(--pa-ink);
    font-weight: 700;
}

.pa-geo-dashboard-competitor-you-badge {
    display: inline-block;
    background: var(--pa-accent);
    color: var(--pa-ink);
    font-size: 0.6875rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 999px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-left: 0.5rem;
    vertical-align: middle;
}

/* ========================================================================
   Day 34 round 11 (B17) — Multi-brand portfolio styles
   ======================================================================== */

/* Brand switcher dropdown w nav header */
.pa-brand-switcher {
    position: relative;
    display: inline-block;
}

.pa-brand-switcher-btn {
    background: var(--pa-paper);
    border: 1px solid var(--pa-border);
    color: var(--pa-ink);
    padding: 0.375rem 0.875rem;
    border-radius: var(--pa-radius-sm);
    font-size: 0.9375rem;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: background 0.15s, border-color 0.15s;
}

.pa-brand-switcher-btn:hover {
    background: var(--pa-cream);
    border-color: var(--pa-ink);
}

.pa-brand-switcher-arrow {
    font-size: 0.75rem;
    color: var(--pa-muted);
    transition: transform 0.15s;
}

.pa-brand-switcher-btn[aria-expanded="true"] .pa-brand-switcher-arrow {
    transform: rotate(180deg);
}

.pa-brand-switcher-menu {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    background: var(--pa-paper);
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius-sm);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    min-width: 260px;
    list-style: none;
    padding: 0.5rem 0;
    margin: 0;
    z-index: 1000;
    overflow: visible;
}

.pa-brand-switcher-menu[hidden] { display: none; }

.pa-brand-switcher-item {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0.5rem 0.875rem;
    background: none;
    border: 0;
    color: var(--pa-ink);
    font-size: 0.875rem;
    font-weight: 500;
    text-align: left;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.1s;
}

.pa-brand-switcher-item:hover {
    background: var(--pa-cream);
}

.pa-brand-switcher-item.is-active {
    font-weight: 700;
    color: var(--pa-ink);
}

.pa-brand-switcher-item--manage {
    color: var(--pa-muted);
    border-top: 1px solid var(--pa-border);
}

.pa-brand-switcher-divider {
    border-top: 1px solid var(--pa-border);
    margin: 0.25rem 0;
    height: 0;
    overflow: hidden;
}

.pa-brand-add-link {
    margin-left: 0.625rem;
    font-size: 0.8125rem;
    color: var(--pa-muted);
    text-decoration: none;
    padding: 0.25rem 0.5rem;
    border: 1px dashed var(--pa-border);
    border-radius: 4px;
    transition: color 0.15s, border-color 0.15s;
}

.pa-brand-add-link:hover {
    color: var(--pa-ink);
    border-color: var(--pa-ink);
}

/* /dashboard/brands/ page styles */
.pa-brands-list {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem;
}

.pa-brand-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 0;
    border-bottom: 1px solid var(--pa-border);
    gap: 1rem;
}

.pa-brand-row:last-child {
    border-bottom: 0;
}

.pa-brand-row.is-primary {
    background: linear-gradient(90deg, rgba(200, 222, 60, 0.08), transparent);
    margin: 0 -1rem;
    padding: 1rem;
    border-radius: var(--pa-radius-sm);
    border-bottom: 1px solid var(--pa-border);
}

.pa-brand-info {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.pa-brand-info strong {
    font-size: 1.0625rem;
    color: var(--pa-ink);
}

.pa-brand-label-wrap {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: 4px;
}

.pa-brand-label-view {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.pa-brand-label {
    color: var(--pa-muted);
    font-size: 0.875rem;
    font-style: italic;
}

.pa-brand-label-empty {
    color: #b8b5ac;
    font-size: 0.8125rem;
    font-style: italic;
    opacity: 0.7;
}

.pa-brand-label-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 0.875rem;
    padding: 2px 4px;
    border-radius: 4px;
    opacity: 0.5;
    transition: opacity 0.15s, background 0.15s;
}

.pa-brand-label-btn:hover {
    opacity: 1;
    background: rgba(0,0,0,0.05);
}

.pa-brand-label-edit {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.pa-brand-label-edit[hidden] {
    display: none;
}

.pa-brand-label-input {
    padding: 4px 8px;
    border: 1px solid var(--pa-line, #d4d0c5);
    border-radius: 6px;
    font-size: 0.875rem;
    min-width: 180px;
    font-family: inherit;
    background: white;
}

.pa-brand-label-input:focus {
    outline: none;
    border-color: var(--pa-accent, #a8c759);
    box-shadow: 0 0 0 2px rgba(168,199,89,0.2);
}

.pa-brand-label-save,
.pa-brand-label-cancel {
    padding: 4px 10px;
    border: 1px solid var(--pa-line, #d4d0c5);
    border-radius: 6px;
    font-size: 0.8125rem;
    cursor: pointer;
    background: white;
    transition: background 0.15s, border-color 0.15s;
}

.pa-brand-label-save {
    background: var(--pa-accent, #a8c759);
    border-color: var(--pa-accent, #a8c759);
    color: #1f2a05;
    font-weight: 600;
}

.pa-brand-label-save:hover:not(:disabled) {
    filter: brightness(0.95);
}

.pa-brand-label-cancel:hover {
    background: rgba(0,0,0,0.03);
}

.pa-brand-label-save:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.pa-brand-primary-badge {
    background: var(--pa-accent);
    color: var(--pa-ink);
    font-size: 0.6875rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 999px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.pa-brand-meta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}

.pa-brand-audit-status {
    color: var(--pa-muted);
    font-size: 0.8125rem;
    font-family: var(--pa-font-mono, ui-monospace, monospace);
}

.pa-brand-audit-status--pending {
    color: #d97706;
}

.pa-brand-delete-btn {
    background: none;
    border: 1px solid var(--pa-border);
    color: #dc2626;
    padding: 0.25rem 0.625rem;
    border-radius: 4px;
    font-size: 0.8125rem;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

.pa-brand-delete-btn:hover {
    background: #fee2e2;
    border-color: #dc2626;
}

.pa-brand-delete-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Day 42 wieczór B17 — primary brand "🔒 Główna" button (disabled, no hover) */
.pa-brand-delete-btn--disabled {
    background: rgba(20, 19, 15, 0.04);
    border: 1px solid rgba(20, 19, 15, 0.12);
    color: #5a574e;
    cursor: not-allowed;
    opacity: 1;
    font-weight: 500;
}

.pa-brand-delete-btn--disabled:hover {
    background: rgba(20, 19, 15, 0.04);
    border-color: rgba(20, 19, 15, 0.12);
}

.pa-brand-add-form-wrap {
    margin-top: 1.5rem;
    padding: 1.25rem;
    background: var(--pa-cream);
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius-sm);
}

.pa-brand-add-form-wrap h3 {
    margin: 0 0 0.875rem;
    font-size: 1rem;
}

.pa-brand-form-row {
    margin-bottom: 0.875rem;
}

.pa-brand-form-row label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
    color: var(--pa-ink);
}

.pa-brand-form-row input {
    width: 100%;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--pa-border);
    border-radius: var(--pa-radius-sm);
    font-size: 0.9375rem;
    background: var(--pa-paper);
    color: var(--pa-ink);
}

.pa-brand-form-status {
    margin-top: 0.75rem;
    padding: 0.5rem 0.75rem;
    border-radius: 4px;
    font-size: 0.875rem;
}

.pa-brand-form-status--success {
    background: #dcfce7;
    color: #166534;
}

.pa-brand-form-status--error {
    background: #fee2e2;
    color: #991b1b;
}

.pa-brand-limit-reached {
    margin-top: 1rem;
    padding: 1rem;
    background: #fff3cd;
    border: 1px solid #fcd34d;
    border-radius: var(--pa-radius-sm);
}

.pa-brand-limit-reached p { margin: 0 0 0.5rem; }

.pa-brand-limit-reached ul {
    margin: 0.375rem 0 0 0;
    padding-left: 1.25rem;
    line-height: 1.6;
}

.pa-brand-limit-reached a {
    color: #14130f;
    font-weight: 600;
}

/* ========================================================================
   Day 34 round 12 — GeoBoost Snippet teaser (Sprint 5 KILLER FEATURE)
   ======================================================================== */

.pa-geoboost-teaser {
    margin: 2rem 0;
    padding: 2rem;
    background: linear-gradient(135deg, var(--pa-paper, #fff), rgba(200, 222, 60, 0.08));
    border: 2px solid var(--pa-accent, #c8de3c);
    border-radius: var(--pa-radius);
    position: relative;
    overflow: hidden;
}

.pa-geoboost-teaser::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 60%;
    height: 200%;
    background: radial-gradient(circle, rgba(200, 222, 60, 0.15), transparent 70%);
    pointer-events: none;
}

.pa-geoboost-teaser-header {
    position: relative;
    margin-bottom: 1.5rem;
}

.pa-geoboost-teaser-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--pa-accent);
    color: var(--pa-ink);
    padding: 0.375rem 0.875rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    margin-bottom: 0.75rem;
}

.pa-geoboost-teaser-badge-icon {
    font-size: 1rem;
}

.pa-geoboost-teaser-header h2 {
    font-size: 1.5rem;
    margin: 0 0 0.5rem;
    color: var(--pa-ink);
    font-weight: 700;
}

.pa-geoboost-teaser-tagline {
    font-size: 1rem;
    line-height: 1.55;
    color: var(--pa-ink);
    margin: 0;
}

.pa-geoboost-teaser-tagline code {
    background: var(--pa-cream);
    padding: 0.125rem 0.375rem;
    border-radius: 4px;
    font-family: var(--pa-font-mono, ui-monospace, monospace);
    font-size: 0.875em;
}

.pa-geoboost-teaser-body {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    position: relative;
}

@media (min-width: 800px) {
    .pa-geoboost-teaser-body {
        grid-template-columns: 1fr 1fr;
    }
    .pa-geoboost-teaser-cta,
    .pa-geoboost-teaser-status {
        grid-column: 1 / -1;
    }
}

.pa-geoboost-teaser-how h3,
.pa-geoboost-teaser-benefits h3 {
    font-size: 1rem;
    margin: 0 0 0.625rem;
    color: var(--pa-ink);
    font-weight: 600;
}

.pa-geoboost-teaser-how ol {
    margin: 0;
    padding-left: 1.25rem;
    line-height: 1.6;
    font-size: 0.9375rem;
}

.pa-geoboost-teaser-how li {
    margin-bottom: 0.5rem;
}

.pa-geoboost-teaser-benefits ul {
    list-style: none;
    margin: 0;
    padding: 0;
    line-height: 1.55;
    font-size: 0.9375rem;
}

.pa-geoboost-teaser-benefits li {
    padding: 0.25rem 0;
}

.pa-geoboost-teaser-preview {
    grid-column: 1 / -1;
    background: var(--pa-ink);
    border-radius: var(--pa-radius-sm);
    padding: 1rem 1.25rem;
    color: var(--pa-cream);
}

.pa-geoboost-teaser-preview-label {
    font-size: 0.75rem;
    color: var(--pa-cream);
    opacity: 0.7;
    margin-bottom: 0.5rem;
    font-family: var(--pa-font-mono, ui-monospace, monospace);
    letter-spacing: 0.05em;
}

.pa-geoboost-teaser-code {
    margin: 0;
    font-family: var(--pa-font-mono, ui-monospace, monospace);
    font-size: 0.875rem;
    color: var(--pa-cream);
    overflow-x: auto;
    line-height: 1.5;
}

.pa-geoboost-teaser-cta {
    text-align: center;
    margin-top: 1rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--pa-border);
}

.pa-geoboost-teaser-notify-btn {
    background: var(--pa-accent);
    color: var(--pa-ink);
    border: 0;
    padding: 0.875rem 2rem;
    border-radius: var(--pa-radius-sm);
    font-weight: 700;
    font-size: 1rem;
    cursor: pointer;
    transition: transform 0.15s, opacity 0.15s;
}

.pa-geoboost-teaser-notify-btn:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(200, 222, 60, 0.4);
}

.pa-geoboost-teaser-notify-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.pa-geoboost-teaser-cta-hint {
    display: block;
    margin-top: 0.625rem;
    font-size: 0.8125rem;
    color: var(--pa-muted);
}

.pa-geoboost-teaser-status {
    text-align: center;
    padding: 0.75rem 1rem;
    border-radius: var(--pa-radius-sm);
    font-weight: 600;
    margin-top: 0.5rem;
}

.pa-geoboost-teaser-status.is-success {
    background: #dcfce7;
    color: #166534;
}

.pa-geoboost-teaser-status.is-error {
    background: #fee2e2;
    color: #991b1b;
}

/* Day 43 wieczór audyt UX — P0-4: compact GeoBoost teaser.
   Stara wersja zżerała 2-3 ekrany scroll na dashboardzie. Compact = jeden row:
   ikona + (badge + title + desc inline) + CTA prawa. Visible w jednej karcie. */
.pa-geoboost-teaser--compact {
    padding: 1.25rem 1.5rem;
    margin: 1.5rem 0;
}

.pa-geoboost-teaser-compact-row {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    position: relative;
}

.pa-geoboost-teaser-compact-icon {
    flex: 0 0 auto;
    font-size: 2rem;
    line-height: 1;
}

.pa-geoboost-teaser-compact-content {
    flex: 1 1 auto;
    min-width: 0;
}

.pa-geoboost-teaser-compact-badge {
    display: inline-block;
    background: var(--pa-accent, #c8de3c);
    color: var(--pa-ink, #14130f);
    padding: 0.125rem 0.5rem;
    border-radius: 4px;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    margin-bottom: 0.375rem;
}

.pa-geoboost-teaser-compact-title {
    font-family: 'Fraunces', serif;
    font-size: 1.125rem;
    margin: 0 0 0.25rem;
    color: var(--pa-ink, #14130f);
    font-weight: 600;
    line-height: 1.3;
}

.pa-geoboost-teaser-compact-desc {
    margin: 0;
    font-size: 0.875rem;
    color: var(--pa-muted, #5a574e);
    line-height: 1.4;
}

.pa-geoboost-teaser-compact-desc code {
    background: rgba(20, 19, 15, 0.08);
    padding: 0.125rem 0.375rem;
    border-radius: 3px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.8125rem;
}

.pa-geoboost-teaser-compact-cta {
    flex: 0 0 auto;
}

.pa-geoboost-teaser-compact-cta .pa-geoboost-teaser-notify-btn {
    margin: 0;
    padding: 0.625rem 1rem;
    font-size: 0.875rem;
}

@media (max-width: 720px) {
    .pa-geoboost-teaser-compact-row {
        flex-direction: column;
        align-items: flex-start;
    }
    .pa-geoboost-teaser-compact-cta {
        width: 100%;
    }
    .pa-geoboost-teaser-compact-cta .pa-geoboost-teaser-notify-btn {
        width: 100%;
    }
}

/* Day 34 round 12 — Onboarding tour overlay */
.pa-onboarding-overlay {
    position: fixed;
    inset: 0;
    z-index: 9998;
    background: rgba(20, 19, 15, 0.6);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.pa-onboarding-overlay[hidden] { display: none; }

.pa-onboarding-card {
    background: var(--pa-paper, #fff);
    border-radius: 12px;
    max-width: 520px;
    width: 100%;
    padding: 2rem;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    position: relative;
}

.pa-onboarding-step-counter {
    font-size: 0.75rem;
    color: var(--pa-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.5rem;
    font-weight: 600;
}

.pa-onboarding-card h2 {
    font-size: 1.5rem;
    margin: 0 0 0.625rem;
    color: var(--pa-ink);
}

.pa-onboarding-card p {
    font-size: 1rem;
    line-height: 1.55;
    color: var(--pa-ink);
    margin: 0 0 1.25rem;
}

.pa-onboarding-card .pa-onboarding-icon {
    font-size: 3rem;
    margin-bottom: 1rem;
    line-height: 1;
}

.pa-onboarding-actions {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    justify-content: space-between;
    margin-top: 1.5rem;
}

.pa-onboarding-skip {
    background: none;
    border: 0;
    color: var(--pa-muted);
    font-size: 0.875rem;
    cursor: pointer;
    text-decoration: underline;
}

.pa-onboarding-next {
    background: var(--pa-accent);
    color: var(--pa-ink);
    border: 0;
    padding: 0.625rem 1.5rem;
    border-radius: var(--pa-radius-sm);
    font-weight: 700;
    font-size: 0.9375rem;
    cursor: pointer;
}

.pa-onboarding-next:hover {
    opacity: 0.9;
}

.pa-onboarding-progress {
    display: flex;
    gap: 6px;
    margin: 0 0 1rem 0;
}

.pa-onboarding-progress-dot {
    flex: 1;
    height: 4px;
    background: var(--pa-border);
    border-radius: 2px;
    transition: background 0.3s;
}

.pa-onboarding-progress-dot.is-active {
    background: var(--pa-accent);
}


/* ================================================================
 * Day 43 Krzysztof feedback — Sidebar dashboard redesign foundation
 * Wzorzec: Mention.com + Trakkr.ai (left nav + main content + right rankings)
 * ================================================================ */

/* Day 50 hotfix #6 — usunięty stary grid rule. Day 43 v1 sidebar miał markup
   `<div class="pa-geo-dashboard-v2"><aside class="pa-geo-sidebar"><main>...`
   gdzie wrapper był grid 240/1fr. Day 45 v2 (Sprint 5) zmienił markup na
   `<div class="pa-geo-dashboard-v2"><div class="pa-app">` gdzie `.pa-app`
   ma własny grid. Stary rule tworzył parent grid z `.pa-app` w pierwszym
   tracku (240px) + pusty drugi track — broken layout.

   Source of truth dla v2 grid: dashboard-v2.css `.pa-app { display:grid;
   grid-template-columns: 240px minmax(0,1fr) }`.

   Konkurencja.php nadal używa starego markup (`.pa-geo-dashboard-v2 >
   .pa-geo-dashboard-v2-content`) — dla niej grid jest przywracany przez
   `:has()` selector w dashboard-v2.css. */
.pa-geo-dashboard-v2 {
    min-height: 100vh;
    background: #faf8f3;
}

.pa-geo-dashboard-v2.has-right-sidebar {
    /* Day 50 hotfix #6 — only applies to old layout with right sidebar.
       New v2 layout uses `.pa-app` 2-track grid. */
    grid-template-columns: 240px 1fr 300px;
}

/* ---- Sidebar (left) ---- */
.pa-geo-sidebar {
    display: flex;
    flex-direction: column;
    background: #14130f;
    color: #faf8f3;
    padding: 24px 20px;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.pa-geo-sidebar-header {
    padding-bottom: 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    margin-bottom: 24px;
}

.pa-geo-sidebar-logo {
    color: #faf8f3;
    text-decoration: none;
    font-family: 'Fraunces', serif;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.01em;
    display: inline-flex;
    align-items: baseline;
    gap: 2px;
}

.pa-geo-sidebar-logo:hover { opacity: 0.85; }

.pa-geo-sidebar-logo-suffix {
    color: oklch(0.86 0.18 125);
    font-weight: 500;
    font-size: 18px;
}

.pa-geo-sidebar-section-label {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: rgba(250, 248, 243, 0.45);
    margin-bottom: 6px;
    font-weight: 600;
}

.pa-geo-sidebar-brand-switcher,
.pa-geo-sidebar-active-brand {
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.pa-geo-sidebar-active-brand strong {
    color: #faf8f3;
    font-weight: 600;
    font-size: 15px;
    word-break: break-word;
}

.pa-geo-sidebar-brand-select {
    width: 100%;
    padding: 8px 10px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #faf8f3;
    border-radius: 6px;
    font-size: 14px;
    cursor: pointer;
}

.pa-geo-sidebar-brand-select:focus {
    outline: 2px solid oklch(0.86 0.18 125);
    outline-offset: 1px;
}

.pa-geo-sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
}

.pa-geo-sidebar-nav-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 8px;
    color: rgba(250, 248, 243, 0.75);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    transition: background 0.15s ease, color 0.15s ease;
    position: relative;
}

.pa-geo-sidebar-nav-item:hover {
    background: rgba(255, 255, 255, 0.06);
    color: #faf8f3;
}

.pa-geo-sidebar-nav-item.is-active {
    background: oklch(0.86 0.18 125);
    color: #14130f;
    font-weight: 600;
}

.pa-geo-sidebar-nav-icon {
    font-size: 16px;
    line-height: 1;
}

.pa-geo-sidebar-nav-label {
    flex: 1;
}

.pa-geo-sidebar-nav-badge {
    background: rgba(252, 211, 77, 0.95);
    color: #14130f;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 4px;
    letter-spacing: 0.05em;
}

.pa-geo-sidebar-nav-item.is-active .pa-geo-sidebar-nav-badge {
    background: #14130f;
    color: oklch(0.86 0.18 125);
}

.pa-geo-sidebar-footer {
    margin-top: auto;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.pa-geo-sidebar-plan {
    font-size: 13px;
    line-height: 1.4;
}

.pa-geo-sidebar-plan strong {
    color: oklch(0.86 0.18 125);
    font-size: 15px;
    display: block;
    margin-bottom: 2px;
}

.pa-geo-sidebar-plan-suffix {
    color: rgba(250, 248, 243, 0.55);
    font-size: 12px;
}

.pa-geo-sidebar-logout {
    color: rgba(250, 248, 243, 0.65);
    text-decoration: none;
    font-size: 13px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: color 0.15s ease;
}

.pa-geo-sidebar-logout:hover {
    color: #faf8f3;
}

/* ---- Main content area ---- */
.pa-geo-dashboard-v2-content {
    padding: 32px 40px;
    max-width: 1280px;
    width: 100%;
    margin: 0 auto;
}

/* ---- Right sidebar (rankings widget) ---- */
.pa-geo-sidebar-right {
    background: #ffffff;
    border-left: 1px solid rgba(20, 19, 15, 0.08);
    padding: 32px 24px;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
}

/* ---- Mobile responsive: collapse sidebar to top bar ---- */
@media (max-width: 1024px) {
    .pa-geo-dashboard-v2,
    .pa-geo-dashboard-v2.has-right-sidebar {
        grid-template-columns: 1fr;
    }

    .pa-geo-sidebar {
        position: static;
        height: auto;
        flex-direction: row;
        padding: 16px 20px;
        align-items: center;
        gap: 16px;
    }

    .pa-geo-sidebar-header {
        padding: 0;
        border: 0;
        margin: 0;
    }

    .pa-geo-sidebar-brand-switcher,
    .pa-geo-sidebar-active-brand,
    .pa-geo-sidebar-footer {
        display: none; /* TODO: mobile menu drawer */
    }

    .pa-geo-sidebar-nav {
        flex-direction: row;
        gap: 4px;
        overflow-x: auto;
    }

    .pa-geo-sidebar-nav-item {
        padding: 8px 12px;
        white-space: nowrap;
        font-size: 13px;
    }

    .pa-geo-sidebar-nav-label {
        flex: initial;
    }

    .pa-geo-sidebar-right {
        display: none; /* hide rankings na mobile, można pokazać w drawer */
    }

    .pa-geo-dashboard-v2-content {
        padding: 20px 16px;
    }
}

/* Day 43 v1.35.2 — sidebar nav sections (Maciej feedback) */
.pa-geo-sidebar-nav-section {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: 16px;
}

.pa-geo-sidebar-nav-section:last-child {
    margin-bottom: 0;
}

.pa-geo-sidebar-nav-section-label {
    margin-bottom: 8px;
    padding: 0 12px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(250, 248, 243, 0.45);
    font-weight: 700;
}

/* Mobile @1024px — sections collapse to single inline scroll */
@media (max-width: 1024px) {
    .pa-geo-sidebar-nav-section {
        flex-direction: row;
        align-items: center;
        gap: 4px;
        margin-bottom: 0;
    }
    .pa-geo-sidebar-nav-section-label {
        display: none; /* hide section labels on mobile, items remain inline */
    }
}
