/* ═══════════════════════════════════════════════════════════════
   KODA × WooCommerce — стилизация кабинета, чекаута и счетов
   под чертёжную эстетику сайта. Подключается после style.css,
   использует те же CSS-переменные (обе темы работают автоматически).
   ═══════════════════════════════════════════════════════════════ */

/* ── Общие элементы ─────────────────────────────────────────── */

.woocommerce,
.woocommerce-page {
  font-family: var(--font-body);
}

/* Ссылки WooCommerce — кобальт, как на всём сайте */
.woocommerce a:not(.button),
.woocommerce-page a:not(.button) {
  color: var(--color-cobalt-ink);
  text-decoration-color: var(--color-cobalt-line);
  transition: color var(--transition-interactive);
}

.woocommerce a:not(.button):hover,
.woocommerce a:not(.button):focus-visible {
  color: var(--color-accent);
}

/* Кнопки WooCommerce = кнопки сайта */
.woocommerce a.button,
.woocommerce-page a.button,
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce-page .button,
.woocommerce #respond input#submit,
.woocommerce-account .woocommerce-Button,
button.woocommerce-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: 0.72rem 1.5rem;
  font-family: var(--font-display);
  font-size: var(--text-sm);
  font-weight: 700;
  line-height: 1.2;
  color: #fff;
  background: var(--color-btn-primary-bg, var(--color-cobalt));
  border: 1px solid transparent;
  border-radius: 2px;
  cursor: pointer;
  text-decoration: none;
  transition: background var(--transition-interactive), transform var(--transition-interactive);
}

.woocommerce a.button:hover,
.woocommerce a.button:focus-visible,
.woocommerce .button:hover,
.woocommerce .button:focus-visible,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce-account .woocommerce-Button:hover,
button.woocommerce-button:hover {
  background: var(--color-cobalt-hover);
  color: #fff;
}

.woocommerce .button:active { transform: translateY(1px); }

/* Второстепенные действия (Подробнее, Отмена) — контурные */
.woocommerce a.button.view,
.woocommerce a.button.cancel,
.woocommerce .button.view,
.woocommerce .button.cancel,
.woocommerce-pagination .button {
  background: transparent;
  color: var(--color-text);
  border: 1px solid var(--color-border);
}

.woocommerce a.button.view:hover,
.woocommerce a.button.cancel:hover,
.woocommerce .button.view:hover,
.woocommerce .button.cancel:hover {
  background: transparent;
  border-color: var(--color-cobalt-ink);
  color: var(--color-cobalt-ink);
}

/* Кнопка «Оплатить» у счёта — акцентная, самая заметная в строке */
.woocommerce a.button.pay,
.woocommerce .button.pay {
  background: var(--color-cobalt);
  box-shadow: 0 0 0 1px var(--color-cobalt-line);
}

/* Кнопки-действия в таблице счетов: компактно, в ряд, без наложений */
.woocommerce table.shop_table td.woocommerce-orders-table__cell-order-actions {
  white-space: nowrap;
}

.woocommerce table.shop_table .woocommerce-orders-table__cell-order-actions .button {
  display: inline-flex;
  margin: 2px 6px 2px 0;
  padding: 0.42rem 0.9rem;
  font-size: var(--text-xs);
  overflow: visible;
}

/* ── Формы: поля как «ячейки чертежа» ───────────────────────── */

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form input[type='text'],
.woocommerce-page form input[type='email'],
.woocommerce-page form input[type='tel'],
.woocommerce-page form input[type='password'] {
  width: 100%;
  padding: 0.66rem 0.9rem;
  font-family: var(--font-body);
  font-size: var(--text-base);
  color: var(--color-text);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 2px;
  transition: border-color var(--transition-interactive), box-shadow var(--transition-interactive);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce-page form input:focus {
  outline: none;
  border-color: var(--color-cobalt-ink);
  box-shadow: 0 0 0 3px var(--color-cobalt-line);
}

.woocommerce form .form-row label {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: var(--space-1);
}

.woocommerce form .form-row .required { color: var(--color-accent); text-decoration: none; }

/* ── Уведомления — штампы на полях чертежа ──────────────────── */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  position: relative;
  padding: var(--space-4) var(--space-5) var(--space-4) var(--space-6);
  margin-bottom: var(--space-6);
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  color: var(--color-text);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--color-cobalt-ink);
  border-radius: 2px;
  list-style: none;
}

/* У WooCommerce на ::before уведомлений стоит position:absolute (иконка) —
   сбрасываем с body-специфичностью, иначе метка «//» наезжает на текст */
body .woocommerce-message::before,
body .woocommerce-info::before,
body .woocommerce-error::before {
  content: '//';
  position: static;
  display: inline;
  float: none;
  margin: 0 0.6em 0 0;
  color: var(--color-cobalt-ink);
}

.woocommerce-error { border-left-color: var(--color-accent); }
body .woocommerce-error::before { content: '!!'; color: var(--color-accent); }

.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
  float: none;
  display: inline-flex;
  margin: 0 0 0 var(--space-4);
  vertical-align: middle;
  padding: 0.35rem 0.9rem;
  font-size: var(--text-xs);
}

/* ── Таблицы (список счетов, состав заказа) ─────────────────── */

.woocommerce table.shop_table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--color-border);
  border-radius: 0;
  background: var(--color-surface);
  margin-bottom: var(--space-8);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  padding: var(--space-3) var(--space-4);
  border: none;
  border-bottom: 1px solid var(--color-divider);
  text-align: left;
  vertical-align: middle;
}

.woocommerce table.shop_table thead th,
.woocommerce table.shop_table tfoot th {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-faint);
  background: var(--color-surface-2);
}

.woocommerce table.shop_table tbody tr:last-child td { border-bottom: none; }

.woocommerce table.shop_table .woocommerce-orders-table__cell-order-number a {
  font-family: var(--font-mono);
}

.woocommerce .woocommerce-Price-amount {
  font-family: var(--font-mono);
  color: var(--color-text);
}

/* Статусы счёта */
.woocommerce-orders-table__cell-order-status {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
}

/* ── Личный кабинет ──────────────────────────────────── */

/* Фон раздела — та же чертёжная бумага, что и на лендинге:
   крупная сетка листа + точечная фактура копировальной бумаги */
.koda-account-page main .section {
  background-image:
    radial-gradient(circle, var(--pattern-dot) 1px, transparent 1.3px),
    repeating-linear-gradient(0deg, var(--color-divider) 0 1px, transparent 1px 96px),
    repeating-linear-gradient(90deg, var(--color-divider) 0 1px, transparent 1px 96px);
  background-size: 24px 24px, auto, auto;
}

.koda-account { display: block; }

/* Гасим флоаты базовых стилей WooCommerce: навигация и контент — во всю ширину */
.koda-account .woocommerce-MyAccount-navigation,
.koda-account .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
}

/* Навигация — горизонтальная линейка вкладок, как штамп чертежа */
.woocommerce-MyAccount-navigation {
  margin-bottom: var(--space-8);
}

/* Линейка обнимает только сами вкладки — никаких пустых ячеек */
.woocommerce-MyAccount-navigation ul {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: nav;
  display: inline-flex;
  flex-wrap: wrap;
  max-width: 100%;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}

.woocommerce-MyAccount-navigation li {
  counter-increment: nav;
  border-right: 1px solid var(--color-divider);
}

/* «Выйти» отделён зазором от разделов */
.woocommerce-MyAccount-navigation-link--customer-logout {
  margin-left: var(--space-5);
}

.woocommerce-MyAccount-navigation li a {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-5);
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  text-decoration: none;
  transition: color var(--transition-interactive), background var(--transition-interactive);
}

.woocommerce-MyAccount-navigation li a::before {
  content: counter(nav, decimal-leading-zero);
  font-size: var(--text-xs);
  color: var(--color-cobalt-ink);
}

.woocommerce-MyAccount-navigation li a:hover {
  color: var(--color-text);
  background: var(--color-surface-2);
}

.woocommerce-MyAccount-navigation li.is-active a {
  color: var(--color-text);
  background: var(--color-surface-2);
  box-shadow: inset 0 -3px 0 var(--color-accent);
}

/* Раздел «Безопасность» (2FA) */
.koda-security {
  max-width: 720px;
}

/* ── Мастер WP 2FA — в стиле чертежа (обе темы) ──────────────── */
.koda-security .wp-2fa-shortcode-wrapper,
.koda-security .wp-2fa-shortcode-wrapper .wp2fa-profile {
  background: transparent;
  color: var(--color-text);
}

.koda-security .wp-2fa-shortcode-wrapper h1,
.koda-security .wp-2fa-shortcode-wrapper h2,
.koda-security .wp-2fa-shortcode-wrapper h3,
.koda-security .wp-2fa-shortcode-wrapper h4 {
  color: var(--color-text);
  font-family: var(--font-display);
}

.koda-security .wp2fa-profile__title {
  font-size: var(--text-lg);
  margin: var(--space-2) 0;
}

.koda-security .wp2fa-profile__desc {
  color: var(--color-text-muted);
  line-height: 1.6;
}

/* Сводка «Primary Method / Secondary Method(s)» — как карточка клиента */
.koda-security .wp2fa-profile__summary {
  border: 1px solid var(--color-border);
  background: var(--color-surface-2);
  padding: var(--space-4) var(--space-5);
  margin: var(--space-4) 0;
}

.koda-security .wp2fa-profile__summary-row {
  display: flex;
  gap: var(--space-4);
  padding: var(--space-2) 0;
  border-bottom: 1px dashed var(--color-divider);
}

.koda-security .wp2fa-profile__summary-row:last-child { border-bottom: none; }

.koda-security .wp2fa-profile__summary-label {
  min-width: 11rem;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-faint);
}

.koda-security .wp2fa-profile__summary-value { color: var(--color-text); }
.koda-security .wp2fa-profile__summary-value a { color: var(--color-cobalt-ink); }

/* Карточки методов — внутренние плашки с пунктирной рамкой */
.koda-security .wp2fa-profile__section-title {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-cobalt-ink);
  margin: var(--space-5) 0 var(--space-3);
}

.koda-security .wp2fa-profile__card {
  border: 1px dashed var(--color-border);
  background: var(--color-surface-2);
  padding: var(--space-4) var(--space-5);
}

.koda-security .wp2fa-profile__card-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--text-base);
  color: var(--color-text);
}

/* Кнопки плагина = кнопки сайта */
.koda-security .wp2fa-profile__btn-group .button,
.koda-security .wp2fa-profile__btn,
.koda-security button.wp2fa-wizard-btn-primary,
.koda-security .wp2fa-profile__btn--primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.72rem 1.5rem;
  font-family: var(--font-display);
  font-size: var(--text-sm);
  font-weight: 700;
  color: #fff !important;
  background: var(--color-btn-primary-bg, var(--color-cobalt)) !important;
  border: 1px solid transparent !important;
  border-radius: 2px;
  cursor: pointer;
}

.koda-security .wp2fa-profile__btn:hover,
.koda-security button.wp2fa-wizard-btn-primary:hover,
.koda-security .wp2fa-profile__btn--primary:hover {
  background: var(--color-cobalt-hover) !important;
  color: #fff !important;
}

/* Диалоги плагина (коды восстановления и пр.) — в цветах темы */
.wp2fa-profile__confirm-dialog,
.koda-security .wp2fa-profile__confirm-dialog {
  background: var(--color-surface) !important;
  color: var(--color-text) !important;
  border: 1px solid var(--color-border) !important;
}

.wp2fa-profile__confirm-dialog h3,
.wp2fa-profile__confirm-dialog p {
  color: var(--color-text) !important;
}

/* Поля ввода внутри плагина — как поля сайта */
.koda-security .wp2fa-profile input[type='text'],
.koda-security .wp2fa-profile input[type='email'],
.koda-security .wp2fa-profile input[type='password'],
.koda-security .wp2fa-profile textarea {
  background: var(--color-surface);
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: 2px;
  padding: 0.66rem 0.9rem;
}

/* «Выйти» — в конце линейки, с небольшим отступом */
.woocommerce-MyAccount-navigation-link--customer-logout {
  border-right: none;
  border-left: 1px solid var(--color-divider);
}
.woocommerce-MyAccount-navigation-link--customer-logout a::before {
  color: var(--color-accent);
}

/* Содержимое на чертёжном фоне — таблицы на подложке */
.woocommerce-MyAccount-content .shop_table {
  background: var(--color-surface);
}

.woocommerce-MyAccount-content > p:first-child {
  color: var(--color-text-muted);
}

/* Мобильная раскладка кабинета */
@media (max-width: 760px) {
  /* Навигация — сетка 2×2 вместо линейки */
  .woocommerce-MyAccount-navigation ul { display: grid; grid-template-columns: 1fr 1fr; }
  .woocommerce-MyAccount-navigation li { border-right: none; border-bottom: 1px solid var(--color-divider); }
  .woocommerce-MyAccount-navigation li:nth-child(odd) { border-right: 1px solid var(--color-divider); }
  .woocommerce-MyAccount-navigation li:last-child { border-bottom: none; }
  .woocommerce-MyAccount-navigation li:nth-last-child(2):nth-child(odd) { border-bottom: none; }
  .woocommerce-MyAccount-navigation li:last-child:nth-child(odd) { grid-column: 1 / -1; border-right: none; }
  .woocommerce-MyAccount-navigation-link--customer-logout { margin-left: 0; border-left: none; }

  /* Кнопка внутри уведомления — отдельной строкой, без наложения на текст */
  body .woocommerce-message a.button,
  body .woocommerce-info a.button,
  body .woocommerce-error a.button,
  .woocommerce-message .button,
  .woocommerce-info .button,
  .woocommerce-error .button {
    float: none !important;
    display: inline-flex;
    width: max-content;
    max-width: 100%;
    margin: 0 0 var(--space-3);
  }

  /* Ячейка «Действия» в мобильной таблице: подпись сверху, кнопки под ней */
  .woocommerce table.shop_table td.woocommerce-orders-table__cell-order-actions {
    white-space: normal;
    text-align: left;
  }

  .woocommerce table.shop_table_responsive tr td.woocommerce-orders-table__cell-order-actions::before {
    float: none;
    display: block;
    margin-bottom: var(--space-2);
  }

  .woocommerce table.shop_table .woocommerce-orders-table__cell-order-actions .button {
    margin: 0 6px 6px 0;
  }
}

/* ── Вкладка «Напоминания» ────────────────────────────── */

.koda-reminders-form {
  margin-top: var(--space-4);
  padding: var(--space-5);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}

.koda-reminders-option {
  display: flex;
  align-items: center;
  gap: 0.6em;
  margin-bottom: var(--space-3);
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  cursor: pointer;
}

.koda-reminders-option input[type='checkbox'] {
  width: 16px;
  height: 16px;
  accent-color: var(--color-cobalt);
}

/* ── Формы входа / адреса / детали аккаунта ─────────────────── */

.woocommerce-form-login,
.woocommerce-form-register,
.woocommerce-ResetPassword {
  max-width: 460px;
  padding: var(--space-8);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}

.woocommerce-form-login .woocommerce-form-login__rememberme {
  display: block;
  margin-bottom: var(--space-4);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

.woocommerce-EditAccountForm fieldset {
  margin: var(--space-8) 0;
  padding: var(--space-5);
  border: 1px solid var(--color-border);
}

.woocommerce-EditAccountForm legend {
  padding: 0 var(--space-2);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-faint);
}

.woocommerce-Addresses .woocommerce-Address {
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  padding: var(--space-5);
}

.woocommerce-Address-title h2,
.woocommerce-column__title {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 700;
}

/* ── Оплата счёта (order-pay) и чекаут ──────────────────────── */

#payment.woocommerce-checkout-payment,
.woocommerce-checkout #payment {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 2px;
}

.woocommerce-checkout #payment ul.payment_methods {
  padding: var(--space-5);
  border-bottom: 1px solid var(--color-divider);
  list-style: none;
}

.woocommerce-checkout #payment div.payment_box {
  background: var(--color-surface-2);
  color: var(--color-text-muted);
  border-radius: 2px;
}

.woocommerce-checkout #payment div.payment_box::before {
  border-bottom-color: var(--color-surface-2);
}

.woocommerce-checkout #payment div.form-row.place-order {
  padding: var(--space-5);
}

#payment #place_order,
.woocommerce #payment button#place_order,
.woocommerce-page button#place_order,
button#place_order {
  width: 100%;
  font-size: var(--text-base);
  font-family: var(--font-display);
  font-weight: 700;
  color: #fff;
  background: var(--color-cobalt);
  border: 1px solid transparent;
  border-radius: 2px;
  padding: 0.85rem 1.5rem;
  cursor: pointer;
  transition: background var(--transition-interactive);
}

button#place_order:hover,
button#place_order:focus-visible {
  background: var(--color-cobalt-hover);
}

/* Заголовки разделов чекаута/кабинета — как заголовки секций сайта */
.woocommerce-page main h2,
.woocommerce-page main h3 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* Итог заказа на странице оплаты */
.woocommerce-page .order_details {
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4) var(--space-8);
  margin-bottom: var(--space-8);
  font-family: var(--font-mono);
  font-size: var(--text-sm);
}

.woocommerce-page .order_details li {
  border-right: none;
  color: var(--color-text-faint);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: var(--text-xs);
}

.woocommerce-page .order_details li strong {
  display: block;
  margin-top: var(--space-1);
  font-size: var(--text-base);
  color: var(--color-text);
  text-transform: none;
  letter-spacing: 0;
}

/* ── Пагинация и мелочи ─────────────────────────────────────── */

.woocommerce-pagination {
  display: flex;
  gap: var(--space-2);
  font-family: var(--font-mono);
}

.woocommerce-Message .button { margin-top: 0; }

/* Скрыть «магазинные» хлебные крошки и сортировку, если появятся */
.woocommerce-breadcrumb,
.woocommerce-result-count,
.woocommerce-ordering { display: none; }

/* ─── Экран ознакомления с политикой ПДн (первый вход) ─────── */
.koda-policy-ack {
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--color-accent);
  background: var(--color-surface);
  padding: var(--space-4);
  margin-bottom: var(--space-5);
  display: grid;
  gap: var(--space-3);
}
.koda-policy-ack__title {
  color: var(--color-accent);
  font-size: var(--text-sm);
  letter-spacing: 0.08em;
}
.koda-policy-ack a { color: var(--color-cobalt-ink); }
.koda-policy-ack__form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
}
.koda-policy-ack__form label {
  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  max-width: 56ch;
}
.koda-policy-ack__form input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  flex: none;
  accent-color: var(--color-cobalt);
}
.koda-policy-ack__note {
  color: var(--color-text-faint);
  font-size: var(--text-sm);
}

/* ── Экран первого входа: ознакомление с политикой ПДн ───────── */
.koda-policy-gate {
  max-width: 62ch;
  margin-inline: auto;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  padding: clamp(var(--space-6), 5vw, var(--space-10));
  position: relative;
}
.koda-policy-gate::before {
  content: '+';
  position: absolute;
  top: -9px;
  left: var(--space-5);
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--color-accent);
  background: var(--color-surface);
  padding-inline: var(--space-1);
}
.koda-policy-gate__label {
  color: var(--color-accent);
  font-size: var(--text-xs);
  letter-spacing: 0.12em;
  margin-bottom: var(--space-4);
}
.koda-policy-gate__title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--text-xl);
  margin-bottom: var(--space-4);
}
.koda-policy-gate p { margin-bottom: var(--space-4); }
.koda-policy-gate a { color: var(--color-cobalt-ink); }
.koda-policy-gate .koda-policy-ack__form { margin-block: var(--space-6); }
.koda-policy-gate__later { font-size: var(--text-sm); }
.koda-policy-gate__later a {
  color: var(--color-text-muted);
  text-decoration: underline;
  text-decoration-style: dashed;
  text-underline-offset: 3px;
}
.koda-policy-gate__later a:hover { color: var(--color-accent); }

/* ── Активные услуги ─────────────────────────────────────────── */
.koda-services {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: var(--space-4);
  margin-bottom: var(--space-8);
}
.koda-service {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  padding: var(--space-5);
}
.koda-service__type {
  color: var(--color-cobalt-ink);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
}
.koda-service__name {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--text-lg);
  line-height: 1.25;
  margin: 0;
}
.koda-service__meta {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin: 0;
}
.koda-service__left { color: var(--color-text); }
/* Скоро истекает (≤ 14 дней) — акцентная рамка */
.koda-service--soon { border-color: var(--color-accent); }
.koda-service--soon .koda-service__type,
.koda-service--soon .koda-service__left { color: var(--color-accent); }
/* Срок истёк — пунктирная рамка */
.koda-service--over { border-style: dashed; }
.koda-service--over .koda-service__left { color: var(--color-accent); }
.koda-service__paid--due { color: var(--color-accent); }
.koda-services__empty {
  color: var(--color-text-muted);
  max-width: 56ch;
}

/* Настройка напоминаний (только при активной услуге) */
.koda-reminders-block {
  border-top: 1px dashed var(--color-cobalt-line);
  padding-top: var(--space-6);
}
.koda-reminders-block__label {
  color: var(--color-cobalt-ink);
  font-size: var(--text-xs);
  letter-spacing: 0.12em;
  margin-bottom: var(--space-3);
}
.koda-reminders-note { color: var(--color-text-muted); max-width: 60ch; }
.koda-reminders-form { margin-top: var(--space-4); }
.koda-reminders-option {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0 var(--space-5) var(--space-3) 0;
  font-family: var(--font-mono);
  font-size: var(--text-sm);
}
.koda-reminders-option input { accent-color: var(--color-cobalt); }

/* ── Единая карточка разделов кабинета (как «Мои данные») ────── */

.koda-card {
  position: relative;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  padding: var(--space-6);
  margin-bottom: var(--space-6);
}

.koda-card::before {
  content: '+';
  position: absolute;
  top: -9px;
  left: var(--space-5);
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--color-accent);
  background: var(--color-surface);
  padding-inline: var(--space-1);
}

.koda-card__label {
  color: var(--color-cobalt-ink);
  font-size: var(--text-xs);
  letter-spacing: 0.12em;
  margin: 0 0 var(--space-3);
}

.koda-card__text {
  margin: 0 0 var(--space-3);
  line-height: 1.6;
}

.koda-card__text:last-child { margin-bottom: 0; }

.koda-card__text--muted {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}

/* Таблица и сетка внутри карточки — без собственных рамок и отступов */
.koda-card .shop_table {
  margin-bottom: 0;
  border: none;
  background: transparent;
}

.koda-card .koda-services {
  margin-bottom: 0;
}

/* Стабильная высота области: нижняя граница и чертёжный фон не «прыгают» при смене раздела */
.koda-account .woocommerce-MyAccount-content {
  min-height: clamp(280px, 40vh, 460px);
}

@media (max-width: 760px) {
  .koda-account .woocommerce-MyAccount-content {
    min-height: clamp(320px, 45vh, 520px);
  }
}

/* ── Мои данные: карточка клиента ────────────────────────────── */
.koda-data {
  position: relative;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  padding: var(--space-6);
  margin-bottom: var(--space-6);
}
.koda-data::before {
  content: '+';
  position: absolute;
  top: -9px;
  left: var(--space-5);
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--color-accent);
  background: var(--color-surface);
  padding-inline: var(--space-1);
}
.koda-data__label {
  color: var(--color-cobalt-ink);
  font-size: var(--text-xs);
  letter-spacing: 0.12em;
  margin-bottom: var(--space-3);
}
.koda-data__list { margin: 0; }
.koda-data__row {
  display: grid;
  grid-template-columns: minmax(160px, 220px) 1fr;
  gap: var(--space-4);
  padding-block: var(--space-3);
  border-bottom: 1px dashed var(--color-divider);
}
.koda-data__row:last-child { border-bottom: none; }
.koda-data__row dt {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}
.koda-data__row dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 560px) {
  .koda-data__row { grid-template-columns: 1fr; gap: var(--space-1); }
}

/* Свёрнутая форма «Изменить данные или пароль» */
.koda-edit {
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}
.koda-edit__summary {
  cursor: pointer;
  padding: var(--space-4) var(--space-5);
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  color: var(--color-cobalt-ink);
  list-style: none;
  transition: background var(--transition-interactive);
}
.koda-edit__summary::-webkit-details-marker { display: none; }
.koda-edit__summary::before { content: '▸ '; }
.koda-edit[open] .koda-edit__summary::before { content: '▾ '; }
.koda-edit__summary:hover { background: var(--color-surface-2); }
.koda-edit .woocommerce-EditAccountForm {
  padding: var(--space-5);
  border-top: 1px solid var(--color-divider);
}
.koda-edit__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--space-4) var(--space-5);
}
.koda-edit__grid .form-row { margin: 0; }
.koda-edit__password {
  border: none;
  margin: var(--space-6) 0 0;
  padding: 0;
}
.koda-edit__password legend {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin-bottom: var(--space-4);
  padding: 0;
}
.koda-edit__optional { color: var(--color-text-faint); }
.koda-edit__submit { margin: var(--space-6) 0 0; }

/* ── Диалог подтверждения выхода ─────────────────────────────── */
dialog.koda-confirm {
  /* Центрирование явно — глобальный сброс отступов темы перебивает дефолт <dialog> */
  position: fixed;
  inset: 0;
  margin: auto;
  width: fit-content;
  height: fit-content;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-text);
  padding: var(--space-8);
  max-width: min(26rem, calc(100vw - 2 * var(--space-4)));
}
dialog.koda-confirm::backdrop {
  background: rgba(0, 0, 0, 0.55);
}
.koda-confirm__label {
  color: var(--color-accent);
  font-size: var(--text-xs);
  letter-spacing: 0.12em;
  margin-bottom: var(--space-3);
}
.koda-confirm__title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--text-lg);
  margin-bottom: var(--space-3);
}
.koda-confirm__text {
  color: var(--color-text-muted);
  margin-bottom: var(--space-6);
}
.koda-confirm__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}
a.koda-confirm__yes,
button.koda-confirm__no {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  padding: var(--space-2) var(--space-5);
  cursor: pointer;
  text-decoration: none;
  transition: background var(--transition-interactive), color var(--transition-interactive), border-color var(--transition-interactive);
}
a.koda-confirm__yes {
  background: var(--color-cobalt-ink);
  color: var(--color-bg);
  border: 1px solid var(--color-cobalt-ink);
}
a.koda-confirm__yes:hover { opacity: 0.88; }
button.koda-confirm__no {
  background: transparent;
  color: var(--color-text-muted);
  border: 1px dashed var(--color-border);
}
button.koda-confirm__no:hover {
  color: var(--color-text);
  border-color: var(--color-text-muted);
}

/* Первый вход: экран политики занимает всю ширину (меню скрыто) */
.koda-policy-gate-mode .koda-account { display: block; }
.koda-policy-gate-mode .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
}

/* ── Форма входа — в стиле кабинета ──────────────────────────── */
.woocommerce-account .woocommerce-form-login,
.woocommerce-account form.login {
  max-width: 30rem;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  padding: var(--space-6);
  position: relative;
}

.woocommerce-account .woocommerce-form-login::before {
  content: '+';
  position: absolute;
  top: -9px;
  left: var(--space-5);
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--color-accent);
  background: var(--color-surface);
  padding-inline: var(--space-1);
}

/* Заголовок «Вход» в стиле карточек */
.woocommerce-account .u-column1 > h2,
.woocommerce-account .woocommerce-form-login__title {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-cobalt-ink);
  margin: 0 0 var(--space-4);
}

.woocommerce-account .woocommerce-form-login .woocommerce-form-row {
  margin-bottom: var(--space-4);
}

.woocommerce-account .woocommerce-form-login .form-row .woocommerce-form__label-for-checkbox {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.woocommerce-account .woocommerce-LostPassword a {
  color: var(--color-cobalt-ink);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.04em;
}

.woocommerce-account .woocommerce-form-login__submit {
  width: 100%;
}

/* Индикатор здоровья оплаты (только студия) */
.koda-payment-health--ok   { border-left-color: var(--color-cobalt-ink); }
.koda-payment-health--warn { border-left-color: var(--color-accent); }
.koda-payment-health--error { border-left-color: #d64545; }
