/* ===== ККАМЛД × Community Builder 2.11 =====
   Накладывается ПОВЕРХ стилей CB (bootstrap.min.css, fontawesome.min.css, template.j5.css, template.min.css).
   Всё ограничено областью .cb_template и усилено префиксом body.site — специфичность выше, чем у CB,
   поэтому порядок подключения не важен и !important не нужен.
   Подключение в index.php шаблона kkamld:
     $wa->registerAndUseStyle('kk.cb', 'media/templates/site/kkamld/css/cb-bridge.css');
   Имена классов CB сверены по разметке CB 2.x; перед запуском проверьте на тестовой копии сайта (см. joomla/README.md). */

body.site .cb_template {
  --bs-body-font-family: var(--font-sans);
  --bs-body-color: var(--text-body);
  --bs-primary: var(--kk-blue-600);
  --bs-primary-rgb: 18, 69, 110;
  --bs-link-color: var(--link);
  --bs-link-hover-color: var(--link-hover);
  --bs-border-color: var(--border-strong);
  --bs-border-radius: var(--r-md);
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  color: var(--text-body);
}
body.site .cb_template a { color: var(--link); }
body.site .cb_template a:hover { color: var(--link-hover); }
body.site .cb_template h1, body.site .cb_template h2, body.site .cb_template h3,
body.site .cb_template .cbUserListTitle, body.site .cb_template .componentheading, body.site .cb_template .page-header h1 {
  font-family: var(--font-display); font-weight: var(--fw-bold); color: var(--text-heading);
}
body.site .cb_template .componentheading, body.site .cb_template .page-header h1 { font-size: var(--fs-h1); line-height: var(--lh-tight); margin: 0 0 12px; }
/* Иконки CB рисует своим fontawesome.min.css — оставляем, только перекрашиваем */
body.site .cb_template .fa, body.site .cb_template [class^="fa-"], body.site .cb_template [class*=" fa-"] { color: inherit; }

/* ---------- Поля форм (регистрация, редактирование, вход CB) — как .kk-field / .kk-input ---------- */
body.site .cb_template .cbRegistration .form-group,
body.site .cb_template .cbEditProfile .form-group,
body.site .cb_template .cb_form_line { margin-bottom: 18px; align-items: flex-start; }
body.site .cb_template .col-form-label { font-size: 14px; font-weight: var(--fw-medium); color: var(--text-secondary); padding-top: 12px; }
body.site .cb_template .form-control,
body.site .cb_template .custom-select,
body.site .cb_template .form-select,
body.site .cb_template input.inputbox, body.site .cb_template select.inputbox {
  min-height: 46px; padding: 10px 14px; border: 1px solid var(--border-strong); border-radius: var(--r-md);
  font: var(--fs-ui) var(--font-sans); color: var(--text-body); background-color: #fff; box-shadow: none;
}
body.site .cb_template textarea.form-control { min-height: 132px; line-height: 1.55; }
body.site .cb_template .form-control:focus, body.site .cb_template .form-select:focus, body.site .cb_template .custom-select:focus {
  border-color: var(--brand-primary); box-shadow: 0 0 0 3px rgba(79, 194, 206, .35); outline: 0;
}
body.site .cb_template .form-control:disabled, body.site .cb_template .form-control[readonly] { background: var(--kk-ice-50); color: var(--kk-ink-400); }
/* Обязательное поле: CB ставит звёздочку .cbFieldIcons → коралловая, как .kk-req */
body.site .cb_template .cbFieldIcons .fa-star, body.site .cb_template .cbFieldIcons .cbRequired, body.site .cb_template .required-star { color: var(--kk-coral-700); font-size: 9px; vertical-align: super; }
body.site .cb_template .cbFieldIcons .fa-info-circle, body.site .cb_template .cbTooltip { color: var(--kk-ink-300); }
body.site .cb_template .form-text, body.site .cb_template .cbFieldDescription, body.site .cb_template .cb_field_description { font-size: var(--fs-caption); color: var(--text-muted); line-height: 1.45; margin-top: 6px; }
/* Ошибки валидации — как .kk-input.is-invalid + .kk-field__error */
body.site .cb_template .is-invalid, body.site .cb_template .form-control.is-invalid, body.site .cb_template .cbValidationError .form-control { border-color: var(--kk-coral-600); background-image: none; }
body.site .cb_template .invalid-feedback, body.site .cb_template .cbValidationMessage, body.site .cb_template .cb_result_warning {
  display: block; font-size: var(--fs-caption); color: var(--status-urgent-text); margin-top: 6px; line-height: 1.45;
}
body.site .cb_template .is-valid { border-color: var(--kk-green-600); background-image: none; }
/* Чекбоксы: согласие на ПДн, «Запомнить меня» */
body.site .cb_template .form-check-input, body.site .cb_template input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--brand-primary); border-color: var(--kk-line-strong); }
body.site .cb_template .form-check-input:checked { background-color: var(--brand-primary); border-color: var(--brand-primary); }
body.site .cb_template .form-check-label, body.site .cb_template .cbTermsLabel { font-size: var(--fs-small); line-height: 1.55; color: var(--text-body); }
/* Слот Яндекс SmartCaptcha (плагин капчи CB/Joomla) */
body.site .cb_template .smart-captcha, body.site .cb_template .cbCaptcha { min-height: 100px; max-width: 300px; }

/* ---------- Кнопки ---------- */
body.site .cb_template .btn { min-height: 42px; padding: 0 20px; border-radius: var(--r-md); font: var(--fw-semibold) var(--fs-ui)/1 var(--font-sans); display: inline-flex; align-items: center; justify-content: center; gap: 8px; box-shadow: none; }
body.site .cb_template .btn:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; box-shadow: none; }
/* «Подать заявку» (кнопка регистрации) — коралловый CTA */
body.site .cb_template .cbRegistrationSubmit, body.site .cb_template .cbRegistration .btn-primary { background: var(--kk-coral-600); border-color: var(--kk-coral-600); color: #fff; min-height: 50px; padding: 0 26px; font-size: var(--fs-body); }
body.site .cb_template .cbRegistrationSubmit:hover, body.site .cb_template .cbRegistration .btn-primary:hover { background: var(--kk-coral-700); border-color: var(--kk-coral-700); }
/* Остальные primary в CB (сохранить профиль, войти, найти) — синие: коралл бережём для вступления */
body.site .cb_template .btn-primary { background: var(--kk-blue-600); border-color: var(--kk-blue-600); color: #fff; }
body.site .cb_template .btn-primary:hover { background: var(--kk-navy-700); border-color: var(--kk-navy-700); }
body.site .cb_template .btn-secondary, body.site .cb_template .btn-light, body.site .cb_template .btn-outline-secondary, body.site .cb_template .btn-outline-primary { background: #fff; border: 1px solid var(--kk-blue-600); color: var(--kk-blue-600); }
body.site .cb_template .btn-secondary:hover, body.site .cb_template .btn-light:hover, body.site .cb_template .btn-outline-secondary:hover, body.site .cb_template .btn-outline-primary:hover { background: var(--kk-ice-100); color: var(--kk-blue-600); }
body.site .cb_template .btn:disabled, body.site .cb_template .btn.disabled { background: var(--kk-ice-150); border-color: var(--kk-ice-150); color: var(--kk-ink-400); opacity: 1; }

/* ---------- Уведомления CB / Bootstrap ---------- */
body.site .cb_template .alert { display: block; padding: 16px 20px; border: 1px solid; border-radius: var(--r-md); font-size: var(--fs-ui); line-height: 1.55; }
body.site .cb_template .alert-success { background: var(--kk-green-50); border-color: var(--kk-green-200); color: var(--kk-green-700); }
body.site .cb_template .alert-danger, body.site .cb_template .alert-error { background: var(--kk-coral-50); border-color: var(--kk-coral-200); color: var(--kk-coral-900); }
body.site .cb_template .alert-warning { background: var(--kk-amber-50); border-color: var(--kk-amber-200); color: var(--kk-amber-800); }
body.site .cb_template .alert-info { background: var(--kk-ice-100); border-color: #C9DCE8; color: var(--kk-blue-600); }

/* ---------- Профиль: шапка, вкладки, поля ---------- */
body.site .cb_template .cbPosHead, body.site .cb_template .cbProfileCanvas { background: var(--surface-brand); color: #fff; border-radius: 0; }
body.site .cb_template .cbProfileCanvas .cbCanvasLayoutBackgroundImage { background-color: var(--surface-brand); }
body.site .cb_template .cbPosHead a, body.site .cb_template .cbProfileCanvas a { color: #fff; }
body.site .cb_template .cbImgPict.cbFullPict, body.site .cb_template .cbProfileCanvas .cbImgPict { border-radius: 50%; border: 4px solid rgba(255,255,255,.9); }
body.site .cb_template .cbThumbPict, body.site .cb_template .cbImgAvatar { border-radius: 50%; }
body.site .cb_template .nav-tabs { border-bottom: 1px solid var(--border-default); gap: 4px; flex-wrap: nowrap; overflow-x: auto; }
body.site .cb_template .nav-tabs .nav-link { border: 0; border-bottom: 3px solid transparent; margin-bottom: -1px; border-radius: 0; padding: 14px 18px; background: none; color: var(--text-secondary); font: var(--fw-medium) var(--fs-ui)/1.2 var(--font-sans); white-space: nowrap; }
body.site .cb_template .nav-tabs .nav-link:hover { color: var(--brand-primary); border-bottom-color: transparent; }
body.site .cb_template .nav-tabs .nav-link.active, body.site .cb_template .nav-tabs .nav-item.show .nav-link { color: var(--brand-primary); border-bottom-color: var(--brand-primary); background: none; font-weight: var(--fw-semibold); }
body.site .cb_template .tab-content { padding-top: 24px; }
/* Поля профиля (просмотр) → как .kk-deflist */
body.site .cb_template .cbProfile .cbft_text, body.site .cb_template .cbProfile .form-group.row,
body.site .cb_template .cbTabContentFields .form-group.row { margin: 0; padding: 14px 0; border-bottom: 1px solid var(--border-soft); }
body.site .cb_template .cbProfile .col-form-label, body.site .cb_template .cbTabContentFields .col-form-label { padding-top: 0; color: var(--text-muted); font-size: var(--fs-small); }

/* ---------- Список членов (CB Userlist) → как .kk-table ---------- */
body.site .cb_template .cbUserListSearch, body.site .cb_template .cbUserListHead { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 18px; }
body.site .cb_template .cbUserListTable, body.site .cb_template .cbUserListTable table { border: 1px solid var(--border-default); border-radius: var(--r-lg); overflow: hidden; border-collapse: separate; border-spacing: 0; width: 100%; background: #fff; }
body.site .cb_template .table { --bs-table-bg: transparent; --bs-table-striped-bg: var(--surface-muted); --bs-table-hover-bg: var(--kk-ice-100); font-size: var(--fs-ui); margin: 0; }
body.site .cb_template .table thead th, body.site .cb_template .cbUserListTable th { background: var(--surface-subtle); color: var(--text-muted); font-size: var(--fs-caption); font-weight: var(--fw-semibold); padding: 12px 18px; border-bottom: 1px solid var(--border-default); border-top: 0; white-space: nowrap; }
body.site .cb_template .table td { padding: 14px 18px; border-color: var(--border-soft); vertical-align: top; }
body.site .cb_template .cbUserListFieldLine .cbUserListFC_formatname a, body.site .cb_template .cbUserListFC_name a { font-weight: var(--fw-semibold); }
/* Пагинация CB */
body.site .cb_template .pagination { gap: 6px; --bs-pagination-color: var(--kk-blue-600); --bs-pagination-active-bg: var(--kk-blue-600); --bs-pagination-active-border-color: var(--kk-blue-600); --bs-pagination-border-color: var(--kk-line); --bs-pagination-hover-bg: var(--kk-ice-100); }
body.site .cb_template .pagination .page-link { border-radius: var(--r-md) !important; min-width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; }

@media (max-width: 768px) {
  body.site .cb_template .col-form-label { padding-top: 0; padding-bottom: 6px; }
  body.site .cb_template .cbRegistrationSubmit, body.site .cb_template .cbRegistration .btn-primary { width: 100%; }
  /* Список членов на мобильном — карточками (как .kk-table--stack) */
  body.site .cb_template .cbUserListTable thead { display: none; }
  body.site .cb_template .cbUserListTable tr, body.site .cb_template .cbUserListTable td { display: block; width: 100%; }
  body.site .cb_template .cbUserListTable tr { padding: 14px 16px; border-bottom: 1px solid var(--border-soft); }
  body.site .cb_template .cbUserListTable td { padding: 2px 0; border: 0; }
}
