отрефактори, внеси правки по визуалу, сделай не черным сам график(столбцы)

```python

import json
from collections import Counter
from datetime import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import matplotlib.font_manager as fm
import matplotlib.ticker as mticker
import os

INPUT_FILE = "C:/Users/dolbaeb/Desktop/raksamp/scripts/backup.jsonl"
FONT_PATH_NUM = "C:/Users/dolbaeb/Desktop/raksamp/scripts/IBMPlexSerif-Regular.ttf"

def load_registration_counts(filename):
    counts = Counter()
    with open(filename, "r", encoding="utf-8") as f:
        for line in f:
            line = line.strip()
            if not line:
                continue
            try:
                data = json.loads(line)
            except json.JSONDecodeError:
                continue
            regdate_str = data.get("regdate")
            if regdate_str:
                try:
                    date_obj = datetime.strptime(regdate_str, "%Y-%m-%d %H:%M:%S").date()
                    if date_obj.year > 1970:
                        counts[date_obj] += 1
                except ValueError:
                    continue
    return counts

def plot_registration_counts(counts):
    plt.style.use("classic")

    if not os.path.isfile(FONT_PATH_NUM):
        print(f"Шрифт не найден по пути {FONT_PATH_NUM}, используется системный serif")
        font_prop_num = None
        font_name = 'serif'
    else:
        fm.fontManager.addfont(FONT_PATH_NUM)
        font_prop_num = fm.FontProperties(fname=FONT_PATH_NUM)
        font_name = font_prop_num.get_name()
        print(f"Используем шрифт: {font_name}")

    plt.rcParams['font.family'] = font_name

    dates = sorted(counts)
    values = [counts[d] for d in dates]

    fig_width, fig_height = 14, 7
    fig, ax = plt.subplots(figsize=(fig_width, fig_height))

    # Принудительно белый фон
    fig.patch.set_facecolor('white')
    ax.set_facecolor('white')

    bar_color = '#1f77b4'  # классический синий
    grid_color = '#cccccc'  # светло-серая сетка
    text_color_axes = '#555555'  # серый цвет для подписей осей
    text_color_title = '#000000'  # черный цвет заголовка

    bars = ax.bar(dates, values, color=bar_color, edgecolor='black', alpha=0.9)

    # Заголовок (больше и с отступом)
    title_kwargs = {
        'fontsize': 40,
        'pad': 20,          # увеличенный отступ от графика
        'color': text_color_title
    }
    if font_prop_num:
        title_kwargs['fontproperties'] = font_prop_num
    ax.set_title("Количество регистраций по датам", **title_kwargs)

    # Подписи осей с уменьшенным размером и серым цветом
    xlabel_kwargs = {
        'fontsize': 12,
        'color': text_color_axes
    }
    ylabel_kwargs = {
        'fontsize': 12,
        'color': text_color_axes
    }
    if font_prop_num:
        xlabel_kwargs['fontproperties'] = font_prop_num
        ylabel_kwargs['fontproperties'] = font_prop_num

    ax.set_xlabel("Дата регистрации", **xlabel_kwargs)
    ax.set_ylabel("Количество регистраций", **ylabel_kwargs)

    # Сетка и расположение под графиком
    ax.yaxis.set_major_locator(mticker.AutoLocator())
    ax.grid(axis='y', linestyle='--', linewidth=0.7, alpha=0.7, color=grid_color)
    ax.set_axisbelow(True)

    # Интервал для меток по X оси
    date_label_len = 10  # 'YYYY-MM-DD'
    char_width_inches = 0.12
    pad_per_tick = 0.1
    tick_width = date_label_len * char_width_inches + pad_per_tick

    max_ticks = int(fig_width // tick_width)
    max_ticks = max(1, max_ticks)

    total_days = (dates[-1] - dates[0]).days + 1
    interval = max(1, total_days // max_ticks)

    ax.xaxis.set_major_locator(mdates.DayLocator(interval=interval))
    ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))

    # Подписи дат по оси X — шрифт IBM Plex Serif, размер 10, цвет серый
    xtick_kwargs = {
        'rotation': 0,
        'ha': 'center',
        'fontsize': 10,
        'color': text_color_axes
    }
    # Подписи по Y такой же стиль
    ytick_kwargs = {
        'fontsize': 10,
        'color': text_color_axes
    }

    if font_prop_num:
        xtick_kwargs['fontproperties'] = font_prop_num
        ytick_kwargs['fontproperties'] = font_prop_num

    plt.setp(ax.get_xticklabels(), **xtick_kwargs)
    plt.setp(ax.get_yticklabels(), **ytick_kwargs)

    fig.tight_layout()
    plt.savefig("registrations_classic_IBMserif_white_bg.png", dpi=300, bbox_inches='tight')
    print("График сохранен в файл registrations_classic_IBMserif_white_bg.png")

    plt.show()

if __name__ == "__main__":
    counts = load_registration_counts(INPUT_FILE)
    if counts:
        plot_registration_counts(counts)
    else:
        print("Нет данных для отображения.")
```