/**
 * Стили портала в духе темы Backpack (theme-tabler): фон, палитра, стекло.
 * На основе vendor/backpack/theme-tabler/.../fuzzy-background.css, backpack-color-palette.css, glass.css
 */
:root, [data-bs-theme=light], html[data-bs-theme=light] {
    --tblr-gray-100: #f1f5f9;
    --tblr-primary: #7c69ef;
    --tblr-primary-rgb: 124, 105, 239;
    --tblr-body-bg: #f1f5f9;
    --tblr-bg-surface: rgba(255, 255, 255, 0.7);
    --tblr-bg-surface-border: 1px solid rgba(255, 255, 255, 0.3);
    --tblr-bg-surface-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
    --tblr-bg-surface-backdrop: blur(5px);
    --tblr-navbar-active-bg: rgba(var(--tblr-primary-rgb), 0.3);
}

/* Фон как в Backpack (fuzzy-background) */
body.portal-backpack-theme {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' version='1.1' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:svgjs='http://svgjs.dev/svgjs' viewBox='0 0 800 800'%3E%3Cdefs%3E%3Cfilter id='bbblurry-filter' x='-100%25' y='-100%25' width='400%25' height='400%25' filterUnits='objectBoundingBox' primitiveUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='40' x='0%25' y='0%25' width='100%25' height='100%25' in='SourceGraphic' edgeMode='none' result='blur'%3E%3C/feGaussianBlur%3E%3C/filter%3E%3C/defs%3E%3Cg filter='url(%23bbblurry-filter)'%3E%3Cellipse rx='150' ry='150' cx='462.9146816404486' cy='534.6882471935419' fill='hsl(37, 99%25, 67%25)'%3E%3C/ellipse%3E%3Cellipse rx='150' ry='150' cx='179.02369011526488' cy='367.0291623615862' fill='hsl(316, 73%25, 52%25)'%3E%3C/ellipse%3E%3Cellipse rx='150' ry='150' cx='245.39283048169654' cy='478.9292209148051' fill='hsl(185, 100%25, 57%25)'%3E%3C/ellipse%3E%3C/g%3E%3C/svg%3E");
    background-size: cover;
    background-position: bottom center;
    background-repeat: no-repeat;
    min-height: 100%;
}

@media (max-width: 991px) {
    body.portal-backpack-theme {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' version='1.1' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:svgjs='http://svgjs.dev/svgjs' viewBox='0 0 400 800'%3E%3Cdefs%3E%3Cfilter id='bbblurry-filter' x='-50%25' y='-50%25' width='240%25' height='400%25' filterUnits='objectBoundingBox' primitiveUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='40' x='0%25' y='0%25' width='100%25' height='100%25' in='SourceGraphic' edgeMode='none' result='blur'%3E%3C/feGaussianBlur%3E%3C/filter%3E%3C/defs%3E%3Cg filter='url(%23bbblurry-filter)'%3E%3Cellipse rx='150' ry='150' cx='262.9146816404486' cy='334.6882471935419' fill='hsl(37, 99%25, 67%25)'%3E%3C/ellipse%3E%3Cellipse rx='150' ry='150' cx='79.02369011526488' cy='167.0291623615862' fill='hsl(316, 73%25, 52%25)'%3E%3C/ellipse%3E%3Cellipse rx='150' ry='150' cx='245.39283048169654' cy='478.9292209148051' fill='hsl(185, 100%25, 57%25)'%3E%3C/ellipse%3E%3C/g%3E%3C/svg%3E");
        background-position: top left;
    }
}

html[data-bs-theme=light] body.portal-backpack-theme {
    background-color: var(--tblr-gray-100);
}

body.portal-backpack-theme .page {
    background: rgb(255 255 255 / 0);
}

/* Навбар в стиле Backpack (стекло) */
body.portal-backpack-theme .portal-navbar {
    background: var(--tblr-bg-surface) !important;
    border: var(--tblr-bg-surface-border);
    box-shadow: var(--tblr-bg-surface-shadow);
    backdrop-filter: var(--tblr-bg-surface-backdrop);
    -webkit-backdrop-filter: var(--tblr-bg-surface-backdrop);
    border-radius: 0.5rem;
    margin: 1rem;
}

/* Имя и «Выход» в одну линию, без лишней высоты nav-link */
body.portal-backpack-theme .portal-navbar-user .btn-link {
    text-decoration: none;
}
body.portal-backpack-theme .portal-navbar-user .btn-link:hover {
    text-decoration: underline;
}

body.portal-backpack-theme .portal-navbar-inner {
    min-width: 0;
}

/* Мобильный: убрать лишний горизонтальный скролл страницы, скролл только у таблицы */
body.portal-backpack-theme {
    overflow-x: hidden;
}

/* min-width: 0 — чтобы flex не ломал overflow; не задаём max-width контейнеру — иначе ломается Bootstrap container-xl */
body.portal-backpack-theme .page,
body.portal-backpack-theme .page-wrapper,
body.portal-backpack-theme .page-body {
    min-width: 0;
}

body.portal-backpack-theme .page-body > .container-xl {
    min-width: 0;
}

body.portal-backpack-theme .card {
    min-width: 0;
}

body.portal-backpack-theme .card-body {
    min-width: 0;
}

/* Горизонтальный скролл только внутри обёртки таблицы */
body.portal-backpack-theme .portal-consents-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
}

body.portal-backpack-theme .portal-consents-table-wrap .table {
    margin-bottom: 0;
}

@media (max-width: 767.98px) {
    body.portal-backpack-theme .portal-consents-table-wrap .table td,
    body.portal-backpack-theme .portal-consents-table-wrap .table th {
        word-break: break-word;
        hyphens: auto;
    }
}

/* Мобильные карточки согласий: отдельно от полупрозрачной карточки-обёртки секции */
body.portal-backpack-theme .portal-consent-mobile-card {
    background: rgba(255, 255, 255, 0.85);
}

body.portal-backpack-theme .portal-consent-mobile-goals .portal-consent-goals-list {
    width: 100%;
}

/* Текст описания цели в модальном окне — с переносами строк */
body.portal-backpack-theme .portal-goal-modal-body {
    white-space: pre-wrap;
    word-break: break-word;
}

/* Модалка «Подробнее» — непрозрачный фон (без «стекла» Tabler) */
body.portal-backpack-theme .portal-modal-detail .modal-content.portal-modal-detail-content,
body.portal-backpack-theme .portal-modal-detail .modal-header,
body.portal-backpack-theme .portal-modal-detail .modal-body,
body.portal-backpack-theme .portal-modal-detail .modal-footer {
    background-color: #fff !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.portal-backpack-theme .portal-modal-detail .modal-content.portal-modal-detail-content {
    border: 1px solid rgba(0, 0, 0, 0.12);
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.15);
}

body.portal-backpack-theme .modal-backdrop.show {
    opacity: 0.5;
}

/* Карточки полупрозрачные */
body.portal-backpack-theme .card {
    background: var(--tblr-bg-surface);
    border: var(--tblr-bg-surface-border);
    box-shadow: var(--tblr-bg-surface-shadow);
    backdrop-filter: var(--tblr-bg-surface-backdrop);
    -webkit-backdrop-filter: var(--tblr-bg-surface-backdrop);
}

body.portal-backpack-theme .card .card-header {
    background: transparent;
    border-bottom: var(--tblr-bg-surface-border);
}

body.portal-backpack-theme .table {
    --tblr-bg-surface: rgba(255, 255, 255, 0.7);
}

body.portal-backpack-theme .table-striped > tbody > tr:nth-of-type(2n) > * {
    background: rgba(255, 255, 255, 0.2);
}
