/* Кабинет сотрудника банка: админка Django в стиле модуля «Анализ бизнеса».
   Цвета — через переменные админки, поэтому все её страницы и виджеты перекрашиваются разом. */

@font-face {
  font-family: 'Alfa Interface Sans';
  src: url('/app/fonts/alfa-interface-sans_regular.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'Alfa Interface Sans';
  src: url('/app/fonts/alfa-interface-sans_medium.woff2') format('woff2');
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: 'Alfa Interface Sans';
  src: url('/app/fonts/alfa-interface-sans_bold.woff2') format('woff2');
  font-weight: 700;
  font-display: swap;
}

html[data-theme="light"],
:root {
  --cabinet-page: #f2f3f5;
  --cabinet-surface: #ffffff;
  --cabinet-surface-muted: #f7f8f9;
  --cabinet-hover: #eef0f3;
  --cabinet-border: #e2e5e9;
  --cabinet-border-strong: #cdd2d8;
  --cabinet-text: #0b1f35;
  --cabinet-text-2: #43505e;
  --cabinet-text-3: #5d6976;
  --cabinet-red: #ef3124;
  --cabinet-red-hover: #dc2b1e;
  --cabinet-red-soft: #fdeceb;
  --cabinet-blue: #1d4d8c;
  --cabinet-header: #0b1f35;
  --cabinet-shadow: 0 1px 2px rgba(11, 31, 53, 0.06);
  --cabinet-shadow-md: 0 6px 20px rgba(11, 31, 53, 0.08), 0 1px 2px rgba(11, 31, 53, 0.05);
  --cabinet-focus: 0 0 0 3px rgba(29, 77, 140, 0.18);

  --primary: var(--cabinet-header);
  --secondary: var(--cabinet-header);
  --accent: #ffffff;
  --primary-fg: #ffffff;
  --body-fg: var(--cabinet-text);
  --body-bg: var(--cabinet-page);
  --body-quiet-color: var(--cabinet-text-3);
  --body-medium-color: var(--cabinet-text-2);
  --body-loud-color: var(--cabinet-text);
  --header-color: #c3ccd6;
  --header-branding-color: #ffffff;
  --header-bg: var(--cabinet-header);
  --header-link-color: #ffffff;
  --breadcrumbs-fg: var(--cabinet-text-3);
  --breadcrumbs-link-fg: var(--cabinet-text-2);
  --breadcrumbs-bg: var(--cabinet-surface);
  --link-fg: var(--cabinet-blue);
  --link-hover-color: #0b3a75;
  --link-selected-fg: var(--cabinet-red);
  --hairline-color: var(--cabinet-border);
  --border-color: var(--cabinet-border-strong);
  --darkened-bg: var(--cabinet-surface-muted);
  --selected-bg: var(--cabinet-hover);
  --selected-row: #fff5e3;
  --message-success-bg: #eaf7f0;
  --message-warning-bg: #fff5e3;
  --message-error-bg: #fdf0ef;
  --button-fg: #ffffff;
  --button-bg: var(--cabinet-text-2);
  --button-hover-bg: var(--cabinet-text);
  --default-button-bg: var(--cabinet-red);
  --default-button-hover-bg: var(--cabinet-red-hover);
  --object-tools-fg: #ffffff;
  --object-tools-bg: var(--cabinet-text-2);
  --object-tools-hover-bg: var(--cabinet-text);
  --font-family-primary: 'Alfa Interface Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

@media (prefers-color-scheme: dark) {
  :root {
    --cabinet-page: #0e0f11;
    --cabinet-surface: #17181b;
    --cabinet-surface-muted: #1c1e21;
    --cabinet-hover: #24262a;
    --cabinet-border: #2a2d32;
    --cabinet-border-strong: #3b3f46;
    --cabinet-text: #f1f2f4;
    --cabinet-text-2: #b9bec6;
    --cabinet-text-3: #979ea8;
    --cabinet-red: #ff4a3e;
    --cabinet-red-hover: #ff5f54;
    --cabinet-red-soft: #3a1815;
    --cabinet-blue: #9fc4ff;
    --cabinet-header: #08090b;
    --cabinet-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
    --cabinet-shadow-md: 0 8px 24px rgba(0, 0, 0, 0.35);
    --cabinet-focus: 0 0 0 3px rgba(159, 196, 255, 0.25);

    --primary: #24262a;
    --body-fg: var(--cabinet-text);
    --body-bg: var(--cabinet-page);
    --body-quiet-color: var(--cabinet-text-3);
    --body-medium-color: var(--cabinet-text-2);
    --body-loud-color: var(--cabinet-text);
    --breadcrumbs-fg: var(--cabinet-text-3);
    --breadcrumbs-link-fg: var(--cabinet-text-2);
    --breadcrumbs-bg: var(--cabinet-surface);
    --link-fg: var(--cabinet-blue);
    --link-hover-color: #c4dbff;
    --hairline-color: var(--cabinet-border);
    --border-color: var(--cabinet-border-strong);
    --darkened-bg: var(--cabinet-surface-muted);
    --selected-bg: var(--cabinet-hover);
    --selected-row: #352708;
    --message-success-bg: #0f2c20;
    --message-warning-bg: #352708;
    --message-error-bg: #3a1916;
    --button-bg: #3b3f46;
    --button-hover-bg: #4a4f57;
    --object-tools-bg: #3b3f46;
    --object-tools-hover-bg: #4a4f57;
  }
}

html[data-theme="dark"] {
  --cabinet-page: #0e0f11;
  --cabinet-surface: #17181b;
  --cabinet-surface-muted: #1c1e21;
  --cabinet-hover: #24262a;
  --cabinet-border: #2a2d32;
  --cabinet-border-strong: #3b3f46;
  --cabinet-text: #f1f2f4;
  --cabinet-text-2: #b9bec6;
  --cabinet-text-3: #979ea8;
  --cabinet-red: #ff4a3e;
  --cabinet-red-hover: #ff5f54;
  --cabinet-red-soft: #3a1815;
  --cabinet-blue: #9fc4ff;
  --cabinet-header: #08090b;
  --cabinet-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
  --cabinet-shadow-md: 0 8px 24px rgba(0, 0, 0, 0.35);
  --cabinet-focus: 0 0 0 3px rgba(159, 196, 255, 0.25);

  --primary: #24262a;
  --body-fg: var(--cabinet-text);
  --body-bg: var(--cabinet-page);
  --body-quiet-color: var(--cabinet-text-3);
  --body-medium-color: var(--cabinet-text-2);
  --body-loud-color: var(--cabinet-text);
  --breadcrumbs-fg: var(--cabinet-text-3);
  --breadcrumbs-link-fg: var(--cabinet-text-2);
  --breadcrumbs-bg: var(--cabinet-surface);
  --link-fg: var(--cabinet-blue);
  --link-hover-color: #c4dbff;
  --hairline-color: var(--cabinet-border);
  --border-color: var(--cabinet-border-strong);
  --darkened-bg: var(--cabinet-surface-muted);
  --selected-bg: var(--cabinet-hover);
  --selected-row: #352708;
  --message-success-bg: #0f2c20;
  --message-warning-bg: #352708;
  --message-error-bg: #3a1916;
  --button-bg: #3b3f46;
  --button-hover-bg: #4a4f57;
  --object-tools-bg: #3b3f46;
  --object-tools-hover-bg: #4a4f57;
}

body { font-size: 14px; }

/* Ссылки отличаются цветом, подчёркивание — только при наведении: в таблицах оно рябит.
   Админка подчёркивает их правилом a:not(#header a, …) с id внутри, поэтому здесь два id. */
#container #content a,
#container #nav-sidebar a { text-decoration: none; }

#container #content a:hover, #container #content a:focus-visible,
#container #nav-sidebar a:hover, #container #nav-sidebar a:focus-visible { text-decoration: underline; }

/* Шапка: тёмная полоса с фирменным знаком, как в интернет-банке. */
#header {
  min-height: 64px;
  padding: 0 32px;
  box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.06);
}

#site-name { margin: 0; }

.cabinet-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #ffffff;
  text-decoration: none;
}

#site-name a.cabinet-brand:link,
#site-name a.cabinet-brand:visited { color: #ffffff; }

.cabinet-brand__mark {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: #ef3124;
  color: #ffffff;
  font-size: 18px;
  font-weight: 700;
}

.cabinet-brand__name { font-size: 18px; font-weight: 700; letter-spacing: -0.01em; white-space: nowrap; }

.cabinet-brand__badge {
  padding: 2px 10px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  color: #c3ccd6;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
}

#user-tools { font-size: 13px; text-transform: none; letter-spacing: 0; }

#user-tools a { border-bottom: 0; }

#user-tools a:hover, #user-tools a:focus { color: #ffffff; text-decoration: underline; }

/* Хлебные крошки — светлая полоса под шапкой, а не синяя. */
div.breadcrumbs,
ol.breadcrumbs,
.breadcrumbs {
  padding: 12px 32px;
  border-bottom: 1px solid var(--cabinet-border);
  font-size: 13px;
}

/* Боковое меню. */
#nav-sidebar {
  background: var(--cabinet-surface);
  border-right: 1px solid var(--cabinet-border);
}

#nav-filter {
  border: 1px solid var(--cabinet-border);
  border-radius: 8px;
  background: var(--cabinet-surface-muted);
}

#nav-sidebar .module caption,
#nav-sidebar .module th,
#nav-sidebar .module td { background: transparent; }

#nav-sidebar .module caption a.section {
  color: var(--cabinet-text-3);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
}

#nav-sidebar .current-model { background: var(--cabinet-red-soft); box-shadow: inset 3px 0 0 var(--cabinet-red); }

#nav-sidebar .current-model a { color: var(--cabinet-text); }

.toggle-nav-sidebar { background: var(--cabinet-surface); border-right: 1px solid var(--cabinet-border); }

/* Содержимое. */
#content { padding: 24px 32px 40px; }

#content h1 {
  margin: 4px 0 20px;
  color: var(--cabinet-text);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -0.01em;
}

#content h2 { color: var(--cabinet-text); }

/* Модули — карточки, а заголовки модулей — текст, а не цветные плашки. */
.module,
.inline-group,
#changelist .results,
.dashboard .module {
  border: 1px solid var(--cabinet-border);
  border-radius: 12px;
  background: var(--cabinet-surface);
  box-shadow: var(--cabinet-shadow);
  overflow: hidden;
}

#nav-sidebar .module { border: 0; border-radius: 0; box-shadow: none; background: transparent; }

.module h2,
.module caption,
.inline-group h2 {
  padding: 12px 16px;
  background: transparent;
  color: var(--cabinet-text);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: none;
  border-bottom: 1px solid var(--cabinet-border);
}

.module caption a.section:link,
.module caption a.section:visited { color: var(--cabinet-text); }

fieldset.module { padding: 0; }

/* Таблицы. */
thead th,
tfoot td {
  background: var(--cabinet-surface-muted);
  color: var(--cabinet-text-3);
  border-bottom: 1px solid var(--cabinet-border);
  font-size: 12px;
  font-weight: 700;
}

thead th a:link, thead th a:visited { color: var(--cabinet-text-3); }

td, th { border-bottom-color: var(--cabinet-border); }

#result_list tbody tr:hover td,
#result_list tbody tr:hover th { background: var(--cabinet-hover); }

#changelist #toolbar,
#changelist .actions {
  border: 0;
  background: transparent;
}

#changelist-filter {
  border: 1px solid var(--cabinet-border);
  border-radius: 12px;
  background: var(--cabinet-surface);
  box-shadow: var(--cabinet-shadow);
}

#changelist-filter h2 { background: transparent; color: var(--cabinet-text); border-bottom: 1px solid var(--cabinet-border); }

.paginator { border-top: 0; background: transparent; }

/* Поля ввода. */
input[type="text"], input[type="password"], input[type="email"], input[type="url"],
input[type="number"], input[type="search"], input[type="tel"], textarea, select, .vTextField {
  padding: 8px 10px;
  border: 1px solid var(--cabinet-border-strong);
  border-radius: 8px;
  background: var(--cabinet-surface);
  color: var(--cabinet-text);
  font-family: inherit;
}

input:focus, textarea:focus, select:focus {
  border-color: var(--cabinet-blue);
  outline: none;
  box-shadow: var(--cabinet-focus);
}

.form-row { padding: 14px 16px; border-bottom-color: var(--cabinet-border); }

.aligned label { color: var(--cabinet-text-2); font-weight: 500; }

/* Кнопки. */
.button, input[type="submit"], input[type="button"], .submit-row input, a.button {
  padding: 10px 16px;
  border-radius: 10px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  transition: background-color 160ms ease;
}

.submit-row {
  padding: 14px 16px;
  border: 1px solid var(--cabinet-border);
  border-radius: 12px;
  background: var(--cabinet-surface);
}

.object-tools a:link, .object-tools a:visited {
  border-radius: 999px;
  font-size: 12px;
  text-transform: none;
  letter-spacing: 0;
}

/* Сообщения. */
ul.messagelist li {
  margin: 0 32px 8px;
  border-radius: 10px;
  color: var(--cabinet-text);
}

/* Вход в кабинет. */
.login #container {
  margin-top: 10vh;
  border: 1px solid var(--cabinet-border);
  border-radius: 16px;
  background: var(--cabinet-surface);
  box-shadow: var(--cabinet-shadow-md);
  overflow: hidden;
}

.login #header { padding: 20px 28px; }

.login #content { padding: 24px 28px 28px; }

.login .submit-row { padding: 16px 0 0; border: 0; background: transparent; }

.login .submit-row input {
  width: 100%;
  background: var(--cabinet-red);
}

.login .submit-row input:hover { background: var(--cabinet-red-hover); }

/* Главная кабинета. */
.cabinet-home { max-width: 1200px; margin-bottom: 32px; }

.cabinet-lead { margin: -8px 0 24px; color: var(--cabinet-text-2); font-size: 16px; }

.cabinet-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  margin-bottom: 20px;
}

a.cabinet-tile {
  display: grid;
  align-content: start;
  gap: 6px;
  min-height: 150px;
  padding: 20px;
  border: 1px solid var(--cabinet-border);
  border-radius: 16px;
  background: var(--cabinet-surface);
  box-shadow: var(--cabinet-shadow);
  color: var(--cabinet-text);
  text-decoration: none;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

#container #content a.cabinet-tile:hover { text-decoration: none; }

a.cabinet-tile:hover,
a.cabinet-tile:focus-visible {
  border-color: var(--cabinet-border-strong);
  box-shadow: var(--cabinet-shadow-md);
  color: var(--cabinet-text);
  transform: translateY(-2px);
}

a.cabinet-tile:focus-visible { outline: none; box-shadow: var(--cabinet-focus), var(--cabinet-shadow-md); }

a.cabinet-tile.cabinet-tile--accent {
  border-color: transparent;
  background: linear-gradient(135deg, #ef3124 0%, #c42417 100%);
  color: #ffffff;
}

a.cabinet-tile.cabinet-tile--accent:hover { color: #ffffff; }

.cabinet-tile__label {
  color: var(--cabinet-text-3);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.cabinet-tile--accent .cabinet-tile__label { color: rgba(255, 255, 255, 0.8); }

.cabinet-tile__title { font-size: 20px; font-weight: 700; line-height: 1.25; }

.cabinet-tile__text { color: var(--cabinet-text-2); font-size: 14px; line-height: 1.45; }

.cabinet-tile--accent .cabinet-tile__text { color: rgba(255, 255, 255, 0.9); }

.cabinet-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  margin: 0;
}

.cabinet-stats div {
  padding: 16px 20px;
  border: 1px solid var(--cabinet-border);
  border-radius: 12px;
  background: var(--cabinet-surface);
}

.cabinet-stats dt { color: var(--cabinet-text-3); font-size: 13px; }

.cabinet-stats dd {
  margin: 4px 0 0;
  color: var(--cabinet-text);
  font-size: 28px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.cabinet-section { margin: 8px 0 12px; font-size: 18px; }

/* Стандартная главная админки сжата до 600px под колонку «Недавние действия». */
.dashboard #content { width: auto; max-width: 1264px; }

.dashboard .app-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 16px;
  max-width: 1200px;
}

.dashboard .app-list .module { margin: 0; }

@media (max-width: 767px) {
  #header { padding: 12px 16px; }
  .cabinet-brand__badge { display: none; }
  #content { padding: 16px; }
  div.breadcrumbs, ol.breadcrumbs, .breadcrumbs { padding: 10px 16px; }
  ul.messagelist li { margin: 0 16px 8px; }
}

@media (prefers-reduced-motion: reduce) {
  a.cabinet-tile { transition: none; }
  a.cabinet-tile:hover { transform: none; }
}
