/* ЦКЭИ Аналитика — система стилей v4 (редизайн 19.10.2026).
   Принципы: HIG (контраст ≥4,5:1, размеры в rem, светлая/тёмная тема по системе, уменьшенное движение),
   плотный аналитический дашборд (сетка, иерархия, табличные цифры), один акцент — петроль,
   статусные цвета только для состояний. Шрифты вложены в систему (монолит, CSP default-src 'self'):
   Inter — интерфейс и текст, Manrope — крупные числа и фирменный знак. */

@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/inter-regular.4ce8f5f1e5f2.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/inter-medium.e69ab360867a.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/inter-semibold.1dc5b4e75dfd.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/inter-bold.c828aca1297b.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;src:url("../fonts/manrope-var.cfae9d77983f.woff2") format("woff2")}

:root{
  --bg:#F3F6F8; --surface:#FFFFFF; --surface-2:#F7F9FB; --surface-3:#EDF1F4;
  --ink:#0F1B22; --ink-2:#3E515E; --muted:#5C6F7D; --line:#E0E6EB; --line-2:#EBF0F3;
  --accent:#0E6B77; --accent-2:#1A8E9B; --accent-hover:#0B5A64; --accent-ink:#FFFFFF; --accent-soft:#E2F1F3; --accent-line:#A3D1D7; --accent-glow:rgba(14,107,119,.14);
  --good:#15703C; --good-soft:#DFF3E6; --warn:#875100; --warn-soft:#FBEED5; --crit:#A5252E; --crit-soft:#FBE3E5; --info:#1D5CA3; --info-soft:#E2ECF8;
  --c1:#2a78d6; --c2:#eb6834; --c3:#1baf7a; --c4:#eda100; --c5:#e87ba4; --c6:#008300; --c7:#4a3aa7; --c8:#e34948;
  --focus:#0E6B77;
  /* тёмная боковая панель — одинаковая в обеих темах */
  --side:#0C2730; --side-2:#0A1F27; --side-ink:#EEF5F6; --side-ink-2:#C2D4D9; --side-muted:#86A6AE; --side-line:rgba(255,255,255,.09); --side-hover:rgba(255,255,255,.06); --side-on:rgba(255,255,255,.11); --side-accent:#5ED0DC;
  --shadow-sm:0 1px 2px rgba(15,27,34,.05);
  --shadow:0 1px 2px rgba(15,27,34,.04),0 10px 28px -10px rgba(15,27,34,.14);
  --shadow-lg:0 2px 4px rgba(15,27,34,.05),0 24px 56px -16px rgba(15,27,34,.22);
  --r:14px; --r-sm:10px; --r-xs:8px;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --display:"Manrope","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --ease:cubic-bezier(.2,.7,.2,1); --t:.16s;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#0B1115; --surface:#121A20; --surface-2:#161F26; --surface-3:#1C262E;
  --ink:#E8EEF2; --ink-2:#B6C3CD; --muted:#8C9DAA; --line:#263239; --line-2:#1F2A31;
  --accent:#4DBFCB; --accent-2:#6ED2DC; --accent-hover:#6CCDD7; --accent-ink:#06191C; --accent-soft:#143338; --accent-line:#245A60; --accent-glow:rgba(77,191,203,.16);
  --good:#56C788; --good-soft:#15301F; --warn:#EBA743; --warn-soft:#3A2A10; --crit:#F37C84; --crit-soft:#3B1B1E; --info:#82B4F0; --info-soft:#17283B;
  --c1:#3987e5; --c2:#d95926; --c3:#199e70; --c4:#c98500; --c5:#d55181; --c6:#2a9a2a; --c7:#9085e9; --c8:#e66767;
  --focus:#6CCDD7;
  --side:#0A1519; --side-2:#070F12;
  --shadow-sm:none; --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px -10px rgba(0,0,0,.5); --shadow-lg:0 2px 4px rgba(0,0,0,.4),0 24px 56px -16px rgba(0,0,0,.6);
}}
:root[data-theme="dark"]{
  --bg:#0B1115; --surface:#121A20; --surface-2:#161F26; --surface-3:#1C262E;
  --ink:#E8EEF2; --ink-2:#B6C3CD; --muted:#8C9DAA; --line:#263239; --line-2:#1F2A31;
  --accent:#4DBFCB; --accent-2:#6ED2DC; --accent-hover:#6CCDD7; --accent-ink:#06191C; --accent-soft:#143338; --accent-line:#245A60; --accent-glow:rgba(77,191,203,.16);
  --good:#56C788; --good-soft:#15301F; --warn:#EBA743; --warn-soft:#3A2A10; --crit:#F37C84; --crit-soft:#3B1B1E; --info:#82B4F0; --info-soft:#17283B;
  --c1:#3987e5; --c2:#d95926; --c3:#199e70; --c4:#c98500; --c5:#d55181; --c6:#2a9a2a; --c7:#9085e9; --c8:#e66767;
  --focus:#6CCDD7;
  --side:#0A1519; --side-2:#070F12;
  --shadow-sm:none; --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px -10px rgba(0,0,0,.5); --shadow-lg:0 2px 4px rgba(0,0,0,.4),0 24px 56px -16px rgba(0,0,0,.6);
}

/* ---------- основа ---------- */
*{box-sizing:border-box}
html{font-size:100%;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:0.875rem/1.5 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss03","calt"}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:2px}
h1,h2,h3{margin:0;color:var(--ink);text-wrap:balance}
p{margin:0}
img{max-width:100%}
::selection{background:var(--accent-soft);color:var(--ink)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}
.vh{position:absolute;left:0;top:0;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-40px;z-index:50;background:var(--accent);color:var(--accent-ink);padding:8px 12px;border-radius:8px}
.skip:focus{top:12px}
.i{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.i.xs{width:12px;height:12px;vertical-align:-1px;stroke-width:2.2}
.i.sm{width:14px;height:14px;vertical-align:-2px}
.i.lg{width:28px;height:28px;stroke-width:1.5}
.code{font-family:var(--mono);font-size:0.8125rem;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.num{font-family:var(--mono);font-size:0.8125rem;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.lt{color:var(--muted)}
.ink{color:var(--ink);font-weight:500}
.strong{font-weight:600;color:var(--ink)}
a.strong:hover{color:var(--accent)}
.small{font-size:0.75rem}
.clip{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wrap{white-space:normal;min-width:260px}

/* ---------- каркас ---------- */
.app{display:grid;grid-template-columns:256px minmax(0,1fr);min-height:100vh}
.side{background:linear-gradient(180deg,var(--side) 0%,var(--side-2) 100%);color:var(--side-ink);padding:18px 14px 14px;display:flex;flex-direction:column;gap:12px;position:sticky;top:0;height:100vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--side-line) transparent}
.side::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(520px 260px at -10% -10%,rgba(94,208,220,.14),transparent 60%)}
.side > *{position:relative;z-index:1}
.brand{display:flex;align-items:center;gap:11px;padding:4px 8px 12px;color:var(--side-ink);text-decoration:none}
.brand:hover{text-decoration:none}
.brand .mark{width:38px;height:38px;flex:none;border-radius:11px;background:#fff;color:#fff;display:grid;place-items:center;box-shadow:0 6px 16px -6px rgba(0,0,0,.5)}
.brand .mark img{width:28px;height:32px;object-fit:contain;display:block}
.brand .mark .i{width:22px;height:22px;stroke-width:2}
.brand b{display:block;font:700 0.9375rem/1.2 var(--display);letter-spacing:-.01em}
.brand small{display:block;font-size:0.75rem;color:var(--side-muted);margin-top:2px}
.nav{display:flex;flex-direction:column;gap:2px}
.nav .lbl{font-size:0.6563rem;letter-spacing:.09em;text-transform:uppercase;color:var(--side-muted);padding:14px 12px 6px;font-weight:600}
.nav a{position:relative;display:flex;align-items:center;gap:11px;padding:8px 12px;min-height:38px;border-radius:10px;color:var(--side-ink-2);font-weight:500;text-decoration:none;transition:background var(--t) var(--ease),color var(--t) var(--ease)}
.nav a .i{width:18px;height:18px;color:var(--side-muted);transition:color var(--t) var(--ease)}
.nav a:hover{background:var(--side-hover);color:var(--side-ink);text-decoration:none}
.nav a:hover .i{color:var(--side-ink)}
.nav a[aria-current="page"]{background:var(--side-on);color:#fff;font-weight:600}
.nav a[aria-current="page"]::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--side-accent)}
.nav a[aria-current="page"] .i{color:var(--side-accent)}
.nav .cnt{margin-left:auto;font:500 0.6875rem var(--mono);color:var(--side-muted)}
.nav a:focus-visible{outline-color:var(--side-accent)}
.user{margin-top:auto;display:flex;align-items:center;gap:10px;padding:14px 6px 2px;border-top:1px solid var(--side-line)}
.user .who{flex:1;min-width:0}
.user b{display:block;font-size:0.8125rem;color:var(--side-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user small{display:block;font-size:0.75rem;color:var(--side-muted)}
.user form{margin:0}
.user .icon-btn{color:var(--side-muted)}
.user .icon-btn:hover{background:var(--side-hover);color:#fff}
.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(145deg,var(--accent-2),var(--accent));color:#fff;display:grid;place-items:center;font:700 0.75rem var(--display);flex:none;box-shadow:0 0 0 2px rgba(255,255,255,.08)}
.main{padding:28px 36px 40px;min-width:0;outline:none;background:radial-gradient(1100px 340px at 10% -8%,var(--accent-glow),transparent 62%)}
.topbar{display:none}
.menu-btn.icon-btn{display:none}
.scrim{position:fixed;inset:0;background:rgba(5,15,19,.5);z-index:39;backdrop-filter:blur(2px)}
.app-footer{margin-top:44px;padding-top:16px;border-top:1px solid var(--line);font-size:0.75rem;color:var(--muted);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* ---------- заголовок страницы ---------- */
.crumbs{display:flex;gap:6px;align-items:center;font-size:0.8125rem;color:var(--muted);margin-bottom:8px;flex-wrap:wrap}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--accent)}
.top{display:flex;align-items:flex-end;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.top > div:first-child{flex:1;min-width:240px}
.top h1{font-size:1.75rem;font-weight:700;letter-spacing:-.025em;line-height:1.15;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.top h1.h-doc{font-size:1.25rem;font-weight:650;line-height:1.3;letter-spacing:-.01em}
.top .sub{color:var(--muted);margin-top:6px;font-size:0.9375rem}
.top-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* ---------- кнопки ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:7px 14px;min-height:36px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 0.8125rem/1.2 var(--sans);cursor:pointer;text-decoration:none;white-space:nowrap;box-shadow:var(--shadow-sm);transition:background var(--t) var(--ease),border-color var(--t) var(--ease),box-shadow var(--t) var(--ease),transform var(--t) var(--ease)}
.btn:hover{background:var(--surface-2);border-color:color-mix(in srgb,var(--line) 50%,var(--ink-2));text-decoration:none}
.btn:active{transform:translateY(1px);box-shadow:none}
.btn.pri{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 86%,#fff),var(--accent));border-color:var(--accent-hover);color:var(--accent-ink);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 1px 2px rgba(0,0,0,.08),0 4px 12px -4px var(--accent-glow)}
.btn.pri:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--accent);box-shadow:none}
.btn.ghost:hover{background:var(--accent-soft);border-color:transparent}
.btn.sm{min-height:30px;padding:4px 10px;font-size:0.75rem;border-radius:8px}
.btn[aria-disabled="true"]{opacity:.45;pointer-events:none}
.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:9px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;flex:none;transition:background var(--t) var(--ease),color var(--t) var(--ease)}
.icon-btn:hover{background:var(--surface-3);color:var(--ink)}

/* ---------- фильтры и поля ---------- */
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.chip,.filters select,.filters input[type=date]{min-height:36px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:6px 12px;font:500 0.8125rem var(--sans);cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease)}
.filters select,select.chip{appearance:none;-webkit-appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235C6F7D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
.filters select:hover,.filters input:hover,.chip:hover{border-color:color-mix(in srgb,var(--line) 50%,var(--ink-2))}
.filters select:focus,.filters input:focus,.search input:focus,.inline-form select:focus,.inline-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.filters label.chip{display:inline-flex;align-items:center;gap:6px}
a.chip{display:inline-flex;align-items:center;text-decoration:none;color:var(--ink-2);font-weight:500}
a.chip:hover{background:var(--surface-2)}
a.chip[aria-current="true"]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line);font-weight:600}
.type-chips{margin-top:-6px;gap:6px}
.type-chips .chip{min-height:30px;padding:4px 11px;font-size:0.75rem;border-radius:999px}
.search{position:relative;min-width:240px}
.search.grow{flex:1;max-width:560px}
.search .i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.search input{width:100%;min-height:36px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:7px 12px 7px 36px;font:0.8125rem var(--sans);box-shadow:var(--shadow-sm);transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease)}
.search input::placeholder{color:var(--muted)}
.seg{display:flex;gap:2px;padding:3px;background:var(--surface-3);border-radius:11px;width:max-content;max-width:100%;overflow-x:auto;margin-bottom:16px}
.seg a{padding:6px 14px;border-radius:9px;color:var(--ink-2);font-weight:500;font-size:0.8125rem;white-space:nowrap;text-decoration:none;transition:color var(--t) var(--ease)}
.seg a:hover{color:var(--ink);text-decoration:none}
.seg a[aria-current="page"]{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--shadow-sm),0 0 0 1px var(--line)}
.seg .cnt,.cnt{font:500 0.6875rem var(--mono);color:var(--muted);margin-left:4px}

/* ---------- плитки показателей ---------- */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:18px}
.tile{position:relative;display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px 16px;color:var(--ink);text-decoration:none;min-width:0;box-shadow:var(--shadow-sm);overflow:hidden}
.tile .k{font-size:0.8125rem;color:var(--muted);font-weight:500;display:flex;align-items:center;gap:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile .k .i{width:28px;height:28px;padding:6px;border-radius:8px;background:var(--accent-soft);color:var(--accent);vertical-align:middle}
.tile .v{font:800 2rem/1.1 var(--display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";margin-top:2px}
.tile .v small{font:500 0.8125rem var(--sans);color:var(--muted);margin-left:6px;letter-spacing:0}
.tile .d{font-size:0.75rem;color:var(--muted);line-height:1.4}
.tile.link{transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease),transform var(--t) var(--ease)}
.tile.link:hover{border-color:var(--accent-line);box-shadow:var(--shadow);transform:translateY(-2px);text-decoration:none}
.tile.warn{border-color:color-mix(in srgb,var(--crit) 35%,var(--line))}
.tile.warn .v{color:var(--crit)}
.tile.warn .k .i{background:var(--crit-soft);color:var(--crit)}
.tile.amber{border-color:color-mix(in srgb,var(--warn) 35%,var(--line))}
.tile.amber .v{color:var(--warn)}
.tile.amber .k .i{background:var(--warn-soft);color:var(--warn)}

/* ---------- панели ---------- */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;min-width:0;box-shadow:var(--shadow-sm)}
.panel.flush{padding:0;overflow:hidden}
.panel h2{font-size:1rem;font-weight:650;letter-spacing:-.01em;margin:0 0 4px;display:flex;align-items:center;gap:6px}
.panel .hint{font-size:0.8125rem;color:var(--muted);margin:0 0 14px}
.panel .head{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}
.panel .head > div:first-child{flex:1;min-width:0}
.panel .head .tools{display:flex;gap:6px}
.panel-head{display:flex;align-items:center;gap:8px;padding:12px 18px;border-bottom:1px solid var(--line-2);font-size:0.8125rem;color:var(--muted);background:var(--surface-2)}
.panel-head b{color:var(--ink);font-weight:650}
.panel-head > .i:first-child{color:var(--accent)}
.panel-foot{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--line-2);background:var(--surface-2)}
.panel-foot .lt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:0.8125rem}
.grid,.grid2{display:grid;gap:16px;margin-bottom:16px}
.grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}
.grid2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.cols{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;align-items:start}
.cols.wide-left{grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr)}
.stack{display:flex;flex-direction:column;gap:16px;min-width:0}
.note{font-size:0.8125rem;color:var(--muted);margin-top:12px;display:flex;gap:6px;align-items:flex-start;flex-wrap:wrap}
.insight{font-size:0.8125rem;color:var(--ink-2);margin:0 0 10px;padding:9px 12px;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0}

/* ---------- таблицы ---------- */
.tw{overflow-x:auto}
.tw.scroll-y{max-height:420px;overflow-y:auto}
table{width:100%;border-collapse:collapse;font-size:0.8125rem}
th{text-align:left;font-size:0.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface)}
th a{color:var(--muted)}
th a:hover{color:var(--accent);text-decoration:none}
th.r{text-align:right}
td{padding:10px 12px;border-bottom:1px solid var(--line-2);vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:color-mix(in srgb,var(--accent-soft) 45%,var(--surface))}
table.data thead th{position:sticky;top:0;z-index:1}
table.compact td{padding:7px 12px}
.panel > .tw > table th:first-child,.panel > .tw > table td:first-child{padding-left:18px}
.panel > .tw > table th:last-child,.panel > .tw > table td:last-child{padding-right:18px}

/* ---------- метки и статусы ---------- */
.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:7px;background:var(--surface-3);color:var(--ink-2);font-size:0.75rem;font-weight:500;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.tag.muted{background:transparent;border:1px dashed var(--line);color:var(--muted)}
.pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:var(--surface-2);font-size:0.75rem;color:var(--ink-2);font-weight:500;border:1px solid var(--line)}
.status{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;font-size:0.75rem;font-weight:600;white-space:nowrap;line-height:1.6;vertical-align:middle;box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 14%,transparent)}
.top h1 .status{font-size:0.8125rem}
.s-done{background:var(--good-soft);color:var(--good)}
.s-in_work,.s-new{background:var(--info-soft);color:var(--info)}
.s-control{background:var(--warn-soft);color:var(--warn)}
.s-overdue{background:var(--crit-soft);color:var(--crit)}
.s-cancelled,.s-unknown{background:var(--surface-3);color:var(--muted)}
.s-work{background:var(--surface-3);color:var(--ink-2)}
.s-wait{background:var(--warn-soft);color:var(--warn)}
.s-late{background:var(--crit-soft);color:var(--crit)}
.over{color:var(--crit);font-weight:600}
.act{font-weight:600;font-size:0.75rem;padding:2px 8px;border-radius:7px;white-space:nowrap}
.a-upd{background:var(--info-soft);color:var(--info)}.a-new{background:var(--good-soft);color:var(--good)}.a-del{background:var(--crit-soft);color:var(--crit)}.a-in{background:var(--surface-3);color:var(--ink-2)}
.diff{font-family:var(--mono);font-size:0.75rem;word-break:break-word}
.diff s{color:var(--crit)}
.diff em{font-style:normal;color:var(--good)}
.diff .arr{color:var(--muted);margin:0 6px}

/* ---------- ход работ ---------- */
.steps{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.steps .bar{display:inline-flex;gap:3px}
.steps .bar i{width:12px;height:6px;border-radius:3px;background:var(--line)}
.steps .bar i.d{background:var(--good)}
.steps .t{font:500 0.75rem var(--mono);color:var(--ink-2)}
.timeline{list-style:none;margin:6px 0 14px;padding:0;position:relative}
.timeline li{display:flex;gap:12px;padding:6px 0;position:relative}
.timeline li::before{content:"";position:absolute;left:6px;top:20px;bottom:-6px;width:2px;background:var(--line-2)}
.timeline li:last-child::before{display:none}
.timeline .dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--line);background:var(--surface);flex:none;margin-top:3px;position:relative;z-index:1}
.timeline li.done .dot{background:var(--good);border-color:var(--good);box-shadow:0 0 0 3px var(--good-soft)}
.timeline li.done::before{background:color-mix(in srgb,var(--good) 40%,var(--line-2))}
.timeline b{display:block;font-weight:600;font-size:0.8125rem}
.timeline li:not(.done) b{color:var(--ink-2);font-weight:500}

/* ---------- файлы, просмотр ---------- */
.filelist{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column}
.filelist li{display:flex;align-items:center;gap:10px;padding:9px 8px;border-bottom:1px solid var(--line-2);font-size:0.8125rem;border-radius:8px;transition:background var(--t) var(--ease)}
.filelist li:hover{background:var(--surface-2)}
.filelist li:last-child{border-bottom:0}
.filelist li.on{background:var(--accent-soft)}
.filelist li > a,.filelist li > span:not(.lt):not(.tag){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.filelist .i{color:var(--muted)}
.preview{border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--surface-3);margin:8px 0 10px}
.preview iframe{display:block;width:100%;height:420px;border:0;background:#fff}
.preview img{display:block;margin:0 auto;max-height:420px;object-fit:contain}
.viewer{background:var(--surface-3);min-height:520px;display:grid;place-items:center}
.viewer iframe{display:block;width:100%;height:76vh;min-height:520px;border:0;background:#fff}
.viewer img{display:block;max-height:76vh;object-fit:contain}
.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding-top:12px;border-top:1px solid var(--line-2);margin-top:10px}
.inline-form select,.inline-form input{min-height:36px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:6px 10px;font:0.8125rem var(--sans);max-width:100%}

/* ---------- формы ---------- */
.form-panel{max-width:960px}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}
.form .full{grid-column:1/-1}
.f label{display:block;font-size:0.8125rem;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.f input:not([type=checkbox]):not([type=file]),.f select,.f textarea{width:100%;min-height:38px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:8px 12px;font:0.875rem var(--sans);box-shadow:var(--shadow-sm);transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease)}
.f textarea{resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.f.has-err input,.f.has-err select,.f.has-err textarea{border-color:var(--crit)}
.f .help{font-size:0.75rem;color:var(--muted);margin-top:5px}
.f .ferr,.ferr{font-size:0.75rem;color:var(--crit);margin-top:5px;font-weight:500}
.req{color:var(--crit)}
.fa{display:flex;gap:8px;justify-content:flex-end;grid-column:1/-1;padding-top:16px;margin-top:6px;border-top:1px solid var(--line-2)}
.drop{border:1.5px dashed var(--accent-line);border-radius:12px;padding:16px;background:color-mix(in srgb,var(--accent-soft) 40%,var(--surface));display:flex;flex-direction:column;gap:8px;align-items:flex-start;color:var(--muted);font-size:0.8125rem}
tr.f select,tr.f input{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:7px 9px;font:0.8125rem var(--sans)}
.errorlist{list-style:none;padding:0;margin:4px 0 0;color:var(--crit);font-size:0.75rem}

/* ---------- сообщения ---------- */
.banner{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:12px;font-size:0.8125rem;font-weight:500;margin-bottom:16px;background:var(--info-soft);color:var(--info);border:1px solid color-mix(in srgb,currentColor 16%,transparent)}
.banner > .i{flex:none}
.banner.err{background:var(--crit-soft);color:var(--crit)}
.banner.warn{background:var(--warn-soft);color:var(--warn)}
.toasts{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.toast{display:flex;align-items:center;gap:10px;padding:10px 12px 10px 14px;border-radius:12px;background:var(--good-soft);color:var(--good);font-weight:500;font-size:0.8125rem;border:1px solid color-mix(in srgb,currentColor 16%,transparent);box-shadow:var(--shadow-sm);animation:toast-in .25s var(--ease)}
.toast.error{background:var(--crit-soft);color:var(--crit)}
.toast span{flex:1}
.toast .icon-btn{color:inherit}
@keyframes toast-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:36px 16px;text-align:center;color:var(--muted);font-size:0.8125rem}
.empty b{color:var(--ink);font-size:0.9375rem}
.empty .i{color:var(--accent);width:52px;height:52px;padding:13px;border-radius:50%;background:var(--accent-soft);margin-bottom:6px;stroke-width:1.6}
.empty.tall{min-height:420px;justify-content:center}
.empty .btn{margin-top:8px}

/* ---------- ключ-значение ---------- */
.kv{display:grid;grid-template-columns:max-content 1fr;gap:9px 20px;font-size:0.8125rem;margin:8px 0 0}
.kv dt{color:var(--muted)}
.kv dd{margin:0;font-weight:500;min-width:0;overflow-wrap:anywhere}
.kv.two{grid-template-columns:max-content minmax(0,1fr)}

/* ---------- вкладки (мониторинг) ---------- */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:0 0 16px;overflow-x:auto}
.tabs a,.tabs button{padding:9px 12px;font-size:0.8125rem;color:var(--muted);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;text-decoration:none;white-space:nowrap;background:none;border-top:0;border-left:0;border-right:0;cursor:pointer;transition:color var(--t) var(--ease)}
.tabs a:hover{color:var(--ink);text-decoration:none}
.tabs a[aria-selected="true"]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}

/* ---------- пагинация ---------- */
.pager{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 18px;border-top:1px solid var(--line-2);font-size:0.8125rem;background:var(--surface-2)}

/* ---------- графики ---------- */
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:0.8125rem;color:var(--ink-2);margin:4px 0 6px}
.chart-box{height:320px}
.chart-box.tall{height:440px}
.hbars{display:grid;grid-template-columns:auto 1fr auto;gap:12px 12px;align-items:center;font-size:0.8125rem}
.hbars .n{color:var(--ink-2);font-weight:500;white-space:nowrap}
.hbars .b{height:10px;border-radius:999px;background:var(--c1);min-width:3px;transition:opacity var(--t) var(--ease)}
.hbars .v{font:500 0.8125rem var(--mono);color:var(--ink-2);text-align:right}
.hbars a{display:contents;color:inherit}
.hbars a:hover .n{color:var(--accent)}
.hbars a:hover .b{opacity:.8}

/* ---------- карта точек (схема) ---------- */
.map{height:220px;border-radius:12px;position:relative;border:1px solid var(--line);overflow:hidden;
  background:repeating-linear-gradient(0deg,var(--line-2) 0 1px,transparent 1px 28px),repeating-linear-gradient(90deg,var(--line-2) 0 1px,transparent 1px 28px),var(--surface-2)}
.map .pt{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--ink-2);border:2px solid var(--surface);box-shadow:0 0 0 1px var(--ink-2)}
.map a.pt{display:block}
.map .pt.on{background:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 0 6px color-mix(in srgb,var(--accent) 20%,transparent);width:13px;height:13px;margin:-6px 0 0 -6px}
.map .pl{position:absolute;font:500 0.6875rem var(--mono);color:var(--ink-2);background:var(--surface);padding:1px 5px;border-radius:4px;border:1px solid var(--line);white-space:nowrap;pointer-events:none}
.map .cr{position:absolute;left:8px;bottom:6px;font-size:0.6875rem;color:var(--muted)}

/* ---------- страница входа ---------- */
.auth-body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}
.auth-shell{flex:1;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:100vh}
.auth-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:40px 48px;color:var(--side-ink);
  background:linear-gradient(160deg,#0F3842 0%,#0C2730 48%,#081A20 100%)}
.auth-hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-radial-gradient(circle at 82% 70%,transparent 0 46px,rgba(255,255,255,.05) 46px 47px),radial-gradient(600px 420px at 85% 72%,rgba(94,208,220,.22),transparent 65%),radial-gradient(400px 300px at 0% 0%,rgba(94,208,220,.10),transparent 60%)}
.auth-hero::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 44px),repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 44px);mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 80%)}
.auth-hero > *{position:relative;z-index:1}
.auth-hero .brand{padding:0;color:var(--side-ink)}
.auth-hero .brand .mark{width:44px;height:44px;border-radius:13px}
.auth-hero .brand .mark img{width:32px;height:36px}
.auth-hero .brand b{font-size:1.0625rem}
.auth-hero .brand small{color:var(--side-muted)}
.auth-hero .lead{max-width:460px;margin:auto 0;padding:48px 0}
.auth-hero .lead h2{font:700 2.125rem/1.15 var(--display);letter-spacing:-.025em;color:#fff;margin:0 0 14px}
.auth-hero .lead p{font-size:0.9375rem;line-height:1.6;color:var(--side-ink-2);margin:0 0 26px}
.auth-hero .feats{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.auth-hero .feats li{display:flex;align-items:center;gap:12px;font-size:0.875rem;color:var(--side-ink-2)}
.auth-hero .feats .i{width:34px;height:34px;padding:8px;border-radius:10px;background:rgba(255,255,255,.08);color:var(--side-accent);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.auth-hero .fine{font-size:0.75rem;color:var(--side-muted);line-height:1.6}
.auth-side{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:40px 24px}
.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:32px 34px;width:100%;max-width:440px;box-shadow:var(--shadow-lg)}
.auth-card .brand{display:none}
.auth-card h1{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin:0 0 6px}
.auth-card h1 + .form1{margin-top:16px}
.auth-card .hint{font-size:0.8125rem;color:var(--muted);margin:0 0 16px;line-height:1.55}
.auth-footer{font-size:0.75rem;color:var(--muted);text-align:center;line-height:1.6}
.form1{display:flex;flex-direction:column;gap:14px}
.form1 .btn{width:100%;min-height:42px;font-size:0.875rem;margin-top:6px;border-radius:11px}
.form1 .f input{width:100%;min-height:42px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:11px;padding:9px 13px;font:0.9375rem var(--sans);box-shadow:var(--shadow-sm);transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease)}
.err{color:var(--crit);font-size:0.8125rem;margin:0 0 10px;font-weight:500;display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;background:var(--crit-soft)}
.qr{display:block;margin:0 auto 12px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:6px}
details{font-size:0.8125rem;color:var(--muted);margin-bottom:12px}
details code{display:block;word-break:break-all;margin-top:6px;font-size:0.7rem}

/* ---------- роли / пользователи ---------- */
.roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:16px}
.role{border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;background:var(--surface);box-shadow:var(--shadow-sm)}
.role b{display:block;font-size:0.875rem;margin-bottom:4px}
.role p{font-size:0.8125rem;color:var(--ink-2)}
.role .n{font:800 1.5rem/1.1 var(--display);letter-spacing:-.02em;font-feature-settings:"tnum"}
.who-cell{display:flex;align-items:center;gap:10px}
.who-cell .avatar{width:28px;height:28px;font-size:0.6875rem;box-shadow:none}

/* ---------- адаптив ---------- */
@media (max-width:1180px){.grid,.cols,.cols.wide-left{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}}
@media (max-width:900px){
  .app{grid-template-columns:1fr;background:none}
  .side{position:fixed;left:0;top:0;bottom:0;width:280px;z-index:40;transform:translateX(-100%);transition:transform .22s var(--ease);box-shadow:var(--shadow-lg)}
  .side.open{transform:none}
  .topbar{display:flex;align-items:center;gap:10px;padding:10px 12px;margin:-16px -16px 16px;background:var(--side);color:var(--side-ink);position:sticky;top:0;z-index:30}
  .topbar .brand{padding:0;gap:9px;flex:1;min-width:0}
  .topbar .brand .mark{width:32px;height:32px;border-radius:9px}
  .topbar .brand .mark img{width:22px;height:26px}
  .topbar .brand b{font-size:0.875rem}
  .topbar .brand small{display:none}
  .topbar .icon-btn{color:var(--side-ink);width:40px;height:40px}
  .topbar .icon-btn:hover{background:var(--side-hover);color:#fff}
  .main{padding:16px 16px 24px;background:none}
  .form{grid-template-columns:1fr}
  .top h1{font-size:1.5rem}
  .clip{max-width:180px}
  .auth-shell{grid-template-columns:1fr;min-height:auto}
  .auth-hero{padding:24px 20px;justify-content:flex-start;gap:16px}
  .auth-hero .lead{display:none}
  .auth-hero .fine{display:none}
  .auth-side{padding:24px 16px 16px;flex:1}
  .auth-card{padding:24px 22px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}.tile.link:hover{transform:none}}
@media print{.side,.topbar,.menu-btn,.top-actions,.filters,.pager,.app-footer{display:none!important}.app{display:block}.main{background:none}.panel{border:0;padding:0;box-shadow:none}}
.check{display:inline-flex;align-items:center;gap:8px;font-weight:500;font-size:0.875rem;color:var(--ink);margin:0 16px 8px 0;cursor:pointer}
.check input{width:16px;height:16px;accent-color:var(--accent)}
.checks{border:0;padding:0;margin:0}
.checks legend{font-size:0.8125rem;font-weight:600;color:var(--ink-2);margin-bottom:8px;padding:0}

/* ---------- сводная таблица ---------- */
.pivot-wrap{max-height:70vh;overflow:auto}
table.pivot{font-size:0.78rem;border-collapse:separate;border-spacing:0}
table.pivot th,table.pivot td{padding:6px 9px;border-bottom:1px solid var(--line-2);white-space:nowrap}
table.pivot thead th{position:sticky;top:0;z-index:2}
table.pivot .sticky{position:sticky;left:0;background:var(--surface);z-index:1;text-align:left;text-transform:none;letter-spacing:0;font-size:0.78rem;border-right:1px solid var(--line)}
table.pivot thead .sticky{z-index:3}
table.pivot td.hc{background:color-mix(in srgb,var(--accent) calc(var(--h) * 0.45%),transparent)}
table.pivot td.over-bg{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--crit) 55%,transparent);color:var(--crit);font-weight:600}
table.pivot sup{color:var(--muted);font-size:0.65rem;margin-left:1px}
table.pivot tfoot th,table.pivot tfoot td{border-top:1px solid var(--line);background:var(--surface-2)}
table.pivot tbody tr:hover td,table.pivot tbody tr:hover th{background-color:var(--surface-2)}

td a.code,td .code{white-space:nowrap}
td .tag{vertical-align:middle}
.timeline-hint{font-size:0.75rem;color:var(--muted);margin:-6px 0 10px}

/* ---------- качество данных ---------- */
.qgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.qcard{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink);text-decoration:none;box-shadow:var(--shadow-sm);transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease),transform var(--t) var(--ease)}
.qcard:hover{border-color:var(--accent-line);box-shadow:var(--shadow);transform:translateY(-2px);text-decoration:none}
.qcard .qn{font:800 1.875rem/1.1 var(--display);letter-spacing:-.03em;color:var(--good);font-feature-settings:"tnum"}
.qcard.has .qn{color:var(--warn)}
.qcard.info .qn{color:var(--info)}
.qcard .qt{font-weight:650;letter-spacing:-.005em}
.qcard .qh{font-size:0.8125rem;color:var(--muted);flex:1}
.qcard .qf{font-size:0.75rem;color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:6px;border-top:1px solid var(--line-2);padding-top:10px;margin-top:4px}
.panel-head.bulk{flex-wrap:wrap}
.panel-head .chip.grow{flex:1;min-width:240px;cursor:text}
.s-archive_open{background:var(--warn-soft);color:var(--warn)}

/* ---- правки консилиума (дизайн) ---- */
.panel.flush{overflow:clip}
.panel.flush > .tw{max-height:calc(100vh - 170px);overflow:auto}
.panel.flush > .tw.short{max-height:none}
td.code:first-child,table.data td:first-child.code{white-space:nowrap}
.s-unknown{background:transparent;color:var(--muted);font-weight:500;padding-left:0;box-shadow:none}
.heat-legend{display:flex;align-items:center;gap:8px;font-size:0.75rem;color:var(--muted)}
.heat-legend i{display:inline-block;width:120px;height:8px;border-radius:4px;background:linear-gradient(to right,transparent,color-mix(in srgb,var(--accent) 45%,transparent));border:1px solid var(--line)}
.heat-legend b{display:inline-block;width:14px;height:10px;border-radius:3px;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--crit) 55%,transparent)}
fieldset.block{border:0;padding:0;margin:0 0 6px;grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 18px}
fieldset.block legend{font-size:0.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:0 0 6px;margin-bottom:2px;width:100%;border-bottom:1px solid var(--line-2)}
fieldset.block .span2{grid-column:span 2}
fieldset.block .span4{grid-column:1/-1}
.drop input[type=file]{font:0.8125rem var(--sans);color:var(--ink-2)}
input[type=file]::file-selector-button{font:600 0.75rem var(--sans);padding:5px 10px;margin-right:10px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm)}
input[type=file]::file-selector-button:hover{background:var(--surface-2)}
.inline-form .drop{flex:1;padding:8px 10px;flex-direction:row;align-items:center}
.dir-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;vertical-align:1px}
@media (max-width:900px){fieldset.block{grid-template-columns:1fr 1fr}fieldset.block .span2{grid-column:1/-1}}
@media (max-width:600px){
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .tile{padding:14px}
  .tile .v{font-size:1.5rem}
  .tile .d{display:none}
  .tile .k .i{width:24px;height:24px;padding:5px}
  .filters select,.filters .chip{flex:1 1 calc(50% - 4px);min-width:0}
  .filters .search{flex:1 1 100%}
  .top h1{font-size:1.375rem}
  .panel.flush > .tw{max-height:none}
}

/* ---- консилиум р3 ---- */
.hbars .b.tone-good{background:var(--good)}.hbars .b.tone-warn{background:var(--warn)}.hbars .b.tone-muted{background:var(--muted);opacity:.55}.hbars .b.tone-info{background:var(--info)}
tr.group th{background:var(--surface-3);color:var(--ink-2);font-size:0.75rem;text-transform:none;letter-spacing:0;font-weight:650;padding:7px 18px;position:static}
.clip{max-width:220px}
td.obj{min-width:280px}
.warn-tag{background:var(--warn-soft);color:var(--warn);text-decoration:none;font-size:0.6875rem;padding:1px 6px}
details.more{margin-top:10px;border-top:1px solid var(--line-2);padding-top:8px}
details.more summary{cursor:pointer;color:var(--accent);font-weight:600;font-size:0.8125rem}
details.more .inline-form{border-top:0;margin-top:4px}
.filelist li > a,.filelist li > span:not(.lt):not(.tag){white-space:normal;overflow-wrap:anywhere}
@media (max-width:600px){
  .tile .k{white-space:normal}
  table.data .hide-sm{display:none}
  table.data td .tag.under{display:block;width:max-content;margin-top:4px}
}
.tag.under{display:none}
@media (max-width:600px){table.data td .tag.under{display:inline-flex}}

/* ---- этап 1: кабинет и заявки ---- */
.user b a{color:inherit;text-decoration:none}
.user b a:hover,.user b a:focus-visible{color:#fff;text-decoration:underline}
.auth-alt{margin-top:16px;text-align:center;font-size:0.8125rem;color:var(--muted)}
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.form1 .f select,.form1 .f textarea{width:100%;min-height:42px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:11px;padding:9px 13px;font:0.9375rem var(--sans);box-shadow:var(--shadow-sm)}
.form1 .f select:focus,.form1 .f textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.form1 .f .ferr{margin-top:5px}
.pw{font-size:1.125rem;letter-spacing:.08em;user-select:all;background:var(--surface-2);padding:4px 10px;border-radius:8px;border:1px dashed var(--line)}
.filelist li .tag{flex:none}
.tabs .cnt{margin-left:6px;font:500 0.6875rem var(--mono);color:var(--muted)}

/* ---- этап 1: версии ---- */
.versions{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.version{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 18px;box-shadow:var(--shadow-sm)}
.version.current{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.version .vhead{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:0.8125rem;color:var(--muted)}
.version .vnum{font:650 0.9375rem var(--mono);color:var(--ink)}
.version .vhead .btn{margin-left:auto}
.version .vreason{margin:6px 0 0;font-size:0.8125rem;color:var(--ink-2)}
.vdiff{margin-top:10px;font-size:0.8125rem;border-collapse:collapse}
.vdiff th{text-align:left;font-weight:500;color:var(--muted);padding:3px 12px 3px 0;white-space:nowrap;vertical-align:top}
.vdiff td{padding:3px 0}
.tag.cur{background:var(--accent-soft);color:var(--accent)}
.version details.more .kv{font-size:0.75rem}
.version details.more ul{margin:6px 0 0;padding-left:18px;font-size:0.75rem}

/* ---- этап 1: маршрут проверки и утверждения ---- */
.s-none,.s-draft{background:var(--surface-3);color:var(--ink-2)}
.s-review{background:var(--warn-soft);color:var(--warn)}
.s-rework{background:var(--crit-soft);color:var(--crit)}
.s-approval{background:var(--info-soft);color:var(--info)}
.s-approved{background:var(--good-soft);color:var(--good)}
.s-archived{background:var(--surface-3);color:var(--muted)}
.s-preliminary,.s-archive{background:var(--surface-3);color:var(--muted)}
.s-checked{background:var(--info-soft);color:var(--info)}
.tag.ok{background:var(--good-soft);color:var(--good)}
.route .h3{font-size:0.8125rem;font-weight:650;margin:16px 0 6px;display:flex;align-items:center;gap:6px}
.route .steps{margin-bottom:4px}
.remarks{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.remark{border-left:3px solid var(--warn);background:var(--surface-2);border-radius:0 10px 10px 0;padding:8px 12px;font-size:0.8125rem}
.remark.resolved{border-left-color:var(--good);opacity:.85}
.remark .rtext{color:var(--ink);font-weight:500}
.remark .rmeta{margin-top:4px}
.remark .inline-form{padding-top:8px;margin-top:8px}
.remark .inline-form input{flex:1;min-width:160px}
.route .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line-2)}
.route .action{position:relative}
.route .action summary{list-style:none}
.route .action summary::-webkit-details-marker{display:none}
.route .action[open] summary{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.route .action form{margin-top:8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);display:grid;gap:6px;min-width:min(420px,100%)}
.route .action form .hint{margin:0}
.route .action form label{font-size:0.8125rem;font-weight:600;color:var(--ink-2)}
.route .action form textarea{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:8px 12px;font:0.875rem var(--sans);resize:vertical}
.route .action form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.route .action form .fa{padding-top:8px;margin-top:0}
.route .action form .banner{margin-bottom:4px}
.version.approved{border-color:color-mix(in srgb,var(--good) 55%,var(--line))}
.version.approved.current{box-shadow:0 0 0 3px var(--good-soft)}
