/* Hide non-needed fields when executor self-employed */
body.invoice-page.executor-self-mode #executorKPP,
body.invoice-page.executor-self-mode #executorOGRN,
body.invoice-page.executor-self-mode #executorOKPO,
body.invoice-page.executor-self-mode #executorBank,
body.invoice-page.executor-self-mode #executorBIK,
body.invoice-page.executor-self-mode #executorAccount,
body.invoice-page.executor-self-mode #executorCorrAccount,
body.invoice-page.executor-self-mode #executorAddress,
body.invoice-page.executor-self-mode #executorDirector,
body.invoice-page.executor-self-mode label[for="executorKPP"],
body.invoice-page.executor-self-mode label[for="executorOGRN"],
body.invoice-page.executor-self-mode label[for="executorOKPO"],
body.invoice-page.executor-self-mode label[for="executorBank"],
body.invoice-page.executor-self-mode label[for="executorBIK"],
body.invoice-page.executor-self-mode label[for="executorAccount"],
body.invoice-page.executor-self-mode label[for="executorCorrAccount"],
body.invoice-page.executor-self-mode label[for="executorAddress"],
body.invoice-page.executor-self-mode label[for="executorDirector"] { display: none !important; }
[data-theme="dark"] .btn { color: #fff; }
[data-theme="dark"] .btn.btn-secondary { background: #374151; color: #fff; }
[data-theme="dark"] .btn.btn-primary { background: var(--primary); color: #fff; }
[data-theme="dark"] .btn.btn-success { background: var(--secondary); color: #fff; }
:root {
    --primary: #003366;
    --primary-light: #0077B6;
    --primary-color: #667eea;
    --secondary: #28a745;
    --accent: #ffc107;
    --background: #ffffff;
    --bg-primary: #ffffff;
    --bg-secondary: #f8f9fa;
    --bg-warning: #fff3cd;
    --muted: #f8f9fa;
    --text: #1a1a1a;
    --text-primary: #1a1a1a;
    --text-light: #6b7280;
    --text-secondary: #6b7280;
    --muted-text: #6b7280;
    --border: #e9ecef;
    --border-color: #dee2e6;
    --border-warning: #ffc107;
    --warning-text: #856404;
    --info-bg: #e3f2fd;
    --success-bg: #e7f3ff;
    --success: #28a745;
    --danger: #dc3545;
    --shadow: 0 2px 10px rgba(0,0,0,0.1);
}

/* Dark theme variables */
:root[data-theme="dark"] {
    --background: #0b1220;
    --bg-primary: #1a1f2e;
    --bg-secondary: #252b3b;
    --bg-warning: #3d3416;
    --muted: #0f172a;
    --text: #e5e7eb;
    --text-primary: #e5e7eb;
    --text-light: #9ca3af;
    --text-secondary: #9ca3af;
    --muted-text: #9ca3af;
    --border: #1f2937;
    --border-color: #374151;
    --border-warning: #fbbf24;
    --warning-text: #fbbf24;
    --info-bg: #1e3a5f;
    --success-bg: #1e3d4f;
    --success: #10b981;
    --danger: #ef4444;
    --primary-color: #818cf8;
    --shadow: 0 2px 12px rgba(0,0,0,0.5);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    line-height: 1.6;
    color: var(--text);
    background: var(--muted);
}

[data-theme="dark"] body {
    background: var(--background);
    color: var(--text);
}

/* Admin pages dark theme adjustments */
[data-theme="dark"] .admin-container { background: var(--background) !important; color: var(--text) !important; }
[data-theme="dark"] .admin-container .card, [data-theme="dark"] .stat-card { background: #0f172a !important; color: var(--text) !important; border: 1px solid var(--border) !important; }
[data-theme="dark"] .header { background: linear-gradient(135deg, #0f172a, #111827) !important; color: #e5e7eb !important; }
[data-theme="dark"] .table th { background: #111827 !important; color: var(--text) !important; border-color: var(--border) !important; }
[data-theme="dark"] .table tr:hover { background: #0b1220 !important; }

/* Table headers styling for both themes */
th { font-weight: bold; }
[data-theme="dark"] th { color: var(--text) !important; }
[data-theme="dark"] .message.success { background: #0f2a1b !important; color: #bbf7d0 !important; border-color: #14532d !important; }
[data-theme="dark"] .message.error { background: #3b0f0f !important; color: #fecaca !important; border-color: #7f1d1d !important; }

.navbar { background: var(--primary); padding: 1rem 0; box-shadow: var(--shadow); position: sticky; top: 0; z-index: 1000; }
.nav-container { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; padding: 0 1rem; }
.nav-logo { color: #fff; font-size: 1.5rem; font-weight: bold; text-decoration: none; display: flex; align-items: center; gap: .5rem; }
.nav-logo img { height: 40px; width: auto; }
.nav-menu { display: flex; list-style: none; gap: 2rem; }
.nav-menu a { color: #fff; text-decoration: none; transition: color .3s ease; font-weight: 500; }
.nav-menu a:hover { color: var(--accent); }
.mobile-menu-btn { display: none; background: none; border: none; color: white; font-size: 1.5rem; cursor: pointer; }

/* Theme toggle button */
.theme-toggle { cursor: pointer; background: transparent; border: 1px solid rgba(255,255,255,0.3); color: #fff; width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 18px; line-height: 1; padding: 0; transition: background .2s ease, border-color .2s ease, transform .15s ease; }
.theme-toggle:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.6); transform: translateY(-1px); }
.theme-toggle:focus { outline: none; box-shadow: 0 0 0 3px rgba(255,255,255,0.25); }

/* Мобильное меню */
.nav-menu.mobile-open { display: flex; position: absolute; top: 100%; left: 0; right: 0; background: var(--primary); flex-direction: column; padding: 1rem; box-shadow: 0 2px 10px rgba(0,0,0,0.3); z-index: 1000; }

/* Адаптивность */
@media (max-width: 768px) {
    .nav-container { padding: 0 0.5rem; }
    .nav-menu { display: none; }
    .mobile-menu-btn { display: block; }
}
/* Dark header fg for light theme logo contrast will be addressed via logo filter below */

.container { max-width: 1200px; margin: 0 auto; padding: 2rem 1rem; }
.page-title { text-align: center; color: var(--primary); margin-bottom: 2rem; font-size: 2.5rem; }
[data-theme="dark"] .page-title { color: #e5e7eb; }

/* Unify calculator page headings to match page-title */
.calculator h1 { text-align: center; color: var(--primary); margin-bottom: 2rem; font-size: 2.5rem; }
[data-theme="dark"] .calculator h1 { color: #e5e7eb; }

/* Search block title contrast */
.search-title { color: var(--primary); }
[data-theme="dark"] .search-title { color: #e5e7eb; }

.calculators-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); margin-bottom: 3rem; }
.calculator-card { background: #fff; padding: 2rem; border-radius: 15px; box-shadow: var(--shadow); cursor: pointer; transition: all .3s ease; border: 1px solid var(--border); position: relative; overflow: hidden; display: block; text-decoration: none; color: inherit; }
.calculator-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 4px; background: linear-gradient(90deg, var(--primary), var(--primary-light)); }
.calculator-card:hover { transform: translateY(-5px); box-shadow: 0 15px 40px rgba(0,0,0,0.15); }
.calculator-card h3 { color: var(--primary); margin-bottom: .75rem; font-size: 1.3rem; font-weight: 600; }
.calculator-card p { color: var(--text-light); font-size: .95rem; line-height: 1.5; }

[data-theme="dark"] .calculator-card { background: #0f172a; border-color: var(--border); box-shadow: var(--shadow); }
[data-theme="dark"] .calculator-card:hover { box-shadow: 0 15px 40px rgba(0,0,0,0.6); }
[data-theme="dark"] .calculator-card h3 { color: #e5e7eb; }
[data-theme="dark"] .calculator-card p { color: #cbd5e1; }

/* Badge "Новинка" and contrast for gradient cards */
.badge-new{position:absolute;top:-8px;left:20px;padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:700;background:var(--accent);color:#111}
[data-theme="dark"] .badge-new{background:#fbbf24;color:#111}
.card-contrast{color:#fff}
.card-contrast h3{color:#fff}
.card-contrast p{color:rgba(255,255,255,.9)}

.calculator { background: #fff; padding: 3rem; border-radius: 15px; box-shadow: var(--shadow); margin: 2rem 0; }
.calculator h1 { color: var(--primary); margin-bottom: 1.5rem; font-size: 2rem; text-align: center; }
.calculator-description { background: var(--muted); padding: 1.5rem; border-radius: 10px; margin-bottom: 2rem; line-height: 1.6; border-left: 4px solid var(--primary); }
[data-theme="dark"] .calculator { background: #0f172a; border: 1px solid var(--border); }
[data-theme="dark"] .calculator-description { background: #0b1220; }

.form-group { margin-bottom: 1.5rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
label { display: block; margin-bottom: .5rem; font-weight: 600; color: var(--primary); }
[data-theme="dark"] label { color: #e5e7eb; }
[data-theme="dark"] .form-group label { color: #e5e7eb !important; }
input, select, textarea { width: 100%; padding: .75rem; border: 2px solid var(--border); border-radius: 8px; font-size: 1rem; transition: border-color .3s ease; background: #fff; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--primary); }
[data-theme="dark"] input, [data-theme="dark"] select, [data-theme="dark"] textarea { background: #0b1220; color: var(--text); border-color: var(--border); }
[data-theme="dark"] input::placeholder, [data-theme="dark"] textarea::placeholder { color: var(--text-light); }

.button { background: var(--primary); color: #fff; padding: 1rem 2rem; border: none; border-radius: 8px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: all .3s ease; margin: .5rem 0; }
.button:hover { background: var(--primary-light); transform: translateY(-2px); }
.button-secondary { background: var(--secondary); }
.button-danger { background: #dc3545; }

.result { background: var(--muted); padding: 2rem; border-radius: 10px; margin-top: 2rem; border-left: 4px solid var(--secondary); }
.result h3 { color: var(--primary); margin-bottom: 1rem; }
.result-highlight { background: #fff; padding: 1rem; border-radius: 8px; margin: 1rem 0; font-weight: bold; font-size: 1.1rem; color: var(--primary); }
[data-theme="dark"] .result { background: #0f172a; border-left-color: var(--secondary); }
[data-theme="dark"] .result-highlight { background: #0b1220; color: var(--text); border: 1px solid var(--border); }

/* Стили для выделенных строк в таблицах результатов */
.result-table-highlight { background: var(--primary) !important; color: #fff !important; font-weight: bold !important; }
[data-theme="dark"] .result-table-highlight { background: var(--primary) !important; color: #fff !important; }

/* Таблицы результатов: строки с фоном #f8f9fa (итоговые строки) */
/* Убираем явный фон, чтобы наследовался от .result контейнера */
tr[style*="background: #f8f9fa"],
tr[style*="background:#f8f9fa"] {
    background: transparent !important;
}
[data-theme="dark"] tr[style*="background: #f8f9fa"] td,
[data-theme="dark"] tr[style*="background:#f8f9fa"] td {
    border-color: var(--border) !important;
}

/* Alerts and notes */
.alert { padding: 1.25rem; border-radius: 10px; margin-top: 2rem; border-left: 4px solid; }
.alert h4 { margin: 0 0 .75rem; }
.alert-danger { background: #fdecea; color: #7f1d1d; border-left-color: #dc3545; }
[data-theme="dark"] .alert-danger { background: #2a0f11; color: #fecaca; border-left-color: #ef4444; }

.note-box { margin-top: 2rem; padding: 1rem; background: #f8f9fa; border-radius: 8px; border-left: 4px solid #6c757d; }
[data-theme="dark"] .note-box { background: #0f172a; border-left-color: #4b5563; }

.link-accent { color: #dc3545; font-weight: 600; text-decoration: none; }
.link-accent:hover { text-decoration: underline; }
[data-theme="dark"] .link-accent { color: #f87171; }

/* Emphasis for critical/important inline notes */
.important-note { color: #b91c1c; font-weight: 700; }
[data-theme="dark"] .important-note { color: #fca5a5; }

.back-button { display: inline-block; color: var(--primary); text-decoration: none; margin-bottom: 2rem; font-weight: 600; transition: color .3s ease; }
.back-button:hover { color: var(--primary-light); }

.highlight-box { position: relative; background: var(--muted); padding: 1.25rem 1.25rem 1.25rem 1.75rem; border-radius: 12px; margin: 1rem 0; }
.highlight-box::before { content: ""; position: absolute; left: 8px; top: 8px; bottom: 8px; width: 6px; background: var(--secondary); border-radius: 6px; }

/* EGRUL contextual variants */
.highlight-warn { background: #fff7e6; }
[data-theme="dark"] .highlight-warn { background: #2a1f0a; }

.highlight-success { background: #e8f5e9; }
[data-theme="dark"] .highlight-success { background: #0f2a1b; }

.highlight-info { background: #e3f2fd; }
[data-theme="dark"] .highlight-info { background: #0b2239; }

/* Forms and contracts: dark theme overrides for pages with inline light backgrounds */
[data-theme="dark"] .form-container { background: #0f172a !important; border-color: var(--border) !important; box-shadow: var(--shadow); }
[data-theme="dark"] .party-section { background: #0b1220 !important; border-color: var(--border) !important; }
[data-theme="dark"] .contract-output { background: #0f172a !important; border-color: var(--border) !important; color: var(--text) !important; }
[data-theme="dark"] .contract-content { color: var(--text) !important; }
[data-theme="dark"] .contract-title, [data-theme="dark"] .section-title, [data-theme="dark"] .contract-paragraph { color: var(--text) !important; }
[data-theme="dark"] .download-buttons { border-top-color: var(--border) !important; }
[data-theme="dark"] .modal-overlay > div { background: #0f172a !important; color: var(--text) !important; border: 1px solid var(--border) !important; }

.info-table, .tnvedTable { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.info-table th, .info-table td, .tnvedTable th, .tnvedTable td { padding: 1rem; text-align: left; border-bottom: 1px solid var(--border); vertical-align: top; }
.info-table th, .tnvedTable th { background: linear-gradient(90deg, #eaf0f8, #e3ebf6); color: var(--primary); font-weight: 800; white-space: nowrap; letter-spacing: .3px; font-size: .96rem; border-top: 1px solid #dbe3ee; border-bottom: 2px solid #d5deea; }
.info-table tr:hover, .tnvedTable tr:hover { background: var(--muted); }
[data-theme="dark"] .info-table th, [data-theme="dark"] .tnvedTable th { background: linear-gradient(90deg, #0f172a, #111827); color: var(--text); border-top: 1px solid var(--border); border-bottom: 2px solid var(--border); }
[data-theme="dark"] .info-table tr:hover, [data-theme="dark"] .tnvedTable tr:hover { background: #0b1220; }

/* Status pills */
.status-pill { display:inline-block; padding:.2rem .6rem; border-radius:999px; font-weight:600; font-size:.85rem; }
.status-active { background: #e8f5e9; color: #166534; border:1px solid #bbf7d0; }
.status-inactive { background: #fef2f2; color: #7f1d1d; border:1px solid #fecaca; }
[data-theme="dark"] .status-active { background:#0f2a1b; color:#bbf7d0; border-color:#14532d; }
[data-theme="dark"] .status-inactive { background:#3b0f0f; color:#fecaca; border-color:#7f1d1d; }

.invoice-items { margin: 2rem 0; }
.invoice-item { background: var(--muted); padding: 1rem; border-radius: 8px; margin-bottom: 1rem; border: 1px solid var(--border); }
.invoice-item h4 { color: var(--primary); margin-bottom: .5rem; }
[data-theme="dark"] .invoice-item { background: #0f172a; }

.region-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; margin: 2rem 0; }
.region-card { background: #fff; padding: 1rem; border-radius: 8px; border: 1px solid var(--border); }
.region-name { font-weight: bold; color: var(--primary); margin-bottom: .5rem; }
[data-theme="dark"] .region-name { color: #fff; }
.mrot-amount { font-size: 1.2rem; color: var(--secondary); font-weight: bold; }
[data-theme="dark"] .region-card { background: #0f172a; }

.info-box { background: #e3f2fd; padding: 1rem; border-radius: 8px; margin: 1rem 0; border-left: 4px solid #2196f3; }
.warning-box { background: #fff3e0; padding: 1rem; border-radius: 8px; margin: 1rem 0; border-left: 4px solid #ff9800; }
[data-theme="dark"] .info-box { background: #102a4a !important; border-left-color: #60a5fa !important; color: #e5f0ff !important; }
[data-theme="dark"] .warning-box { background: #3b2612 !important; border-left-color: #ffb347 !important; color: #ffedd5 !important; }

/* Tabs for database pages */
.afs-inline-checkbox { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; vertical-align: middle; justify-content: flex-start; }
.afs-inline-checkbox input[type="checkbox"] { margin: 0; }
.afs-inline-checkbox label, .afs-inline-checkbox span { margin: 0; }
.afs-inline-checkbox label { display: inline-flex; align-items: center; margin-bottom: 0; }

.tabs { display: flex; gap: .5rem; margin: 1rem 0; flex-wrap: wrap; }
.tab { background: #fff; border: 1px solid var(--border); border-radius: 8px; padding: .5rem 1rem; cursor: pointer; color: var(--primary); font-weight: 600; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.tab:hover { border-color: var(--primary-light); }
.tab.active { background: var(--primary); color: #fff; border-color: var(--primary); }
.tab-content { display: none; padding: 1rem 0; }
.tab-content.active { display: block; }
[data-theme="dark"] .tab { background: #0f172a; color: var(--text); }

/* Utility text colors and links */
.text-muted { color: var(--text-light); }
.rate-value { font-size: 2rem; font-weight: 700; color: var(--primary); }
[data-theme="dark"] .rate-value { color: var(--text); }
.section-divider { border-top: 1px solid var(--border); padding-top: 1rem; }
.link-primary { color: var(--primary); text-decoration: underline; }
[data-theme="dark"] .link-primary { color: #93c5fd; }
.status-success { color: var(--secondary); }
.status-warning { color: #f59e0b; }

/* Generic text utilities */
.text-white { color: #ffffff !important; }
.text-white-soft { color: rgba(255,255,255,0.9) !important; }

/* Map container */
.map-container { width: 100%; height: 320px; border: 1px solid var(--border); border-radius: 8px; margin-top: 1rem; overflow: hidden; background: #f5f7fb; }
[data-theme="dark"] .map-container { background: #0b1220; }

/* Loading and error boxes */
.loading { text-align: center; color: #666; padding: 1rem; }
.error { background: #fdecea; color: #b71c1c; padding: 1rem; border-left: 4px solid #b71c1c; border-radius: 8px; margin: 1rem 0; }
[data-theme="dark"] .loading { color: var(--text-light); }
[data-theme="dark"] .error { background: #3b0f0f; color: #fecaca; border-left-color: #ef4444; }

@media (max-width: 768px) {
    .container { padding: 1rem; }
    .calculator { padding: 2rem 1rem; }
    .form-row { grid-template-columns: 1fr; }
    .page-title { font-size: 2rem; }
}


/* Tax calendar deadline indicators */
.deadline-overdue { background: #fee; color: #c00; }
.deadline-today { background: #fff3cd; color: #856404; }
.deadline-upcoming { background: #d4edda; color: #155724; }
[data-theme="dark"] .deadline-overdue { background: #2a0f11; color: #fecaca; }
[data-theme="dark"] .deadline-today { background: #3b2612; color: #ffedd5; }
[data-theme="dark"] .deadline-upcoming { background: #0f2a1b; color: #bbf7d0; }

/* Mobile adaptation for tax calendar */
@media (max-width: 768px) {
    .info-table { font-size: 0.9rem; }
    .info-table th, .info-table td { padding: 0.5rem 0.25rem; }
    .form-group[style*="display:flex"] { flex-direction: column; align-items: stretch; }
    .form-group[style*="display:flex"] > div { margin-bottom: 0.5rem; }
    .highlight-box h4 { font-size: 1.1rem; }
    .btn { font-size: 0.85rem; padding: 0.4rem 0.8rem; }
}

/* Print: force white background and high contrast for any page */
@media print {
    :root { color-scheme: light; }
    html, body { background: #ffffff !important; color: #000000 !important; }
    /* If dark theme is active, neutralize key vars */
    :root[data-theme="dark"] { --background:#ffffff !important; --muted:#ffffff !important; --text:#000000 !important; --text-light:#333333 !important; --border:#dddddd !important; }
    /* Hide UI-only elements */
    nav, .navbar, header, footer, .theme-toggle, .download-buttons, .edit-controls, .line-controls, .modal-overlay, .tabs, .tab, .back-button, .info-box, .calculator-description, form, .form-group, input, select, label, .checkbox-inline { display: none !important; }
    /* Скрываем рекламу Яндекс.Директ при печати */
    [id*="yandex"], [class*="yandex"], [id*="rtb"], [class*="rtb"], [id*="ya-context"], [class*="ya-context"], 
    [id*="floor"], [class*="floor"], [id*="floorAd"], [class*="floorAd"], 
    script[src*="yandex.ru/ads"], script[src*="abt.s3.yandex.net"] { display: none !important; visibility: hidden !important; height: 0 !important; opacity: 0 !important; }
    /* Show only result blocks */
    #socialResult, #exportButtons { display: block !important; }
    #exportButtons { display: none !important; } /* Hide export buttons on actual print */
    /* Containers: remove shadows, ensure white bg and light borders */
    .container { padding: 0 !important; margin: 0 auto !important; max-width: none !important; }
    .calculator, .calculator-card, .region-card, .result, .result-highlight,
    .form-container, .party-section, .contract-output, .invoice-item,
    .info-box, .warning-box, .highlight-box, .map-container, .note-box {
        background: #ffffff !important;
        color: #000000 !important;
        box-shadow: none !important;
        border-color: #dddddd !important;
    }
    .page-title, .contract-title, .section-title, .contract-paragraph, label, th, td { color: #000000 !important; }
    a { color: #000000 !important; text-decoration: none !important; }
    .no-print { display: none !important; }
    .button { display: none !important; }
    .col-resizer { display: none !important; }
    /* currency/VAT/discount controls - inputs and related labels hidden on print */
    #actCurrency, label[for="actCurrency"],
    #globalVATSelect, label[for="globalVATSelect"],
    #globalDiscount, label[for="globalDiscount"],
    #vatIncluded, label[for="vatIncluded"],
    #vatAdd, label[for="vatAdd"],
    #showVAT, label[for="showVAT"],
    #showDiscount, label[for="showDiscount"] {
      display: none !important;
    }
}

/* Dark theme fixes for form pages (akt-online, schet-online, etc.) */
[data-theme="dark"] .form-section { background: #0f172a; }
[data-theme="dark"] .form-content { background: #0f172a; }
[data-theme="dark"] .items-table { background: #0f172a; }
[data-theme="dark"] .items-table th { background: var(--primary); color: #fff; }
[data-theme="dark"] .items-table td { background: #0b1220; color: var(--text); }
[data-theme="dark"] .items-table input,
[data-theme="dark"] .items-table select,
[data-theme="dark"] .items-table textarea { background: #0b1220; color: var(--text); border-color: var(--border); }
[data-theme="dark"] .vat-radio-option { background: #0f172a; border-color: var(--border); }
/* Result sections in dark theme */
[data-theme="dark"] .result-section { background: #0f172a; color: var(--text); border: 1px solid var(--border); }
/* Invoice preview (calc_invoice and schet-online inline previews) */
[data-theme="dark"] #invoicePreview { background: #0f172a !important; color: var(--text) !important; border-color: var(--border) !important; }
[data-theme="dark"] #invoicePreview table { background: #0b1220; }
[data-theme="dark"] #invoicePreview th { background: var(--primary); color: #fff; }
[data-theme="dark"] #invoicePreview td { background: #0b1220; color: var(--text); }
[data-theme="dark"] #invoicePreview, [data-theme="dark"] #invoicePreview #invoicePrint { color: var(--text) !important; }
[data-theme="dark"] #invoicePreview h1, [data-theme="dark"] #invoicePreview h2, [data-theme="dark"] #invoicePreview h3, [data-theme="dark"] #invoicePreview h4, [data-theme="dark"] #invoicePreview strong { color: var(--text) !important; }

/* ===== Invoice pages: density modes and table utilities ===== */
/* Utilities for invoice-like pages only */
body.invoice-page .items-table th { position: relative; }
body.invoice-page .items-table .col-resizer {
    position: absolute; right: 0; top: 0; width: 10px; height: 100%;
    cursor: col-resize; user-select: none; z-index: 20;
}
body.invoice-page .items-table .col-resizer:hover { background: rgba(0,0,0,.08); }
body.invoice-page .items-table th,
body.invoice-page .items-table td { overflow: hidden; }

/* Hideable discount columns for invoice-like pages */
/* marker only */
body.invoice-page.hide-discount .discount-col { display: none; }
.hide-discount .discount-col { display: none; }

/* Extra-tight compact tuning */
body.invoice-page.density-compact .container { padding: 0 .5rem !important; }
body.invoice-page.density-compact .container { max-width: 1440px !important; }
body.invoice-page.density-compact .hero-section h1 { margin-bottom: .5rem !important; }
body.invoice-page.density-compact .hero-section p { margin: 0 auto 1rem !important; }
body.invoice-page.density-compact .form-header { padding: .9rem !important; }
body.invoice-page.density-compact .form-grid { margin: .5rem 0 !important; }
/* Compact: labels above inputs to avoid stepped gaps */
body.invoice-page.density-compact .form-group { display: block !important; min-width: 0; }
body.invoice-page.density-compact .form-group > * { min-width: 0; }
body.invoice-page.density-compact .form-group label { display: block; margin: 0 0 .35rem 0 !important; white-space: normal; overflow: visible; text-overflow: clip; }
/* Keep two columns for main grids (e.g., Supplier/Customer) on desktop */
body.invoice-page.density-compact .form-section .form-content > .form-grid { grid-template-columns: 1fr 1fr !important; }
@media (max-width: 768px){
    body.invoice-page.density-compact .form-section .form-content > .form-grid { grid-template-columns: 1fr !important; }
}
body.invoice-page.density-compact .button { padding: .5rem .85rem !important; }
body.invoice-page.density-compact .button-small { padding: .4rem .7rem !important; }
body.invoice-page.density-compact .download-buttons { gap: .5rem !important; margin-top: .75rem !important; }
/* Inline labels on desktop for denser layout */
@media (min-width: 768px){
    body.invoice-page.density-compact .form-group { display: flex; align-items: center; gap: .4rem; min-width: 0; }
    body.invoice-page.density-compact .form-group > * { min-width: 0; }
    body.invoice-page.density-compact .form-group label { margin: 0 !important; flex: 0 0 clamp(120px, 22ch, 200px); min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    body.invoice-page.density-compact .form-group input,
    body.invoice-page.density-compact .form-group select,
    body.invoice-page.density-compact .form-group textarea { flex: 1; min-width: 0; width: 100%; }
    /* Force specific long-control labels to own line */
    body.invoice-page.density-compact label[for="globalVATSelect"] { flex: 0 0 100% !important; white-space: normal; }
}
/* Table paddings tighter (font-size unchanged) */
body.invoice-page.density-compact .items-table th,
body.invoice-page.density-compact .items-table td { padding: .4rem .35rem !important; }
body.invoice-page.density-compact .items-table input,
body.invoice-page.density-compact .items-table select,
body.invoice-page.density-compact .items-table textarea { padding: .25rem .35rem !important; }
body.invoice-page.density-compact .items-table textarea { line-height: 1.2 !important; min-height: 2.2rem !important; }

/* Further compact tightening, while protecting long account fields */
body.invoice-page.density-compact .hero-section { padding: 1rem .75rem !important; }
body.invoice-page.density-compact .form-content { padding: .8rem !important; }
body.invoice-page.density-compact .form-grid { gap: .5rem !important; margin: .25rem 0 !important; }
body.invoice-page.density-compact .form-group { margin-bottom: .4rem !important; }
body.invoice-page.density-compact .result-section { margin: .75rem 0 !important; padding: 1rem !important; }
body.invoice-page.density-compact .items-table th,
body.invoice-page.density-compact .items-table td { padding: .34rem .3rem !important; }
body.invoice-page.density-compact .items-table input,
body.invoice-page.density-compact .items-table select,
body.invoice-page.density-compact .items-table textarea { padding: .22rem .3rem !important; }

/* Do NOT shrink these: keep comfy padding and give wider space */
body.invoice-page.density-compact #supplierAccount,
body.invoice-page.density-compact #supplierCorrAccount,
body.invoice-page.density-compact #customerAccount,
body.invoice-page.density-compact #customerCorrAccount { padding: .75rem !important; flex: 1 1 auto; min-width: 0; width: 100%; max-width: 100%; }

/* Hide non-needed fields when self-employed mode is detected via body flag */
body.invoice-page.self-employed-mode #supplierKPP,
body.invoice-page.self-employed-mode #supplierOGRN,
body.invoice-page.self-employed-mode #supplierOKPO,
body.invoice-page.self-employed-mode #supplierBank,
body.invoice-page.self-employed-mode #supplierBIK,
body.invoice-page.self-employed-mode #supplierAccount,
body.invoice-page.self-employed-mode #supplierCorrAccount,
body.invoice-page.self-employed-mode label[for="supplierKPP"],
body.invoice-page.self-employed-mode label[for="supplierOGRN"],
body.invoice-page.self-employed-mode label[for="supplierOKPO"],
body.invoice-page.self-employed-mode label[for="supplierBank"],
body.invoice-page.self-employed-mode label[for="supplierBIK"],
body.invoice-page.self-employed-mode label[for="supplierAccount"],
body.invoice-page.self-employed-mode label[for="supplierCorrAccount"] { display: none !important; }

/* Hide supplier BIK search button when self-employed */
body.invoice-page.self-employed-mode button[onclick="autoFillByBIK('supplier')"] { display: none !important; }

/* Customer self-employed view: hide non-required fields */
body.invoice-page.customer-self-mode #customerKPP,
body.invoice-page.customer-self-mode #customerOGRN,
body.invoice-page.customer-self-mode #customerOKPO,
body.invoice-page.customer-self-mode #customerBank,
body.invoice-page.customer-self-mode #customerBIK,
body.invoice-page.customer-self-mode #customerAccount,
body.invoice-page.customer-self-mode #customerCorrAccount,
body.invoice-page.customer-self-mode #customerAddress,
body.invoice-page.customer-self-mode #customerDirector,
body.invoice-page.customer-self-mode label[for="customerKPP"],
body.invoice-page.customer-self-mode label[for="customerOGRN"],
body.invoice-page.customer-self-mode label[for="customerOKPO"],
body.invoice-page.customer-self-mode label[for="customerBank"],
body.invoice-page.customer-self-mode label[for="customerBIK"],
body.invoice-page.customer-self-mode label[for="customerAccount"],
body.invoice-page.customer-self-mode label[for="customerCorrAccount"],
body.invoice-page.customer-self-mode label[for="customerAddress"],
body.invoice-page.customer-self-mode label[for="customerDirector"] { display: none !important; }

/* Hide customer BIK search button when self-employed */
body.invoice-page.customer-self-mode button[onclick="autoFillByBIK('customer')"] { display: none !important; }

/* Show passport inputs only for self-employed modes (strong) */
body.invoice-page label[for="customerPassport"],
body.invoice-page #customerPassport,
body.invoice-page label[for="executorPassport"],
body.invoice-page #executorPassport { display:none !important; }
body.invoice-page.customer-self-mode label[for="customerPassport"],
body.invoice-page.customer-self-mode #customerPassport { display:block !important; }
body.invoice-page.executor-self-mode label[for="executorPassport"],
body.invoice-page.executor-self-mode #executorPassport { display:block !important; }

/* Make selects readable (outside table) */
body.invoice-page.density-compact .form-group select:not(.item-vat) { min-width: 22ch; max-width: 100%; }

/* Checkbox groups: tight but readable, with wrapping */
body.invoice-page.density-compact .custom-checkbox-group .inline-checks { display: grid; grid-auto-rows: auto; row-gap: .25rem; align-items: center; }
body.invoice-page.density-compact .custom-checkbox-group .inline-checks label { margin: 0; padding: 0; display: inline-flex; align-items: center; gap: .4rem; width: 100%; }
/* Radios: keep inline styling but force each to full row */
body.invoice-page.density-compact label.checkbox-inline { display: inline-flex; align-items: center; gap: .4rem; white-space: normal; width: 100%; }
body.invoice-page.density-compact label.checkbox-inline input[type="radio"] {
    appearance: none; -webkit-appearance: none; -moz-appearance: none;
    width: 16px; height: 16px; border: 2px solid var(--border); border-radius: 3px; background: #fff; display: inline-block; position: relative; flex: 0 0 16px;
}
body.invoice-page.density-compact label.checkbox-inline input[type="radio"]:checked { background: var(--primary); border-color: var(--primary); }
body.invoice-page.density-compact label.checkbox-inline input[type="radio"]:checked::after { content: ""; position: absolute; left: 4px; top: 0px; width: 4px; height: 8px; border: 2px solid #fff; border-top: 0; border-left: 0; transform: rotate(45deg); }

/* Unify checkbox visuals and size with radios in compact */
body.invoice-page.density-compact input[type="checkbox"] {
    appearance: none; -webkit-appearance: none; -moz-appearance: none;
    width: 16px; height: 16px; border: 2px solid var(--border); border-radius: 3px; background: #fff; display: inline-block; position: relative; flex: 0 0 16px; cursor: pointer;
}
body.invoice-page.density-compact input[type="checkbox"]:checked { background: var(--primary); border-color: var(--primary); }
body.invoice-page.density-compact input[type="checkbox"]:checked::after { content: ""; position: absolute; left: 4px; top: 0px; width: 4px; height: 8px; border: 2px solid #fff; border-top: 0; border-left: 0; transform: rotate(45deg); }
/* Improve visibility of checkboxes in items section */
body.invoice-page.density-compact .custom-checkbox-group .inline-checks input[type="checkbox"] { transform: scale(1.05); }
/* Ensure checkbox text remains fully visible */
body.invoice-page.density-compact .custom-checkbox-group .inline-checks { max-width: 100%; display: inline-flex; flex-wrap: wrap; gap: .35rem .75rem; align-items: center; }
body.invoice-page.density-compact .custom-checkbox-group .inline-checks label { white-space: normal !important; display: inline-flex; align-items: center; gap: .4rem; }

/* Global discount: tighter width (~4ch) in compact */
body.invoice-page.density-compact #globalDiscount { width: 8ch !important; min-width: 8ch !important; flex: 0 0 auto !important; }

/* Dark theme: supplier/customer headings white */
[data-theme="dark"] h3 { color: #e5e7eb !important; }

/* Reduce label width to free space for inputs above */
@media (min-width: 768px){
    body.invoice-page.density-compact label[for="supplierAccount"],
    body.invoice-page.density-compact label[for="supplierCorrAccount"],
    body.invoice-page.density-compact label[for="customerAccount"],
    body.invoice-page.density-compact label[for="customerCorrAccount"]{ min-width: 120px !important; }
}

/* Compact density (default) — scoped to invoice pages */
body.invoice-page.density-compact .hero-section { padding: 1.5rem 1rem !important; }
body.invoice-page.density-compact .form-section { margin: 1rem 0 !important; }
body.invoice-page.density-compact .form-content { padding: 1rem !important; }
body.invoice-page.density-compact .form-grid { gap: 1rem !important; }
body.invoice-page.density-compact .form-group { margin-bottom: .75rem !important; }
body.invoice-page.density-compact .button-group { gap: .25rem !important; margin-bottom: .5rem !important; }
body.invoice-page.density-compact .items-table-container { margin: 1rem 0 !important; }
body.invoice-page.density-compact .result-section { margin: 1rem 0 !important; padding: 1.25rem !important; }
body.invoice-page.density-compact .form-group input,
body.invoice-page.density-compact .form-group select,
body.invoice-page.density-compact .form-group textarea { padding: .6rem !important; }

/* Accessible density — more breathable spacing, font sizes unchanged */
body.invoice-page.density-accessible .form-section { margin: 1.5rem 0 !important; }
body.invoice-page.density-accessible .form-content { padding: 1.25rem !important; }
body.invoice-page.density-accessible .form-group { margin-bottom: 1.1rem !important; }
body.invoice-page.density-accessible .button-group { gap: .5rem !important; }
body.invoice-page.density-accessible .form-group input,
body.invoice-page.density-accessible .form-group select,
body.invoice-page.density-accessible .form-group textarea { padding: .8rem !important; }

/* NDFL calculator minimal theming */
.ndfl-table { width:100%; border-collapse:collapse; margin:1rem 0; }
.ndfl-table th.ndfl-th, .ndfl-table td.ndfl-td { border:1px solid var(--border, #dee2e6); padding:.5rem; text-align:left; }
.ndfl-head-row .ndfl-th { font-weight:600; }
.ndfl-total-row .ndfl-td, .ndfl-total-row .ndfl-th { font-weight:700; }
.ndfl-infobox { margin-top:1.5rem; padding:1rem; border-left:3px solid var(--info-accent, #3b82f6); }
.ndfl-infobox-title { margin:0 0 .5rem 0; }
.ndfl-infobox-text { margin:0; font-size:.95rem; line-height:1.6; }

/* Dark theme: inherit text color; keep only subtle borders */
body.dark .ndfl-table th.ndfl-th, body.dark .ndfl-table td.ndfl-td { border-color:#4b5563 !important; }
body.dark .ndfl-head-row .ndfl-th { border-bottom:1px solid #6b7280 !important; }
body.dark .ndfl-total-row .ndfl-td, body.dark .ndfl-total-row .ndfl-th { border-top:1px solid #6b7280 !important; }
body.dark .ndfl-infobox { border-left-color:#60a5fa !important; }

/* NDFL summary: enlarge text 2x for readability */
.ndfl-summary { font-size: 2em; line-height: 1.35; }

/* Net rate input: 10 characters wide and centered */
#netRate { width: 10ch; min-width: 10ch; text-align: center; display: block; margin: 0 auto; }

/* NDFL rounding control styling */
.ndfl-foot { margin-top: 1rem; }
.ndfl-inline-check { display:inline-flex; align-items:center; gap:.75rem; font-size: 2em; line-height:1.35; cursor:pointer; user-select:none; }
.ndfl-inline-check input[type="checkbox"]{ width: 1.25em; height: 1.25em; accent-color: var(--primary, #2563eb); cursor:pointer; }
.ndfl-inline-check span { display:inline-block; }
.ndfl-note { margin-top:.5rem; font-size: 1.25em; line-height:1.5; }

/* ========================================
   Стили для таблиц калькулятора (calc_social_contributions и другие)
   ======================================== */

/* Общий стиль таблицы */
.calc-result-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1rem;
    margin-bottom: 1rem;
    font-size: 0.95rem;
    border: 2px solid var(--bs-border-color, #dee2e6);
}

/* Ячейки таблицы */
.calc-table-cell {
    border: 1px solid var(--bs-border-color, #dee2e6);
    padding: 10px 12px;
    background-color: var(--background);
    color: var(--text);
    word-wrap: break-word;
    min-width: 60px;
}

/* Заголовок таблицы */
.calc-table-header {
    background-color: #e8eef5;
}

[data-theme="dark"] .calc-table-header {
    background-color: #1f2937;
}

.calc-table-header .calc-table-cell {
    font-weight: 700;
    text-align: center;
    background-color: inherit;
    border: 1px solid var(--bs-border-color, #dee2e6);
    padding: 12px;
}

/* Строки таблицы (чередующиеся) */
.calc-table-row .calc-table-cell {
    background-color: #ffffff;
    border: 1px solid var(--bs-border-color, #dee2e6);
}

[data-theme="dark"] .calc-table-row .calc-table-cell {
    background-color: #0f172a;
    border: 1px solid #334155;
}

.calc-table-row-alt .calc-table-cell {
    background-color: #f5f7fa;
    border: 1px solid var(--bs-border-color, #dee2e6);
}

[data-theme="dark"] .calc-table-row-alt .calc-table-cell {
    background-color: #111827;
    border: 1px solid #334155;
}

/* Строка итогов (выделенная) */
.calc-table-total .calc-table-cell {
    background-color: #fff3cd;
    font-weight: 700;
    border: 1px solid #ffc107;
    padding: 12px;
}

[data-theme="dark"] .calc-table-total .calc-table-cell {
    background-color: #463f0a;
    border: 1px solid #ffc107;
    color: #ffc107;
}

/* Hover для строк */
.calc-result-table tbody tr:hover .calc-table-cell {
    background-color: #e8f4f8;
}

[data-theme="dark"] .calc-result-table tbody tr:hover .calc-table-cell {
    background-color: #1e293b;
}

/* Вспомогательные классы для выравнивания */
.calc-table-cell[style*="text-align:center"] {
    text-align: center !important;
}

.calc-table-cell[style*="text-align:right"] {
    text-align: right !important;
    padding-right: 16px;
}

/* Визуальные разделители для лучшей читаемости */
.calc-result-table td:first-child,
.calc-result-table th:first-child {
    font-weight: 600;
}

/* Адаптивность для мобильных */
@media (max-width: 768px) {
    .calc-result-table {
        font-size: 0.85rem;
    }
    
    .calc-table-cell {
        padding: 6px;
    }
    
    /* На мобильных устройствах поля месяца и варианта расчёта в столбец */
    .calculator div[style*="grid-template-columns"] {
        grid-template-columns: 1fr !important;
    }
}

/* Adaptive heading color for both themes */
.heading-adaptive {
    color: #1a1a1a !important;
}

[data-theme="dark"] .heading-adaptive {
    color: #ffffff !important;
}

/* White text in info-box for dark theme */
.info-box-text {
    color: #212529;
}

[data-theme="dark"] .info-box-text {
    color: #ffffff;
}

