/* portal.css — единый файл стилей (объединение lk.css + portal.css, 20.10.2026).
   Порядок важен: кабинетная часть первой, порталная второй —
   воспроизводит прежний каскад, где lk.css грузился до portal.css. */

:root {
--bg: #fafaf8; --card-bg: #ffffff; --card-border: #eadfce;
--header-bg: #ffffff; --accent: #ff8c00; --accent-dark: #e07a00;
--accent-light: #e8a84e; --text: #2d3436; --text-muted: #6b7280;
--nav-bg: #ffffff; --nav-border: #eadfce; --table-header: #f7f2ea;
--input-border: #ccc; --input-read: #f5f5f5;
--calendar-bg: #e9e9e9; --calendar-border: #a9a9a9;
}
body[data-theme="blue"] {
--bg: #eef3fa; --card-bg: #f0f7ff; --card-border: #a3c8f5;
--header-bg: #c0d8fb; --accent: #4a90d9; --accent-dark: #357abd;
--accent-light: #6ba8e8; --text: #333; --text-muted: #888;
--nav-bg: #f0f7ff; --nav-border: #a3c8f5; --table-header: #d0e3fb;
--input-border: #a3c8f5; --input-read: #eef3fa;
--calendar-bg: #e9e9e9; --calendar-border: #a9a9a9;
}
body[data-theme="green"] {
--bg: #eef5ec; --card-bg: #f5fdf0; --card-border: #a3d8a3;
--header-bg: #c0e8c0; --accent: #4caf50; --accent-dark: #388e3c;
--accent-light: #66bb6a; --text: #333; --text-muted: #888;
--nav-bg: #f5fdf0; --nav-border: #a3d8a3; --table-header: #d0f0d0;
--input-border: #a3d8a3; --input-read: #eef5ec;
--calendar-bg: #e9e9e9; --calendar-border: #a9a9a9;
}
body[data-theme="gray"] {
--bg: #eee; --card-bg: #fafafa; --card-border: #ccc;
--header-bg: #e0e0e0; --accent: #666; --accent-dark: #444;
--accent-light: #999; --text: #333; --text-muted: #888;
--nav-bg: #fafafa; --nav-border: #ccc; --table-header: #e8e8e8;
--input-border: #ccc; --input-read: #f0f0f0;
--calendar-bg: #e9e9e9; --calendar-border: #a9a9a9;
}
body[data-theme="night"] {
--bg: #1a1a2e; --card-bg: #252535; --card-border: #3a3a4a;
--header-bg: #2a2a3e; --accent: #7c8cb5; --accent-dark: #5c6c95;
--accent-light: #9cacd5; --text: #d0d0d0; --text-muted: #888;
--nav-bg: #252535; --nav-border: #3a3a4a; --table-header: #2a2a3e;
--input-border: #444; --input-read: #1a1a2e;
--calendar-bg: #2a2a3e; --calendar-border: #4a4a5a;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: var(--bg); color: var(--text); transition: background 0.3s, color 0.3s; }

.lk-topbar {
background: var(--header-bg); border-bottom: 2px solid var(--accent);
padding: 10px 24px; display: flex; justify-content: space-between; align-items: center;
position: sticky; top: 0; z-index: 100;
}
.lk-topbar-title { font-size: 18px; font-weight: 600; }
.lk-topbar-title small { font-size: 13px; color: var(--text-muted); font-weight: 400; margin-left: 8px; }
.lk-topbar-right { display: flex; align-items: center; gap: 16px; }


.lk-theme-btn, .lk-logout { display: inline-block; }
.lk-theme-icon, .lk-logout-mobile { display: none; }
@media (max-width: 768px) {
.lk-theme-btn { display: none; }
.lk-theme-icon { display: flex; }
.lk-logout { display: none; }
.lk-logout-mobile { display: block; }
}

.lk-theme-switch { position: relative; }
.lk-theme-btn {
background: none; border: 1px solid var(--card-border); border-radius: 6px;
padding: 6px 12px; cursor: pointer; font-size: 14px; color: var(--text);
}
.lk-theme-dropdown {
display: none; position: absolute; right: 0; top: 100%; margin-top: 4px;
background: var(--card-bg); border: 1px solid var(--card-border);
border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); min-width: 160px; z-index: 200;
}
.lk-theme-dropdown.show { display: block; }
.lk-theme-option {
display: flex; align-items: center; gap: 8px; padding: 8px 12px;
cursor: pointer; font-size: 14px; color: var(--text); border: none;
background: none; width: 100%; text-align: left;
}
.lk-theme-option:hover { background: var(--header-bg); }
.lk-theme-swatch { width: 16px; height: 16px; border-radius: 50%; border: 1px solid #ccc; flex-shrink: 0; }

.lk-nav-bar {
background: var(--nav-bg); border-bottom: 1px solid var(--nav-border);
display: flex; justify-content: center; padding: 0 24px; overflow-x: auto;
}
.lk-nav-bar a {
display: flex; align-items: center; gap: 6px;
padding: 12px 16px; text-decoration: none; color: var(--text);
font-size: 14px; white-space: nowrap; border-bottom: 3px solid transparent;
transition: all 0.2s;
}
.lk-nav-bar a:hover { background: var(--header-bg); color: var(--accent-dark); }
.lk-nav-bar a.active { border-bottom-color: var(--accent); color: var(--accent-dark); font-weight: 600; }

.lk-content { padding: 24px; max-width: 1200px; margin: 0 auto; }
.lk-page-title { font-size: 22px; font-weight: 600; margin-bottom: 20px; }

.lk-section { display: none; }
.lk-section.active { display: block; }
.lk-section-title { font-size: 18px; font-weight: 600; margin-bottom: 16px; }
.lk-subsection-title { font-size: 16px; font-weight: 600; margin: 24px 0 12px; color: var(--accent); }

.lk-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin-bottom: 24px; }
.lk-widgets-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin-bottom: 24px; }
.lk-card { background: var(--card-bg); border: 1px solid var(--card-border); border-radius: 10px; padding: 24px 20px; }
.lk-card-label { font-size: 13px; color: var(--text-muted); margin-bottom: 10px; }
.lk-card-value { font-size: 32px; font-weight: 700; }
.lk-card-sub { font-size: 13px; color: var(--text-muted); margin-top: 6px; }

.lk-table { width: 100%; background: var(--card-bg); border: 1px solid var(--card-border); border-radius: 8px; overflow: hidden; margin-bottom: 24px; }
.lk-table th { background: var(--table-header); padding: 10px 14px; text-align: left; font-size: 13px; font-weight: 600; border-bottom: 1px solid var(--card-border); }
.lk-table td { padding: 10px 14px; font-size: 14px; border-top: 1px solid var(--card-border); }
.lk-table tr:hover td { background: var(--bg); }
.lk-table .placeholder-row td { text-align: center; color: var(--text-muted); padding: 28px; }

.lk-form-box { background: var(--card-bg); border: 1px solid var(--card-border); border-radius: 8px; padding: 24px; max-width: 600px; margin-bottom: 24px; }
.lk-form-group { margin-bottom: 14px; }
.lk-form-group label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 5px; }
.lk-form-group input, .lk-form-group select, .lk-form-group textarea {
width: 100%; padding: 8px 12px; border: 1px solid var(--input-border); border-radius: 4px; font-size: 14px; background: var(--card-bg); color: var(--text);
}
.lk-form-group input:read-only { background: var(--input-read); }
.lk-form-group textarea { resize: vertical; min-height: 80px; }
.lk-btn { padding: 10px 20px; border: none; border-radius: 4px; font-size: 14px; font-weight: 500; cursor: pointer; background: var(--accent); color: #fff; }
.lk-btn:hover { background: var(--accent-dark); }

.lk-filter-row { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; flex-wrap: wrap; }
.lk-filter-row label { font-size: 14px; }
.lk-filter-row select { padding: 6px 10px; border: 1px solid var(--input-border); border-radius: 4px; font-size: 14px; background: var(--card-bg); color: var(--text); }
.lk-filter-row input[type=checkbox] { width: 18px; height: 18px; cursor: pointer; }

.lk-hint { font-size: 13px; color: var(--text-muted); margin-top: 8px; }

@media (max-width: 768px) {
.lk-topbar { flex-direction: row; justify-content: space-between; align-items: flex-start; padding: 10px 14px; }
.lk-topbar-title { font-size: 16px; line-height: 1.3; flex: 1; }
.lk-topbar-title small { display: block; margin-left: 0; margin-top: 2px; }
.lk-topbar-right { flex-direction: column; align-items: flex-end; gap: 10px; flex-shrink: 0; }
.lk-theme-icon {
background: none; border: 1px solid var(--card-border); border-radius: 6px;
cursor: pointer; padding: 6px 8px; height: 32px;
display: flex; align-items: center; justify-content: center;
}
.lk-theme-icon svg { width: 24px; height: 16px; }
.lk-logout-form { margin: 0; }
.lk-theme-icon {
background: none; border: 1px solid var(--card-border); border-radius: 6px;
cursor: pointer; padding: 6px 8px; height: 32px;
display: flex; align-items: center; justify-content: center;
color: var(--text);
}
.lk-theme-icon svg { width: 24px; height: 16px; }
body[data-theme="night"] .lk-theme-icon { color: #c0c0d8; border-color: #4a4a5a; }
.lk-content { padding: 16px 10px; }
.lk-cards { grid-template-columns: 1fr; }
.lk-card-value { font-size: 26px; }
}

/* === Бургер-меню === */
.lk-burger { display: none; background: none; border: none; cursor: pointer;
padding: 8px 12px; flex-direction: column; gap: 4px; }
.lk-burger span { display: block; width: 24px; height: 3px; border-radius: 2px;
background: var(--accent); transition: 0.3s; }
.lk-burger.lk-burger-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.lk-burger.lk-burger-open span:nth-child(2) { opacity: 0; }
.lk-burger.lk-burger-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (max-width: 768px) {
.lk-burger { display: flex; }
.lk-nav-wrapper { position: relative; }
.lk-nav-bar {
display: none !important; flex-direction: column; width: 100%;
position: absolute; top: 100%; left: 0; right: 0; z-index: 300;
background: var(--nav-bg);
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.lk-nav-bar.lk-nav-open { display: flex !important; }
.lk-nav-bar a { border-bottom: 1px solid var(--nav-border); padding: 12px 16px; }
}

/* === Dashboard классы === */
.dash-row-no-gutter { --bs-gutter-x: 0; margin-left: 0; margin-right: 0; }
.dash-card { background-color: var(--card-bg); border-color: var(--card-border); }
.dash-card-header { background-color: var(--header-bg); border-color: var(--card-border); }
.dash-badge-accent-light { background-color: var(--accent-light) !important; color: #fff !important; }
.dash-badge-accent { background-color: var(--accent) !important; color: #fff !important; }
.dash-badge-green { background-color: #28a745 !important; color: #fff !important; }
.dash-badge-cyan { background-color: #17a2b8 !important; color: #fff !important; }
.dash-badge-purple { background-color: #6f42c1 !important; color: #fff !important; }
.dash-task-item { background-color: var(--card-bg); border-color: var(--card-border); }
.dash-task-blocked { opacity: 0.6; }
.dash-body-scrollable { max-height: 400px; overflow-y: auto; }
.dash-chart-max-height { max-height: 300px; }
.dash-text-small { font-size: 13px; }
.dash-text-tiny { font-size: 11px; }
.dash-star { color: #ffc107; }
.dash-select-auto { width: auto; }

/* === Доп классы из рефакторинга === */
.lk-card-header { font-size: 16px; font-weight: 600; margin-bottom: 12px; }
.lk-block-description { font-size: 13px; color: var(--text-muted); margin-bottom: 16px; }
.lk-loading-msg { text-align: center; padding: 40px; color: var(--text-muted); font-size: 14px; }
.lk-muted-text { color: var(--text-muted); font-size: 14px; }
.lk-hidden { display: none !important; }
.lk-padded { padding: 16px; }
.lk-full-row { grid-column: 1 / -1; }

.lk-apartment-select {
    margin-left: 50px; padding: 6px 12px;
    border: 1px solid var(--card-border); border-radius: 6px;
    font-size: 14px; font-family: inherit; cursor: pointer;
    color: var(--text); background: transparent;
    line-height: 1.4; box-sizing: border-box;
    height: 34px; max-width: 140px;
}
.lk-apartment-select:focus { outline: none; border-color: var(--text-muted); }
body[data-theme="night"] .lk-apartment-select { color: #c0c0d8; border-color: #4a4a5a; background: #1a1a2e; }
body[data-theme="night"] .lk-apartment-select option { background: #1a1a2e; color: #d0d0d0; }

#period-dropdown, #period-dropdown2 {
  background-color: var(--calendar-bg) !important;
  border: 1px solid var(--calendar-border) !important;
}

/* portal.css — вынесено из base.html 20.10.2026. Порядок важен: тема, затем user-select */
        :root {
            --accent: #ff8c00; --accent-dark: #ff7a00; --accent-light: #e8a84e;
            --accent-text: #8a5a00; --accent-subtext: #b07020;
            --card-bg: #fff8f0; --card-border: #f5d0a3; --header-bg: #fbe5c0;
            --badge-pending-bg: #e0e0e0; --badge-pending-text: #666;
            --alert-bg: #fff4e6; --link-color: #ff8c00; --link-hover: #ff7a00;
        }

        /* Белая тема: перекрываем оранжевые значения :root */
        body[data-theme="white"] {
            --accent-text: #2d3436; --accent-subtext: #6b7280;
            --alert-bg: #eef4fb; --link-color: #2d3436; --link-hover: #1a1a1a;
            --badge-pending-bg: #e0e0e0; --badge-pending-text: #555;
        }
        body[data-theme="blue"] {
            --accent: #4a90d9; --accent-dark: #357abd; --accent-light: #6ba8e8;
            --accent-text: #1a5a9a; --accent-subtext: #4a7ab5;
            --card-bg: #f0f7ff; --card-border: #a3c8f5; --header-bg: #c0d8fb;
            --badge-pending-bg: #e0e0e0; --badge-pending-text: #666;
            --alert-bg: #eef5ff; --link-color: #4a90d9; --link-hover: #357abd;
        }
        body[data-theme="green"] {
            --accent: #4caf50; --accent-dark: #388e3c; --accent-light: #66bb6a;
            --accent-text: #2e7d32; --accent-subtext: #4a8a4e;
            --card-bg: #f5fdf0; --card-border: #a3d8a3; --header-bg: #c0e8c0;
            --badge-pending-bg: #e0e0e0; --badge-pending-text: #666;
            --alert-bg: #eef5e8; --link-color: #4caf50; --link-hover: #388e3c;
        }
        html { scrollbar-gutter: stable; }
        body[data-theme="gray"] {
            --accent: #666; --accent-dark: #444; --accent-light: #999;
            --accent-text: #444; --accent-subtext: #777;
            --card-bg: #fafafa; --card-border: #ccc; --header-bg: #e0e0e0;
            --badge-pending-bg: #e0e0e0; --badge-pending-text: #666;
            --alert-bg: #f5f5f5; --link-color: #666; --link-hover: #444;
        }
        body[data-theme="night"] {
            --accent: #7c8cb5; --accent-dark: #5c6c95; --accent-light: #9cacd5;
            --accent-text: #9cacd5; --accent-subtext: #7c8cb5;
            --card-bg: #252535; --card-border: #3a3a4a; --header-bg: #2a2a3e;
            --badge-pending-bg: #3a3a4a; --badge-pending-text: #888;
            --alert-bg: #252535; --link-color: #9cacd5; --link-hover: #7c8cb5;
        }

        .header-container {
            display: flex;
            align-items: center;
            padding: 10px;
        }
        
        /* === Горизонтальное меню === */
        .nav-sections {
            display: flex;
            gap: 0;
            background-color: var(--header-bg);
            border-bottom: 2px solid var(--card-border);
            overflow-x: auto;
            white-space: nowrap;
            padding: 0;
        }
        .nav-sections .nav-item-section {
            padding: 0.55rem 1.1rem;
            color: var(--accent-text);
            text-decoration: none;
            font-size: 0.92rem;
            font-weight: 500;
            border-right: 1px solid var(--card-border);
            transition: background-color 0.15s, color 0.15s;
            cursor: pointer;
        }
        .nav-sections .nav-item-section:hover {
            background-color: var(--accent);
            color: #fff !important;
        }
        .nav-sections .nav-item-section.active {
            background-color: var(--accent);
            color: #fff !important;
        }
        body[data-theme="night"] .nav-sections .nav-item-section { color: var(--accent-text); }
        body[data-theme="night"] .nav-sections { border-bottom-color: var(--card-border); }



        .lk-theme-icon {
            background: none; border: 1px solid var(--card-border); border-radius: 6px;
            cursor: pointer; padding: 6px 8px; height: 32px;
            display: none; align-items: center; justify-content: center;
            color: var(--accent-text);
        }
        .lk-theme-icon svg { width: 24px; height: 16px; }
        body[data-theme="night"] .lk-theme-icon { color: #c0c0d8; border-color: #4a4a5a; }
        @media (max-width: 768px) { .lk-theme-icon { display: flex !important; } }

        /* === Сужение десктопа === */
        .main-container {
            max-width: 1400px;
            margin: 0 auto;
            padding: 0 0.5rem;
        }


        /* === Бургер для портала УК === */
        .uk-burger { display: none; background: var(--header-bg); border: none; border-bottom: 2px solid var(--card-border);
            cursor: pointer; padding: 10px 16px; flex-direction: column; gap: 4px; width: 100%; align-items: flex-start; }
        .uk-burger span { display: block; width: 24px; height: 3px; border-radius: 2px;
            background: var(--accent); transition: 0.3s; }
        .uk-burger.uk-burger-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
        .uk-burger.uk-burger-open span:nth-child(2) { opacity: 0; }
        .uk-burger.uk-burger-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
        @media (max-width: 768px) {
            .uk-burger { display: flex; }
            .uk-nav-wrapper { position: relative; }
            .nav-sections {
                display: none !important; flex-direction: column; width: 100%;
                position: absolute; top: 100%; left: 0; right: 0; z-index: 300;
                background: var(--header-bg);
                box-shadow: 0 4px 12px rgba(0,0,0,0.15);
            }
            .nav-sections.uk-nav-open { display: flex !important; }
            .nav-sections .nav-item-section { border-right: none; border-bottom: 1px solid var(--card-border); width: 100%; text-align: left; } /* WS_FIX_244 */
            .nav-sections > div { display: flex !important; flex-direction: column; width: 100%; }
        }

    @media (max-width: 768px) {
        .header-logo { width: 96px !important; height: auto !important; margin-left: 4px !important; margin-top: 2px !important; }
        .header-container { padding: 4px 8px !important; }
        .header-container .header-right {
            display: flex !important;
            flex-direction: column;
            align-items: flex-end;
            gap: 2px;
        }
        .header-user-name {
            font-size: 0.72rem;
            line-height: 1.1;
        }
        .header-container .btn-sm { font-size: 0.82rem; padding: 0.25rem 0.5rem; line-height: 1.3; }
        .header-container form.d-inline { margin-bottom: 0; }
        body { font-size: 16px; }
        .main-container { padding: 0 10px; }
        h1 { font-size: 1.5rem; }
        h2 { font-size: 1.35rem; }
        h3 { font-size: 1.2rem; }
        h5 { font-size: 1.05rem; }
        .btn { font-size: 1rem; padding: 0.5rem 0.9rem; }
        .btn-sm { font-size: 0.9rem; padding: 0.4rem 0.7rem; }
        .form-control, .form-select { font-size: 16px !important; }
        .table { font-size: 0.85rem; }
        .table th, .table td { padding: 0.4rem 0.3rem; }
        .list-group-item { padding: 0.7rem 0.6rem; }
        .d-flex { flex-wrap: wrap; gap: 0.4rem !important; }
        .gap-2 { gap: 0.4rem !important; }
        .gap-3 { gap: 0.5rem !important; }
        .mb-3 { margin-bottom: 0.8rem !important; }
        .nav-sections .nav-item-section { padding: 0.4rem 0.7rem; font-size: 0.85rem; }
    }

        /* Подсветка активных элементов */
        .list-group-item.active {
            background-color: var(--accent) !important;
            border-color: var(--accent) !important;
            color: #fff !important;
        }
        .list-group-item.active .text-muted,
        .list-group-item.active span {
            color: #fff5e6 !important;
        }
        body[data-theme="night"] .list-group-item.active .text-muted,
        body[data-theme="night"] .list-group-item.active span {
            color: #c0c0d0 !important;
        }
        .list-group-item.active:hover {
            background-color: var(--accent-dark) !important;
            border-color: var(--accent-dark) !important;
        }

        /* === Кнопки === */
        .btn-primary {
            background-color: var(--accent) !important;
            border-color: var(--accent) !important;
            color: #fff !important;
        }
        .btn-primary:hover, .btn-primary:focus {
            background-color: var(--accent-dark) !important;
            border-color: var(--accent-dark) !important;
        }
        .btn-outline-primary {
            color: var(--accent) !important;
            border-color: var(--accent) !important;
        }
        .btn-outline-primary:hover, .btn-outline-primary:focus {
            background-color: var(--accent) !important;
            border-color: var(--accent) !important;
            color: #fff !important;
        }
        .btn-success {
            background-color: var(--accent) !important;
            border-color: var(--accent) !important;
            color: #fff !important;
        }
        .btn-success:hover, .btn-success:focus {
            background-color: var(--accent-dark) !important;
            border-color: var(--accent-dark) !important;
        }
        .btn-row { display: flex; gap: 0.5rem; }
        .btn-row .btn { flex: 1 1 0; white-space: normal; }

        /* === Тема для страниц этапов === */
        .period-card {
            background-color: var(--card-bg);
            border: 1px solid var(--card-border);
            border-radius: 0.5rem;
        }
        .period-card-header {
            background-color: var(--header-bg);
            border-bottom: 1px solid var(--card-border);
            border-radius: calc(0.5rem - 1px) calc(0.5rem - 1px) 0 0;
            padding: 0.75rem 1rem;
        }
        .period-card-header h1,
        .period-card-header h4 {
            margin: 0;
            color: var(--accent-text);
        }
        .period-card-body {
            padding: 1.25rem;
        }
        .alert-orange-info {
            background-color: var(--alert-bg);
            border-color: var(--card-border);
            color: var(--accent-text);
        }
        .table > thead.thead-orange {
            background-color: var(--header-bg) !important;
            color: var(--accent-text);
        }
        .table > thead.thead-orange th {
            color: var(--accent-text);
            border-color: var(--card-border);
        }
        .badge-step-done {
            background-color: var(--accent) !important;
            color: #fff !important;
        }
        .badge-step-pending {
            background-color: var(--badge-pending-bg) !important;
            color: var(--badge-pending-text) !important;
        }
        .pagination .page-item.active .page-link {
            background-color: var(--accent) !important;
            border-color: var(--accent) !important;
            color: #fff !important;
        }
        .pagination .page-link {
            color: var(--accent) !important;
        }
        .pagination .page-link:hover {
            color: var(--accent-dark) !important;
        }
        .period-title {
            color: var(--accent-text);
            font-weight: 600;
        }
        .period-subtitle {
            color: var(--accent-subtext);
        }

        body[data-theme="night"] .bg-light { background-color: var(--header-bg) !important; }
        body[data-theme="orange"] .bg-light { background-color: var(--header-bg) !important; }
        body[data-theme="blue"] .bg-light { background-color: var(--header-bg) !important; }
        body[data-theme="green"] .bg-light { background-color: var(--header-bg) !important; }
        body[data-theme="gray"] .bg-light { background-color: var(--header-bg) !important; }
        
        /* === Night theme: полная инверсия === */
        body[data-theme="night"] {
            background-color: #1a1a2e !important;
            color: #e0e0e8 !important;
        }
        body[data-theme="night"] .card,
        body[data-theme="night"] .list-group-item {
            background-color: #252535 !important;
            color: #e0e0e8 !important;
            border-color: #3a3a4a !important;
        }
        body[data-theme="night"] .card-header {
            background-color: #2a2a3e !important;
            color: #c0c0d8 !important;
            border-color: #3a3a4a !important;
        }
        body[data-theme="night"] .list-group-item-action:hover {
            background-color: #2e2e42 !important;
        }
        body[data-theme="night"] .table {
            color: #d0d0e0 !important;
        }
        body[data-theme="night"] .table > tbody > tr {
            background-color: #252535 !important;
            color: #d0d0e0 !important;
        }
        body[data-theme="night"] .table > tbody > tr:nth-child(even) {
            background-color: #2a2a3e !important;
        }
        body[data-theme="night"] .table > thead > th {
            background-color: #2a2a3e !important;
            color: #c0c0d8 !important;
            border-color: #3a3a4a !important;
        }
        body[data-theme="night"] .table-striped > tbody > tr:nth-of-type(odd) {
            background-color: #252535 !important;
        }
        body[data-theme="night"] .table-bordered,
        body[data-theme="night"] .table-bordered td,
        body[data-theme="night"] .table-bordered th {
            border-color: #3a3a4a !important;
        }
        body[data-theme="night"] .text-muted {
            color: #8888a0 !important;
        }
        body[data-theme="night"] .text-dark {
            color: #e0e0e8 !important;
        }
        body[data-theme="night"] .text-secondary {
            color: #9090b0 !important;
        }
        body[data-theme="night"] .bg-light {
            background-color: #1a1a2e !important;
        }
        body[data-theme="night"] .bg-white {
            background-color: #252535 !important;
        }
        body[data-theme="night"] .form-control,
        body[data-theme="night"] .form-select {
            background-color: #2a2a3e !important;
            color: #e0e0e8 !important;
            border-color: #3a3a4a !important;
        }
        body[data-theme="night"] .dropdown-menu {
            background-color: #252535 !important;
            border-color: #3a3a4a !important;
        }
        body[data-theme="night"] .dropdown-item {
            color: #d0d0e0 !important;
        }
        body[data-theme="night"] .dropdown-item:hover,
        body[data-theme="night"] .dropdown-item:focus {
            background-color: #2e2e42 !important;
            color: #fff !important;
        }
        body[data-theme="night"] .alert {
            background-color: #2a2a3e !important;
            color: #d0d0e0 !important;
            border-color: #3a3a4a !important;
        }
        body[data-theme="night"] .page-link {
            background-color: #252535 !important;
            color: var(--accent-light) !important;
            border-color: #3a3a4a !important;
        }
        body[data-theme="night"] .page-item.active .page-link {
            background-color: var(--accent) !important;
            color: #fff !important;
        }
        body[data-theme="night"] .btn-outline-secondary {
            color: #b0b0c8 !important;
            border-color: #4a4a5a !important;
        }
        body[data-theme="night"] .btn-outline-secondary:hover {
            background-color: #3a3a4a !important;
            color: #fff !important;
        }
        body[data-theme="night"] .btn-outline-primary {
            color: var(--accent-light) !important;
            border-color: var(--accent) !important;
        }
        body[data-theme="night"] .btn-outline-primary:hover {
            background-color: var(--accent) !important;
            color: #fff !important;
        }
        body[data-theme="night"] .period-card {
            background-color: #252535 !important;
            border-color: #3a3a4a !important;
        }
        body[data-theme="night"] .period-card-header {
            background-color: #2a2a3e !important;
            color: #c0c0d8 !important;
        }
        body[data-theme="night"] .period-card-body {
            background-color: #252535 !important;
            color: #e0e0e8 !important;
        }
        body[data-theme="night"] .badge {
            color: #fff !important;
        }
        body[data-theme="night"] h1,
        body[data-theme="night"] h2,
        body[data-theme="night"] h3,
        body[data-theme="night"] h4,
        body[data-theme="night"] h5 {
            color: #c0c0d8 !important;
        }
        body[data-theme="night"] .text-decoration-none {
            color: #d0d0e0 !important;
        }
        body[data-theme="night"] a {
            color: var(--accent-light) !important;
        }
        body[data-theme="night"] .header-user-name {
            color: #9090b0 !important;
        }

        
        /* === Theme switcher === */
        .lk-theme-switch { position: relative; }
        .lk-theme-btn {
            background: none; border: 1px solid var(--card-border); border-radius: 6px;
            padding: 6px 12px; cursor: pointer; font-size: 14px; color: var(--accent-text);
        }
        body[data-theme="night"] .lk-theme-btn { color: #c0c0d8; border-color: #4a4a5a; }
        .lk-theme-dropdown {
            display: none; position: absolute; right: 0; top: 100%; margin-top: 4px;
            background: var(--card-bg); border: 1px solid var(--card-border);
            border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); min-width: 160px; z-index: 200;
        }
        .lk-theme-dropdown.show { display: block; }
        .lk-theme-option {
            display: flex; align-items: center; gap: 8px; padding: 8px 12px;
            cursor: pointer; font-size: 14px; color: var(--accent-text); border: none;
            background: none; width: 100%; text-align: left;
        }
        body[data-theme="night"] .lk-theme-option { color: #d0d0e0; }
        .lk-theme-option:hover { background: var(--header-bg); }
        .lk-theme-swatch { width: 16px; height: 16px; border-radius: 50%; border: 1px solid #ccc; flex-shrink: 0; }

body { user-select: none; -webkit-user-select: none; -moz-user-select: none; }
input, textarea, select, [contenteditable] { user-select: auto; -webkit-user-select: auto; -moz-user-select: auto; }

/* === Белая (white) тема, добавлена 20.10.2026 === */
body[data-theme="white"] {
--bg: #ffffff; --card-bg: #ffffff; --card-border: #e5e7eb;
--header-bg: #ffffff; --accent: #1f6bb4; --accent-dark: #1a5c9c;
--accent-light: #e8f1fa; --text: #1f2937; --text-muted: #6b7280;
--nav-bg: #ffffff; --nav-border: #e5e7eb; --table-header: #e7eff8;
--input-border: #d8dde3; --input-read: #f4f6f8;
--calendar-bg: #ffffff; --calendar-border: #e5e7eb;
--alert-bg: #eef4fb; --link-color: #1f6bb4; --link-hover: #1a5c9c;
}

/* === Полировка тем, 20.10.2026 === */
.lk-theme-btn, .lk-logout { color: var(--text) !important; }
.lk-theme-btn:hover, .lk-logout:hover {
  background: var(--accent-light) !important;
  color: var(--accent) !important;
}
.lk-nav-bar a { color: var(--text) !important; }
.lk-nav-bar a:hover { background: var(--accent) !important; color: #fff !important; }
.lk-table tr:hover td { background: var(--accent-light); }
body[data-theme="white"] .dash-badge-accent-light { color: #14507f !important; }

/* === Полировка 2: портал и шапка ЛК, 20.10.2026 === */
.nav-sections .nav-item-section { color: var(--text) !important; }
.nav-sections .nav-item-section:hover {
  background: var(--accent-light) !important;
  color: var(--accent) !important;
}
.nav-sections .nav-item-section.active {
  background: var(--accent) !important;
  color: #fff !important;
}
/* любые кнопки-ссылки в правой части шапки ЛК (админка, тема, выйти) */
.lk-topbar-right a:hover, .lk-topbar-right button:hover {
  background: var(--accent-light) !important;
  color: var(--accent) !important;
}

/* === Унификация кнопок Тема и Выйти === */
.lk-theme-btn, .lk-logout {
  height: 36px; /* примерная высота */
  line-height: 36px;
  padding: 0 15px;
}

/* === Заголовки таблиц светло-голубые === */
.lk-table th {
  background: var(--accent-light);
  color: var(--text);
}

/* === Основные метрики отеля === */
.hotel-metrics {
  background: var(--accent-light);
  color: var(--text);
  padding: 10px;
  border: 1px solid var(--card-border);
  margin-bottom: 10px;
}

/* === Полировка 3: кнопка Выйти — красная, 20.10.2026 === */
.lk-theme-btn, .lk-logout {
  
  align-items: center !important;
  height: 36px !important;
  padding: 0 15px !important;
  box-sizing: border-box;
}
/* Выйти живёт по своим правилам, не как обычные кнопки шапки */
.lk-logout {
  color: #c92a2a !important;
  border: 1px solid #e3a6a0 !important;
  background: transparent !important;
}
.lk-topbar-right a.lk-logout:hover, .lk-topbar-right a.lk-logout:focus, .lk-topbar-right button.lk-logout:hover, .lk-topbar-right button.lk-logout:focus {
  background: #c92a2a !important;
  border-color: #c92a2a !important;
  color: #ffffff !important;
}

/* === Полировка 5: карточки и заголовки таблиц, 20.10.2026 === */
/* В белой теме карточки получают светло-голубую подложку — не сливаются с фоном */
/* Шапки панелей (Фильтры, Статистика по отелям) — средиземноморская подложка */
.card-header {
  background: var(--table-header) !important;
  color: var(--text);
  border-bottom: 1px solid var(--card-border);
}
/* Карточки метрик — едва заметный тон, светлее шапок панелей */
body[data-theme="white"] .card.h-100 {
  background: #f4f8fd !important;
  border-color: #e2eaf4 !important;
}
/* Заголовки bootstrap-таблиц — на переменную темы (в каждой теме свой тон) */
.table thead th {
  background: var(--table-header) !important;
  color: var(--text);
}

/* === Полировка 7: плашка периода — эгейская, 20.10.2026 === */
#main-period-badge {
  background-color: var(--accent) !important;
  color: #ffffff !important;
}

/* Плашка периода: h1 приводим к размеру h4 из шапок этапов (1.5rem) */
.period-card-header h1 { font-size: 1.5rem; }
body[data-theme="white"] .period-card-header { background-color: var(--card-bg); }

/* Плашка периода в белой теме: тон как у шапок таблиц, а не белый */
body[data-theme="white"] .period-card-header { background-color: var(--table-header); border-bottom: 1px solid var(--card-border); }

/* === Переключаемая навигация: боковой режим (top/side) === */
@media (min-width: 768px) {
  body[data-nav="side"] .uk-nav-wrapper {
    position: fixed; top: 0; left: 0; bottom: 0; width: 230px; z-index: 100;
    background: var(--nav-bg); border-right: 1px solid var(--nav-border); overflow-y: auto;
  }
  body[data-nav="side"] .uk-burger { display: none; }
  body[data-nav="side"] .nav-sections { display: block; height: auto; }
  body[data-nav="side"] .nav-sections > div { display: block !important; max-width: none !important; }
  body[data-nav="side"] .nav-item-section {
    display: block; margin: 2px 8px; padding: 10px 12px;
    border-bottom: none; border-left: 3px solid transparent; border-radius: 6px; white-space: normal;
  }
  body[data-nav="side"] .nav-item-section.active {
    border-left-color: var(--accent); background: var(--accent-light);
  }
  body[data-nav="side"] .main-container { margin-left: 230px; }
  body[data-nav="side"] .nav-subitems { display: none; }
  body[data-nav="side"] .nav-item-section.open > .nav-subitems { display: block; }
}

/* Логотип: новые габариты 155x75, CSS не перекрывает атрибуты img */
.header-container .header-logo { width: 155px !important; height: 75px !important; object-fit: contain; }

/* === Кнопка переключения режима меню (top/side) === */
.nav-layout-btn {
    background: none; border: none; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0 12px; color: var(--text, #333); opacity: 0.75; flex-shrink: 0;
}
.nav-layout-btn:hover { opacity: 1; }
@media (max-width: 767px) { .nav-layout-btn { display: none !important; } }
@media (min-width: 768px) {
    /* шапка прилипает сверху, сайдбар начинается под ней — логотип не перекрывается */
    body[data-nav="side"] .header-container { position: sticky; top: 0; z-index: 101; }
    body[data-nav="side"] .uk-nav-wrapper { top: var(--header-h, 100px); }
    body[data-nav="side"] .nav-layout-btn {
        width: 100%; padding: 12px 0;
        border-bottom: 1px solid var(--nav-border);
    }
}

/* === Донастройка: серая кнопка, компактная шапка, кнопка в сайдбаре слева === */
.nav-layout-btn { color: #8a8f94; opacity: 0.65; }
.nav-layout-btn:hover { opacity: 1; }
@media (min-width: 768px) {
    .header-container { padding: 0 !important; }
    body[data-nav="side"] .nav-layout-btn {
        justify-content: flex-start;
        padding-left: 14px;
    }
}

/* === Меню без визуального шума: убираем outline при фокусе === */
.nav-sections a,
.nav-sections button,
.nav-sections a:focus,
.nav-sections button:focus,
.nav-layout-btn,
.nav-layout-btn:focus {
    outline: none;
    box-shadow: none;
}


/* === Границы: полосы снизу и справа убираем, акцент слева у пунктов сохраняем === */
.nav-sections { border-bottom: none !important; }
.nav-layout-btn { border-bottom: none !important; }
.nav-sections .nav-item-section { border-right: none !important; }

/* === Горизонтальное меню прилипает к верху при прокрутке === */
.uk-nav-wrapper {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: #fff;
}

/* === Шапка прилипает сверху, меню прилипает ниже неё === */

.header-container {
    position: sticky;
    top: 0;
    z-index: 1001;
    background: #fff;
}
.uk-nav-wrapper { top: var(--header-h); }

/* === Шапка прилипает во всех режимах; высота 75px подтверждена в DevTools === */
.header-container {
    position: sticky !important;
    top: 0;
    z-index: 1001;
    background: #fff;  /* фон у шапки и так есть из bg-light, это страховка */
}
body[data-nav="side"] .header-container { z-index: 1001; }
:root { --header-h: 75px; }
.uk-nav-wrapper { top: var(--header-h); }

/* === Белая тема, боковой режим: средиземноморский фон меню, hover — смесь эгейского и средиземноморского === */
@media (min-width: 768px) {
  body[data-theme="white"][data-nav="side"] .nav-item-section:hover { background-color: #83ADD6; color: #fff; }
}

/* === Белая тема, боковой режим: пункты прозрачны поверх голубой колонки; hover — смесь Эгейского и Средиземноморского === */
@media (min-width: 768px) {
  body[data-theme="white"][data-nav="side"] .nav-sections .nav-item-section:hover {
    background-color: #83ADD6 !important;
    color: #fff !important;
  }
}

/* === Белая тема, боковой режим: активный пункт — Эгейский с белым текстом === */
@media (min-width: 768px) {
  body[data-theme="white"][data-nav="side"] .nav-sections .nav-item-section.active {
    background: #1F6BB4 !important;
    color: #fff !important;
  }
}

/* === Белая тема: hover #83ADD6 с белым текстом — единый для обоих меню === */
body[data-theme="white"] .nav-sections .nav-item-section:hover {
  background: #83ADD6 !important;
  color: #fff !important;
}
