.price-bell-chart {
    width: 100%;
    max-width: 22rem;
    margin-inline: auto;
}

.price-bell-chart__canvas {
    padding: 0.85rem 0.65rem 0.35rem;
    border-radius: 1rem;
    background:
        radial-gradient(circle at 50% 0%, rgba(37, 99, 235, 0.08), transparent 58%),
        linear-gradient(180deg, #f8fbff 0%, #f1f5ff 100%);
    border: 1px solid #e8eef9;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.price-bell-chart__svg {
    display: block;
    width: 100%;
    height: auto;
}

.price-bell-chart__axis {
    stroke: #dbe3f0;
    stroke-width: 1.5;
}

.price-bell-chart__grid {
    stroke: #e8edf5;
    stroke-width: 1;
    stroke-dasharray: 4 5;
}

.price-bell-chart__marker-line {
    stroke-width: 1.75;
    stroke-dasharray: 5 4;
}

.price-bell-chart__marker-line--min {
    stroke: #fb923c;
    opacity: 0.85;
}

.price-bell-chart__marker-line--max {
    stroke: #22c55e;
    opacity: 0.85;
}

.price-bell-chart__marker-line--avg {
    stroke: #60a5fa;
    opacity: 0.75;
}

.price-bell-chart__tail-badge {
    stroke: none;
}

.price-bell-chart__tail-badge--low {
    fill: rgba(251, 146, 60, 0.16);
}

.price-bell-chart__tail-badge--high {
    fill: rgba(34, 197, 94, 0.16);
}

.price-bell-chart__tail-text {
    fill: #64748b;
    font-size: 9px;
    font-weight: 700;
    font-family: inherit;
}

.price-bell-chart__dot {
    stroke: #fff;
    stroke-width: 2.5;
}

.price-bell-chart__dot--min {
    fill: #f97316;
}

.price-bell-chart__dot--avg {
    fill: #2563eb;
}

.price-bell-chart__dot--max {
    fill: #22c55e;
}

.price-bell-chart__caption {
    margin: 0.65rem 0 0;
    padding: 0 0.25rem;
    font-size: 0.6875rem;
    line-height: 1.7;
    color: #64748b;
    text-align: center;
}

.price-bell-chart__labels {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
    margin-top: 0.85rem;
}

.price-bell-chart__label {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 0.55rem 0.35rem;
    border-radius: 0.75rem;
    background: #f8fafc;
    border: 1px solid #edf2f7;
    text-align: center;
}

.price-bell-chart__label-title {
    font-size: 0.6875rem;
    font-weight: 700;
    color: #475569;
}

@media (min-width: 640px) {
    .price-bell-chart__label-title {
        font-size: 0.75rem;
    }
}

.price-bell-chart__label-title--min {
    color: #ea580c;
}

.price-bell-chart__label-title--avg {
    padding: 0.22rem 0.65rem;
    border-radius: 999px;
    background: linear-gradient(180deg, #3b82f6, #2563eb);
    color: #fff;
    box-shadow: 0 6px 16px rgba(37, 99, 235, 0.28);
}

.price-bell-chart__label-title--max {
    color: #16a34a;
}

.price-bell-chart__label-value {
    width: 100%;
    overflow-wrap: anywhere;
    font-size: 0.625rem;
    font-weight: 700;
    line-height: 1.65;
    color: #334155;
}

@media (min-width: 640px) {
    .price-bell-chart__label-value {
        font-size: 0.75rem;
    }

    .price-bell-chart__caption {
        font-size: 0.75rem;
    }
}

.price-bell-chart__label-value--avg {
    color: #2563eb;
}

.price-range-fallback {
    display: flex;
    width: 100%;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
}

.price-range-fallback__item {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    text-align: center;
}

.price-range-fallback__title {
    font-size: 0.6875rem;
    font-weight: 600;
    color: #374151;
}

.price-range-fallback__value {
    width: 100%;
    overflow-wrap: anywhere;
    font-size: 0.625rem;
    font-weight: 600;
    line-height: 1.6;
    color: #374151;
}

@media (min-width: 640px) {
    .price-range-fallback__title {
        font-size: 0.8125rem;
    }

    .price-range-fallback__value {
        font-size: 0.75rem;
    }
}
