/*
 * Imperium Identity Security — фирменная тема поверх midPoint 4.8.x (AdminLTE 3).
 *
 * Файл подменяет пустой static/css/overlay.css ядра: jar с этим файлом лежит в
 * ${midpoint.home}/lib и по порядку classpath (loader.path раньше BOOT-INF) выигрывает
 * у ресурса ядра. Ядро подключает overlay.css на каждой странице ПОСЛЕ midpoint.css,
 * поэтому здесь только переопределения — Java/HTML ядра не меняются.
 *
 * Две темы:
 *   светлая  — светлое левое меню, шапка на тон темнее (#dae1ee), сильный контраст;
 *   тёмная   — тона identigy.ru (#0a0f1f / #131c2e / #1c2842); акцент обеих тем — #2862D3 (CTA дизайн-системы).
 * Тёмная тема включается классом `dark-mode` на <html> (до входа) и <body>
 * (после входа) — класс ставит overlay.js по cookie `imperium-mode` или системной теме.
 * Штатный переключатель midPoint (experimental) ставит тот же класс на <body>.
 */

/* ---------- Токены ---------- */
:root {
  color-scheme: light;
  --idg-primary: #2862d3;   /* мягкий акцент: CTA дизайн-системы Identigy; белый текст 5,6:1 */
  --idg-primary-hover: #1f4fb0;
  --idg-primary-soft: #dce7ff;
  --idg-primary-soft-hover: #c5d6ff;
  --idg-navy: #0a0f1f;
  --idg-navy-2: #131c2e;
  --idg-page-bg: #eef2f9;
  --idg-card: #ffffff;
  --idg-card-soft: #f4f7fc;
  --idg-border: #c5cdd9;
  --idg-text: #0a0e27;
  --idg-text-2: #4a5468;
  --idg-muted: #5c657a;
  --idg-link: #1a44a0;      /* AAA: 8,8:1 на белом, 7,9:1 на фоне, 7,1:1 на мягком акценте */
  --idg-sidebar-bg: #f5f7fb;
  --idg-sidebar-text: #2b3a4e;
  --idg-sidebar-hover: #e6edf9;
  --idg-sidebar-header: #3f4a5a;  /* AAA: 8,4:1 на меню */
  --idg-sidebar-active-bg: #dce7ff;
  --idg-sidebar-active-text: #00379f;  /* AAA: 8,3:1 на #dce7ff */
  --idg-sidebar-active-icon: #2862d3;
  --idg-focus: #2862d3;
  --idg-success: #1e7e34;
  --idg-danger: #c62828;
  --idg-info: #006b87;
  --idg-warning-text: #8a5100;
  --idg-radius: .75rem;            /* карточки — radius-lg дизайн-системы */
  /* шапка и блок логотипа */
  --idg-header-bg: #dae1ee;  /* на тон темнее меню и фона (surface-inset сайта); текст 14,5:1 */
  --idg-header-text: #0a0e27;
  --idg-header-hover: #1a44a0;
  --idg-header-border: #b9c3d3;
  /* поля ввода (WCAG 1.4.11: рамка ≥ 3:1 к фону поля и карточки) */
  --idg-input-bg: #ffffff;
  --idg-input-border: #818ca0;
  --idg-font: "Golos Text", "Golos Text Fallback", "PT Golos Text", "Source Sans Pro", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --idg-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --idg-radius-control: .5rem;     /* поля и кнопки — radius-md дизайн-системы */
  --idg-shadow-card: 0 1px 2px rgba(10, 14, 39, .05), 0 10px 24px -8px rgba(10, 14, 39, .13);
}

.dark-mode {
  color-scheme: dark;
  --idg-primary: #2862d3;
  --idg-primary-hover: #1f4fb0;
  --idg-primary-soft: #14233d;
  --idg-primary-soft-hover: #20304a;
  --idg-page-bg: #0a0f1f;
  --idg-card: #1c2842;
  --idg-card-soft: #20304a;
  --idg-border: #38455c;
  --idg-text: #e8ebf0;
  --idg-text-2: #b5bfcd;
  --idg-muted: #a9b3c1;
  --idg-link: #93c0ff;      /* AAA: 7,8:1 на карточке, 7,1:1 на заголовке таблицы */
  --idg-header-bg: #131c2e;
  --idg-header-text: #e8ebf0;
  --idg-header-hover: #93c0ff;
  --idg-shadow-card: 0 1px 2px rgba(0, 0, 0, .4);
  --idg-header-border: #38455c;
  --idg-input-bg: #101a2e;
  --idg-input-border: #6d7f9a;
  --idg-sidebar-bg: #131c2e;
  --idg-sidebar-text: #e8ebf0;
  --idg-sidebar-hover: #1b2740;
  --idg-sidebar-header: #b5bfcd;  /* AAA: 9,2:1 на меню */
  --idg-sidebar-active-bg: #2862d3;
  --idg-sidebar-active-text: #ffffff;
  --idg-sidebar-active-icon: #ffffff;
  --idg-focus: #7ab0ff;
  --idg-success: #63d49b;
  --idg-danger: #ff9a8e;
  --idg-info: #69d6ed;
  --idg-warning-text: #ffc66b;
}

/* ---------- Шрифты: Golos Text и JetBrains Mono, как в дизайн-системе Identigy (OFL 1.1, тексты лицензий — fonts/*/OFL.txt) ---------- */
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 400; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-cyrillic-ext-400-normal-bdbbe9344571030b205338dfd489f1d3.woff2") format("woff2"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 500; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-cyrillic-ext-500-normal-1f635ab29b4c81ea54707909c148536d.woff2") format("woff2"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 600; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-cyrillic-ext-600-normal-fb3b7d601a0b0e93eedbcaff4c46a65b.woff2") format("woff2"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 700; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-cyrillic-ext-700-normal-9b62deb50b823a6307f356684641bd1e.woff2") format("woff2"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 400; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-cyrillic-400-normal-a82793f97f911b6a1dc69730f8aa9313.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 500; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-cyrillic-500-normal-97abfef86e347023e02e84861f40e127.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 600; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-cyrillic-600-normal-894768c4c711eb68775fe9809aa9c97c.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 700; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-cyrillic-700-normal-ee4900035a09226a33bfc62da706bc46.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 400; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-latin-ext-400-normal-38f4f407f988cac55a0d45bc9d49d183.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 500; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-latin-ext-500-normal-6589ecef5b223dd03aa8fc129e253832.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 600; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-latin-ext-600-normal-a4d80354de74003f42e6fb6ed9c32b15.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 700; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-latin-ext-700-normal-9a4f05dd21d9f19aa5871d55276ffce7.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 400; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-latin-400-normal-4b88b42724af58802ca05dfe40d8fea0.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 500; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-latin-500-normal-b0c19f244d45c9c19a88ba14e0842a30.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 600; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-latin-600-normal-2938437410d60eefcdbd3d81d0d52413.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Golos Text"; font-style: normal; font-weight: 700; font-display: swap; src: url("/imperium/fonts/golos-text/golos-text-latin-700-normal-12965d0becae1c16eaebf29ba173b5f7.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/imperium/fonts/jetbrains-mono/jetbrains-mono-cyrillic-400-normal-82462194ebb6a7e8f37e5894208dd75b.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/imperium/fonts/jetbrains-mono/jetbrains-mono-latin-400-normal-caf0dfde4e448468f09b7bed230206a4.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* подстановка Arial с метриками Golos: пока шрифт грузится, строки не прыгают (как на identigy.ru) */
@font-face { font-family: "Golos Text Fallback"; src: local("Arial"), local("ArialMT"); font-display: swap; ascent-override: 90.2654%; descent-override: 20.2637%; line-gap-override: 0%; size-adjust: 108.5687%; }
body { font-family: var(--idg-font); font-feature-settings: "ss01", "cv11"; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.tooltip, .popover, .btn, .dropdown-menu, h1, h2, h3, h4, h5, h6, .main-header, .main-sidebar, .modal-content { font-family: var(--idg-font); }
input, select, textarea, button, optgroup, .form-control, .custom-select, .select2-container { font-family: inherit; }
code, pre, kbd, samp, .text-monospace { font-family: var(--idg-font-mono); }

/* ---------- Каркас: шапка, левое меню, логотип ---------- */
/* Шапка и блок логотипа следуют теме: светлые в светлой, тёмные в тёмной (ревью theme!2, п. 3).
   Классы ядра navbar-dark/navbar-lightblue и inline-цвет deploymentInformation/headerColor
   перекрываются через !important — шаблон ядра не меняется. */
.main-header.navbar,
.main-header.navbar-lightblue,
.main-sidebar > a.brand-link,
.brand-link.navbar-lightblue,
.layout-navbar-fixed .wrapper .main-sidebar .brand-link:not([class*=navbar]) {
  background-color: var(--idg-header-bg) !important;
  color: var(--idg-header-text) !important;
}
.main-header.navbar { border-bottom: 1px solid var(--idg-header-border) !important; }
.main-sidebar > a.brand-link { border-bottom: 1px solid var(--idg-header-border) !important; }
.main-header .navbar-nav .nav-link,
.main-header.navbar-dark .navbar-nav .nav-link,
.main-header .navbar-title,
.main-header .page-title,
.main-header .navbar-text,
.main-header a:not(.dropdown-item):not(.btn) { color: var(--idg-header-text) !important; }
.main-header .navbar-nav .nav-link:hover,
.main-header .navbar-nav .nav-link:focus,
.main-header.navbar-dark .navbar-nav .nav-link:hover,
.main-header.navbar-dark .navbar-nav .nav-link:focus { color: var(--idg-header-hover) !important; }
.main-header .form-control-navbar,
.main-header.navbar-dark .form-control-navbar,
.main-header .form-control-navbar + .input-group-append > .btn-navbar {
  background-color: var(--idg-input-bg) !important;
  border-color: var(--idg-input-border) !important;
  color: var(--idg-text) !important;
}
.main-header .form-control-navbar::placeholder { color: var(--idg-text-2); opacity: 1; }

/* логотип: SVG вместо PNG ядра (сам PNG ядра тоже подменён файлом
   static/static/img/imperium_logo_white_180.png этого jar); свёрнутое меню — только знак */
.main-sidebar > a.logo > span {
  background-image: url("/imperium/img/imperium/imperium_logo_v7_color-3f40f307d7b6b28f40a70375c17e33fe.svg") !important;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.dark-mode .main-sidebar > a.logo > span { background-image: url("/imperium/img/imperium/imperium_logo_v7_white-7ba9b711cc47616d6e916b9525cd594d.svg") !important; }
.sidebar-collapse .main-sidebar > a.logo > span {
  background-image: url("/imperium/img/imperium/imperium_mark_v7_color-d41a2866e292cbf52517f945dac43898.svg") !important;
  background-size: 2.5rem 2.5rem;
}
.dark-mode.sidebar-collapse .main-sidebar > a.logo > span { background-image: url("/imperium/img/imperium/imperium_mark_v7_white-4b16d4a24b36e4edcf719727367a8ca5.svg") !important; }
/* наведение на свёрнутое меню раскрывает его — возвращаем полный логотип */
.sidebar-collapse .main-sidebar:hover > a.logo > span { background-image: url("/imperium/img/imperium/imperium_logo_v7_color-3f40f307d7b6b28f40a70375c17e33fe.svg") !important; background-size: contain; }
.dark-mode.sidebar-collapse .main-sidebar:hover > a.logo > span { background-image: url("/imperium/img/imperium/imperium_logo_v7_white-7ba9b711cc47616d6e916b9525cd594d.svg") !important; }

/* левое меню — светлое в светлой теме, тёмное в тёмной; класс ядра sidebar-light-* остаётся */
.main-sidebar,
.main-sidebar[class*="sidebar-light"],
.main-sidebar[class*="sidebar-dark"] {
  background-color: var(--idg-sidebar-bg) !important;
  color: var(--idg-sidebar-text);
}
.main-sidebar .nav-sidebar .nav-link,
.main-sidebar[class*="sidebar-light"] .nav-sidebar > .nav-item > .nav-link,
.main-sidebar[class*="sidebar-light"] .nav-treeview > .nav-item > .nav-link,
.main-sidebar .user-panel .info a,
.main-sidebar .user-panel .info .text-light { color: var(--idg-sidebar-text) !important; }
.main-sidebar .nav-sidebar .nav-link:hover,
.main-sidebar .nav-sidebar .nav-link:focus,
.main-sidebar[class*="sidebar-light"] .nav-sidebar > .nav-item > .nav-link:hover,
.main-sidebar[class*="sidebar-light"] .nav-sidebar > .nav-item > .nav-link:focus {
  background-color: var(--idg-sidebar-hover);
  color: var(--idg-sidebar-text);
}
.main-sidebar .nav-sidebar > .nav-item > .nav-link.active,
.main-sidebar[class*="sidebar-light"] .nav-sidebar > .nav-item > .nav-link.active,
.main-sidebar[class*="sidebar-dark"] .nav-sidebar > .nav-item > .nav-link.active,
.dark-mode .main-sidebar[class*="sidebar-light"] .nav-sidebar > .nav-item > .nav-link.active {
  background-color: var(--idg-sidebar-active-bg) !important;
  color: var(--idg-sidebar-active-text) !important;
  font-weight: 600;
  box-shadow: none;
}
.main-sidebar .nav-sidebar > .nav-item > .nav-link.active .nav-icon,
.main-sidebar .nav-sidebar > .nav-item > .nav-link.active [class*="object-"][class*="-color"] { color: var(--idg-sidebar-active-icon) !important; }
.main-sidebar .nav-treeview > .nav-item > .nav-link.active,
.main-sidebar[class*="sidebar-light"] .nav-treeview > .nav-item > .nav-link.active,
.dark-mode .main-sidebar .nav-treeview > .nav-item > .nav-link.active {
  background-color: var(--idg-primary-soft) !important;
  color: var(--idg-link) !important;
  font-weight: 600;
}
.main-sidebar .nav-header,
.main-sidebar .nav-sidebar .nav-header { color: var(--idg-sidebar-header); }
.main-sidebar .user-panel { border-bottom: 1px solid var(--idg-border); }
.main-sidebar .nav-sidebar .nav-icon { color: var(--idg-text-2); }
.main-sidebar .nav-sidebar .nav-link > .right, .main-sidebar .nav-sidebar .nav-link > p > .right { color: var(--idg-muted); }
.main-sidebar { border-right: 1px solid var(--idg-border); }
.main-sidebar .user-panel .image img { border: 1px solid var(--idg-border); }
.main-sidebar .text-lightblue { color: var(--idg-link) !important; }
.main-sidebar .text-gray { color: var(--idg-text-2) !important; }
/* Golos шире шрифта ядра: пункты меню на полшага мельче и зазор перед стрелкой раскрытия,
   чтобы длинные названия («Панели управления») не упирались в стрелку. Разметка ядра:
   a.nav-link > div.flex-grow-1 > div.text-truncate + span.ml-auto > i.right */
.main-sidebar .nav-sidebar .nav-link .text-truncate { font-size: .9375rem; }
.main-sidebar .nav-sidebar .nav-link .flex-grow-1 > .ml-auto { padding-left: .5rem; }

/* ---------- Рабочая область ---------- */
body, .content-wrapper, .dark-mode, .dark-mode .content-wrapper {
  background-color: var(--idg-page-bg) !important;
  color: var(--idg-text);
}
.card, .card-header, .card-footer, .modal-content, .dropdown-menu, .popover, .list-group-item,
.details-panel, .box, .box-body, .box-header, .box-footer, .summary-panel,
.dark-mode .card, .dark-mode .card-header, .dark-mode .card-footer, .dark-mode .modal-content,
.dark-mode .dropdown-menu, .dark-mode .popover, .dark-mode .list-group-item, .dark-mode .details-panel {
  background-color: var(--idg-card);
  color: var(--idg-text);
  border-color: var(--idg-border);
}
.card { border-radius: var(--idg-radius); box-shadow: var(--idg-shadow-card); }

.card-header { border-bottom: 1px solid var(--idg-border); }
.card-footer { border-top: 1px solid var(--idg-border); }
.card-title, h1, h2, h3, h4, h5, h6, label, .col-form-label, .form-label, .prism-header,
.dark-mode .card-title, .dark-mode h1, .dark-mode h2, .dark-mode h3, .dark-mode h4, .dark-mode h5,
.dark-mode label, .dark-mode .col-form-label { color: var(--idg-text); }
.card.card-primary:not(.card-outline) > .card-header { background-color: var(--idg-primary); color: #ffffff; }
.card-outline.card-primary, .card-outline.card-lightblue { border-top-color: var(--idg-primary); }
.text-secondary, .text-muted, .text-dimmed,
.dark-mode .text-secondary, .dark-mode .text-muted, .dark-mode .text-dimmed { color: var(--idg-text-2) !important; }
.text-primary, .text-label-color, .text-lightblue,
.dark-mode .text-primary, .dark-mode .text-lightblue { color: var(--idg-link) !important; }
.text-success, .dark-mode .text-success { color: var(--idg-success) !important; }
.text-danger, .dark-mode .text-danger { color: var(--idg-danger) !important; }
.text-info, .dark-mode .text-info { color: var(--idg-info) !important; }
.text-warning, .dark-mode .text-warning { color: var(--idg-warning-text) !important; }
.bg-white, .bg-light, .dark-mode .bg-white, .dark-mode .bg-light {
  background-color: var(--idg-card-soft) !important;
  color: var(--idg-text) !important;
}
hr, .dark-mode hr { border-top-color: var(--idg-border); }

/* навигация карточки объекта (левый столбец на странице пользователя) */
.details-panel-navigation, .dark-mode .details-panel-navigation { background-color: var(--idg-card-soft); color: var(--idg-text); }
li.navigation-details, li.navigation-details a, .dark-mode li.navigation-details a { color: var(--idg-text); }
li.navigation-details.active, li.navigation-details.active.open, li.navigation-details:hover,
.dark-mode li.navigation-details.active { background-color: var(--idg-primary-soft); }
li.navigation-details.active a { color: var(--idg-link); font-weight: 600; }
.property-stripe, .dark-mode .property-stripe { background-color: var(--idg-card-soft); }

/* плитки-виджеты дашборда: контрастные цвета объектов */
.info-box, .dark-mode .info-box { background-color: var(--idg-card); color: var(--idg-text); border-radius: var(--idg-radius); box-shadow: var(--idg-shadow-card); }
.info-box .info-box-text, .info-box .info-box-number, .dark-mode .info-box .info-box-text { color: var(--idg-text); }
.object-user-bg { background-color: #b83227 !important; color: #fff !important; }
.object-role-bg { background-color: #16733c !important; color: #fff !important; }
.object-org-bg { background-color: #8a5100 !important; color: #fff !important; }
.object-service-bg { background-color: #006b87 !important; color: #fff !important; }
.object-resource-bg { background-color: #605ca8 !important; color: #fff !important; }
.object-task-bg, .object-shadow-bg { background-color: #16466f !important; color: #fff !important; }
.object-access-bg { background-color: #16733c !important; color: #fff !important; }
.object-failed-bg { background-color: #b83227 !important; color: #fff !important; }
.info-box .info-box-icon { border-radius: var(--idg-radius-control); }
.object-user-color { color: #b83227; }
.object-role-color { color: #16733c; }
.object-org-color { color: #8a5100; }
.object-service-color { color: #006b87; }
.object-resource-color { color: #605ca8; }
.object-task-color, .object-shadow-color { color: #16466f; }
.dark-mode .object-user-color { color: #ff9a8e; }
.dark-mode .object-role-color { color: #63d49b; }
.dark-mode .object-org-color { color: #ffc66b; }
.dark-mode .object-service-color { color: #69d6ed; }
.dark-mode .object-resource-color { color: #b9a8ff; }
.dark-mode .object-task-color, .dark-mode .object-shadow-color { color: #9dc8ef; }
.tile-panel, .catalog-tile-panel.selectable { border-radius: var(--idg-radius); }
.dark-mode .tile-panel, .dark-mode .catalog-tile-panel.selectable { background-color: var(--idg-card-soft) !important; color: var(--idg-text); }

/* ---------- Карточка объекта ядра (prism): заголовки и служебные кнопки ---------- */
/* цвет ядра #3c8dbc давал 3,7:1 на белом (axe color-contrast, аудит 11.09) */
.prism-title, .prism-title:hover, .show-empty-button, .dark-mode .prism-title, .dark-mode .show-empty-button { color: var(--idg-link) !important; }
.prism-title { font-weight: 600; }
.show-empty-button { font-size: .875rem; text-decoration: underline; text-underline-offset: 3px; }
fieldset.objectButtons > legend { font-size: .875rem; color: var(--idg-text-2); }

/* ---------- Читаемость: ничего мельче 12 px (аудит: крошки 12, бейджи 11,25) ---------- */
.main-header .navbar-nav .nav-link > span, .main-header .breadcrumb, .main-header .breadcrumb-item { font-size: .875rem; }
.badge { font-size: .75rem; font-weight: 600; padding: .25em .5em; }
.ai-chat-card .ai-chat-suggested-btn, .ai-chat-card .ai-chat-suggested-title { font-size: .875rem; }

/* ---------- Плитки разделов (Система, Конфигурация): кнопки ядра .compositedButton как карточки дизайн-системы ---------- */
.compositedButton, .dark-mode .compositedButton {
  background-color: var(--idg-card) !important;
  border: 1px solid var(--idg-border) !important;
  border-radius: var(--idg-radius) !important;
  box-shadow: var(--idg-shadow-card);
  color: var(--idg-text) !important;
  transition: border-color .15s ease, background-color .15s ease;
}
.compositedButton:hover, .compositedButton:focus-visible { border-color: var(--idg-primary) !important; background-color: var(--idg-primary-soft) !important; }
.compositedButtonIcon, .compositedButtonIcon i { color: var(--idg-primary); }
.dark-mode .compositedButtonIcon, .dark-mode .compositedButtonIcon i { color: var(--idg-link); }
/* длинные русские слова («Профилирование», «Конфигурация») переносятся по слогам, а не обрезаются многоточием */
.compositedButtonLabel { font-size: .9375rem; line-height: 1.3; text-overflow: clip; overflow-wrap: break-word; hyphens: auto; }
.prism-property-label, .prism-property-label * { hyphens: auto; }

/* ---------- Мелочи тёмной темы и шапки ---------- */
/* крестик «убрать условие» и стрелки сортировки были почти не видны на тёмном фоне */
.search-item-field ~ a.btn, .dark-mode .search-item-field ~ a.btn { color: var(--idg-text-2) !important; }
.search-item-field ~ a.btn:hover, .search-item-field ~ a.btn:focus-visible { color: var(--idg-text) !important; }
/* стрелка сортировки: ядро красит её псевдоэлементом ::before в #343a40 */
th.sortable i::before, th[class*="wicket_order"] i::before { color: var(--idg-text-2) !important; }
/* длинная «хлебная крошка» в шапке не должна заезжать под переключатель темы */
.main-header .breadcrumb { max-width: 100%; }
.main-header .breadcrumb-item { min-width: 0; max-width: 100%; }
.main-header .breadcrumb-item > a, .main-header .breadcrumb-item > a > span { display: block; max-width: 34ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- Таблицы ---------- */
.table, .table td, .table th, .dark-mode .table, .dark-mode .table td, .dark-mode .table th {
  color: var(--idg-text);
  border-color: var(--idg-border);
}
.table thead th, .dark-mode .table thead th { background-color: var(--idg-card-soft); border-bottom: 2px solid var(--idg-border); }
.table-striped tbody tr:nth-of-type(odd), .dark-mode .table-striped tbody tr:nth-of-type(odd) { background-color: var(--idg-card-soft); }
.table-hover tbody tr:hover, .dark-mode .table-hover tbody tr:hover { background-color: var(--idg-primary-soft); color: var(--idg-text); }
.table a, .dark-mode .table a { color: var(--idg-link); }
caption, .dark-mode caption { color: var(--idg-text-2); }

/* ---------- Формы ---------- */
.form-control, .custom-select, .input-group-text,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple, .select2-dropdown,
.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar), .dark-mode .custom-select,
.dark-mode .input-group-text, .dark-mode .select2-container--default .select2-selection--single,
.dark-mode .select2-container--default .select2-selection--multiple, .dark-mode .select2-dropdown {
  background-color: var(--idg-card);
  color: var(--idg-text);
  border-color: var(--idg-input-border);
  border-radius: var(--idg-radius-control);
}
.form-control, .custom-select, .dark-mode .form-control, .dark-mode .custom-select, .dark-mode .input-group-text { background-color: var(--idg-input-bg); border-color: var(--idg-input-border); }
.form-control:focus, .dark-mode .form-control:focus {
  border-color: var(--idg-link);
  box-shadow: 0 0 0 .2rem rgba(40, 98, 211, .22);
}
.form-control::placeholder { color: var(--idg-text-2); opacity: 1; }
.form-control:disabled, .form-control[readonly], .dark-mode .form-control:disabled, .dark-mode .form-control[readonly] {
  background-color: var(--idg-card-soft);
  color: var(--idg-text-2);
}
.select2-container--default .select2-selection--single .select2-selection__rendered,
.dark-mode .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--idg-text); }
.custom-control-label::before, .dark-mode .custom-control-label::before { background-color: var(--idg-input-bg); border-color: var(--idg-input-border); }
.form-control.is-valid { border-color: var(--idg-success); }
.form-control.is-invalid { border-color: var(--idg-danger); }
.valid-feedback { color: var(--idg-success); }
.invalid-feedback { color: var(--idg-danger); }
input[type="checkbox"]:not([data-bootstrap-switch]), input[type="radio"]:not([data-bootstrap-switch]) {
  accent-color: var(--idg-primary);
  width: 20px; height: 20px; vertical-align: middle;
}
.dark-mode input[type="checkbox"], .dark-mode input[type="radio"] { accent-color: var(--idg-link); }

/* ---------- Ссылки, кнопки, значки ---------- */
a, .btn-link, .page-link, .breadcrumb-item a, .nav-tabs .nav-link.active,
.dark-mode a, .dark-mode .btn-link, .dark-mode .page-link { color: var(--idg-link); }
a:hover, .btn-link:hover { color: var(--idg-primary-hover); }
.dark-mode a:hover, .dark-mode .btn-link:hover { color: #c1dbff; }
.btn { border-radius: var(--idg-radius-control); }
.btn-primary, .badge-primary, .bg-primary, .bg-lightblue, .page-item.active .page-link,
.dark-mode .btn-primary, .dark-mode .badge-primary, .dark-mode .page-item.active .page-link {
  background-color: var(--idg-primary) !important;
  border-color: var(--idg-primary) !important;
  color: #ffffff !important;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:not(:disabled):not(.disabled):active,
.dark-mode .btn-primary:hover, .dark-mode .btn-primary:focus {
  background-color: var(--idg-primary-hover) !important;
  border-color: var(--idg-primary-hover) !important;
}
/* второстепенные (btn-info: «Показать все») — мягкий синий вместо бирюзы */
.btn-info, .btn-info:not(:disabled):not(.disabled):active, .dark-mode .btn-info {
  background-color: var(--idg-primary-soft);
  border-color: var(--idg-primary-soft);
  color: var(--idg-link);
}
.btn-info:hover, .btn-info:focus, .dark-mode .btn-info:hover, .dark-mode .btn-info:focus {
  background-color: var(--idg-primary-soft-hover);
  border-color: var(--idg-primary-soft-hover);
  color: var(--idg-primary-hover);
}
.dark-mode .btn-info:hover, .dark-mode .btn-info:focus { color: #ffffff; }
/* в тёмной теме мягкий фон кнопки близок к карточке — граница делает кнопку различимой */
.dark-mode .btn-info, .dark-mode .btn-info:not(:disabled):not(.disabled):active { border-color: #2d4a7a; }
.btn-default, .btn-light, .btn-outline-secondary, .compositedButton,
.dark-mode .btn-default, .dark-mode .btn-light, .dark-mode .btn-outline-secondary, .dark-mode .compositedButton {
  background-color: var(--idg-card-soft);
  border-color: var(--idg-input-border);
  color: var(--idg-text);
}
.btn-default:hover, .btn-light:hover, .btn-outline-secondary:hover,
.dark-mode .btn-default:hover, .dark-mode .btn-light:hover, .dark-mode .btn-outline-secondary:hover {
  background-color: var(--idg-primary-soft);
  color: var(--idg-link);
}
.btn-success, .dark-mode .btn-success { background-color: #1e7e34; border-color: #1e7e34; color: #fff; }
.btn-danger, .dark-mode .btn-danger { background-color: #c62828; border-color: #c62828; color: #fff; }
.btn-secondary { background-color: #526170; border-color: #526170; color: #fff; }
.btn-tool, .dark-mode .btn-tool { color: var(--idg-text-2); background: transparent; }
.btn-tool:hover, .btn-tool:focus, .dark-mode .btn-tool:hover { color: var(--idg-text); }
.badge-success, .bg-success { background-color: #1e7e34 !important; color: #fff !important; }
.badge-danger, .bg-danger { background-color: #c62828 !important; color: #fff !important; }
.badge-info, .bg-info { background-color: #006b87 !important; color: #fff !important; }
.badge-secondary, .bg-secondary { background-color: #526170 !important; color: #fff !important; }
.badge.bg-blue { background-color: var(--idg-primary) !important; color: #fff !important; }
.dark-mode .badge-light, .dark-mode .badge-secondary { background-color: var(--idg-border) !important; color: var(--idg-text) !important; }
.page-link, .dark-mode .page-link { background-color: var(--idg-card); border-color: var(--idg-border); }
.nav-tabs, .dark-mode .nav-tabs { border-bottom-color: var(--idg-border); }
.nav-tabs .nav-link.active, .dark-mode .nav-tabs .nav-link.active { background-color: var(--idg-card); border-color: var(--idg-border) var(--idg-border) var(--idg-card); }
.breadcrumb { background-color: transparent; }
.breadcrumb-item, .dark-mode .breadcrumb-item { color: var(--idg-text-2); }
.dropdown-item, .dark-mode .dropdown-item { color: var(--idg-text); }
.dropdown-item:hover, .dropdown-item:focus, .dark-mode .dropdown-item:hover { background-color: var(--idg-primary-soft); color: var(--idg-link); }
.dropdown-divider, .dark-mode .dropdown-divider { border-top-color: var(--idg-border); }
.modal-header, .modal-footer, .dark-mode .modal-header, .dark-mode .modal-footer { border-color: var(--idg-border); }
.close, .dark-mode .close { color: var(--idg-text); text-shadow: none; }
.summary-panel-identifier { color: var(--idg-text-2); }
.summary-tag > .text-truncate, .dark-mode .summary-tag > .text-truncate { color: var(--idg-text); }
.error-page, .error-content, .dark-mode .error-page { color: var(--idg-text); }

/* ---------- Переключатель темы (кнопка добавляется overlay.js) ---------- */
.imperium-mode-toggle { cursor: pointer; display: inline-flex; align-items: center; }
.imperium-mode-toggle svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.imperium-mode-toggle .imperium-icon-sun { display: none; }
.dark-mode .imperium-mode-toggle .imperium-icon-moon { display: none; }
.dark-mode .imperium-mode-toggle .imperium-icon-sun { display: inline-block; }

/* ---------- Страница входа ---------- */
.login-page, .register-page,
html.dark-mode .login-page, html.dark-mode .register-page {
  background-color: var(--idg-page-bg);
  color: var(--idg-text);
}
.login-box .card, .register-box .card,
html.dark-mode .login-box .card, html.dark-mode .register-box .card {
  background-color: var(--idg-card);
  color: var(--idg-text);
  border: 0;
  border-radius: var(--idg-radius);
  box-shadow: 0 8px 30px rgba(10, 15, 31, .18);
  overflow: hidden;
}
html.dark-mode .login-box .card { box-shadow: 0 8px 30px rgba(0, 0, 0, .45); }
.login-box .card.card-primary > .card-header, .register-box .card.card-primary > .card-header {
  background: radial-gradient(70% 90% at 50% 40%, #123a75 0%, #08183a 60%, #050f26 100%) !important;
  border-bottom: 1px solid #1d4b8a;
  color: #ffffff;
  padding: 1.25rem 1rem;
}
/* знак «Сигнал» перед названием системы — только CSS, шаблон ядра не меняется */
.login-box .card-header > h1, .register-box .card-header > h1 {
  align-items: center;
  display: flex;
  gap: .75rem;
  justify-content: center;
  line-height: 1.15;
  color: #ffffff;
  font-size: clamp(1.25rem, 3.5vw, 1.9rem);
  min-width: 0;
  overflow-wrap: anywhere;
  text-wrap: balance;
  text-align: left; /* строки названия выровнены по левому краю у знака; вся группа — по центру шапки */
  width: fit-content;
  margin: 0 auto;
  max-width: 100%;
}
.login-box .card-header > h1::before, .register-box .card-header > h1::before {
  background: url("/imperium/img/imperium/imperium_mark_v8_signal_animated-04d7c048cad4c44aec8de8177a4e1659.svg") no-repeat center / contain;
  content: "";
  flex: 0 0 3.6rem;
  height: 3.6rem;
  width: 3.6rem;
}
.login-box .card-body, .register-box .card-body,
html.dark-mode .login-box .card-body, html.dark-mode .register-box .card-body { background-color: var(--idg-card); color: var(--idg-text); }
.login-box-msg, .register-box-msg, .login-box label, .register-box label,
html.dark-mode .login-box-msg, html.dark-mode .login-box label { color: var(--idg-text); }
.login-box .card-body p, .register-box .card-body p, .login-panel-description,
html.dark-mode .login-box .card-body p { color: var(--idg-text-2); }
.login-box .form-control, .register-box .form-control, .login-box .input-group-text, .register-box .input-group-text,
html.dark-mode .login-box .form-control, html.dark-mode .login-box .input-group-text {
  background-color: var(--idg-card) !important;
  color: var(--idg-text) !important;
  border-color: var(--idg-input-border) !important;
}
html.dark-mode .login-box .form-control, html.dark-mode .login-box .input-group-text { background-color: var(--idg-input-bg) !important; border-color: var(--idg-input-border) !important; }
.login-box .form-control:focus, html.dark-mode .login-box .form-control:focus { border-color: var(--idg-link) !important; box-shadow: 0 0 0 .2rem rgba(40, 98, 211, .25); }
.login-box .btn-primary, html.dark-mode .login-box .btn-primary { background-color: var(--idg-primary) !important; border-color: var(--idg-primary) !important; }
.login-page a, .register-page a, html.dark-mode .login-page a { color: var(--idg-link); }

/* ---------- Nuntius AI (модуль imperium/ai): карточка чата в тонах темы ---------- */
/* Модуль грузит свои светлые поверхности после стилей ядра; токены привязаны к карточке, чтобы порядок ресурсов не вернул белые пузыри. */
.ai-chat-card {
  --ai-code-text: #263446; --ai-code-background: #e9edf2; --ai-code-accent: #0051ad; --ai-code-string: #176341;
  --ai-code-literal: #6742a5; --ai-code-muted: #526170; --ai-code-error: #b83227;
}
.ai-chat-card .ai-chat-message { color: #263446; }
.ai-chat-card .ai-chat-role, .ai-chat-card .ai-chat-time, .ai-chat-card .ai-chat-tool-label, .ai-chat-card .ai-chat-copy-btn { color: #526170; }
/* серый модуля #6b7280 на #fafafa — 4,6:1; поднят до текста второго уровня темы */
.ai-chat-card p, .ai-chat-card .ai-chat-suggested-title, .ai-chat-card .text-muted { color: var(--idg-text-2) !important; }
.ai-chat-card .ai-chat-copy-btn:focus-visible { opacity: 1; }
.ai-chat-card .ai-chat-copy-btn .fa-check { color: #16733c !important; }
.ai-chat-card .ai-chat-suggested-btn { border-color: #738196; }
.ai-chat-card .ai-chat-suggested-btn:hover, .ai-chat-card .ai-chat-suggested-btn:focus-visible { border-color: #526170; }
.ai-chat-card .ai-chat-content code, .ai-chat-card .ai-chat-thought code { background-color: var(--ai-code-background); color: var(--ai-code-text); }
.ai-chat-card .hljs, .ai-chat-card .hljs * { color: var(--ai-code-text); background-color: transparent; }
.ai-chat-card .hljs .hljs-doctag, .ai-chat-card .hljs .hljs-keyword, .ai-chat-card .hljs .hljs-template-tag, .ai-chat-card .hljs .hljs-template-variable,
.ai-chat-card .hljs .hljs-type, .ai-chat-card .hljs .hljs-title, .ai-chat-card .hljs .hljs-title.class_.inherited__ { color: var(--ai-code-literal); }
.ai-chat-card .hljs .hljs-attr, .ai-chat-card .hljs .hljs-attribute, .ai-chat-card .hljs .hljs-literal, .ai-chat-card .hljs .hljs-meta, .ai-chat-card .hljs .hljs-number,
.ai-chat-card .hljs .hljs-operator, .ai-chat-card .hljs .hljs-selector-attr, .ai-chat-card .hljs .hljs-selector-class, .ai-chat-card .hljs .hljs-selector-id,
.ai-chat-card .hljs .hljs-variable, .ai-chat-card .hljs .hljs-built_in, .ai-chat-card .hljs .hljs-symbol, .ai-chat-card .hljs .hljs-section, .ai-chat-card .hljs .hljs-bullet { color: var(--ai-code-accent); }
.ai-chat-card .hljs .hljs-regexp, .ai-chat-card .hljs .hljs-string, .ai-chat-card .hljs .hljs-name, .ai-chat-card .hljs .hljs-quote, .ai-chat-card .hljs .hljs-selector-pseudo,
.ai-chat-card .hljs .hljs-selector-tag, .ai-chat-card .hljs .hljs-addition { color: var(--ai-code-string); }
.ai-chat-card .hljs .hljs-code, .ai-chat-card .hljs .hljs-comment, .ai-chat-card .hljs .hljs-formula { color: var(--ai-code-muted); }
.ai-chat-card .hljs .hljs-deletion { color: var(--ai-code-error); }
@media (max-width: 575.98px) {
  .ai-chat-card .ai-chat-suggested { justify-content: flex-start; height: auto; min-height: 100%; }
  .ai-chat-card .ai-chat-suggested-grid { grid-template-columns: minmax(0, 1fr); }
}
.dark-mode .ai-chat-card {
  --ai-code-text: #e8ebf0; --ai-code-background: #0a0f1f; --ai-code-accent: #8db9ff; --ai-code-string: #63d49b;
  --ai-code-literal: #d1b5ff; --ai-code-muted: #b5bfcd; --ai-code-error: #ff9a8e;
}
.dark-mode .ai-chat-card .ai-chat-history { background-color: #131c2e; color: #e8ebf0; border-color: #8292ab; }
.dark-mode .ai-chat-card .ai-chat-message { background-color: #1c2842; color: #e8ebf0; }
.dark-mode .ai-chat-card .ai-chat-message-user { background-color: #20304a; }
.dark-mode .ai-chat-card .ai-chat-message-tool { background-color: #3b321f; }
.dark-mode .ai-chat-card .ai-chat-message-system, .dark-mode .ai-chat-card .ai-chat-message-error { background-color: #3a2230; color: #ffb8ad; border-left-color: #ff9a8e; }
.dark-mode .ai-chat-card .ai-chat-role, .dark-mode .ai-chat-card .ai-chat-time, .dark-mode .ai-chat-card .ai-chat-tool-label, .dark-mode .ai-chat-card .ai-chat-copy-btn,
.dark-mode .ai-chat-card .ai-chat-suggested-title, .dark-mode .ai-chat-card .ai-chat-tool-indicator, .dark-mode .ai-chat-card .ai-chat-details summary { color: #b5bfcd; }
.dark-mode .ai-chat-card .ai-chat-copy-btn .fa-check { color: #63d49b !important; }
.dark-mode .ai-chat-card .ai-chat-tool-name { color: #e8ebf0; }
.dark-mode .ai-chat-card .ai-chat-details, .dark-mode .ai-chat-card .ai-chat-thinking, .dark-mode .ai-chat-card .ai-chat-thought { border-color: #8292ab; }
.dark-mode .ai-chat-card .ai-chat-thinking, .dark-mode .ai-chat-card .ai-chat-thought { background-color: #101a2e; color: #b5bfcd; }
.dark-mode .ai-chat-card .ai-chat-tools { background-color: #101a2e; border-left-color: #ffc66b; }
.dark-mode .ai-chat-card .ai-chat-tool-args, .dark-mode .ai-chat-card .ai-chat-tool-result { background-color: #0a0f1f; color: #e8ebf0; }
.dark-mode .ai-chat-card .ai-chat-content th, .dark-mode .ai-chat-card .ai-chat-content td { border-color: #8292ab; }
.dark-mode .ai-chat-card .ai-chat-content th, .dark-mode .ai-chat-card .ai-chat-content tr:nth-child(even) td { background-color: #20304a; color: #e8ebf0; }
.dark-mode .ai-chat-card .ai-chat-suggested-btn { background-color: #20304a; color: #e8ebf0; border-color: #8292ab; }
.dark-mode .ai-chat-card .ai-chat-suggested-btn:hover, .dark-mode .ai-chat-card .ai-chat-suggested-btn:focus-visible { background-color: #1c2842; border-color: #b5bfcd; }
.dark-mode .ai-chat-card .ai-chat-copy-btn:hover { background-color: #20304a; color: #e8ebf0; }

/* ---------- Доступность ---------- */
:where(a[href], button, [role="button"], input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--idg-focus) !important;
  outline-offset: 2px;
  scroll-margin-block: 5rem 2rem;
}
.main-header :focus-visible, .main-sidebar > a.logo:focus-visible { outline-color: var(--idg-focus) !important; }
.btn.btn-xs, .btn-tool { min-width: 28px; min-height: 28px; }
@media (prefers-reduced-motion: reduce) {
  .login-box .card-header > h1::before, .register-box .card-header > h1::before {
    background-image: url("/imperium/img/imperium/imperium_mark_v8_signal_static-f2c38ae3b94ea980b94468e7d2171957.svg");
  }
  .btn, .btn:hover, .main-sidebar, .content-wrapper, .main-header, .nav-link { transition: none !important; }
}
@media (forced-colors: active) {
  :where(a[href], button, [role="button"], input, select, textarea, [tabindex]):focus-visible { outline-color: Highlight !important; }
}

/* ---------- Узкие экраны (390 px) ---------- */
@media (max-width: 575.98px) {
  /* плитки дашборда: «Просмотр/редактирование…» — одно слово без переноса, раздвигало страницу за край экрана */
  .dashboard-link-component { flex: 1 1 100% !important; min-width: 0; max-width: 100%; } /* ядро: flex 1 1 0 !important */
  .dashboard-link-component, .dashboard-link-component * { overflow-wrap: anywhere; }
  .main-header .navbar-title { min-width: 0; }
  .main-header.navbar-expand .navbar-nav .nav-link { padding-left: .5rem; padding-right: .5rem; min-width: 28px; }
  .card-footer > .d-flex.flex-wrap > .d-flex { flex-wrap: wrap; row-gap: .5rem; }
  .login-box .card-header > h1::before { flex-basis: 2.75rem; height: 2.75rem; width: 2.75rem; }
}
@media (max-width: 767.98px) {
  .details-panel { flex-direction: column; }
  .details-panel-navigation, .details-panel-details-form { flex-basis: auto; min-width: 0; width: 100%; max-width: 100%; }
  .details-panel-details-form { padding: 1rem .5rem; }
  .details-panel-navigation a { overflow-wrap: anywhere; }
  .card-body > .d-flex.flex-wrap > fieldset.objectButtons { min-width: 0; max-width: 100%; }
  .card-body > .d-flex.flex-wrap > fieldset.objectButtons > .d-flex { flex-wrap: wrap; row-gap: .5rem; }
  .details-panel .prism-property { padding-left: 0; }
  .details-panel .prism-property-value { min-width: 0; width: 100%; }
}
