.pro-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 7px;
    border-radius: 999px;
    background: linear-gradient(135deg, #6d28d9, #2563eb);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    vertical-align: middle;
}

.keyword-ideas-card {
    margin: 0 0 24px;
    padding: 20px 24px;
    border-radius: 12px;
    background: var(--card-background);
    border: 1px solid rgba(130, 46, 245, 0.35);
}

.keyword-ideas-head h3 {
    margin: 0 0 4px;
    color: var(--text-primary);
    font-size: 1.1rem;
}

.keyword-ideas-head h3 i {
    color: #a78bfa;
}

.keyword-ideas-head p {
    margin: 0 0 14px;
    color: var(--text-secondary);
    font-size: 0.9rem;
}

.keyword-ideas-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.keyword-ideas-controls select {
    flex: 1 1 260px;
    min-width: 0;
    max-width: 100%;
}

.keyword-ideas-controls .btn {
    width: auto;
}

.ai-ideas-teaser {
    width: 100%;
}

.ai-ideas-teaser-head {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-primary);
    font-size: 1.05rem;
}

.ai-ideas-teaser-head i {
    color: #a78bfa;
}

.ai-ideas-teaser-lead {
    margin: 6px 0 12px;
    color: var(--text-secondary);
    font-size: 0.9rem;
}

.ai-ideas-example {
    margin-bottom: 12px;
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px dashed rgba(130, 46, 245, 0.4);
    background: rgba(130, 46, 245, 0.08);
    text-align: left;
}

.ai-ideas-example-label {
    margin-bottom: 8px;
    color: var(--text-secondary);
    font-size: 0.8rem;
}

.ai-ideas-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ai-idea-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(130, 46, 245, 0.18);
    color: var(--text-primary);
    font-size: 0.8rem;
}

.ai-idea-chip i {
    color: #a78bfa;
    font-size: 0.7rem;
}

.ai-idea-chip.is-locked i {
    color: var(--text-secondary);
}

.ai-idea-chip .ai-idea-hidden {
    display: inline-block;
    height: 0.75em;
    border-radius: 4px;
    background: rgba(248, 248, 248, 0.35);
    filter: blur(2px);
}

.ai-idea-chip small {
    color: var(--text-secondary);
    font-size: 0.7rem;
}

.ai-demand {
    margin-left: 6px;
    color: var(--text-secondary);
    font-size: 0.7rem;
}

.ai-demand-legend {
    margin-top: 8px;
    color: var(--text-secondary);
    font-size: 0.75rem;
}

.ai-demand.is-very_high {
    color: #fbbf24;
}

.ai-demand.is-high {
    color: #a78bfa;
}

.ai-ideas-teaser .ai-ideas-unlock,
.keywords-find {
    width: auto;
}

.keywords-find {
    margin-bottom: 12px;
}

.ai-tags .ai-suggestions-status {
    width: 100%;
}

.modal-tags-group.ai-section-highlight {
    border-radius: 12px;
    animation: ai-section-highlight 2.6s ease-out;
}

@keyframes ai-section-highlight {
    0%, 20% {
        background: rgba(130, 46, 245, 0.16);
        box-shadow: 0 0 0 3px rgba(167, 139, 250, 0.95), 0 0 32px rgba(130, 46, 245, 0.6);
    }
    35% {
        background: rgba(130, 46, 245, 0.06);
        box-shadow: 0 0 0 2px rgba(167, 139, 250, 0.35), 0 0 12px rgba(130, 46, 245, 0.2);
    }
    50%, 65% {
        background: rgba(130, 46, 245, 0.16);
        box-shadow: 0 0 0 3px rgba(167, 139, 250, 0.95), 0 0 32px rgba(130, 46, 245, 0.6);
    }
    100% {
        background: transparent;
        box-shadow: 0 0 0 0 rgba(167, 139, 250, 0), 0 0 0 rgba(130, 46, 245, 0);
    }
}

/* The What changed panel for a plan without it: the loading skeleton, dimmed, under the offer.
   Same height as the real panel, so the grid never moves on any plan. */
#whatChanged.is-locked .whatchanged-tabs {
    visibility: hidden;
}

/* The tabs animate every property; without this they stay visible for a moment on each load. */
#whatChanged.is-locked .whatchanged-tab {
    transition: none;
}

.whatchanged-locked {
    position: relative;
}

.whatchanged-lock {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 0.5rem;
    text-align: center;
    background: color-mix(in srgb, var(--card-background) 70%, transparent);
}

.whatchanged-lock > span {
    font-weight: 600;
}

.whatchanged-lock .btn {
    width: auto;
}

/* Competition and search demand of a keyword (KeywordInsightChips). */
.kw-scores {
    display: inline-flex;
    gap: 4px;
    margin-left: 4px;
    vertical-align: middle;
}

.kw-score {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 0 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    color: #d6d9e0;
    font-size: 0.72rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.kw-score.is-locked {
    border: 0;
    color: #b79cff;
    cursor: pointer;
    font: inherit;
    font-size: 0.72rem;
}

/* Inside a tag chip, whose icons take the accent colour: the numbers keep the colour of their badge. */
.kw-score i {
    color: inherit;
    margin-right: 2px;
}

/* The ranges of the revenue chart (SalesChartView): they wrap under the title on a narrow screen. */
.chart-header:has(.sales-controls) {
    flex-wrap: wrap;
    gap: 0.5rem;
}

.sales-controls {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.35rem;
}

.sales-ranges {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.35rem;
}

.sales-range.is-locked .fa-lock {
    margin-right: 4px;
}

.sales-history-note {
    font-size: 0.8rem;
    color: var(--text-secondary);
}

/* The trial banner in its last days (PlanStatus). */
.pricing-announcement.is-urgent {
    border-color: #f59e0b;
    background: rgba(245, 158, 11, 0.12);
}

.pricing-announcement .btn {
    width: auto;
    white-space: nowrap;
}
