/**
 * GIPIX — компоненты дизайн-системы (типографика, кнопки, карточки, таблицы, чипы и т.д.).
 * Токены: gipix-tokens.css. Подключать после style.css и enhanced-ui.css.
 */

/* Typography */
.gipix-page-title {
    font-size: 20px;
    font-weight: 600;
    color: var(--gipix-text);
    line-height: 1.3;
}

.gipix-block-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--gipix-text);
    line-height: 1.35;
}

.gipix-body-text {
    font-size: 14px;
    color: var(--gipix-text);
    line-height: 1.5;
}

.gipix-text-small {
    font-size: 12px;
    color: var(--gipix-text-muted);
    line-height: 1.45;
}

/* Кнопки (Bootstrap .btn.btn-primary; без auth-btn и btn-modern) */
.btn.btn-primary:not(.auth-btn),
.btn.btn-secondary:not(.auth-btn),
.btn.btn-success:not(.auth-btn),
.btn.btn-outline-primary,
.btn.btn-outline-secondary,
.btn-primary:not(.btn-modern):not(.auth-btn),
.btn-secondary:not(.btn-modern):not(.auth-btn),
.btn-success:not(.btn-modern):not(.auth-btn),
.btn-outline:not(.btn-modern) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--gipix-icon-gap);
    padding: var(--space-sm) 14px;
    border-radius: var(--radius-button);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.25;
    border: 1px solid transparent;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease,
        box-shadow 0.15s ease;
}

.btn.btn-primary:not(.auth-btn):focus-visible,
.btn-primary:not(.btn-modern):not(.auth-btn):focus-visible,
.btn.btn-secondary:not(.auth-btn):focus-visible,
.btn-secondary:not(.btn-modern):not(.auth-btn):focus-visible,
.btn.btn-success:not(.auth-btn):focus-visible,
.btn-success:not(.btn-modern):not(.auth-btn):focus-visible,
.btn-outline:focus-visible,
.btn.btn-outline-primary:focus-visible,
.btn.btn-outline-secondary:focus-visible {
    outline: 2px solid var(--gipix-primary);
    outline-offset: 2px;
}

.btn.btn-primary:not(.auth-btn),
.btn-primary:not(.btn-modern):not(.auth-btn) {
    background: var(--gipix-primary);
    color: #fff;
}

.btn.btn-primary:not(.auth-btn):hover,
.btn-primary:not(.btn-modern):not(.auth-btn):hover {
    background: var(--gipix-primary-hover);
    color: #fff;
}

.btn.btn-secondary:not(.auth-btn),
.btn-secondary:not(.btn-modern):not(.auth-btn) {
    background: var(--gipix-gray-100);
    color: var(--gipix-text);
}

.btn.btn-secondary:not(.auth-btn):hover,
.btn-secondary:not(.btn-modern):not(.auth-btn):hover {
    background: var(--gipix-gray-200);
}

.btn.btn-success:not(.auth-btn),
.btn-success:not(.btn-modern):not(.auth-btn) {
    background: var(--gipix-success);
    color: #fff;
}

.btn.btn-success:not(.auth-btn):hover,
.btn-success:not(.btn-modern):not(.auth-btn):hover {
    filter: brightness(1.06);
    color: #fff;
}

.btn-outline,
.btn.btn-outline-primary,
.btn.btn-outline-secondary {
    background: transparent;
    color: var(--gipix-text);
    border-color: var(--gipix-border);
}

.btn-outline:hover,
.btn.btn-outline-primary:hover,
.btn.btn-outline-secondary:hover {
    background: var(--gipix-gray-50);
}

/* Карточки */
.card {
    background: var(--gipix-surface);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-sm);
}

.card:not(:has(.card-body)):not(:has(.card-header)) {
    padding: var(--space-md);
}

/* Таблица CRM */
.table-crm {
    width: 100%;
    border-collapse: collapse;
    background: var(--gipix-surface);
    border-radius: 12px;
    overflow: hidden;
}

.table-crm tbody tr:hover {
    background: var(--gipix-gray-50);
}

.table-crm td,
.table-crm th {
    padding: 14px var(--space-md);
}

/* Chip / badge */
.chip {
    display: inline-flex;
    align-items: center;
    padding: var(--space-xs) var(--space-sm);
    border-radius: var(--radius-chip);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.25;
}

.chip-success {
    background: #dcfce7;
    color: #166534;
}

.chip-outline {
    border: 1px solid var(--gipix-border);
    background: transparent;
    color: var(--gipix-text);
}

/* Sidebar */
.sidebar {
    background: var(--gipix-surface);
    border-right: 1px solid var(--gipix-border);
}

.sidebar-item {
    padding: 10px 14px;
    border-radius: var(--radius-button);
    color: var(--gipix-text);
}

.sidebar-item.active {
    background: var(--gipix-gray-100);
}

/* Action bar */
.action-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding: 12px;
    background: var(--gipix-surface);
    border-radius: 12px;
}

/* Input */
.input {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--gipix-border);
    border-radius: var(--radius-button);
    padding: var(--space-sm) 12px;
    font-size: 14px;
    color: var(--gipix-text);
    background: var(--gipix-surface);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.input:focus {
    outline: none;
    border-color: var(--gipix-primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.input::placeholder {
    color: var(--gipix-text-muted);
}

/* Иконки */
.gipix-icon {
    width: var(--gipix-icon-size);
    height: var(--gipix-icon-size);
    font-size: var(--gipix-icon-size);
    flex-shrink: 0;
    line-height: 1;
}

.gipix-icon-inline {
    display: inline-flex;
    align-items: center;
    gap: var(--gipix-icon-gap);
}

.gipix-icon-inline .gipix-icon,
.gipix-icon-inline .material-icons,
.gipix-icon-inline .material-icons-outlined {
    font-size: var(--gipix-icon-size);
    width: var(--gipix-icon-size);
    height: var(--gipix-icon-size);
}
