/* Тема кабинета: палитра лендинга, светлый и тёмный режимы.

   Подключается последней на всех страницах кабинета. Выбор темы общий с
   лендингом (localStorage «digisec_theme», атрибут html[data-theme]).
   В стилях страниц цвета частично заданы напрямую — здесь они переводятся на
   токены, чтобы тёмный режим не оставлял белых карточек.

   --key — цвет ключевых действий («Подтверждаю», «Подать заявку»,
   «Сохранить комплект»): отличается от бирюзового акцента, чтобы главное
   действие экрана было видно сразу. */

:root{
  color-scheme:light;
  --bg:#f7f8f8;--card:#ffffff;--surface:#eef1f2;--surface2:#f3f5f6;
  --ink:#0e1c26;--text:#24343f;--muted:#4e5f6a;--line:#ccd6d9;--line-soft:#e3e8ea;
  --navy:#071522;--side-hover:#0f2a3a;--side-line:#1d3344;--side-ink:#c9d6dc;--side-muted:#7f95a3;
  --accent:#15716d;--accent-hover:#0f5c58;--accent-soft:#e3f0ef;--on-accent:#ffffff;
  --key:#c2410c;--key-hover:#9a3412;--on-key:#ffffff;
  --ok:#1c6b34;--ok-bg:#e6f4ea;--warn:#7a5200;--warn-bg:#fbf1dc;
  --bad:#a3262b;--bad-bg:#f8e1e1;--manual:#4e5f6a;--manual-bg:#eef1f2;
  --flag-bg:#fbf6e7;--flag-line:#d9c27a;--shadow:0 1px 3px rgba(14,28,38,.06);
}
html[data-theme="dark"]{
  color-scheme:dark;
  --bg:#071522;--card:#0c1d2b;--surface:#102536;--surface2:#0e2231;
  --ink:#f3f6f7;--text:#d4dde2;--muted:#a3b3be;--line:#294052;--line-soft:#1d3344;
  --navy:#050f19;--side-hover:#0f2a3a;--side-line:#1d3344;--side-ink:#c9d6dc;--side-muted:#7f95a3;
  --accent:#4ab4b0;--accent-hover:#6cc6c2;--accent-soft:rgba(74,180,176,.14);--on-accent:#04121c;
  --key:#f2b33d;--key-hover:#f7c562;--on-key:#1a1204;
  --ok:#7fd49a;--ok-bg:rgba(46,160,90,.16);--warn:#f5d36b;--warn-bg:rgba(245,190,60,.14);
  --bad:#ff9a9a;--bad-bg:rgba(220,70,70,.16);--manual:#b8c6cf;--manual-bg:#16293a;
  --flag-bg:rgba(245,190,60,.07);--flag-line:#5b5130;--shadow:none;
}

body{background:var(--bg);color:var(--ink)}

/* поверхности */
.card,.tile,.doc,.ws,.ws-bar,.dl-group,.kpi,.log-panel,.log-meta,.login .box,.pw-modal form,
.steps div,dialog,input,select,textarea,.log-bar input,.log-bar select{background:var(--card);color:var(--ink)}
.card,.doc,.ws{box-shadow:var(--shadow)}
.drop,.step,tr.row-sub > td,.metric,.ws-filters .chip,.dl-variant .chip,.log-bar,table.log th,.p-pending,.p-mute,.bar,
.kpi div,.pill,dialog input[readonly],table.log td.ev span{background:var(--surface)}
table.log tbody tr:nth-child(even){background:transparent}

/* линии */
input,select,textarea,.drop,.dl-group,.file-btn,.revise-btn,button.ghost,.ghost-link,button.mini,a.mini,
.pw-modal input,.metric,.log-bar input,.log-bar select,.card,.doc,.ws{border-color:var(--line)}
th,td,.ws-row,table.log td,.pkg,.doc .case,.ws-filters,.ws-bar,.ws-list{border-color:var(--line-soft)}

/* текст */
label,.doc .sign,.doc-details > summary,.about-list,.base-mode,table.log td.time,table.log td.ip,
table.log td.det,.pw-modal label,tr.row-link .cell-id,.metric b,.ws-filters .chip,.dl-variant .chip{color:var(--text)}
th,.p-pending,.p-mute,.metric span,table.log code,.hint,.sub{color:var(--muted)}

/* наведение и выбор */
tbody tr:hover,tr.row-link:hover,tr.row-link:focus-visible,.ws-row:hover,table.log tbody tr:hover,
button.mini:hover,a.mini:hover,.file-btn:hover,.revise-btn:hover{background:var(--surface2)}
.ws-row.on,.ws-filters .chip.on,.dl-variant .chip.on,.p-run,.step.current{background:var(--accent-soft)}
.ws-filters .chip.on,.dl-variant .chip.on{border-color:var(--accent);color:var(--accent)}

/* кнопки */
button{background:var(--accent);color:var(--on-accent)}
button:hover:not(:disabled){background:var(--accent-hover);box-shadow:none}
button:focus-visible{outline:2px solid var(--accent)}
button.ghost,.ghost-link,button.mini,a.mini,.file-btn,.revise-btn,.pw-modal button.ghost{background:var(--card);color:var(--text)}
button.ghost:hover:not(:disabled),.ghost-link:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.ws-row,.ws-row:hover:not(:disabled){color:var(--ink);box-shadow:none}
.ws-row:not(.on):hover:not(:disabled){background:var(--surface2)}
.ws-row.on:hover:not(:disabled){background:var(--accent-soft)}
.ws-filters .chip:hover:not(:disabled),.dl-variant .chip:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}

/* ключевые действия экрана */
.main-action,.key-action,button.main-action,button.key-action{background:var(--key);color:var(--on-key);border-color:var(--key)}
.main-action:hover:not(:disabled),.key-action:hover:not(:disabled){background:var(--key-hover);color:var(--on-key)}

/* статусы, предупреждения, флаги ревью */
.pill{color:var(--text)}
.consent{color:var(--text)}
.consent input{width:auto}
.p-ok,.pill.ok{background:var(--ok-bg);color:var(--ok)}
.p-warn,.pill.warn{background:var(--warn-bg);color:var(--warn)}
.p-bad{background:var(--bad-bg);color:var(--bad)}
.p-manual{background:var(--manual-bg);color:var(--manual)}
.doc .stamp,.warn,.doc .review-flags{background:var(--flag-bg);border-color:var(--flag-line);color:var(--ink)}
.doc .stamp{color:var(--warn)}
.doc .review-flags .check{background:var(--card);border-color:var(--flag-line)}
.ws-flag{background:var(--warn-bg);color:var(--warn)}
.ws-crit{background:var(--bad-bg);color:var(--bad)}
.ws-lbl{color:var(--ok)}
.step.done{background:var(--ok-bg);border-color:var(--line)}
.bar i{background:var(--accent)}
.about-list li::marker,.perm{color:var(--accent)}

/* боковая панель: тёмная в обеих темах, как фон лендинга */
aside,aside.sidebar{background:var(--navy);color:var(--side-ink)}
aside nav a,aside.sidebar nav a,.aside-link{color:var(--side-ink)}
aside nav a:hover,aside.sidebar nav a:hover,.aside-link:hover{background:var(--side-hover);color:#fff}
aside nav a.active,aside.sidebar nav a.active,nav a.active{background:var(--side-hover);color:#7fc4c0;box-shadow:inset 3px 0 0 #4ab4b0}
aside .who,aside.sidebar .who{border-color:var(--side-line)}
aside .who button,aside.sidebar .who button{background:var(--side-hover);color:var(--side-ink)}
aside .who button:hover,aside.sidebar .who button:hover{background:#163548;color:#fff}
.role,aside .who .role{background:var(--side-hover);color:var(--side-muted)}
.app{background:var(--bg)}
@media (min-width:901px){.app{background:linear-gradient(90deg,var(--navy) 0 250px,var(--bg) 250px)}}

/* переключатель темы */
.theme-toggle{position:fixed;top:12px;right:14px;z-index:20;width:36px;height:36px;padding:0;display:inline-flex;
  align-items:center;justify-content:center;border:1px solid var(--line);border-radius:4px;background:var(--card);
  color:var(--ink);font-size:16px;line-height:1;cursor:pointer;box-shadow:var(--shadow)}
.theme-toggle:hover:not(:disabled){background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
aside .who .theme-toggle.in-side,aside.sidebar .who .theme-toggle.in-side{position:static;width:100%;height:auto;margin-top:10px;
  padding:8px 10px;border:1px solid var(--side-line);border-radius:9px;background:transparent;color:var(--side-ink);
  font-size:13.5px;box-shadow:none}
aside .who .theme-toggle.in-side:hover:not(:disabled){background:var(--side-hover);color:#fff;border-color:var(--side-line)}

/* исправление ТЗ у заказчика — главное действие после экспертизы */
.home-actions .revise-btn{background:var(--key);border-color:var(--key);color:var(--on-key)}
.home-actions .revise-btn:hover{background:var(--key-hover);color:var(--on-key)}

/* Стиль главной во всём кабинете: тот же шрифт, прямые углы и плотные кнопки.
   Анимации в кабинете нет — двоичный фон только на входе, регистрации и смене
   пароля. Скругление остаётся у полосы прогресса, точек списков и переключателя
   темы в боковой панели. */
body{font-family:Arial,"Helvetica Neue",sans-serif}
input,select,textarea,button{font-family:inherit}
.card,.tile,.step,.doc,.box,.metric,.ws,.ws-bar,.kpi,.log-panel,dialog,.toast,.drop,.dl-group,.review-flags,.check,
.stamp,.ai-box,.ai-note,.tariff,.q-opt,.warn,.block,.quit,.menu-toggle,.file-btn,.main-action,.revise-btn,
.aside-link,.aside-out,.ghost-link,.perm,.mark,.status,.dev,.pill,.chip,.role,a.mini,button.mini,
input,select,textarea,button,.login .box,.pw-modal form,.pw-modal button,.steps div,.theme-toggle,aside nav a,aside.sidebar nav a{border-radius:0}
aside .who .theme-toggle.in-side,aside.sidebar .who .theme-toggle.in-side{border-radius:0}
button{font-weight:700;letter-spacing:.01em}
h1,h2,h3{letter-spacing:-.02em}
.card,.doc,.ws,.login .box{box-shadow:none;border:1px solid var(--line)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}

/* двоичный фон входа, регистрации и смены пароля */
.bitfield-page{position:fixed;inset:0;width:100vw;height:100vh;display:block;pointer-events:none;z-index:0}
.login>.box,body>.wrap{position:relative;z-index:1}
#step1.step{background:transparent;padding:0;border:0}
