/* ===== ПОДКЛЮЧЕНИЕ ШРИФТА ===== */
@font-face {
    font-family: 'Hezaedrus-Regular';
    src: url('/fonts/hezaedrus.woff2') format('woff2'),
         url('/fonts/hezaedrus.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* ============================================================
   ГЛОБАЛЬНЫЕ СБРОСЫ
   ============================================================ */
html, body {
    margin: 0;
    padding: 0;
    width: 100%;
}
body {
    background: #EFEFEF;
    font-family: Hezaedrus-Regular;
}

/* ============================================================
   ОСНОВНОЙ КОНТЕНТ (центрированный, с отступами)
   ============================================================ */
.page-content {
    max-width: 95%;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}

/* ============================================================
   ВСЕ ОСТАЛЬНЫЕ СТИЛИ
   ============================================================ */
.sector-light { fill: #ffffff; }
.sector-dark { fill: #EEEEEE; }
.house-number-light { fill: #EEEEEE; }
.house-number-dark { fill: #ffffff; }
.greeting-bg { background: #FFFFFF; padding: 10px; margin-bottom: 10px; }
.btn-calculate { background: #4CAF50; color: white; border: none; padding: 6px 20px; border-radius: 4px; }
.btn-calculate:hover { background: #45a049; }

.flex { display: flex; flex-wrap: wrap; gap: 30px; }
.flex > div { flex: 1; min-width: 300px; }
input, select { margin-bottom: 8px; }
table { border-collapse: collapse; width: 100%; margin-bottom: 15px; font-size: 14px; }
th, td { border: 1px solid #ccc; padding: 4px 8px; text-align: left; }
th { background: #f0f0f0; }
td { color: #000; }
table tbody tr:hover { background-color: #f5f5f5; }
tr.highlight-row { background-color: #ffffcc !important; }
.error { color: red; }
.house-tip { cursor: help; border-bottom: 1px dashed #999; }
.chart-container { display: flex; flex-wrap: wrap; justify-content: center; gap: 40px; margin-top: 20px; }
.chart-container > div { flex: 0 0 auto; text-align: center; }
.chart-title { font-weight: bold; margin-bottom: 10px; }
.btn { padding: 4px 12px; margin: 2px; cursor: pointer; }
.btn-gray { background: #6c757d; color: white; border: none; padding: 4px 12px; border-radius: 4px; }
.btn-gray:hover { background: #5a6268; color: white; }
.btn-save { background: #6c757d; color: white; border: none; padding: 4px 12px; border-radius: 4px; }
.btn-save:hover { background: #5a6268; color: white; }
.history-table td { vertical-align: middle; }
.auth-container { display: flex; gap: 20px; flex-wrap: wrap; margin-bottom: 30px; }
.auth-box { border: 1px solid #ccc; padding: 15px; min-width: 250px; flex: 1; margin-bottom: 20px; }
.auth-box h3 { margin-top: 0; }
.auth-box .forgot-link { margin-top: 10px; display: block; }
.action-buttons form { display: inline; }
.confirm-box { border: 1px solid #f0ad4e; padding: 15px; margin: 10px 0; background: #fcf8e3; }
svg { display: block; margin: 0 auto; }
svg * { pointer-events: all; }
.small-gray { color: #888; font-size: 0.9em; }
.small-gray h3 { color: #888; font-size: 1.1em; }
.varga-select-center { margin: 0 10px; }
.varga-block { text-align: center; margin: 15px 0; }
.field-wide { width: 300px; box-sizing: border-box; }
.field-tz { width: 3em; box-sizing: border-box; }
.field-coord { width: 10em; box-sizing: border-box; }
.city-input-wrapper { position: relative; display: inline-block; width: 300px; }
.city-input-wrapper input { width: 100%; box-sizing: border-box; }
.suggestions-box { position: absolute; background: white; border: 1px solid #ccc; max-height: 200px; overflow-y: auto; width: 100%; z-index: 1000; display: none; }
.suggestions-box div { padding: 8px 12px; cursor: pointer; }
.suggestions-box div:hover { background: #f0f0f0; }
.karaka-tooltip { border-bottom: 1px dashed #999; cursor: help; }
.house-number { border-bottom: 1px dashed #999; cursor: help; transition: transform 0.2s ease, color 0.2s ease; display: inline-block; transform-origin: center; color: #000; }
.house-number.hovered { transform: scale(1.5); color: #FFD700 !important; }
.col-karaka, .col-house { width: 70px; max-width: 70px; text-align: center; }
.btn-extra { background: #ffffff; color: #333; border: 1px solid #ccc; border-radius: 0; padding: 6px 18px; transition: background 0.2s; }
.btn-extra:hover { background: #f0f0f0; }
.house-number-link.circle-house { font-size: 57px; transition: font-size 0.2s ease, fill 0.2s ease; cursor: pointer; }
.house-number-link.circle-house.hovered { font-size: 85.5px !important; fill: #FFD700 !important; }
.house-number-link.square-house { font-size: 88px; transition: font-size 0.2s ease, fill 0.2s ease; cursor: pointer; fill: #FFFFFF; }
.house-number-link.square-house.hovered { font-size: 132px !important; fill: #FFD700 !important; }
#interpretModalBody { max-height: 70vh; overflow-y: auto; }
.aspect-label { font-size: 12px; fill: #666; }
#interpretModalBody .spinner-wrapper { display: flex; justify-content: center; align-items: center; flex-direction: column; min-height: 100px; }
.nakshatra-link { color: #000 !important; border-bottom: 1px dashed #999; cursor: help; text-decoration: none; }
.nakshatra-link:hover { text-decoration: none; }
.auth-box input[type="email"], .auth-box input[type="password"] { width: 50% !important; box-sizing: border-box; }
.auth-box .register-link { font-size: 2.5em !important; font-weight: bold; display: block; margin-top: 10px; }
.auth-link { font-size: 2.125em; font-weight: bold; display: block; margin-top: 10px; }
.sticky-charts { position: sticky; top: 70px; z-index: 5; background: #EFEFEF; padding: 10px 0 5px 0; margin-bottom: 20px; }
.resizable-chart { position: relative; display: inline-block; }
.resize-handle { position: absolute; bottom: -5px; right: -5px; width: 20px; height: 20px; cursor: nwse-resize; background: rgba(0,0,0,0.1); border: 1px solid #aaa; border-radius: 3px; z-index: 10; transition: background 0.2s; }
.resize-handle:hover { background: rgba(0,0,0,0.3); }
.resize-handle:active { background: rgba(0,0,0,0.5); }
.resizable-chart svg { display: block; }
.history-tables { display: flex; flex-wrap: wrap; gap: 30px; margin-bottom: 20px; }
.history-table-container { flex: 1 1 300px; min-width: 250px; }
.history-table-container .small-gray { height: 100%; }
.history-table-container table { width: 100%; }
.final-relation-friend { color: #28a745; }
.final-relation-enemy { color: #dc3545; }
.final-relation-neutral { color: #6c757d; }

/* ===== Стили для выбора пакетов при регистрации ===== */
.package-selector { display: flex; flex-wrap: wrap; gap: 15px; justify-content: center; }
.package-card-reg { flex: 1 1 180px; min-width: 140px; max-width: 220px; border: 2px solid #dee2e6; border-radius: 12px; padding: 15px 10px; text-align: center; background: #fff; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,0.05); }
.package-card-reg:hover { transform: scale(1.05); box-shadow: 0 8px 20px rgba(0,0,0,0.15); border-color: #0d6efd; z-index: 5; }
.package-card-reg.selected { border-color: #0d6efd; background: #f0f7ff; }
.package-card-reg .pkg-name { font-weight: 700; font-size: 1.1rem; margin-bottom: 6px; }
.package-card-reg .pkg-desc { font-size: 0.9rem; color: #555; margin-bottom: 8px; }
.package-card-reg .pkg-desc * { list-style: none !important; margin: 0; padding: 0; }
.package-card-reg .pkg-price { font-weight: 600; color: #28a745; font-size: 1.05rem; }
.package-card-reg .pkg-duration { font-size: 0.85rem; color: #6c757d; }

/* Кнопка регистрации — зелёная после выбора тарифа (светлая тема) */
#registerBtn.active {
    background: #28a745 !important;
    border-color: #28a745 !important;
    color: #fff !important;
}
#registerBtn.active:hover {
    background: #218838 !important;
    border-color: #218838 !important;
}

/* ============================================================
   ТЁМНАЯ ТЕМА (при активации класса .theme-dark на body)
   ============================================================ */
body.theme-dark {
    background: #1a1a1a;
    color: #e0e0e0;
}

/* Меню (стики-панель) и область под виджетами */
body.theme-dark .sticky-menu,
body.theme-dark div[style*="position: sticky"] {
    background: #2a2a2a !important;
    border-bottom-color: #444 !important;
}
body.theme-dark .widgets-area,
body.theme-dark div[style*="background: #f8f9fa"] {
    background: #2a2a2a !important;
    border-bottom-color: #444 !important;
}

/* Основной контент */
body.theme-dark .page-content {
    background: #1a1a1a;
    color: #e0e0e0;
}

/* Заголовки, блоки приветствия */
body.theme-dark .greeting-bg {
    background: #2a2a2a;
    color: #e0e0e0;
}

/* ===== ФОРМЫ ВВОДА ДАННЫХ (светлый фон, чёрные лейблы) ===== */
body.theme-dark #mainForm,
body.theme-dark #searchForm,
body.theme-dark #transitForm,
body.theme-dark #rectificationForm {
    background: #CCCCCC !important;  /* вместо #ffffff */
}
body.theme-dark #mainForm label,
body.theme-dark #searchForm label,
body.theme-dark #transitForm label,
body.theme-dark #rectificationForm label {
    color: #000000 !important;
}

/* ===== ТАБЛИЦЫ с прозрачными рамками ===== */
body.theme-dark table {
    border-collapse: separate;
    border-spacing: 1px;
    background: transparent;
}
body.theme-dark th,
body.theme-dark td {
    border: 1px solid transparent;
    background: #2a2a2a;
    color: #e0e0e0;
}
body.theme-dark th {
    background: #333;
}
body.theme-dark table tbody tr:hover td {
    background: #3a3a3a;
}
body.theme-dark tr.highlight-row td {
    background: #4a4a2a !important;
}

/* ===== ТАБЛИЦА СОХРАНЁННЫХ ДАННЫХ (история) ===== */
body.theme-dark .history-table-container .small-gray {
    color: #aaa;
}
body.theme-dark .history-table-container .small-gray h3 {
    color: #aaa;
}
body.theme-dark .history-table-container td {
    color: #ccc !important;
}
body.theme-dark .history-table-container td:first-child {
    color: #fff !important;
}

/* ===== НАКШАТРЫ И НОМЕРА ДОМОВ В ТАБЛИЦЕ РЕЗУЛЬТАТОВ ===== */
body.theme-dark .nakshatra-link {
    color: #fff !important;
    border-bottom-color: #666;
}
body.theme-dark .house-number {
    color: #fff !important;
    border-bottom-color: #666;
}
body.theme-dark .house-number.hovered {
    color: #FFD700 !important;
}

/* ===== ТАБЛИЦЫ ВИМШОТТАРИ ===== */
body.theme-dark .vimshottari-container table {
    background: #2a2a2a;
    border-collapse: collapse !important;  /* чтобы рамка строки работала */
}
body.theme-dark .vimshottari-container th,
body.theme-dark .vimshottari-container td {
    background: #2a2a2a;
    color: #e0e0e0;
    border: 1px solid #444;  /* границы ячеек для структуры */
}
body.theme-dark .vimshottari-container tr[style*="border"] {
    border: 3px solid #ffffff !important;
}
body.theme-dark .table-striped tbody tr:nth-of-type(odd) td {
    color: #fff;
}
body.theme-dark .table-striped tbody tr:nth-of-type(even) td {
    color: #aaa;
}

/* ===== АКТИВНЫЕ СТРОКИ В ТАБЛИЦЕ ВИМШОТТАРИ ДАША (белая рамка) ===== */
body.theme-dark .vimshottari-container table tr[style*="border"],
body.theme-dark .vimshottari-container table tr.active-dasha,
body.theme-dark .vimshottari-container table tr.active,
body.theme-dark .vimshottari-container table tr.current,
body.theme-dark .vimshottari-container table tr[data-active="true"],
body.theme-dark .vimshottari-container table tr.highlight,
body.theme-dark .vimshottari-container table tr[style*="border-top"],
body.theme-dark .vimshottari-container table tr[style*="border-bottom"] {
    border: 3px solid #ffffff !important;
}
/* Переопределяем границы ячеек внутри активной строки, чтобы они не перекрывали рамку */
body.theme-dark .vimshottari-container table tr[style*="border"] td,
body.theme-dark .vimshottari-container table tr.active-dasha td,
body.theme-dark .vimshottari-container table tr.active td,
body.theme-dark .vimshottari-container table tr.current td,
body.theme-dark .vimshottari-container table tr[data-active="true"] td,
body.theme-dark .vimshottari-container table tr.highlight td,
body.theme-dark .vimshottari-container table tr[style*="border-top"] td,
body.theme-dark .vimshottari-container table tr[style*="border-bottom"] td {
    border: 3px solid #ffffff !important;
}
/* Дополнительно для инлайн-стиля с rgb(0,0,0) */
body.theme-dark .vimshottari-container table tr[style*="border: 3px solid rgb(0, 0, 0)"] {
    border: 3px solid #ffffff !important;
}
body.theme-dark .vimshottari-container table tr[style*="border: 3px solid rgb(0, 0, 0)"] td {
    border: 3px solid #ffffff !important;
}

/* ===== ГОРИЗОНТАЛЬНАЯ ЛИНИЯ НАД "ВИМШОТТАРИ ДАША" (чёрная) ===== */
body.theme-dark div[style*="border-top: 2px solid #ddd"] {
    border-top-color: #000000 !important;
}

/* ===== БЛОКИ В ЗАЧАТИИ (периоды) ===== */
body.theme-dark .period-item {
    background: #2a2a2a !important;
    color: #e0e0e0 !important;
    border-bottom-color: #444 !important;
}
body.theme-dark .period-item .birth-info {
    color: #aaa !important;
}
body.theme-dark .group-header {
    background: #3a3a3a !important;
    color: #e0e0e0 !important;
}
body.theme-dark .group-header:hover {
    background: #4a4a4a !important;
}
body.theme-dark .group-content {
    background: #2a2a2a !important;
}
body.theme-dark .two-col > div > div[style*="background:#f9f9f9"] {
    background: #2a2a2a !important;
    border-color: #444 !important;
}

/* ===== АВТОДОПОЛНЕНИЕ ГОРОДОВ ===== */
body.theme-dark .suggestions-box div:hover {
    background: #f0f0f0 !important;
    color: #000000 !important;
}

/* ============================================================
   ДОПОЛНИТЕЛЬНЫЕ СТИЛИ ДЛЯ СТРАНИЦ НАСТРОЕК И ФИНАНСОВ
   ============================================================ */
body.theme-dark .card {
    background: #2a2a2a;
    border-color: #444;
    color: #e0e0e0;
}
body.theme-dark .card .card-header {
    background: #333;
    border-bottom-color: #444;
    color: #e0e0e0;
}
body.theme-dark .card .card-body {
    background: #2a2a2a;
    color: #e0e0e0;
}
body.theme-dark .card .card-title {
    color: #e0e0e0;
}
body.theme-dark .card .card-text {
    color: #c0c0c0;
}
body.theme-dark .form-control,
body.theme-dark .form-select {
    background: #333;
    color: #e0e0e0;
    border-color: #555;
}
body.theme-dark .form-control:focus,
body.theme-dark .form-select:focus {
    background: #333;
    color: #e0e0e0;
    border-color: #0d6efd;
}
body.theme-dark .form-label {
    color: #e0e0e0;
}
body.theme-dark .form-check-label {
    color: #e0e0e0;
}
body.theme-dark .form-check-input {
    background-color: #333;
    border-color: #555;
}
body.theme-dark .form-check-input:checked {
    background-color: #0d6efd;
    border-color: #0d6efd;
}

/* Стили для баланс-карты на странице финансов */
body.theme-dark .balance-card {
    background: linear-gradient(135deg, #1a2a3a 0%, #2a1a3a 100%) !important;
    color: #ffffff !important;
}
body.theme-dark .balance-card .balance-amount {
    color: #ffffff;
}
body.theme-dark .balance-card .balance-label {
    color: rgba(255,255,255,0.8);
}
body.theme-dark .balance-card .btn-outline-light {
    border-color: rgba(255,255,255,0.5);
    color: #fff;
}
body.theme-dark .balance-card .btn-outline-light:hover {
    background: rgba(255,255,255,0.1);
    color: #fff;
}

/* Стили для таблиц транзакций */
body.theme-dark .table {
    color: #e0e0e0;
}
body.theme-dark .table thead th {
    background: #333;
    border-color: #444;
    color: #e0e0e0;
}
body.theme-dark .table tbody td {
    background: #2a2a2a;
    border-color: #444;
    color: #e0e0e0;
}
body.theme-dark .table-striped tbody tr:nth-of-type(odd) td {
    background: #2f2f2f;
}
body.theme-dark .table-hover tbody tr:hover td {
    background: #3a3a3a;
}
body.theme-dark .table td[style*="color: green"] {
    color: #75b798 !important;
}
body.theme-dark .table td[style*="color: red"] {
    color: #ea868f !important;
}

/* Стили для пакетов в настройках */
body.theme-dark .package-option {
    background: #2a2a2a;
    border-color: #444;
    color: #e0e0e0;
}
body.theme-dark .package-option:hover {
    background: #3a3a3a;
}
body.theme-dark .package-option.active {
    background: #1a2a3a;
    border-color: #0d6efd;
    color: #fff;
}
body.theme-dark .package-option .pkg-name {
    color: #e0e0e0;
}
body.theme-dark .package-option.active .pkg-name {
    color: #75b798 !important;
}
body.theme-dark .package-option .badge {
    background-color: #0d6efd;
}
body.theme-dark .package-option .text-muted {
    color: #aaa !important;
}
body.theme-dark .package-option .pkg-duration {
    color: #aaa;
}

/* Модальное окно смены тарифа */
body.theme-dark .modal-content {
    background: #2a2a2a;
    color: #e0e0e0;
}
body.theme-dark .modal-header,
body.theme-dark .modal-footer {
    border-color: #444;
}
body.theme-dark .modal-header .btn-close {
    filter: invert(1);
}
body.theme-dark .list-group-item {
    background: #2a2a2a;
    color: #e0e0e0;
    border-color: #444;
}
body.theme-dark .list-group-item:hover {
    background: #3a3a3a;
}
body.theme-dark .list-group-item.active {
    background: #0d6efd;
    border-color: #0d6efd;
}
body.theme-dark .list-group-item .text-muted {
    color: #aaa !important;
}

/* ===== КВАДРАТНАЯ КАРТА – НОМЕРА ДОМОВ (ярко-белые) ===== */
body.theme-dark .house-number-link.square-house {
    fill: #ffffff !important;
}
body.theme-dark .house-number-link.square-house.hovered {
    fill: #FFD700 !important;
}

/* ============================================================
   БЛОК «О ПРОЕКТЕ» (about-project) ДЛЯ ТЁМНОЙ ТЕМЫ
   ============================================================ */
body.theme-dark .about-project .card {
    background: #2a2a2a !important;
    border-color: #444 !important;
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.3) !important;
}
body.theme-dark .about-project .card .card-title {
    color: #e0e0e0 !important;
}
body.theme-dark .about-project .card .card-text {
    color: #c0c0c0 !important;
}
body.theme-dark .about-project .card i {
    color: #e0e0e0 !important;
}
body.theme-dark .about-project .card i.fa-calculator { color: #6ea8fe !important; }
body.theme-dark .about-project .card i.fa-chart-pie { color: #75b798 !important; }
body.theme-dark .about-project .card i.fa-brain { color: #ffc107 !important; }
body.theme-dark .about-project .card i.fa-clock { color: #6edff6 !important; }
body.theme-dark .about-project .card i.fa-exchange-alt { color: #ea868f !important; }
body.theme-dark .about-project .card i.fa-pray { color: #b07cdb !important; }
body.theme-dark .about-project .card i.fa-hourglass-half { color: #adb5bd !important; }
body.theme-dark .about-project .card i.fa-save { color: #e0e0e0 !important; }
body.theme-dark .about-project .card i.fa-shield-alt { color: #75b798 !important; }

body.theme-dark .about-project .border-bottom {
    border-bottom-color: #444 !important;
}
body.theme-dark .about-project .btn-primary {
    background: linear-gradient(135deg, #2a4a8a 0%, #4a2a8a 100%) !important;
    color: #fff !important;
}
body.theme-dark .about-project .btn-primary:hover {
    background: linear-gradient(135deg, #3a5a9a 0%, #5a3a9a 100%) !important;
    box-shadow: 0 8px 25px rgba(42, 74, 138, 0.4) !important;
}
body.theme-dark .about-project .lead {
    color: #c0c0c0 !important;
}
body.theme-dark .about-project .text-muted {
    color: #adb5bd !important;
}

/* ============================================================
   HIGHLIGHT-KARAKA (для тёмной темы – чёрный фон)
   ============================================================ */
body.theme-dark .highlight-karaka {
    background-color: #000000 !important;
    color: #ffffff !important;
}

/* ============================================================
   ТЕКСТЫ С КЛАССОМ .text-muted (в т.ч. финансы) – делаем светлее
   ============================================================ */
body.theme-dark .text-muted {
    color: #adb5bd !important;
}
body.theme-dark .text-muted.small {
    color: #adb5bd !important;
}

/* ============================================================
   ОСТАЛЬНЫЕ ЭЛЕМЕНТЫ (кнопки, ссылки и т.д.)
   ============================================================ */
body.theme-dark .btn-outline-secondary {
    color: #adb5bd;
    border-color: #495057;
}
body.theme-dark .btn-outline-secondary:hover {
    background: #495057;
    color: #fff;
}
body.theme-dark .btn-outline-primary {
    color: #6ea8fe;
    border-color: #6ea8fe;
}
body.theme-dark .btn-outline-primary:hover {
    background: #6ea8fe;
    color: #1a1a1a;
}
body.theme-dark .btn-outline-info {
    color: #6edff6;
    border-color: #6edff6;
}
body.theme-dark .btn-outline-info:hover {
    background: #6edff6;
    color: #1a1a1a;
}
body.theme-dark .btn-outline-warning {
    color: #ffc107;
    border-color: #ffc107;
}
body.theme-dark .btn-outline-warning:hover {
    background: #ffc107;
    color: #1a1a1a;
}
body.theme-dark .btn-outline-success {
    color: #75b798;
    border-color: #75b798;
}
body.theme-dark .btn-outline-success:hover {
    background: #75b798;
    color: #1a1a1a;
}
body.theme-dark .btn-outline-danger {
    color: #ea868f;
    border-color: #ea868f;
}
body.theme-dark .btn-outline-danger:hover {
    background: #ea868f;
    color: #1a1a1a;
}
body.theme-dark .btn-primary {
    background: #0d6efd;
    border-color: #0d6efd;
}
body.theme-dark .btn-secondary {
    background: #495057;
    border-color: #495057;
}
body.theme-dark .btn-success {
    background: #198754;
    border-color: #198754;
}
body.theme-dark .btn-warning {
    background: #ffc107;
    border-color: #ffc107;
    color: #1a1a1a;
}
body.theme-dark .btn-info {
    background: #0dcaf0;
    border-color: #0dcaf0;
    color: #1a1a1a;
}
body.theme-dark .btn-danger {
    background: #dc3545;
    border-color: #dc3545;
}
body.theme-dark .btn-calculate {
    background: #4CAF50;
    color: #fff;
}
body.theme-dark .btn-calculate:hover {
    background: #45a049;
}
body.theme-dark .btn-stop {
    background: #dc3545;
    color: #fff;
}
body.theme-dark .btn-stop:hover {
    background: #c82333;
}
body.theme-dark .btn-extra {
    background: #2a2a2a;
    color: #e0e0e0;
    border-color: #555;
}
body.theme-dark .btn-extra:hover {
    background: #3a3a3a;
}
body.theme-dark .btn-save {
    background: #495057;
    color: #fff;
}
body.theme-dark .btn-save:hover {
    background: #5a6268;
}
body.theme-dark .btn-gray {
    background: #495057;
    color: #fff;
}
body.theme-dark .btn-gray:hover {
    background: #5a6268;
}
body.theme-dark .btn-partner-select {
    background: #495057;
    color: #fff;
}
body.theme-dark .btn-partner-select:hover {
    background: #5a6268;
}

/* Алерты */
body.theme-dark .alert-warning {
    background: #332d1a;
    color: #ffc107;
    border-color: #ffc107;
}
body.theme-dark .alert-info {
    background: #1a2d33;
    color: #0dcaf0;
    border-color: #0dcaf0;
}
body.theme-dark .alert-danger {
    background: #332a2d;
    color: #ea868f;
    border-color: #ea868f;
}
body.theme-dark .alert-success {
    background: #1a332a;
    color: #75b798;
    border-color: #75b798;
}

/* Карточки йог */
body.theme-dark .card {
    background: #2a2a2a;
    border-color: #444;
}
body.theme-dark .card .card-title {
    color: #e0e0e0;
}
body.theme-dark .card .card-text {
    color: #c0c0c0;
}
body.theme-dark .yoga-card {
    border-left-color: #ffc107;
}
body.theme-dark .yoga-card .yoga-condition {
    border-color: #444;
}
body.theme-dark .summary-stats {
    background: #2a2a2a;
}

/* Ползунки */
body.theme-dark .range-slider .track-bg {
    background: #555;
}
body.theme-dark .range-slider .track-fill {
    background: #4CAF50;
}
body.theme-dark .range-slider .slider-label {
    background: #2a2a2a;
    border-color: #555;
    color: #e0e0e0;
}

/* Партнёр */
body.theme-dark .partner-info {
    background: #2a2a2a;
    border-color: #444;
}
body.theme-dark .time-control-panel {
    background: #2a2a2a !important;
    border-color: #444 !important;
}
body.theme-dark .btn-arrow {
    color: #e0e0e0;
}
body.theme-dark .btn-arrow:hover {
    background: #444;
}

/* Прогресс */
body.theme-dark .progress-bar {
    background: #4CAF50;
}

/* Подтверждение (confirm-box) */
body.theme-dark .confirm-box {
    background: #332d1a;
    border-color: #ffc107;
}

/* Авторизация */
body.theme-dark .auth-box {
    background: #2a2a2a;
    border-color: #444;
}
body.theme-dark .auth-box input {
    background: #333;
    color: #e0e0e0;
    border-color: #555;
}
body.theme-dark .auth-box .btn-gray {
    background: #495057;
    color: #fff;
}
body.theme-dark .auth-box .btn-gray:hover {
    background: #5a6268;
}
body.theme-dark .auth-box .error {
    color: #ea868f;
}
body.theme-dark .auth-box .forgot-link a {
    color: #6ea8fe;
}

/* Автодополнение города (общие, но для тёмной темы переопределено выше) */
body.theme-dark .suggestions-box {
    background: #2a2a2a;
    border-color: #444;
}
body.theme-dark .suggestions-box div {
    color: #e0e0e0;
}

/* Пакеты */
body.theme-dark .package-card-reg {
    background: #2a2a2a;
    border-color: #444;
}
body.theme-dark .package-card-reg.selected {
    border-color: #0d6efd;
    background: #1a2a3a;
}
body.theme-dark .package-card-reg .pkg-desc {
    color: #aaa;
}
body.theme-dark .package-card-reg .pkg-price {
    color: #75b798;
}
body.theme-dark .package-card-reg .pkg-duration {
    color: #aaa;
}

/* ===== КНОПКА РЕГИСТРАЦИИ В ТЁМНОЙ ТЕМЕ (зелёная после выбора тарифа) ===== */
body.theme-dark #registerBtn.active {
    background: #28a745 !important;
    border-color: #28a745 !important;
    color: #ffffff !important;
}
body.theme-dark #registerBtn.active:hover {
    background: #218838 !important;
    border-color: #218838 !important;
}

/* Липкие графики */
body.theme-dark .sticky-charts {
    background: #1a1a1a;
}
body.theme-dark .resize-handle {
    background: rgba(255,255,255,0.1);
    border-color: #666;
}
body.theme-dark .resize-handle:hover {
    background: rgba(255,255,255,0.2);
}
body.theme-dark .resize-handle:active {
    background: rgba(255,255,255,0.3);
}

/* SVG элементы карт */
body.theme-dark .sector-light {
    fill: #2a2a2a;
}
body.theme-dark .sector-dark {
    fill: #1a1a1a;
}
body.theme-dark .house-number-light {
    fill: #2a2a2a;
}
body.theme-dark .house-number-dark {
    fill: #1a1a1a;
}
body.theme-dark .aspect-label {
    fill: #aaa;
}

/* Цвет ссылок и прочие */
body.theme-dark a {
    color: #6ea8fe;
}
body.theme-dark a:hover {
    color: #8bb9fe;
}
body.theme-dark .small-gray {
    color: #aaa;
}
body.theme-dark .small-gray h3 {
    color: #aaa;
}
body.theme-dark .btn-close {
    filter: invert(1);
}
body.theme-dark .dropdown-menu {
    background: #2a2a2a;
    border-color: #444;
}
body.theme-dark .dropdown-item {
    color: #e0e0e0;
}
body.theme-dark .dropdown-item:hover {
    background: #3a3a3a;
    color: #fff;
}
body.theme-dark .modal-backdrop {
    background: rgba(0,0,0,0.7);
}