/*
 * Задача №62614. Единый стиль справочников и настроек — как в отчёте
 * «Генерация текстов» (/report/texts-generation).
 *
 * Всё внутри .rp-page, чтобы не задеть остальные страницы сайта.
 */

.rp-page { width: 100%; max-width: 100%; box-sizing: border-box; }
.rp-page * { box-sizing: border-box; }

/* ----- заголовок страницы ----- */
.rp-page .rp-title {
    font-size: 26px; font-weight: 800; margin: 0 0 4px;
    display: flex; align-items: center; gap: 10px; color: #111827;
}
.rp-page .rp-title i { color: #2563eb; }
.rp-page .rp-sub { color: #6b7280; margin: 0 0 18px; font-size: 14px; }

/* ----- панель грида = карточка отчёта ----- */
.rp-page .table-bordered, .rp-page .table-bordered > tbody > tr > td,
.rp-page .table-bordered > thead > tr > th { border-left: 0; border-right: 0; }

.rp-page .panel,
.rp-page .grid-view,
.rp-page .kv-grid-container {
    background: #fff; border: 1px solid #eef0f3; border-radius: 14px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .05);
}
.rp-page .panel { padding: 0; overflow: hidden; }
.rp-page .grid-view, .rp-page .kv-grid-container { border: 0; box-shadow: none; }

/* kartik с bootstrap 4 рисует не panel, а card — и красит шапку в синий */
.rp-page .card {
    background: #fff; border: 1px solid #eef0f3; border-radius: 14px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .05); overflow: hidden;
}
.rp-page .card.border-primary, .rp-page .card.border-default, .rp-page .card.border-info,
.rp-page .card.border-success, .rp-page .card.border-warning, .rp-page .card.border-danger {
    /* у bootstrap эти утилиты с !important, иначе не перебить */
    border-color: #eef0f3 !important;
}
.rp-page .card-header {
    background: #fff !important; border: 0; border-bottom: 2px solid #eef0f3;
    padding: 16px 18px; font-size: 16px; font-weight: 700;
}
.rp-page .card-header, .rp-page .card-header.text-white,
.rp-page .card-header h3, .rp-page .card-header .panel-title { color: #111827 !important; }
.rp-page .card-header .glyphicon, .rp-page .card-header i { color: #2563eb; margin-right: 6px; }
.rp-page .card-header .pull-right, .rp-page .card-header .float-right,
.rp-page .card-header .summary { color: #9ca3af !important; font-weight: 400; font-size: 13px; }
.rp-page .card-body { padding: 18px; }
.rp-page .card-footer { background: #fbfcfe; border-top: 2px solid #eef0f3; padding: 12px 18px; }

/* ссылки сортировки в шапке таблицы */
.rp-page table.table > thead > tr > th > a { color: #6b7280; }
.rp-page table.table > thead > tr > th > a:hover { color: #2563eb; text-decoration: none; }

.rp-page .panel-heading {
    background: #fff; border: 0; border-bottom: 2px solid #eef0f3;
    padding: 16px 18px; color: #111827; font-size: 16px; font-weight: 700;
}
.rp-page .panel-heading .panel-title,
.rp-page .panel-heading h3 { margin: 0; font-size: 16px; font-weight: 700; color: #111827; }
.rp-page .panel-heading .glyphicon, .rp-page .panel-heading i { color: #2563eb; margin-right: 6px; }
.rp-page .panel-body { padding: 18px; }
.rp-page .panel-footer { background: #fbfcfe; border-top: 2px solid #eef0f3; padding: 12px 18px; }
.rp-page .panel-before, .rp-page .panel-after { background: #fff; border: 0; padding: 12px 18px; }
.rp-page .panel-before em, .rp-page .panel-before i { color: #9ca3af; font-style: normal; font-size: 13px; }

/* ----- таблица ----- */
.rp-page table.table { width: 100%; border-collapse: collapse; margin: 0; }
.rp-page table.table > thead > tr > th {
    text-align: left; font-size: 13px; text-transform: uppercase; letter-spacing: .03em;
    color: #6b7280; font-weight: 700; background: #fff;
    border: 0; border-bottom: 2px solid #eef0f3; padding: 12px 14px; white-space: nowrap;
    vertical-align: middle;
}
.rp-page table.table > tbody > tr > td {
    padding: 12px 14px; font-size: 15px; color: #374151;
    border: 0; border-bottom: 1px solid #f3f4f6; vertical-align: middle;
}
.rp-page table.table > tbody > tr:hover > td { background: #f9fafb; }
.rp-page table.table > tbody > tr.danger > td { background: #fef2f2; }
.rp-page table.table > tbody > tr.success > td { background: #f0fdf4; }
.rp-page table.table > tfoot > tr > td {
    font-weight: 800; color: #111827; background: #fbfcfe; border-top: 2px solid #eef0f3; padding: 12px 14px;
}
.rp-page .table-striped > tbody > tr:nth-of-type(odd) > td { background: transparent; }
.rp-page .kv-align-center, .rp-page .text-center { text-align: center; }

/* строка фильтров */
.rp-page table.table > thead > tr.filters > th { padding: 8px 10px; border-bottom: 1px solid #eef0f3; }
.rp-page .form-control, .rp-page .select2-selection, .rp-page input[type=text], .rp-page input[type=date],
.rp-page input[type=number], .rp-page select, .rp-page textarea {
    border: 1px solid #d1d5db; border-radius: 8px; font-size: 14px; color: #374151; box-shadow: none;
}
.rp-page .form-control:focus { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37, 99, 235, .12); }
.rp-page .form-group > label, .rp-page .control-label {
    font-size: 12px; font-weight: 600; color: #6b7280; text-transform: uppercase; letter-spacing: .03em;
}

/* ----- кнопки ----- */
.rp-page .btn {
    border: 0; border-radius: 8px; padding: 8px 16px; font-size: 14px; font-weight: 600; box-shadow: none;
}
.rp-page .btn-default, .rp-page .btn-secondary, .rp-page .btn-outline-secondary {
    background: #fff; border: 1px solid #d1d5db; color: #374151;
}
.rp-page .btn-default:hover, .rp-page .btn-secondary:hover, .rp-page .btn-outline-secondary:hover { background: #f3f4f6; }
.rp-page .btn-primary { background: #2563eb; color: #fff; }
.rp-page .btn-success { background: #15803d; color: #fff; }
.rp-page .btn-warning { background: #b45309; color: #fff; }
.rp-page .btn-danger { background: #b91c1c; color: #fff; }
.rp-page .btn-sm { padding: 6px 12px; font-size: 13px; }
.rp-page .btn-group > .btn { border-radius: 0; }
.rp-page .btn-group > .btn:first-child { border-radius: 8px 0 0 8px; }
.rp-page .btn-group > .btn:last-child { border-radius: 0 8px 8px 0; }

/* иконки-действия в таблице */
.rp-page td .btn-link, .rp-page td a.btn { padding: 4px 8px; }
.rp-page .kv-action-btn { color: #2563eb; }

/* ----- итог и пагинация ----- */
.rp-page .summary { color: #9ca3af; font-size: 13px; padding: 12px 18px 0; }
.rp-page .pagination { gap: 6px; padding: 12px 18px; margin: 0; }
.rp-page .pagination > li > a, .rp-page .pagination .page-link {
    border: 1px solid #d1d5db; border-radius: 8px; color: #374151; font-size: 14px; padding: 6px 12px;
}
.rp-page .pagination > .active > a, .rp-page .pagination .active .page-link {
    background: #2563eb; border-color: #2563eb; color: #fff;
}

/* ----- страницы без грида (настройки, формы) ----- */
.rp-page .rp-box {
    background: #fff; border: 1px solid #eef0f3; border-radius: 14px; padding: 18px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .05);
}

/* ----- модальные окна: добавить, изменить, просмотр ----- */
#ajaxCrudModal .modal-content, .rp-page .modal-content {
    border: 0; border-radius: 14px; box-shadow: 0 18px 48px rgba(0, 0, 0, .18); overflow: hidden;
}
#ajaxCrudModal .modal-header {
    background: #fff; border-bottom: 2px solid #eef0f3; padding: 16px 18px;
}
#ajaxCrudModal .modal-header .modal-title {
    font-size: 18px; font-weight: 800; color: #111827; margin: 0;
}
#ajaxCrudModal .modal-body { padding: 18px; }
#ajaxCrudModal .modal-footer { background: #fbfcfe; border-top: 2px solid #eef0f3; padding: 12px 18px; gap: 8px; }

/* форма внутри модального окна и на отдельной странице */
.rp-page .form-group { margin-bottom: 16px; }
.rp-page .form-control, .rp-page select.form-control { min-height: 38px; padding: 7px 10px; }
.rp-page .help-block, .rp-page .invalid-feedback { font-size: 13px; }
.rp-page .has-error .form-control, .rp-page .is-invalid { border-color: #b91c1c; }

/* просмотр записи */
.rp-page .detail-view { width: 100%; border-collapse: collapse; }
.rp-page .detail-view th {
    width: 32%; text-align: left; font-size: 13px; text-transform: uppercase; letter-spacing: .03em;
    color: #6b7280; font-weight: 700; background: #fbfcfe;
    border: 0; border-bottom: 1px solid #f3f4f6; padding: 12px 14px; vertical-align: middle;
}
.rp-page .detail-view td {
    font-size: 15px; color: #374151; border: 0; border-bottom: 1px solid #f3f4f6;
    padding: 12px 14px; vertical-align: middle;
}

/* ----- тёмная тема ----- */
@media (prefers-color-scheme: dark) {
    .rp-page .rp-title,
    .rp-page .panel-heading, .rp-page .panel-heading .panel-title, .rp-page .panel-heading h3,
    .rp-page table.table > tfoot > tr > td { color: #e5e7eb; }
    .rp-page .panel, .rp-page .rp-box, .rp-page .panel-heading, .rp-page .panel-before,
    .rp-page .panel-after, .rp-page table.table > thead > tr > th {
        background: #0b0f19; border-color: #1f2430;
    }
    .rp-page .panel-footer, .rp-page table.table > tfoot > tr > td { background: #111827; }
    .rp-page table.table > tbody > tr > td { color: #cbd5e1; border-color: #1f2430; }
    .rp-page table.table > tbody > tr:hover > td { background: #111827; }
    .rp-page .form-control, .rp-page input, .rp-page select, .rp-page textarea,
    .rp-page .btn-default, .rp-page .btn-secondary, .rp-page .btn-outline-secondary {
        background: #0b0f19; border-color: #1f2430; color: #cbd5e1;
    }
    #ajaxCrudModal .modal-content, #ajaxCrudModal .modal-header { background: #0b0f19; border-color: #1f2430; }
    #ajaxCrudModal .modal-header .modal-title { color: #e5e7eb; }
    #ajaxCrudModal .modal-footer { background: #111827; border-color: #1f2430; }
    .rp-page .detail-view th { background: #111827; color: #9ca3af; border-color: #1f2430; }
    .rp-page .detail-view td { color: #cbd5e1; border-color: #1f2430; }
}
