/* Корпоративные цвета проверены на https://true-a.com/ 16.10.2026: красный #e3001d, тёмно-синий #18203b, графитовый #41423f. */
/* Читаемость на мониторе: крупный шрифт, тёмный текст, явные состояния. */
:root {
  --ink: #18203b;
  --secondary: #41423f;
  --border: #c9cccf;
  --accent: #e3001d;
}
body { background: #f4f4f4; color: var(--ink); font-size: 17px; line-height: 1.6; }
button, input, select { font-size: 16px; }
button:focus-visible, a:focus-visible, select:focus-visible, input:focus-visible, summary:focus-visible { outline: 3px solid #e3001d; }
.sidebar { width: 272px; padding: 28px 18px; background: #18203b; color: #e0e9ef; overflow-y: auto; }
.workspace { margin-left: 272px; }
.brand { font-size: 28px; }
.brand small { font-size: 13px; color: #d0dde7; letter-spacing: 0; }
.brand-mark { background: #e3001d; color: #ffffff; }
.side-label { color: #bdcddb; font-size: 12px; letter-spacing: .8px; margin-top: 36px; }
nav a { font-size: 16px; line-height: 1.4; padding: 14px 12px; color: #e0e9ef; }
nav a.active { background: #e3001d; color: #ffffff; font-weight: 650; }
nav a:hover { background: #2c3655; color: #fff; }
nav a.active:hover { background: #be0018; color: #ffffff; }
nav svg { width: 21px; height: 21px; flex-shrink: 0; }
.nav-count { color: #c4d4df; font-size: 14px; }
nav a.active .nav-count { color: #ffffff; }
.side-bottom { color: #e0e9ef; font-size: 13px; border-color: #526879; }
.side-bottom small, .side-foot { color: #c4d4df; font-size: 12px; }
.side-foot { line-height: 1.7; margin-top: 18px; }
.topbar { padding: 0 32px; min-height: 76px; height: auto; gap: 16px; }
.crumb { font-size: 14px; color: var(--secondary); padding: 18px 0; }
.crumb span { color: #41423f; }
.crumb b { color: var(--ink); font-weight: 600; }
.local-tag { font-size: 13px; color: var(--secondary); border-color: var(--border); }
.avatar { font-size: 13px; width: 36px; height: 36px; color: var(--ink); background: #ebedf0; border-color: var(--border); flex-shrink: 0; }
main { padding: 30px 32px; max-width: 1800px; }
.page-head { gap: 22px; }
.eyebrow { font-size: 13px; color: var(--secondary); letter-spacing: 1px; font-weight: 650; }
h1 { font-size: 38px; font-weight: 650; letter-spacing: -.8px; }
.title-dot { color: var(--accent); }
.page-head p { font-size: 16px; color: var(--secondary); }
.head-actions { flex-wrap: wrap; justify-content: flex-end; }
.button { font-size: 15px; padding: 11px 17px; min-height: 46px; border-radius: 7px; }
.primary { background: var(--accent); color: #fff; border-color: var(--accent); }
.primary:hover { background: #b90018; }
.secondary { background: #fff; border-color: #a5abb5; color: #18203b; }
.secondary:hover { background: #f0f1f4; }
.text-button { font-size: 15px; color: #e3001d; font-weight: 600; white-space: normal; text-align: left; }
.period-bar { border-color: var(--border); gap: 15px; padding: 16px 0; }
.segmented { background: #e5e6e9; border-color: #b6bbc5; }
.segmented button { font-size: 16px; color: #41423f; padding: 8px 18px; }
.segmented button.selected { background: #18203b; color: #fff; font-weight: 600; }
.period-picker select { font-size: 16px; color: var(--ink); font-weight: 600; padding: 8px 5px; }
.period-picker button { color: #18203b; font-size: 28px; width: 30px; }
#period-range { font-size: 14px; color: var(--secondary); }
.info-strip { background: #f0f1f5; color: #18203b; border-color: #c5cad7; font-size: 15px; padding: 15px 17px; }
.info-strip b { color: #18203b; }
.info-icon { color: #18203b; border-color: #59627c; width: 21px; height: 21px; font-size: 14px; }
.section-top h2, h2 { color: var(--ink); font-size: 23px; font-weight: 650; }
.section-top p, .section-sub { font-size: 15px; color: var(--secondary); }
.badge { background: #ebedf0; color: #41423f; padding: 5px 9px; font-size: 14px; line-height: 1.45; font-weight: 600; }
.badge.good { background: #dcf2e5; color: #145834; }
.badge.watch, .badge.partial, .badge.unverified { background: #fff0c4; color: #704300; }
.badge.bad { background: #ffe0e0; color: #942222; }
.metrics-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.metric-card { border-color: var(--border); padding: 21px; min-height: 208px; box-shadow: 0 2px 6px #18203b08; }
.metric-card:hover { border-color: #e3001d; background: #fbfdfc; }
.metric-head { font-size: 17px; line-height: 1.45; color: #18203b; font-weight: 600; align-items: flex-start; }
.metric-icon { color: #e3001d; font-size: 20px; }
.metric-value, .metric-value.has-value { color: #18203b; font-size: 40px; font-weight: 600; line-height: 1.2; margin: 16px 0 13px; }
.metric-bottom { font-size: 14px; color: var(--secondary); flex-wrap: wrap; gap: 8px; }
.metric-plan { font-size: 14px; color: var(--secondary); margin-top: 10px; }
.panel { border-color: var(--border); padding: 23px; }
.panel-head { flex-wrap: wrap; align-items: flex-start; }
.panel-head h2 { font-size: 19px; }
.panel-head select { font-size: 15px; color: var(--ink); border-color: #a5abb5; padding: 7px; max-width: 100%; }
.chart { height: 230px; }
.chart-empty { font-size: 17px; color: #41423f; background: #fffffff0; padding: 15px; }
.chart-empty span { font-size: 15px; color: var(--secondary); }
.chart-key { font-size: 14px; color: #41423f; }
.chart-key i { background: #e3001d; height: 4px; }
.chart-key i.plan { background: #18203b; }
.ring { width: 130px; height: 130px; border-width: 10px; }
.ring strong { font-size: 32px; color: var(--ink); font-weight: 650; }
.ring span { font-size: 13px; color: var(--secondary); }
.coverage-detail { font-size: 15px; color: var(--secondary); }
.coverage-detail b { font-size: 28px; color: var(--ink); }
.coverage-note { font-size: 14px; color: var(--secondary); border-color: var(--border); }
.coverage-box { gap: 20px; flex-wrap: wrap; }
.table-panel { padding: 0; }
.table-header { padding: 22px; }
table { min-width: 880px; }
th { font-size: 14px; text-transform: none; letter-spacing: 0; color: #18203b; background: #ededed; font-weight: 650; padding: 14px 18px; }
td { font-size: 16px; color: #41423f; padding: 17px 18px; border-color: #d8dadd; }
.department-row:nth-child(even) td, .registry-table tbody tr:nth-child(even) td { background: #f7f7f8; }
.department-row:hover td { background: #f0f1f5; }
.dept-number { font-size: 15px; color: #9a0014; background: #fce8eb; min-width: 36px; height: 36px; }
.name-cell strong { font-size: 16px; color: #18203b; font-weight: 600; }
.name-cell small { font-size: 14px; color: var(--secondary); }
.row-link { color: #e3001d; font-size: 23px; }
.search, .filters select { font-size: 16px; color: var(--ink); border-color: #a5abb5; padding: 11px 12px; min-height: 46px; }
input::placeholder { color: #41423f; opacity: 1; }
.person-card { border-color: var(--border); padding: 24px; }
.person-card:hover { border-color: #e3001d; }
.person-card .avatar { font-size: 16px; width: 48px; height: 48px; color: #9a0014; background: #fce8eb; }
.person-card h3 { font-size: 20px; color: var(--ink); }
.person-card p { font-size: 15px; color: var(--secondary); }
.person-card .person-stats { font-size: 15px; color: #41423f; border-color: var(--border); }
.detail-intro { border-color: var(--border); }
.detail-intro p { font-size: 17px; color: #41423f; }
.detail-meta { font-size: 15px; color: var(--secondary); }
.tree { border-color: var(--border); }
.tree details { border-color: #a5abb5; }
.tree summary { font-size: 17px; color: #18203b; }
.tree summary small { font-size: 14px; color: var(--secondary); }
.tree-node { flex-wrap: wrap; }
.empty-section { font-size: 17px; color: #41423f; border-color: #a5abb5; background: #f8fafc; }
.metric-link { font-size: 16px; color: #e3001d; font-weight: 600; }
.source-card { border-color: var(--border); }
.source-card h3 { font-size: 21px; color: var(--ink); }
.source-card p, .source-card li { font-size: 16px; color: #41423f; }
.source-card code, .source-card details { font-size: 14px; color: #41423f; }
.statistics { font-size: 16px; color: #41423f; }
.source-table td { font-size: 15px; }
dialog { border-color: #a5abb5; max-width: 780px; padding: 26px 30px; color: var(--ink); }
.close { background: #ebedf0; color: #18203b; width: 36px; height: 36px; font-size: 28px; }
.muted, .dialog-top + .muted { font-size: 15px; color: var(--secondary); }
[style*="font-size:9px"] { font-size: 14px !important; }
.passport-grid { font-size: 16px; grid-template-columns: 160px 1fr; gap: 15px; }
.passport-grid dt { color: var(--secondary); }
.notice, .warning-line { background: #fff2d3; color: #6e4500; border-color: #d2b670; font-size: 15px; }
form label { font-size: 16px; color: #41423f; }
form input, form select { font-size: 16px; border-color: #a5abb5; color: var(--ink); padding: 11px 12px; }
.form-hint, .form-actions span { font-size: 14px; color: var(--secondary); }
#toast { background: #e3001d; color: #fff; font-size: 16px; max-width: 90vw; }
footer { font-size: 14px; color: var(--secondary); border-color: var(--border); }
.mini-dept { font-size: 17px; color: #18203b; border-color: var(--border); }
.mini-dept small { font-size: 14px; color: var(--secondary); }
.count-pill { font-size: 14px; color: #41423f; background: #ebedf0; }
@media (max-width: 1400px) {
  .analysis-row { grid-template-columns: 1fr; }
  .coverage-box { justify-content: flex-start; margin-left: 10px; }
  .coverage-note br { display: none; }
}
@media (max-width: 1200px) {
  .page-head { align-items: flex-start; flex-direction: column; }
  .head-actions { justify-content: flex-start; }
  .head-actions .secondary { display: inline-block; }
  .metrics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .employee-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .subgrid { grid-template-columns: 1fr; }
  .sidebar { width: 250px; }
  .workspace { margin-left: 250px; }
  #period-range { display: none; }
}
@media (max-width: 900px) {
  .sidebar { width: 68px; padding: 23px 8px; }
  .workspace { margin-left: 68px; }
  .brand { padding: 0; justify-content: center; }
  .brand > span:last-child, .side-label, .side-bottom, nav a > span { display: none; }
  nav { margin-top: 34px; }
  nav a { padding: 14px 10px; justify-content: center; }
  main { padding: 24px; }
  .crumb { font-size: 14px; }
  h1 { font-size: 34px; }
  .info-strip button { display: none; }
}
@media (max-width: 600px) {
  main { padding: 22px 14px; }
  .topbar { padding: 0 14px; }
  .metrics-grid, .employee-grid { grid-template-columns: 1fr; }
  .metric-card { min-height: 195px; }
  .page-head p { font-size: 16px; }
  .metric-head { font-size: 17px; }
  .metric-value { font-size: 38px; }
  .metric-plan { font-size: 14px; }
  .segmented button { font-size: 16px; padding: 8px 12px; }
  .period-picker select { font-size: 16px; }
  .head-actions { gap: 10px; }
  .button { font-size: 15px; }
  .search { width: 100%; min-width: 0; }
  .passport-grid { grid-template-columns: 1fr; gap: 5px; }
  dialog { padding: 22px; }
  .form-row { flex-wrap: wrap; }
  .form-row > label { min-width: 135px; }
}
/* Подлинный SVG-логотип с сайта true-a.com, светлая версия для тёмного меню. */
.brand { flex-direction: column; align-items: flex-start; gap: 7px; }
.brand-logo { display: block; width: 100%; max-width: 225px; height: auto; flex-shrink: 0; }
.brand-caption { display: block; color: #d0dde7; font-size: 13px; font-weight: 400; letter-spacing: 0; }
@media (max-width: 900px) {
  .brand { align-items: center; }
  .brand-logo { width: 44px; height: 44px; max-width: none; object-fit: cover; object-position: left center; }
  .brand-caption { display: none; }
}
@media print { .workspace { margin-left: 0; } main { padding: 10px; } body { background: white; } }
