/* ========= Палитра ========= */
:root {
    /* Цвета */
    --pm-bg: #1E1E1E; /* Фон */
    --pm-bg-dark: #141414; /* Темный фон */
    --pm-bg-active: #1B3329; /* Активный фон */
    --pm-card: #2A2A2A; /* Карточки / блоки */

    --pm-text: #EDEDED; /* Основной текст */
    --pm-text-secondary: #A0A0A0; /* Вторичный текст */

    --pm-accent: #77CFEA; /* Акцент (кнопки) */
    --pm-accent-hover: #66BBD6; /* Чуть темнее для hover */
    --pm-accent-soft: #22343C; /* Мягкий фон под акцент/бейджи */

    --pm-active: #A9D7AB; /* Активные элементы */
    --pm-error: #FFB3B3; /* Ошибки */
    --pm-border: #3C3C3C; /* Границы */
    /* Скругления (углы) */
    --pm-radius-lg: 16px; /* Карточки / контейнеры */
    --pm-radius-md: 12px; /* Кнопки */
    --pm-radius-sm: 10px; /* Инпуты / текстфилды */
    /* Дополнительно можно использовать при желании */
    /* --pm-radius-xl: 20px;       Модальные окна */
    /* --pm-radius-round: 999px;   Аватарки / круглые элементы */
    /* Тень чуть усилена под тёмный фон */
    --pm-shadow-soft: 0 18px 50px rgba(0, 0, 0, 0.6);
}

/* ========= Базовая типографика ========= */

html {
    font-size: 14px;
    position: relative;
    min-height: 100%;
    background-color: var(--pm-bg);
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

body {
    margin-bottom: 60px;
    background-color: var(--pm-bg);
    color: var(--pm-text);
    font-family: "SF Pro Text", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--pm-text);
    font-weight: 600;
    letter-spacing: 0.01em;
}

p {
    color: var(--pm-text);
    line-height: 1.6;
}

/* ========= Ссылки ========= */

a {
    color: #4FA3D9;
    text-decoration: none;
    transition: color 0.15s ease, background-color 0.15s ease;
}

    a:hover {
        color: #2D7FB4;
        text-decoration: underline;
    }

    a.pm-link {
        text-decoration: none;
        border-radius: var(--pm-radius-sm);
        padding: 0.1rem 0.2rem;
    }

        a.pm-link:hover {
            background-color: var(--pm-accent-soft);
            text-decoration: none;
        }

/* ========= Навигация ========= */

.pm-navbar {
    background-color: var(--pm-bg-dark) !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}

.navbar-brand {
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-size: 0.95rem;
    color: var(--pm-text) !important;
}

    .navbar-brand:hover {
        color: var(--pm-text) !important;
    }

.navbar-nav .nav-link {
    color: var(--pm-text-secondary);
    font-weight: 500;
    padding-left: 0.8rem;
    padding-right: 0.8rem;
    border-radius: 999px;
    transition: background-color 0.15s ease, color 0.15s ease;
}

    .navbar-nav .nav-link:hover {
        background-color: var(--pm-accent-soft);
        color: var(--pm-text);
    }

    .navbar-nav .nav-link.active,
    .navbar-nav .nav-link[aria-current="page"] {
        background-color: var(--pm-active);
        color: var(--pm-text);
    }

/* ========= Основной контент ========= */

.pm-main {
    padding-top: 2rem;
    padding-bottom: 3rem;
}

.pm-section {
    padding-top: 0.5rem;
}

/* Карточка основного блока */

.pm-card {
    background-color: var(--pm-card);
    border-radius: var(--pm-radius-lg);
    padding: 2rem 1.5rem;
}

@media (min-width: 768px) {
    .pm-card {
        padding: 2.5rem 2.5rem;
    }
}

/* Заголовки внутри карточки */

.pm-title {
    font-size: 1.6rem;
    margin-bottom: 0.25rem;
}

.pm-subtitle {
    font-size: 0.95rem;
    color: var(--pm-text-secondary);
}

/* Инфоблоки */

.pm-info-row {
    display: flex;
    gap: 0.4rem;
    font-size: 0.95rem;
    align-items: baseline;
}

.pm-info-label {
    font-weight: 500;
    color: var(--pm-text-secondary);
    min-width: 3.5rem;
}

.pm-info-value {
    color: var(--pm-text);
}

/* Подблоки */

.pm-block {
    border-radius: var(--pm-radius-md);
    padding: 0.5rem 0rem 0rem;
}

    .pm-block + .pm-block {
        margin-top: 1.2rem;
    }

.pm-block-title {
    font-size: 1.05rem;
    margin-bottom: 0.4rem;
}

.pm-text {
    font-size: 0.96rem;
    color: var(--pm-text);
}

/* Список продуктов */

.pm-list {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
}

    .pm-list li {
        padding: 0.3rem 0;
    }

.pm-list-note {
    color: var(--pm-text-secondary);
    font-size: 0.9rem;
}

/* ========= Кнопки и активные элементы ========= */

.btn-primary {
    background-color: var(--pm-accent);
    border-color: var(--pm-accent);
    color: var(--pm-text);
    font-weight: 500;
    border-radius: 999px;
    padding: 0.45rem 1.3rem;
}

    .btn-primary:hover,
    .btn-primary:focus {
        background-color: var(--pm-accent-hover);
        border-color: var(--pm-accent-hover);
        color: var(--pm-text);
    }

.btn-outline-primary {
    border-color: var(--pm-accent);
    color: var(--pm-text);
    border-radius: 999px;
}

    .btn-outline-primary:hover,
    .btn-outline-primary:focus {
        background-color: var(--pm-accent-soft);
        border-color: var(--pm-accent);
        color: var(--pm-text);
    }

/* Фокус для инпутов, кнопок и т.п. */

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem var(--pm-accent);
    outline: none;
    border-color: var(--pm-accent);
}

/* ========= Ошибки / предупреждения ========= */

.alert-danger,
.validation-summary-errors,
.input-validation-error {
    background-color: var(--pm-error);
    border-color: rgba(0, 0, 0, 0.02);
    color: var(--pm-text);
}

/* ========= Подвал ========= */

.pm-footer {
    background-color: var(--pm-bg-dark);
    color: var(--pm-text-secondary);
    border-top: 1px solid var(--pm-border) !important;
}

    .pm-footer .container {
        font-size: 0.85rem;
    }

.pm-footer-note {
    color: var(--pm-text-secondary);
}

/* ========= Прочее ========= */

.border-bottom {
    border-color: var(--pm-border) !important;
}

.box-shadow {
    box-shadow: var(--pm-shadow-soft);
}
