
/* ===== FINAL TYPOGRAPHY & VISUAL HIERARCHY ===== */

:root {
    --kp-title: #c95990;
    --kp-heading: #d8649b;
    --kp-text-main: #45323d;
    --kp-text-soft: #725b67;
    --kp-text-muted: #967f8b;
}

/* Общая типографика */
body {
    font-family: "Segoe UI", "Inter", "Arial", sans-serif;
    color: var(--kp-text-main);
    letter-spacing: 0.01em;
    line-height: 1.6;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

/* Основные заголовки */
h1 {
    font-size: clamp(2.1rem, 3vw, 3rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.08;
    color: var(--kp-title);
    margin-bottom: 1rem;
}

h2 {
    font-size: clamp(1.7rem, 2.4vw, 2.35rem);
    font-weight: 850;
    letter-spacing: -0.03em;
    line-height: 1.12;
    color: var(--kp-heading);
    margin-bottom: 0.85rem;
}

h3 {
    font-size: clamp(1.35rem, 2vw, 1.8rem);
    font-weight: 850;
    letter-spacing: -0.025em;
    line-height: 1.18;
    color: var(--kp-heading);
    margin-bottom: 0.7rem;
}

h4 {
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.22;
    color: var(--kp-heading);
    margin-bottom: 0.6rem;
}

h5 {
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.015em;
    line-height: 1.25;
    color: var(--kp-heading);
    margin-bottom: 0.5rem;
}

h6 {
    font-size: 0.96rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    line-height: 1.3;
    color: var(--kp-heading);
    margin-bottom: 0.45rem;
}

/* Заголовки карточек — ещё аккуратнее */
.card-header h4,
.card-header h5,
.card-header h6 {
    color: #fff !important;
    font-weight: 900;
    letter-spacing: -0.02em;
    margin-bottom: 0;
}

/* Основной текст */
p,
li,
label,
small,
span,
div {
    color: var(--kp-text-main);
}

p {
    font-size: 1rem;
    line-height: 1.65;
    margin-bottom: 0.8rem;
}

/* Второстепенный текст */
.text-muted,
small,
.form-text {
    color: var(--kp-text-muted) !important;
}

/* Карточки котов */
.card-title {
    font-weight: 900 !important;
    letter-spacing: -0.03em;
    line-height: 1.12;
}

.card-text {
    color: var(--kp-text-soft) !important;
    line-height: 1.6;
}

/* Бейджи */
.badge {
    font-size: 0.88rem !important;
    letter-spacing: 0.01em;
    font-weight: 800 !important;
}

/* Кнопки */
.btn,
button,
input[type="submit"] {
    font-size: 0.98rem;
    letter-spacing: 0.01em;
    font-weight: 800 !important;
}

/* Формы */
.form-label {
    font-size: 0.96rem;
    font-weight: 800;
    color: #765867;
    margin-bottom: 0.42rem;
}

.form-control,
.form-select,
textarea,
input,
select {
    font-size: 0.97rem !important;
    line-height: 1.4;
}

textarea.form-control {
    line-height: 1.55;
}

/* Таблицы */
table th {
    font-size: 0.95rem;
    font-weight: 850;
    letter-spacing: 0.01em;
}

table td {
    font-size: 0.96rem;
    line-height: 1.5;
}

/* Навигация */
.navbar-brand {
    font-size: 1.2rem;
    font-weight: 900 !important;
    letter-spacing: -0.03em;
}

.nav-link {
    font-size: 0.96rem;
    font-weight: 800 !important;
}

/* Alerts */
.alert {
    font-size: 0.96rem;
    line-height: 1.55;
}

/* Внутри подробнее — сильнее иерархия */
.page-cat-details .card-body p strong {
    color: #c4568d;
    font-weight: 800;
}

/* Дашборд */
.page-dashboard .card h2,
.page-dashboard .card h3 {
    letter-spacing: -0.04em;
}

/* Список котов */
.page-cats .card-title {
    font-size: 1.3rem;
}
.page-cats .card-text {
    font-size: 0.96rem;
}

/* Заявки */
.page-requests .card-body p {
    margin-bottom: 0.55rem;
}

/* Пользователи */
.page-users table td,
.page-users table th {
    vertical-align: middle;
}

/* Более аккуратные отступы между секциями */
section,
.card,
.alert,
.table-responsive {
    margin-bottom: 1rem;
}

/* Мобильная версия */
@media (max-width: 768px) {
    body {
        font-size: 15.5px;
    }

    h1 {
        font-size: 1.95rem;
    }

    h2 {
        font-size: 1.6rem;
    }

    h3 {
        font-size: 1.32rem;
    }

    p,
    .card-text,
    table td,
    table th,
    .btn,
    .form-control,
    .form-select {
        font-size: 0.95rem !important;
    }
}
