/* ПАЛИТРА. Тёмная тема — основная, светлая переопределяет только цвета.

   Правило одно: в разметке и в остальных правилах цвет берётся ТОЛЬКО отсюда.
   Как только где-то появляется свой rgba(255,255,255,…) или #1a1a1a, этот
   кусок остаётся тёмным на светлой теме — и находится не разработчиком, а
   человеком, который в него упёрся глазами.

   Поэтому здесь есть не только «фон» и «текст», но и подложки: --tint-*
   (подсветка поверх фона: наведение, шапки, полоски) и --shade-* (затемнение
   под фоном: окна, тени). В тёмной теме подсветка белая, в светлой — чёрная;
   одно и то же правило работает в обеих, потому что спрашивает у темы, а не
   у автора правила. */
:root{--bg:#1f1f1f;--bg-app:#272727;--surface:#313131;--surface-2:#3a3a3a;--border:rgba(255,255,255,0.10);--border-strong:rgba(255,255,255,0.18);--text:#F1F1F1;--text-secondary:#c3c2b7;--text-muted:#8f8f8a;--accent:#F8C140;--accent-ink:#272727;--accent-text:#F8C140;--accent-soft:rgba(248,193,64,0.09);--accent-soft-2:rgba(248,193,64,0.14);--accent-line:rgba(248,193,64,0.32);--tint-1:rgba(255,255,255,0.02);--tint-2:rgba(255,255,255,0.035);--tint-3:rgba(255,255,255,0.05);--tint-4:rgba(255,255,255,0.08);--shade-1:rgba(0,0,0,0.12);--shade-2:rgba(0,0,0,0.28);--veil:rgba(0,0,0,0.55);--shadow-1:0 6px 16px rgba(0,0,0,0.28);--shadow-2:0 20px 60px rgba(0,0,0,0.5);--logo-ink:#F1F1F1;--cat-1:#3987e5;--cat-2:#d95926;--cat-3:#199e70;--cat-4:#c98500;--cat-5:#d55181;--cat-6:#3fa63f;--cat-7:#9085e9;--cat-8:#e66767;--good:#0ca30c;--good-ink:#eafcea;--good-soft:rgba(60,166,60,0.08);--good-soft-2:rgba(60,166,60,0.16);--good-line:rgba(63,166,63,0.35);--good-text:#7bd67b;--warning:#fab219;--warning-ink:#3a2a00;--serious:#ec835a;--serious-ink:#2c1400;--critical:#d03b3b;--critical-ink:#fff0f0;--critical-soft:rgba(208,59,59,0.07);--critical-soft-2:rgba(208,59,59,0.14);--critical-line:rgba(208,59,59,0.35);--critical-text:#e7a3a3;--critical-text-2:#ff9c9c;--info-text:#6ea8e8;--info-soft:rgba(58,122,205,0.18);--info-line:rgba(58,122,205,0.4);--neutral-soft:rgba(141,141,141,0.16);--neutral-line:rgba(141,141,141,0.3);--grid:#3a3a38;--muted:var(--text-muted);--fg:var(--text);--text-primary:var(--text);--panel:var(--bg-app);--card:var(--bg-app);--bg-elevated:var(--bg-app);--bg-soft:var(--surface);--input-bg:var(--surface);--danger:var(--critical);--positive:var(--good);--success:var(--good);--radius:10px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;}

/* СВЕТЛАЯ ТЕМА. Не «инверсия» тёмной: на белом фоне те же прозрачности
   работают иначе. Жёлтый под 9% на тёмном заметен, на светлом — исчезает,
   поэтому подложки акцента здесь плотнее. Зелёный и красный на светлом
   притемнены: #0ca30c на белом читается как салатовый.

   Фирменный жёлтый не меняется ни на йоту — он и есть узнаваемость. */
:root[data-theme="light"]{--bg:#f2f1ee;--bg-app:#ffffff;--surface:#f6f5f2;--surface-2:#eceae5;--border:rgba(0,0,0,0.12);--border-strong:rgba(0,0,0,0.24);--text:#22221e;--text-secondary:#4f4f47;--text-muted:#77776e;--accent:#F8C140;--accent-ink:#272727;--accent-text:#8a6000;--accent-soft:rgba(248,193,64,0.22);--accent-soft-2:var(--accent-line);--accent-line:rgba(190,132,0,0.5);--tint-1:rgba(0,0,0,0.015);--tint-2:rgba(0,0,0,0.03);--tint-3:rgba(0,0,0,0.045);--tint-4:rgba(0,0,0,0.06);--shade-1:rgba(0,0,0,0.035);--shade-2:rgba(0,0,0,0.08);--veil:rgba(30,30,26,0.4);--shadow-1:0 6px 16px rgba(0,0,0,0.10);--shadow-2:0 18px 50px rgba(0,0,0,0.18);--logo-ink:#22221e;--cat-1:#2b6fc4;--cat-2:#bc4718;--cat-3:#13805c;--cat-4:#a06b00;--cat-5:#b83f6a;--cat-6:#2f8a2f;--cat-7:#6f63d6;--cat-8:#c94f4f;--good:#0a7a2a;--good-ink:#eafcea;--good-soft:rgba(20,120,50,0.10);--good-soft-2:rgba(20,120,50,0.18);--good-line:rgba(20,120,50,0.35);--good-text:#17692f;--warning:#a97400;--warning-ink:#fff6e0;--serious:#b7551f;--serious-ink:#fff1e6;--critical:#c02a2a;--critical-ink:#fff0f0;--critical-soft:rgba(192,42,42,0.08);--critical-soft-2:rgba(192,42,42,0.16);--critical-line:rgba(192,42,42,0.35);--critical-text:#a52020;--critical-text-2:#8d1a1a;--info-text:#215699;--info-soft:rgba(43,111,196,0.12);--info-line:rgba(43,111,196,0.35);--neutral-soft:rgba(90,90,84,0.10);--neutral-line:rgba(90,90,84,0.25);--grid:#dedcd6;}*{box-sizing:border-box;}html,body{margin:0;padding:0;overflow-x:hidden;width:100%;}body{background:var(--bg);color:var(--text);font-family:'Euclid Flex',system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px;line-height:1.45;}button,select,input,textarea{font-family:inherit;font-size:inherit;}a{color:inherit;}img{max-width:100%;}button,.nav-item,.mini-btn,.role-tab,.login-tab,.role-pill,.badge.clickable,.modal-close{touch-action:manipulation;}input:not([type="checkbox"]):not([type="radio"]),select,textarea{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 11px;font-size:13px;line-height:1.3;transition:border-color .12s,background .12s;}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1;}input:not([type="checkbox"]):not([type="radio"]):focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-text);background:var(--surface-2);}input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed;}input[type="number"]{font-variant-numeric:tabular-nums;}input[type="date"]{width:100%;max-width:100%;min-width:0;}select{cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%238f8f8a'/></svg>");background-repeat:no-repeat;background-position:right 11px center;padding-right:30px;}select:disabled{cursor:not-allowed;}textarea{resize:vertical;}.heading-font,.view-title,.modal-title,.login-title,.brand-text,.stat-value{font-family:'Druk Wide Cyr','Euclid Flex',system-ui,sans-serif;letter-spacing:.01em;}.topbar{display:flex;align-items:center;gap:16px;background:var(--bg-app);border-bottom:1px solid var(--border);padding:10px 18px;position:sticky;top:0;z-index:20;flex-wrap:wrap;}.brand{display:flex;align-items:center;gap:10px;margin-right:8px;}.brand-mark{width:30px;height:30px;border-radius:8px;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--accent-ink);font-size:15px;}.brand-text{font-weight:700;letter-spacing:.2px;}.brand-sub{color:var(--text-muted);font-size:11px;margin-top:1px;}.brand-logo{height:26px;width:auto;display:block;}.login-brand .brand-logo{height:34px;}.role-tabs{display:flex;gap:6px;flex-wrap:wrap;}.role-tab{background:transparent;border:1px solid var(--border);color:var(--text-secondary);padding:7px 12px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s,border-color .12s;}.role-tab:hover{border-color:var(--border-strong);color:var(--text);}.role-tab.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-text);font-weight:700;}.spacer{flex:1;}.person-picker{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:12.5px;}.person-picker select{padding:6px 26px 6px 10px;font-size:12.5px;}.app{display:flex;min-height:calc(100vh - 58px);min-width:0;max-width:100%;}.sidebar{width:220px;flex:none;background:var(--bg-app);border-right:1px solid var(--border);padding:16px 10px;display:flex;flex-direction:column;gap:2px;}.nav-item{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text-secondary);padding:10px 12px;border-radius:8px;cursor:pointer;font-size:13.5px;}.nav-item:hover{background:var(--surface);color:var(--text);}.nav-item.active{background:var(--surface-2);color:var(--text);font-weight:700;box-shadow:inset 3px 0 0 var(--accent);}.mobile-nav-select{display:none;}.content{flex:1;padding:22px 26px 60px;max-width:1280px;min-width:0;}.view-title{font-size:19px;font-weight:700;margin:0 0 4px;}.view-sub{color:var(--text-muted);font-size:12.5px;margin:0 0 var(--space-5);}.note{background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--text-secondary);border-radius:var(--radius);padding:10px 14px;font-size:12.5px;margin-bottom:var(--space-5);}.note b{color:var(--accent-text);}.note.resolved{background:var(--good-soft);border-color:var(--good-line);}.note.resolved b{color:var(--good-text);}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:var(--space-5);}.stat-tile{background:var(--bg-app);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;}.stat-label{color:var(--text-muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;}.stat-value{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;}.stat-delta{font-size:11.5px;margin-top:4px;color:var(--text-muted);}.chart-row{display:grid;grid-template-columns:1.3fr 1fr;gap:14px;margin-bottom:var(--space-5);}.chart-row-alt{grid-template-columns:1fr 1.3fr;}@media (max-width:900px){.chart-row,.chart-row-alt{grid-template-columns:1fr;}}.chart-card{background:var(--bg-app);border:1px solid var(--border);border-radius:var(--radius);padding:16px;}.chart-title{font-size:13px;font-weight:700;margin-bottom:2px;}.chart-sub{font-size:11.5px;color:var(--text-muted);margin-bottom:12px;}.bar-row{display:flex;align-items:center;gap:10px;margin:7px 0;}.bar-label{width:150px;flex:none;font-size:12px;color:var(--text-secondary);}.bar-track{flex:1;background:var(--grid);border-radius:4px;height:14px;overflow:hidden;}.bar-fill{height:100%;border-radius:4px;}.bar-value{width:34px;flex:none;text-align:right;font-size:12px;font-variant-numeric:tabular-nums;color:var(--text-secondary);}.row-hint{color:var(--text-muted);font-size:11.5px;margin:-10px 0 12px;}table{width:100%;border-collapse:collapse;background:var(--bg-app);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}