/* КНАМ Договоры: «Корешок и очередь» */
:root{
  color-scheme: light;
  --font-ui: "IBM Plex Sans", system-ui, "Segoe UI", sans-serif;
  --font-data: "IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;
  --fs-meta: .78125rem;
  --fs-table: .875rem;
  --fs-base: .9375rem;
  --fs-lg: 1.125rem;
  --fs-xl: 1.35rem;
  --fs-2xl: 1.62rem;
  --lh-tight: 1.2; --lh-base: 1.45; --lh-table: 20px;
  --row-h: 44px; --control-h: 40px; --control-h-touch: 44px;
  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 20px; --s-6: 24px; --s-8: 32px; --s-10: 40px; --s-12: 48px;
  --r-sm: 6px; --r-md: 8px; --r-lg: 12px; --r-pill: 999px;
  --z-sticky: 10; --z-nav: 20; --z-pop: 30; --z-toast: 40; --z-sheet: 50;
  --side-w: 224px; --rail-w: 88px; --queue-label-w: 208px; --mbar-h: 64px; --mtop-h: 56px;
  --ease-out: cubic-bezier(.22,1,.36,1);
  --ease-inout: cubic-bezier(.65,0,.35,1);
  --d-fast: 140ms; --d-base: 200ms; --d-exit: 160ms; --d-toast: 260ms; --d-sheet: 320ms;

  --bg: oklch(0.992 0.003 210);      --surface: oklch(1 0 0);
  --surface-2: oklch(0.967 0.011 210); --surface-3: oklch(0.945 0.014 210);
  --line: oklch(0.905 0.01 215);     --line-strong: oklch(0.80 0.014 215);
  --control-line: oklch(0.62 0.02 220);
  --ink: oklch(0.225 0.022 228);     --ink-2: oklch(0.40 0.02 228);   --ink-3: oklch(0.505 0.018 228);
  --nav-bg: oklch(0.285 0.058 219);  --nav-bg-2: oklch(0.335 0.066 216);
  --nav-ink: oklch(0.965 0.008 210); --nav-ink-2: oklch(0.80 0.03 210); --nav-line: oklch(0.38 0.05 216);
  --accent: oklch(0.49 0.092 208);   --accent-hover: oklch(0.43 0.09 210); --accent-press: oklch(0.39 0.085 212);
  --on-accent: oklch(0.99 0.004 210); --accent-ink: oklch(0.42 0.088 210); --accent-soft: oklch(0.955 0.022 205);
  --focus: oklch(0.55 0.13 205);
  --warn-ink: oklch(0.47 0.11 58);   --warn-soft: oklch(0.965 0.035 80);  --warn-line: oklch(0.80 0.10 72);
  --ok-ink: oklch(0.45 0.10 155);    --ok-soft: oklch(0.962 0.03 155);    --ok-line: oklch(0.80 0.08 155);
  --danger-ink: oklch(0.50 0.16 27); --danger-soft: oklch(0.965 0.02 25);
  --draft-ink: oklch(0.42 0.06 245); --draft-soft: oklch(0.96 0.018 245); --draft-line: oklch(0.78 0.05 245);
  --dir-krkc: oklch(0.49 0.092 208); --dir-kr: oklch(0.60 0.08 195);     --dir-jb: oklch(0.36 0.06 235);
  --skeleton: oklch(0.93 0.01 215);
  --shadow-pop: 0 1px 2px oklch(0.2 0.03 220 / .08), 0 8px 24px oklch(0.2 0.03 220 / .12);
  --shadow-sheet: 0 -8px 32px oklch(0.2 0.03 220 / .18);
  --scrim: oklch(0.2 0.03 220 / .40);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;
    --bg: oklch(0.172 0.012 222);      --surface: oklch(0.205 0.014 222);
    --surface-2: oklch(0.232 0.02 218); --surface-3: oklch(0.262 0.022 218);
    --line: oklch(0.305 0.016 222);    --line-strong: oklch(0.42 0.02 222);
    --control-line: oklch(0.52 0.02 222);
    --ink: oklch(0.945 0.007 210);     --ink-2: oklch(0.80 0.012 215);  --ink-3: oklch(0.70 0.014 215);
    --nav-bg: oklch(0.235 0.05 218);   --nav-bg-2: oklch(0.29 0.06 215);
    --nav-ink: oklch(0.96 0.008 210);  --nav-ink-2: oklch(0.79 0.03 210); --nav-line: oklch(0.33 0.05 216);
    --accent: oklch(0.74 0.10 200);    --accent-hover: oklch(0.79 0.095 200); --accent-press: oklch(0.70 0.10 202);
    --on-accent: oklch(0.19 0.03 218); --accent-ink: oklch(0.80 0.09 200); --accent-soft: oklch(0.27 0.04 210);
    --focus: oklch(0.80 0.11 200);
    --warn-ink: oklch(0.84 0.12 78);   --warn-soft: oklch(0.27 0.04 70);  --warn-line: oklch(0.55 0.09 70);
    --ok-ink: oklch(0.82 0.11 155);    --ok-soft: oklch(0.25 0.035 155);  --ok-line: oklch(0.50 0.07 155);
    --danger-ink: oklch(0.78 0.12 25); --danger-soft: oklch(0.26 0.035 25);
    --draft-ink: oklch(0.82 0.06 245); --draft-soft: oklch(0.26 0.03 245); --draft-line: oklch(0.50 0.05 245);
    --dir-krkc: oklch(0.74 0.10 200);  --dir-kr: oklch(0.60 0.08 195);    --dir-jb: oklch(0.86 0.05 215);
    --skeleton: oklch(0.27 0.014 222);
    --shadow-pop: 0 0 0 1px oklch(0.36 0.02 222), 0 12px 32px oklch(0 0 0 / .45);
    --shadow-sheet: 0 0 0 1px oklch(0.36 0.02 222), 0 -12px 40px oklch(0 0 0 / .5);
    --scrim: oklch(0 0 0 / .55);
  }
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --bg: oklch(0.172 0.012 222);      --surface: oklch(0.205 0.014 222);
  --surface-2: oklch(0.232 0.02 218); --surface-3: oklch(0.262 0.022 218);
  --line: oklch(0.305 0.016 222);    --line-strong: oklch(0.42 0.02 222);
  --control-line: oklch(0.52 0.02 222);
  --ink: oklch(0.945 0.007 210);     --ink-2: oklch(0.80 0.012 215);  --ink-3: oklch(0.70 0.014 215);
  --nav-bg: oklch(0.235 0.05 218);   --nav-bg-2: oklch(0.29 0.06 215);
  --nav-ink: oklch(0.96 0.008 210);  --nav-ink-2: oklch(0.79 0.03 210); --nav-line: oklch(0.33 0.05 216);
  --accent: oklch(0.74 0.10 200);    --accent-hover: oklch(0.79 0.095 200); --accent-press: oklch(0.70 0.10 202);
  --on-accent: oklch(0.19 0.03 218); --accent-ink: oklch(0.80 0.09 200); --accent-soft: oklch(0.27 0.04 210);
  --focus: oklch(0.80 0.11 200);
  --warn-ink: oklch(0.84 0.12 78);   --warn-soft: oklch(0.27 0.04 70);  --warn-line: oklch(0.55 0.09 70);
  --ok-ink: oklch(0.82 0.11 155);    --ok-soft: oklch(0.25 0.035 155);  --ok-line: oklch(0.50 0.07 155);
  --danger-ink: oklch(0.78 0.12 25); --danger-soft: oklch(0.26 0.035 25);
  --draft-ink: oklch(0.82 0.06 245); --draft-soft: oklch(0.26 0.03 245); --draft-line: oklch(0.50 0.05 245);
  --dir-krkc: oklch(0.74 0.10 200);  --dir-kr: oklch(0.60 0.08 195);    --dir-jb: oklch(0.86 0.05 215);
  --skeleton: oklch(0.27 0.014 222);
  --shadow-pop: 0 0 0 1px oklch(0.36 0.02 222), 0 12px 32px oklch(0 0 0 / .45);
  --shadow-sheet: 0 0 0 1px oklch(0.36 0.02 222), 0 -12px 40px oklch(0 0 0 / .5);
  --scrim: oklch(0 0 0 / .55);
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 var(--fs-base)/var(--lh-base) var(--font-ui);font-kerning:normal;-webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0;line-height:var(--lh-tight);text-wrap:balance;font-weight:600}
p{margin:0}
a{color:var(--accent-ink);text-decoration-thickness:1px;text-underline-offset:3px}
button,input,select{font:inherit;color:inherit}
svg.i{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.mono{font-family:var(--font-data);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.num{font-variant-numeric:tabular-nums}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:var(--s-4);top:-60px;z-index:var(--z-toast);background:var(--surface);color:var(--ink);padding:var(--s-2) var(--s-4);border-radius:var(--r-md);box-shadow:var(--shadow-pop)}
.skip:focus{top:var(--s-3)}
.pill{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;font-family:var(--font-data);font-size:var(--fs-meta);font-weight:500;line-height:1;color:var(--warn-ink);background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:var(--r-pill);font-variant-numeric:tabular-nums}

/* ============ ОБОЛОЧКА: корешок ============ */
.app{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);min-height:100vh}
.side{position:sticky;top:0;height:100vh;background:var(--nav-bg);color:var(--nav-ink);display:flex;flex-direction:column;padding:var(--s-4) var(--s-2);z-index:var(--z-nav);overflow-y:auto;scrollbar-width:none}
.brand{display:flex;align-items:baseline;gap:var(--s-2);color:var(--nav-ink);text-decoration:none}
.brand b{font-weight:600;font-size:var(--fs-lg);letter-spacing:.06em}
.brand span{font-size:var(--fs-base);color:var(--nav-ink-2)}
.side .brand{justify-content:center;padding:0 0 var(--s-5)}
.side .brand b{font-size:1rem}
.side .brand span{display:none}
.nav{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0}
.nav a,.side-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:56px;padding:6px 4px;border-radius:var(--r-md);color:var(--nav-ink-2);text-decoration:none;font-size:12px;font-weight:500;line-height:1.2;text-align:center;transition:background-color var(--d-fast) var(--ease-out),color var(--d-fast) var(--ease-out)}
.side-btn{border:0;background:none;cursor:pointer;width:100%}
.nav a svg,.side-btn svg{width:20px;height:20px}
.nav a:hover,.side-btn:hover{background:var(--nav-bg-2);color:var(--nav-ink)}
.nav a[aria-current="page"]{background:var(--nav-bg-2);color:var(--nav-ink)}
.nav .count{position:absolute;top:4px;left:calc(50% + 4px);min-width:16px;height:16px;padding:0 4px;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--warn-soft);color:var(--warn-ink);font-family:var(--font-data);font-size:11px;font-weight:500;line-height:1}
.nav-sep{height:1px;background:var(--nav-line);margin:var(--s-3) var(--s-2)}
.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:2px;padding-top:var(--s-3);border-top:1px solid var(--nav-line)}
.user{display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--s-2) 0}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--nav-bg-2);color:var(--nav-ink);display:grid;place-items:center;font-size:var(--fs-meta);font-weight:600;flex:none}
.user .who{display:flex;flex-direction:column;align-items:center;min-width:0;line-height:1.25}
.user .who b{font-family:var(--font-data);font-weight:400;font-size:11px;color:var(--nav-ink)}
.user .who span{display:none;color:var(--nav-ink-2);font-size:var(--fs-meta)}
@media (min-width:1600px){
  .app{grid-template-columns:var(--side-w) minmax(0,1fr)}
  .side{padding:var(--s-5) var(--s-3) var(--s-4)}
  .side .brand{justify-content:flex-start;padding:0 var(--s-3) var(--s-6)}
  .side .brand b{font-size:var(--fs-lg)}
  .side .brand span{display:inline}
  .nav a,.side-btn{flex-direction:row;justify-content:flex-start;gap:var(--s-3);min-height:40px;padding:0 var(--s-3);font-size:var(--fs-base);font-weight:400;text-align:left}
  .nav a[aria-current="page"]{font-weight:500}
  .nav .count{position:static;margin-left:auto;background:none;color:var(--nav-ink-2);font-size:var(--fs-meta);font-weight:400;padding:0}
  .nav a svg,.side-btn svg{width:18px;height:18px}
  .user{flex-direction:row;gap:var(--s-3);padding:var(--s-2) var(--s-3)}
  .user .who{align-items:flex-start}
  .user .who b{font-size:var(--fs-meta)}
  .user .who span{display:block}
}

/* мобильная шапка, лист, нижняя панель */
.mtop,.mbar{display:none}
.icon-btn{width:44px;height:44px;display:grid;place-items:center;border:0;background:none;color:var(--nav-ink);border-radius:var(--r-md);cursor:pointer;transition:background-color var(--d-fast) var(--ease-out)}
.icon-btn:hover{background:var(--nav-bg-2)}
dialog.sheet{margin:auto 0 0;width:100%;max-width:100%;max-height:85vh;border:0;padding:var(--s-2) var(--s-4) calc(var(--s-4) + env(safe-area-inset-bottom));border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sheet);z-index:var(--z-sheet)}
dialog.sheet[open]{animation:sheetin var(--d-sheet) var(--ease-out)}
dialog.sheet::backdrop{background:var(--scrim)}
@keyframes sheetin{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:var(--s-2) 0 var(--s-3)}
.sheet-head b{font-size:var(--fs-lg);font-weight:600}
.sheet-close{width:44px;height:44px;display:grid;place-items:center;border:0;background:none;border-radius:var(--r-md);cursor:pointer;color:var(--ink-2)}
.sheet-close:hover{background:var(--surface-3)}
.sheet nav a,.sheet .sheet-link{display:flex;align-items:center;gap:var(--s-3);min-height:48px;padding:0 var(--s-3);border-radius:var(--r-md);color:var(--ink);text-decoration:none}
.sheet nav a:hover,.sheet .sheet-link:hover{background:var(--surface-3)}
.sheet nav a[aria-current="page"]{background:var(--accent-soft);color:var(--accent-ink);font-weight:500}
.sheet .count{margin-left:auto}
.sheet hr{border:0;border-top:1px solid var(--line);margin:var(--s-2) 0}
.sheet .sheet-user{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);color:var(--ink-2);font-size:var(--fs-meta)}
.sheet .sheet-user .avatar{background:var(--surface-3);color:var(--ink)}

/* ============ РАБОЧАЯ ЗОНА ============ */
.main{min-width:0;padding:var(--s-6) var(--s-6) var(--s-10)}
@media (min-width:1440px){ .main{padding:var(--s-6) var(--s-8) var(--s-10)} }

/* заголовок + намерения */
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s-4) var(--s-6);flex-wrap:wrap}
.head h1{font-size:var(--fs-2xl);letter-spacing:-.015em}
.head p{color:var(--ink-2);margin-top:var(--s-1)}
.head p b{font-weight:500;color:var(--ink)}
.head p a{color:var(--accent-ink)}
.intents{display:grid;grid-template-columns:repeat(3,auto);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:clip}
.intent{display:flex;align-items:center;gap:var(--s-3);min-height:44px;padding:var(--s-1) var(--s-4) var(--s-1) var(--s-2);text-decoration:none;color:var(--ink);background:var(--surface);transition:background-color var(--d-fast) var(--ease-out)}
.intent + .intent{border-left:1px solid var(--line)}
.intent:hover{background:var(--surface-2)}
.intent{transition:background-color var(--d-fast) var(--ease-out),transform var(--d-fast) var(--ease-out)}
.intent:active{transform:translateY(1px)}
.intent .glyph{width:32px;height:32px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-ink);flex:none}
.intent div{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.intent strong{font-weight:500;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.intent span.sub{display:none;color:var(--ink-3);font-size:var(--fs-meta);white-space:nowrap}
.intent.is-main{background:var(--accent);color:var(--on-accent)}
.intent.is-main:hover{background:var(--accent-hover)}
.intent.is-main .glyph{background:color-mix(in oklab, var(--on-accent) 18%, transparent);color:var(--on-accent)}
.intent.is-main span.sub{color:color-mix(in oklab, var(--on-accent) 80%, transparent)}
@media (min-width:1600px){
  .intent{min-height:52px;padding:var(--s-2) var(--s-4) var(--s-2) var(--s-2)}
  .intent span.sub{display:block}
}

/* кнопки */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:var(--control-h);padding:0 var(--s-4);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-weight:500;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color var(--d-fast) var(--ease-out),border-color var(--d-fast) var(--ease-out),transform var(--d-fast) var(--ease-out)}
.btn:hover{background:var(--surface-3);border-color:var(--ink-3)}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn-primary:active{background:var(--accent-press)}
.btn-quiet{border-color:transparent;background:transparent;color:var(--accent-ink)}
.btn-quiet:hover{background:var(--accent-soft);border-color:transparent}
.btn-sm{min-height:32px;padding:0 var(--s-3);font-size:var(--fs-meta)}
.btn-sm svg.i{width:16px;height:16px}
.btn.is-loading{pointer-events:none;color:transparent!important;position:relative}
.btn.is-loading svg{visibility:hidden}
.btn.is-loading::after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;border:2px solid var(--ink-2);border-right-color:transparent;animation:spin .7s linear infinite}
.btn-primary.is-loading::after{border-color:var(--on-accent);border-right-color:transparent}
@keyframes spin{to{transform:rotate(1turn)}}

/* ============ ЖДЁТ ФИНАЛА ============ */
.queue{display:grid;grid-template-columns:var(--queue-label-w) minmax(0,1fr);margin-top:var(--s-5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:clip}
.queue__label{background:var(--surface-2);padding:var(--s-3) var(--s-4);border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;gap:2px}
.queue__label h2{font-size:var(--fs-lg);display:flex;align-items:center;gap:var(--s-2)}
.queue__label p{font-size:var(--fs-meta);color:var(--ink-2);line-height:1.35}
.queue__label a{font-size:var(--fs-meta);margin-top:2px;align-self:flex-start}
.queue__body{min-width:0;display:flex;flex-direction:column;justify-content:center}
.queue__list{list-style:none;margin:0;padding:0}
.qi{display:grid;grid-template-rows:1fr;border-bottom:1px solid var(--line);transition:grid-template-rows var(--d-base) var(--ease-inout),border-color var(--d-base) var(--ease-inout)}
.qi:last-child{border-bottom:0}
.qi-in{min-height:0;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 18.5rem auto;gap:var(--s-4);align-items:center;padding:6px var(--s-3) 6px var(--s-4);transition:opacity var(--d-exit) var(--ease-out),transform var(--d-exit) var(--ease-out)}
.qi-in > *{min-height:0}
.qi .qi-wrap{min-height:48px}
.qi.is-late{background:var(--warn-soft);box-shadow:inset 0 0 0 1px var(--warn-line)}
.qi.is-leaving .qi-in{opacity:0;transform:translateY(-4px) scale(.98)}
.qi.is-collapsing{grid-template-rows:0fr;border-bottom-color:transparent}
.qi-main{min-width:0}
.qi-top{display:flex;align-items:baseline;gap:var(--s-2);min-width:0;font-size:var(--fs-table);line-height:var(--lh-table)}
.qi-no{font-weight:500}
.qi-org{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.qi-meta{font-size:var(--fs-meta);color:var(--ink-3);line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qi-meta .dir{vertical-align:baseline}
.qi-meta .sep{white-space:pre}
.nw{white-space:nowrap}
.qi-age{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-meta);color:var(--ink-2);white-space:nowrap}
.qi.is-late .qi-age{color:var(--warn-ink);font-weight:500}
.qi-age svg{width:14px;height:14px}
.qi-age .note{display:inline-flex;align-items:center;gap:6px}
.qi-act{display:flex;gap:var(--s-1);align-items:center}
.queue-empty{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-4);color:var(--ink-2);min-height:48px}
.queue-empty svg{color:var(--ok-ink)}
.queue__pos{display:none}

/* шкала возраста: 7 делений = неделя, порог после 3-го */
.ticks{display:inline-flex;align-items:center;gap:2px;flex:none}
.ticks i{width:8px;height:6px;border-radius:1px;background:var(--line-strong)}
.ticks i:nth-child(3){margin-right:3px}
.ticks i.on{background:var(--draft-line)}
.is-late .ticks i.on{background:var(--warn-ink)}

/* ============ ВКЛАДКИ + СВОДКА ============ */
.bar{display:flex;align-items:flex-end;gap:var(--s-2) var(--s-4);flex-wrap:wrap;border-bottom:1px solid var(--line);margin-top:var(--s-5)}
.tabs{display:flex;gap:var(--s-1);margin-bottom:-1px}
.tabs a{display:inline-flex;align-items:center;gap:var(--s-2);min-height:40px;padding:0 var(--s-3);color:var(--ink-2);text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap;transition:color var(--d-fast) var(--ease-out),border-color var(--d-fast) var(--ease-out)}
.tabs a:hover{color:var(--ink)}
.tabs a[aria-current="page"]{color:var(--ink);font-weight:500;border-bottom-color:var(--accent)}
.tabs .c{font-family:var(--font-data);font-size:var(--fs-meta);font-weight:400;color:var(--ink-3)}
.tabs a[aria-current="page"] .c{color:var(--accent-ink)}
.summary{margin-left:auto;padding-bottom:10px;display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2) var(--s-4);font-size:var(--fs-meta);color:var(--ink-2)}
.summary dl{display:flex;gap:var(--s-4);margin:0;flex-wrap:wrap}
.summary dl > div{display:flex;align-items:baseline;gap:6px;white-space:nowrap}
.summary dt{display:inline-flex;align-items:center;gap:6px}
.summary dd{margin:0;font-family:var(--font-data);font-variant-numeric:tabular-nums;font-weight:500;font-size:var(--fs-table);color:var(--ink);letter-spacing:-.01em}
.split{display:flex;width:96px;height:6px;border-radius:2px;overflow:hidden;gap:2px;flex:none}
.split i{display:block;height:100%}
.split .krkc,.dir i.krkc{background:var(--dir-krkc)}
.split .kr,.dir i.kr{background:var(--dir-kr)}
.split .jb,.dir i.jb{background:var(--dir-jb)}
.dir{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-meta);color:var(--ink-2);white-space:nowrap}
.dir i{width:8px;height:8px;border-radius:2px;display:inline-block;flex:none}

/* ============ ПОИСК И ФИЛЬТРЫ ============ */
.filters{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-3);align-items:center}
.search{display:flex;flex:1 1 320px;min-width:min(320px,100%);border:1px solid var(--control-line);border-radius:var(--r-md);background:var(--surface);transition:border-color var(--d-fast) var(--ease-out),box-shadow var(--d-fast) var(--ease-out)}
.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.search label{display:grid;place-items:center;padding-left:var(--s-3);color:var(--ink-3)}
.search input{flex:1;min-width:0;border:0;background:transparent;padding:0 var(--s-2);min-height:38px;outline:none}
.search input::placeholder{color:var(--ink-3);opacity:1}
.search input::-webkit-search-cancel-button{cursor:pointer}
.search .btn{border:0;border-left:1px solid var(--line);border-radius:0 var(--r-md) var(--r-md) 0;min-height:38px}
.fpanel{display:contents}
.field{display:contents}
.field > label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.field-sort{display:none}
.select{position:relative;display:inline-flex}
.select select{appearance:none;border:1px solid var(--control-line);background:var(--surface);border-radius:var(--r-md);min-height:var(--control-h);padding:0 28px 0 10px;color:var(--ink);cursor:pointer;max-width:100%;transition:border-color var(--d-fast) var(--ease-out)}
.select select:hover{border-color:var(--ink-3)}
.select::after{content:"";position:absolute;right:11px;top:50%;width:7px;height:7px;border-right:1.6px solid var(--ink-2);border-bottom:1.6px solid var(--ink-2);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.f-toggle{display:none}
.reset{padding:0 var(--s-3)}
.reset[aria-disabled="true"]{color:var(--ink-3)}
.reset[aria-disabled="true"]:hover{background:transparent}
.result-line{margin-left:auto;color:var(--ink-2);font-size:var(--fs-meta);white-space:nowrap}
.result-line b{color:var(--ink);font-weight:500}

/* ============ ТАБЛИЦА ============ */
.table-wrap{margin-top:var(--s-3);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:clip}
table.journal{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:var(--fs-table);line-height:var(--lh-table)}
.journal col.c-no{width:108px}
.journal col.c-date{width:100px}
.journal col.c-doc{width:184px}
.journal col.c-sum{width:160px}
.journal col.c-mgr{width:128px}
.journal col.c-st{width:164px}
.journal col.c-files{width:148px}
.journal thead th{position:sticky;top:0;z-index:var(--z-sticky);background:var(--surface-2);height:36px;text-align:left;font-weight:500;font-size:var(--fs-meta);color:var(--ink-2);padding:0 var(--s-3);border-bottom:1px solid var(--line);white-space:nowrap}
.journal th.r,.journal td.r{text-align:right}
.sort{display:inline-flex;align-items:center;gap:4px;color:inherit;text-decoration:none;min-height:28px;border-radius:var(--r-sm)}
.sort:hover{color:var(--ink)}
.sort-i{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:var(--ink-3);opacity:.55;transition:opacity var(--d-fast) var(--ease-out)}
.sort:hover .sort-i{opacity:1}
th[aria-sort="ascending"] .sort,th[aria-sort="descending"] .sort{color:var(--ink)}
th[aria-sort="ascending"] .sort-i,th[aria-sort="descending"] .sort-i{color:var(--accent-ink);opacity:1}
.journal tbody td{padding:4px var(--s-3);height:var(--row-h);border-bottom:1px solid var(--line);vertical-align:middle;min-width:0}
.journal tbody tr:last-child td{border-bottom:0}
.journal tbody tr.row{cursor:pointer;transition:background-color var(--d-fast) var(--ease-out)}
.journal tbody tr.row:hover{background:var(--surface-2)}
.cell-no a{font-family:var(--font-data);font-weight:500;color:var(--ink);text-decoration:none;white-space:nowrap}
.cell-no a:hover{color:var(--accent-ink);text-decoration:underline}
.cell-date{font-family:var(--font-data);font-size:13px;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.org{display:block;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sub{display:flex;align-items:center;gap:6px;color:var(--ink-3);font-size:var(--fs-meta);line-height:16px;white-space:nowrap;overflow:hidden;min-width:0}
.sub .mono{flex:none}
.doc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mgr-inline{display:none;color:var(--ink-3);font-size:var(--fs-meta);line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sline{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-2);white-space:nowrap}
.sum{font-family:var(--font-data);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.none{color:var(--ink-3);font-style:italic}
.mgr{display:block;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
tr.is-cancelled .org{color:var(--ink-3)}
tr.is-cancelled .sum{color:var(--ink-3);text-decoration:line-through;text-decoration-thickness:1px}

/* статусы: иконка + текст */
.st-line{display:flex;align-items:center;gap:6px;white-space:nowrap}
.status{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:0 var(--s-2) 0 6px;border-radius:var(--r-pill);font-size:var(--fs-meta);font-weight:500;border:1px solid;white-space:nowrap;line-height:1}
.status svg{width:14px;height:14px}
.st-final{color:var(--ok-ink);background:var(--ok-soft);border-color:var(--ok-line)}
.st-draft{color:var(--draft-ink);background:var(--draft-soft);border-color:var(--draft-line)}
.st-late{color:var(--warn-ink);background:var(--warn-soft);border-color:var(--warn-line)}
.st-cancel{color:var(--ink-2);background:transparent;border-color:var(--line-strong)}
.age-t{font-size:var(--fs-meta);color:var(--ink-3)}
.age-t.is-late{color:var(--warn-ink);font-weight:500}
.cell-st .ticks{display:none}

/* файлы и «Ещё» */
.files{display:flex;align-items:center;justify-content:flex-end;gap:2px}
.file{display:inline-flex;align-items:center;min-height:32px;padding:0 var(--s-1);border-radius:var(--r-sm);font-family:var(--font-data);font-size:var(--fs-meta);color:var(--accent-ink);text-decoration:none;transition:background-color var(--d-fast) var(--ease-out)}
.file:hover{background:var(--accent-soft)}
.more{width:32px;height:32px;display:grid;place-items:center;border:0;background:transparent;border-radius:var(--r-sm);color:var(--ink-2);cursor:pointer;position:relative;flex:none;transition:background-color var(--d-fast) var(--ease-out)}
.more::before{content:"";position:absolute;inset:-6px}
.more:hover{background:var(--surface-3);color:var(--ink)}
.m-upload{display:none}

/* дочерние документы */
.kids-toggle{display:inline-flex;align-items:center;gap:2px;padding:0 4px 0 0;border:0;background:none;color:var(--accent-ink);font-size:var(--fs-meta);line-height:16px;cursor:pointer;border-radius:var(--r-sm);position:relative;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}
.kids-toggle::before{content:"";position:absolute;inset:-10px -4px}
.kids-toggle:hover{background:var(--accent-soft)}
.kids-toggle > span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.kids-toggle svg{width:14px;height:14px;transition:transform var(--d-base) var(--ease-out)}
.kids-toggle[aria-expanded="true"] svg{transform:rotate(90deg)}
.dot-sep{color:var(--line-strong)}
tr.child td{background:var(--surface-2)}
tr.child .cell-no{padding-left:var(--s-3);padding-right:var(--s-1);white-space:nowrap}
tr.child .cell-no a{font-weight:400;font-size:var(--fs-meta);color:var(--ink-2)}
tr.child .tree{display:inline-block;width:10px;height:12px;border-left:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);margin-right:6px;vertical-align:2px}


/* состояния внутри .table-wrap */
.state-box{display:none;padding:var(--s-8) var(--s-6);flex-direction:column;align-items:flex-start;gap:var(--s-3)}
.state-box h3{font-size:var(--fs-lg)}
.state-box p{color:var(--ink-2);max-width:52ch}
.ico{width:40px;height:40px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-ink)}
.ico.err{background:var(--danger-soft);color:var(--danger-ink)}
.ico svg{width:22px;height:22px}

/* меню «Ещё» (popover) */
.menu{margin:0;padding:var(--s-1);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-pop);min-width:220px;z-index:var(--z-pop)}
.menu button,.menu a{display:flex;align-items:center;gap:var(--s-2);min-height:36px;padding:0 var(--s-3);border:0;background:none;border-radius:var(--r-sm);text-align:left;cursor:pointer;color:var(--ink);text-decoration:none;font-size:var(--fs-base)}
.menu button:hover,.menu a:hover,.menu button:focus-visible,.menu a:focus-visible{background:var(--surface-3)}
.menu .quiet-danger{color:var(--danger-ink)}
.menu hr{border:0;border-top:1px solid var(--line);margin:var(--s-1) 0}
.foot{margin-top:var(--s-10);padding-top:var(--s-4);border-top:1px solid var(--line);color:var(--ink-3);font-size:var(--fs-meta)}

/* ============ ТОСТ ============ */
.toasts{position:fixed;right:var(--s-6);bottom:var(--s-6);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--s-2);pointer-events:none}
.toast{pointer-events:auto;display:flex;gap:var(--s-3);align-items:center;max-width:420px;padding:var(--s-2) var(--s-2) var(--s-2) var(--s-4);border-radius:var(--r-md);background:var(--ink);color:var(--bg);box-shadow:var(--shadow-pop);font-size:var(--fs-table);animation:toastin var(--d-toast) var(--ease-out)}
.toast > svg{color:var(--ok-line)}
.toast .t-act{min-height:32px;padding:0 var(--s-3);border:1px solid color-mix(in oklab, var(--bg) 35%, transparent);border-radius:var(--r-md);background:transparent;color:inherit;font-weight:500;cursor:pointer;white-space:nowrap}
.toast .t-act:hover{background:color-mix(in oklab, var(--bg) 12%, transparent)}
.toast .x{margin-left:auto;background:none;border:0;color:inherit;opacity:.75;cursor:pointer;width:28px;height:28px;display:grid;place-items:center;border-radius:var(--r-sm);flex:none}
.toast .x:hover{opacity:1}
.toast .x svg{width:16px;height:16px}
@keyframes toastin{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.toast.is-out{opacity:0;transform:translateY(6px);transition:opacity var(--d-exit) var(--ease-out),transform var(--d-exit) var(--ease-out)}

.state-box{display:flex}
@media (max-width:767px){ .journal tbody{grid-template-columns:1fr} }
/* ============ АДАПТИВ ============ */
@media (max-width:1599px){ .kids-toggle .kt-tail{display:none} }
/* 1180-1439: менеджер уходит второй строкой в «Документ», сводка может перенестись */
@media (max-width:1439px){
  .journal col.c-mgr,.journal th.c-mgr,.journal td.c-mgr{display:none}
  .mgr-inline{display:block}
  .journal col.c-no{width:106px}
  .journal col.c-date{width:98px}
  .journal col.c-doc{width:200px}
  .journal .doc{-webkit-line-clamp:1}
  .journal col.c-sum{width:156px}
  .journal col.c-st{width:160px}
  .journal col.c-files{width:144px}
  .journal thead th{padding:0 10px}
  .journal tbody td{padding:var(--s-1) 10px}
}
@media (min-width:1180px) and (max-width:1279px){
  .main{padding-left:var(--s-5);padding-right:var(--s-5)}
  .journal col.c-st{width:118px}
  .journal col.c-doc{width:176px}
  .journal .st-line{flex-direction:column;align-items:flex-start;gap:var(--s-1)}
  .journal .status{min-height:22px}
  .journal .age-t{line-height:16px}
  .qi-in{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main act" "age act";row-gap:var(--s-1)}
  .qi-main{grid-area:main}
  .qi-age{grid-area:age}
  .qi-act{grid-area:act}
}
@media (max-width:1320px){
  .summary{margin-left:0;flex-basis:100%;padding:var(--s-2) 0 10px}
  .result-line{flex-basis:100%;margin-left:0}
}

/* меньше 1180: таблица становится карточками */
@media (max-width:1179px){
  .field-sort{display:contents}
  .table-wrap{border:0;background:transparent;border-radius:0;overflow:visible}
  table.journal,.journal tbody{display:block}
  .journal colgroup,.journal thead,.journal caption{display:none}
  .journal tbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3);align-items:start}
  .journal tbody tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"org org st" "no date date" "doc doc sum" "files files files";gap:var(--s-1) var(--s-3);padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
  .journal tbody td{display:block;padding:0;height:auto;border:0;min-width:0}
  .journal tbody tr.row:hover{background:var(--surface)}
  .journal .cell-org{grid-area:org}
  .journal .cell-st{grid-area:st;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:6px}
  .journal .cell-no{grid-area:no}
  .journal .cell-date{grid-area:date;color:var(--ink-3);font-size:var(--fs-meta);align-self:center}
  .journal .cell-date::before{content:"·\00a0"}
  .journal .cell-date{margin-left:-6px}
  .journal .cell-no a{color:var(--ink-3);font-size:var(--fs-meta)}
  .journal .cell-doc{grid-area:doc;color:var(--ink-2)}
  .journal .doc{-webkit-line-clamp:2}
  .journal .cell-sum{grid-area:sum;text-align:right}
  .journal td.c-mgr{display:none}
  .journal .cell-files{grid-area:files;margin-top:var(--s-2);padding-top:var(--s-3);border-top:1px solid var(--line)}
  .org{font-size:1rem;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35}
  .sub{flex-wrap:wrap;white-space:normal;overflow:visible;margin-top:2px}
  .dot-sep{display:none}
  .sub{column-gap:var(--s-3)}
  .cell-st .ticks{display:inline-flex}
  .st-line{flex-direction:column;align-items:flex-end;gap:4px}
  .files{justify-content:flex-start;gap:var(--s-2)}
  .file.docx{display:none}
  .files:not(:has(.file.pdf)):not(:has(.m-upload)) .file.docx{display:inline-flex}
  .file.pdf,.file.docx{min-height:44px;padding:0 var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-md);font-family:var(--font-ui);font-weight:500;color:var(--ink)}
  .m-upload{display:inline-flex;min-height:44px}
  .more{width:44px;height:44px;margin-left:auto}
  .more-d{margin-left:auto}
  .kids-toggle{min-height:36px;padding:0 var(--s-2) 0 2px}
  .kids-toggle .kt-tail{display:inline}
  .kids-toggle::before{inset:-4px -4px}
  tr.child{margin-left:var(--s-4)}
  tr.child td{background:transparent}
  tr.child .cell-no{padding-left:0}
  .btn,.select select{min-height:var(--control-h-touch)}
  .search input,.search .btn{min-height:42px}
  .btn-sm{min-height:var(--control-h-touch)}
  .intent{min-height:48px}
  .toast .t-act{min-height:44px}
  .toast .x{width:44px;height:44px}
  .summary{margin-left:0;flex-basis:100%;padding:var(--s-2) 0 10px}
  .result-line{flex-basis:100%;margin-left:0}
  .search{flex-basis:100%}
  .qi-in{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main act" "age act";row-gap:var(--s-1)}
  .qi-main{grid-area:main}
  .qi-age{grid-area:age}
  .qi-act{grid-area:act}
}

/* меньше 1024: корешок уходит, шапка сверху */
@media (max-width:1023px){
  .app{display:block}
  .side{display:none}
  .mtop{display:flex;position:sticky;top:0;z-index:var(--z-nav);align-items:center;justify-content:space-between;gap:var(--s-3);background:var(--nav-bg);color:var(--nav-ink);padding:0 var(--s-2) 0 var(--s-4);min-height:var(--mtop-h)}
  .mtop .brand{min-height:44px;align-items:center}
  .mtop .brand b{font-size:var(--fs-lg)}
  .mtop-actions{display:flex;align-items:center}
  .head{align-items:stretch;flex-direction:column}
  .intents{grid-template-columns:repeat(3,minmax(0,1fr))}
  .intent{padding:var(--s-1) var(--s-3) var(--s-1) var(--s-2)}
  .intent strong{white-space:normal}
  .queue{grid-template-columns:1fr}
  .queue__label{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:var(--s-1) var(--s-3)}
  .queue__label p{flex:1 1 280px}
  .queue__label a{margin-top:0;display:inline-flex;align-items:center;min-height:44px}
}

/* телефон */
@media (max-width:767px){
  body{padding-bottom:calc(var(--mbar-h) + env(safe-area-inset-bottom))}
  .main{padding:var(--s-5) var(--s-4) var(--s-8)}
  .head h1{font-size:var(--fs-xl)}
  .intents{grid-template-columns:1fr}
  .intent{min-height:56px;padding:var(--s-2) var(--s-4) var(--s-2) var(--s-3)}
  .intent + .intent{border-left:0;border-top:1px solid var(--line)}
  .intent span.sub{display:block;white-space:normal}

  /* очередь: лента карточек */
  .queue{display:block;background:var(--surface-2);border:0;padding:var(--s-4);overflow:visible}
  .queue__label{display:block;padding:0;border:0;background:transparent}
  .queue__label h2{margin-bottom:2px}
  .queue__label > a{display:none}
  .queue__list{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:var(--s-2);scroll-padding-inline:var(--s-4);margin:var(--s-3) calc(-1 * var(--s-4)) 0;padding:0 var(--s-4) 2px;scrollbar-width:none}
  .queue__list::-webkit-scrollbar{display:none}
  .qi{flex:0 0 calc(100% - 40px);scroll-snap-align:start;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);display:block}
  .qi:last-child{border-bottom:1px solid var(--line)}
  .qi.is-late{border-color:var(--warn-line)}
  .qi-in{grid-template-columns:1fr;grid-template-areas:none;gap:var(--s-2);padding:var(--s-3) var(--s-4) var(--s-4);overflow:visible}
  .qi-main,.qi-age,.qi-act{grid-area:auto}
  .qi-top{flex-direction:column;align-items:flex-start;gap:2px}
  .qi-no{font-size:var(--fs-meta);color:var(--ink-2)}
  .qi-org{font-size:1rem;line-height:1.35;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .qi-meta{white-space:normal}
  .qi-meta .sep{display:none}
  .qi-meta .nw{display:block}
  .qi-age{white-space:normal}
  .qi-act{gap:var(--s-2)}
  .qi-act .btn{min-height:44px}
  .qi-act .btn:first-child{flex:1}
  .queue__foot{display:flex;align-items:center;justify-content:space-between;margin-top:var(--s-2)}
  .queue__pos{display:none;font-size:var(--fs-meta);color:var(--ink-3)}
  .js .queue__pos{display:block}
  .queue__foot a{display:inline-flex;align-items:center;min-height:44px;font-size:var(--fs-meta)}
  .queue-empty{background:var(--surface);border-radius:var(--r-lg);margin-top:var(--s-3)}

  /* вкладки 2x2, сводка сеткой */
  .bar{border-bottom:0;display:flex;flex-direction:column;align-items:stretch;gap:var(--s-3)}
  .tabs{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2);margin:0}
  .tabs a{justify-content:center;min-height:44px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
  .tabs a[aria-current="page"]{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}
  .summary{order:2;display:grid;grid-template-columns:1fr;gap:var(--s-2);padding:0}
  .summary .split{display:none}
  .summary dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2)}
  .summary dl > div{flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
  .summary .sum-h{font-weight:500;color:var(--ink-2)}
  .summary .sum-h b{display:none}

  /* фильтры в панели */
  .search{flex-basis:100%;min-width:0}
  .search input{min-height:42px;font-size:16px}
  .search .btn{padding:0 var(--s-3)}
  .js .f-toggle{display:inline-flex}
  .f-toggle .pill{color:var(--accent-ink);background:var(--accent-soft);border-color:var(--accent)}
  .f-toggle .pill[data-n="0"]{display:none}
  .reset{margin-left:auto}
  .fpanel{display:grid;grid-template-columns:1fr;gap:var(--s-3);flex-basis:100%;padding:var(--s-4);background:var(--surface-2);border-radius:var(--r-lg)}
  .js .fpanel:not(.is-open){display:none}
  .field{display:flex;flex-direction:column;gap:var(--s-1)}
  .field > label{position:static;width:auto;height:auto;overflow:visible;clip-path:none;font-size:var(--fs-meta);color:var(--ink-2);font-weight:500}
  .field .select,.field select{width:100%}
  .result-line{order:5;white-space:normal}

  .journal tbody{grid-template-columns:1fr}
  .toasts{left:var(--s-4);right:var(--s-4);bottom:calc(var(--mbar-h) + 16px)}
  .toast{max-width:none}

  .mbar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:var(--z-nav);background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
  .mbar a,.mbar button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--mbar-h);color:var(--ink-2);text-decoration:none;font-size:var(--fs-meta);border:0;background:none;cursor:pointer}
  .mbar [aria-current="page"]{color:var(--accent-ink);font-weight:500}
  .mbar svg.i{width:18px;height:28px;padding:5px 0}
  .mbar .new svg.i{background:var(--accent);color:var(--on-accent);border-radius:var(--r-md);width:36px;height:28px;padding:5px 9px}
  .mbar .pill{position:absolute;top:6px;left:calc(50% + 6px);height:16px;min-width:16px;font-size:11px;padding:0 4px}
}
@media (min-width:768px){ .queue__foot{display:none} }
@media (max-width:400px){ .mtop .brand span{display:none} }


/* ============ МЕНЮ «ЕЩЁ» (details) ============ */
.more-d{position:relative;flex:none}
.more-d > summary{list-style:none}
.more-d > summary::-webkit-details-marker{display:none}
.more-d[open] > summary{background:var(--surface-3);color:var(--ink)}
.more-d .menu{position:absolute;right:0;top:calc(100% + 4px);display:flex;flex-direction:column;text-align:left;transform-origin:top right;animation:menuin var(--d-fast) var(--ease-out)}
.more-d.up .menu{top:auto;bottom:calc(100% + 4px);transform-origin:bottom right}
.menu form{display:contents}
.menu button,.menu a{width:100%;white-space:nowrap}
@keyframes menuin{from{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:none}}

/* ============ ОБЩИЕ СТИЛИ ОСТАЛЬНЫХ СТРАНИЦ ============ */
.page-head h1{font-size:var(--fs-2xl);letter-spacing:-.015em}
h2{font-size:var(--fs-lg);margin:0 0 var(--s-3)}
h3{font-size:var(--fs-base)}
.queue__label h2,.state-box h3{margin:0}
.muted{color:var(--ink-2)}
.card > p,.main > p{margin:var(--s-3) 0}
.card > p:last-child{margin-bottom:0}
.card > h3{margin:var(--s-4) 0 var(--s-2)}
.page-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--s-3) var(--s-4);margin-bottom:var(--s-5)}
.page-head h1{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-3)}
.page-head > div,.actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.actions form,.row-actions form{display:inline;margin:0}

.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn.danger{background:transparent;color:var(--danger-ink);border-color:color-mix(in oklab, var(--danger-ink) 45%, transparent)}
.btn.danger:hover{background:var(--danger-soft);border-color:var(--danger-ink)}
.btn.sm{min-height:32px;padding:0 var(--s-3);font-size:var(--fs-meta)}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-5);margin-bottom:var(--s-4)}
.card.center{text-align:center}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);margin-bottom:var(--s-4)}
.cards > .card{margin-bottom:0}
.error-banner{background:var(--danger-soft);border-color:color-mix(in oklab, var(--danger-ink) 40%, transparent);color:var(--danger-ink)}
.danger-h{color:var(--danger-ink)}
.req{color:var(--danger-ink)}
.chip{display:inline-flex;align-items:center;min-height:22px;padding:0 var(--s-2);border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-meta);font-weight:500;white-space:nowrap}

/* статусы старой разметки: status status-<код> */
.status[class*="status-"]{padding:0 var(--s-2);min-height:24px}
.status-draft{color:var(--draft-ink);background:var(--draft-soft);border-color:var(--draft-line)}
.status-final,.status-ready{color:var(--ok-ink);background:var(--ok-soft);border-color:var(--ok-line)}
.status-cancelled{color:var(--ink-2);background:transparent;border-color:var(--line-strong)}
.status-review{color:var(--warn-ink);background:var(--warn-soft);border-color:var(--warn-line)}
.status-sent{color:var(--accent-ink);background:var(--accent-soft);border-color:var(--accent)}

dl{display:grid;grid-template-columns:200px minmax(0,1fr);gap:6px var(--s-3);margin:0;font-size:var(--fs-table)}
dt{color:var(--ink-2)}
dd{margin:0;overflow-wrap:anywhere}

/* формы */
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4);margin-bottom:var(--s-4)}
.form-grid .span2{grid-column:span 2}
label{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-meta);font-weight:500;color:var(--ink-2)}
input,select,textarea{min-height:var(--control-h);padding:0 var(--s-3);border-radius:var(--r-md);border:1px solid var(--control-line);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-table);width:100%;transition:border-color var(--d-fast) var(--ease-out),box-shadow var(--d-fast) var(--ease-out)}
textarea{padding:var(--s-2) var(--s-3);resize:vertical;margin-bottom:var(--s-3);line-height:var(--lh-base)}
input:hover,select:hover,textarea:hover{border-color:var(--ink-3)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
input[type="checkbox"],input[type="radio"]{width:18px;height:18px;min-height:0;padding:0;accent-color:var(--accent);box-shadow:none;flex:none}
input[type="file"]{padding:var(--s-2) var(--s-3);height:auto}
input::placeholder,textarea::placeholder{color:var(--ink-3);opacity:1}
.search input,.search input:focus,.search input:hover{border:0;box-shadow:none;background:transparent;width:auto;font-size:inherit;border-radius:0}
.search label{flex-direction:row}
.select select{width:auto;font-size:inherit;box-shadow:none;padding:0 28px 0 10px}
.inline-form{display:flex;gap:var(--s-2);flex-wrap:wrap;align-items:center}
.inline-form input{width:auto;flex:1;min-width:160px}
.search-form{margin:0 0 var(--s-4);display:flex;gap:var(--s-2)}
.search-form input{flex:1}
.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2) var(--s-4);margin-bottom:var(--s-4)}
.check-grid.one{grid-template-columns:1fr}
.check{flex-direction:row;align-items:center;gap:var(--s-2);color:var(--ink);font-size:var(--fs-table);font-weight:400;cursor:pointer}

/* таблицы остальных страниц */
table.grid{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-table);line-height:var(--lh-table);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:clip}
table.grid th,table.grid td{padding:10px var(--s-3);border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
table.grid th{background:var(--surface-2);color:var(--ink-2);font-weight:500;font-size:var(--fs-meta);white-space:nowrap}
table.grid tbody tr:last-child td{border-bottom:0}
table.grid tbody tr{transition:background-color var(--d-fast) var(--ease-out)}
table.grid tbody tr[onclick]{cursor:pointer}
table.grid tbody tr:hover{background:var(--surface-2)}
table.grid .num{text-align:right;font-family:var(--font-data);letter-spacing:-.01em}
.row-actions{text-align:right;white-space:nowrap}

/* списки шаблонов */
.tpl-list{display:flex;flex-direction:column;gap:var(--s-2)}
.tpl-item{display:flex;align-items:center;gap:var(--s-3);min-height:48px;padding:var(--s-2) var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);text-decoration:none;transition:border-color var(--d-fast) var(--ease-out),background-color var(--d-fast) var(--ease-out)}
.tpl-item:hover{border-color:var(--accent);background:var(--surface-2)}
.tpl-code{color:var(--ink-3);font-family:var(--font-data);font-size:var(--fs-meta);min-width:36px}
.tpl-name{flex:1;min-width:0}
.grp{font-size:var(--fs-table);font-weight:500;color:var(--ink-2);margin:var(--s-5) 0 var(--s-2)}
ul.files{display:block}
.files li{margin:4px 0}
.notes{margin:0;padding-left:var(--s-5);color:var(--ink-2)}

/* пункты договора и сверка */
.clauses details{border:1px solid var(--line);border-radius:var(--r-md);margin:6px 0;background:var(--surface-2)}
.clauses summary{padding:10px var(--s-3);cursor:pointer;list-style:none;display:flex;gap:10px;align-items:center}
.clauses summary::-webkit-details-marker{display:none}
.clauses .items{padding:4px var(--s-3) 10px}
.clauses .check{padding:4px 0;align-items:flex-start}
.clauses .lvl3{padding-left:22px}
.clauses .lvl4{padding-left:44px}
.clauses .gone{color:var(--danger-ink);font-size:var(--fs-meta);margin-left:auto}
.diff td.was{color:var(--ink-3)}
.diff td.now{color:var(--ok-ink)}
details > summary{cursor:pointer}

@media (max-width:800px){
  .cards{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .form-grid .span2{grid-column:auto}
  .check-grid{grid-template-columns:1fr}
  .page-head{align-items:flex-start}
  .page-head h1{font-size:var(--fs-xl)}
  .card{padding:var(--s-4)}
  dl{grid-template-columns:1fr;gap:2px}
  dt{margin-top:var(--s-2);font-size:var(--fs-meta)}
  .btn{min-height:var(--control-h-touch)}
  .btn.sm{min-height:36px}
  input,select,textarea{font-size:16px;min-height:var(--control-h-touch)}
  input[type="checkbox"],input[type="radio"]{min-height:0}
  .search-form{flex-wrap:wrap}
  .search-form input,.inline-form input{min-width:100%}
  /* таблицы → карточки */
  table.grid,table.grid tbody,table.grid tr,table.grid td{display:block;width:100%}
  table.grid{border:0;background:transparent;overflow:visible}
  table.grid thead{display:none}
  table.grid tr{border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:10px;padding:var(--s-2) var(--s-3);background:var(--surface)}
  table.grid td{border:0;padding:4px 0;display:flex;gap:var(--s-3);justify-content:space-between;text-align:right;min-width:0;overflow-wrap:anywhere}
  table.grid td > *{min-width:0}
  table.grid td::before{content:attr(data-label);color:var(--ink-2);text-align:left;font-size:var(--fs-meta);flex:0 0 40%}
  table.grid td[data-label=""]::before,table.grid td:not([data-label])::before{content:none}
  table.grid .row-actions{justify-content:flex-end}
  table.grid td.empty{display:none}
}

/* ============ КОМПОНЕНТЫ СТРАНИЦ ============ */
/* общие примитивы карточки договора, форм и справочников (без префикса) */

/* ссылка «назад» над заголовком */
.back{display:inline-flex;align-items:center;gap:var(--s-1);max-width:100%;min-height:32px;color:var(--accent-ink);font-size:var(--fs-meta);font-weight:500;text-decoration:none;border-radius:var(--r-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.back:hover{text-decoration:underline;text-underline-offset:3px}
.back svg.i{width:16px;height:16px}
.back + .head{margin-top:var(--s-2)}

/* ряд действий */
.actions{align-items:center}

/* панель: .is-padded — заголовок внутри (.panel__head), без него — серая шапка (.panel__bar) */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);min-width:0}
.panel.is-padded{padding:var(--s-4) var(--s-5) var(--s-5)}
.panel.is-padded svg.i{width:20px;height:20px;flex:none}
.panel__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);min-height:32px;margin-bottom:var(--s-3)}
.panel__head h2{margin:0;font-size:var(--fs-base);font-weight:600}
.panel__act{margin-left:auto;margin-right:calc(-1 * var(--s-2))}
.panel__bar{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:var(--s-1) var(--s-3);padding:var(--s-3) var(--s-5);border-bottom:1px solid var(--line);background:var(--surface-2);border-radius:calc(var(--r-lg) - 1px) calc(var(--r-lg) - 1px) 0 0}
.panel__bar h2{margin:0;font-size:var(--fs-lg);display:flex;align-items:baseline;gap:var(--s-2)}

/* плашка-пояснение: нейтральная, .is-warn, .is-danger (сводка ошибок) */
.callout{display:flex;align-items:flex-start;gap:var(--s-3);padding:var(--s-3) var(--s-4);margin-bottom:var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);color:var(--ink-2);outline:none}
.callout:focus,.callout:focus-visible{outline:none;box-shadow:none}
.callout > svg.i{width:20px;height:20px;flex:none;margin-top:1px;color:var(--draft-ink)}
.callout > p,.callout > div{flex:1;max-width:80ch}
.callout b{color:var(--ink);font-weight:600}
.callout > div > b{display:block}
.callout > div > p{margin:var(--s-1) 0 0}
.callout ul{margin:var(--s-1) 0 0;padding-left:var(--s-5);font-size:var(--fs-table)}
.callout li{margin:2px 0}
.callout a{color:inherit;font-weight:500}
.callout .btn{flex:none}
.callout.is-warn{background:var(--warn-soft);border-color:var(--warn-line)}
.callout.is-warn > svg.i{color:var(--warn-ink)}
.callout.is-danger{background:var(--danger-soft);border-color:color-mix(in oklab, var(--danger-ink) 40%, transparent);color:var(--danger-ink)}
.callout.is-danger > svg.i,.callout.is-danger b{color:var(--danger-ink)}

/* список «термин — значение» */
.kv{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin:0}
.kv > div{display:grid;grid-template-columns:minmax(112px,38%) minmax(0,1fr);gap:var(--s-3);padding:var(--s-2) 0;border-top:1px solid var(--line)}
.kv > div:first-child{border-top:0;padding-top:0}
.kv dt{color:var(--ink-3);font-size:var(--fs-meta);line-height:var(--lh-table);margin:0}
.kv dd{margin:0;color:var(--ink);font-size:var(--fs-table);line-height:var(--lh-table);overflow-wrap:anywhere}
.kv .mono{font-family:var(--font-data);font-variant-numeric:tabular-nums}
.kv a{color:var(--accent-ink)}
.kv.is-wide{margin-top:var(--s-3)}
@media (min-width:1024px){ .kv.is-wide{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:var(--s-6)} .kv.is-wide > div:nth-child(2){border-top:0;padding-top:0} }

/* сетка полей формы */
.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row dense;gap:var(--s-4)}
.fields + .fields{margin-top:var(--s-4)}
.fields .span2{grid-column:span 2}
.hint{font-size:var(--fs-meta);color:var(--ink-3);font-weight:400}
a.hint{color:var(--accent-ink)}

/* липкая панель действия формы */
.formbar{position:sticky;bottom:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:space-between;gap:var(--s-3) var(--s-4);margin-top:var(--s-2);padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-pop)}
.formbar:not(:has(.formbar__txt)){justify-content:flex-start;gap:var(--s-2)}
.formbar__txt{margin:0;display:flex;flex-direction:column;gap:2px;font-size:var(--fs-meta);color:var(--ink-2);min-width:0}
.formbar__txt b{color:var(--ink);font-size:var(--fs-table);font-weight:600}
.formbar .btn{min-height:44px;padding:0 var(--s-5)}

/* пустое состояние вне таблицы */
.state-box.is-card{border:1px dashed var(--line-strong);border-radius:var(--r-lg);background:var(--surface)}
.state-box h2{font-size:var(--fs-lg);margin:0}

@media (max-width:1179px){
  .fields{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:767px){
  .back{min-height:44px}
  .actions > .btn{flex:1 1 auto}
  .panel.is-padded{padding:var(--s-4)}
  .panel__act{min-height:var(--control-h-touch)}
  .panel__bar{padding:var(--s-3) var(--s-4)}
  .callout{flex-wrap:wrap}
  .callout .btn{margin-left:calc(20px + var(--s-3));min-height:var(--control-h-touch)}
  .kv > div{grid-template-columns:1fr;gap:2px}
  .fields{grid-template-columns:1fr}
  .fields .span2{grid-column:auto}
  .formbar{bottom:calc(var(--mbar-h) + env(safe-area-inset-bottom) + var(--s-2));flex-direction:column;align-items:stretch;padding:var(--s-2)}
  .formbar__txt{display:none}
  .formbar .btn{width:100%}
  .formbar:not(:has(.formbar__txt)){flex-direction:row}
  .formbar:not(:has(.formbar__txt)) .btn{width:auto}
  .formbar:not(:has(.formbar__txt)) .btn-primary{flex:1}
}

/* ============ КАРТОЧКА ДОГОВОРА И СВЕРКА ФИНАЛА (cd-) ============ */
/* ---------- хлебные крошки ---------- */
.cd-crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-1) var(--s-2);margin-bottom:var(--s-4);font-size:var(--fs-meta);color:var(--ink-3)}
.cd-crumbs a{display:inline-flex;align-items:center;gap:6px;min-height:32px;color:var(--accent-ink);text-decoration:none;border-radius:var(--r-sm)}
.cd-crumbs a:hover{text-decoration:underline;text-underline-offset:3px}
.cd-crumbs svg.i{width:16px;height:16px}
.cd-crumbs [aria-current]{color:var(--ink-2)}

/* ---------- шапка ---------- */
.cd-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s-4) var(--s-6);flex-wrap:wrap;padding-bottom:var(--s-5);margin-bottom:var(--s-5);border-bottom:1px solid var(--line)}
.cd-title{min-width:0;flex:1 1 420px}
.cd-kicker{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2) var(--s-3);margin-bottom:var(--s-2);font-size:var(--fs-meta);color:var(--ink-3)}
.cd-age{font-variant-numeric:tabular-nums;color:var(--ink-2)}
.cd-age.is-late{color:var(--warn-ink);font-weight:500}
.cd-tpl{color:var(--ink-2)}
.cd-head h1{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--s-1) var(--s-3);font-size:var(--fs-2xl);letter-spacing:-.015em;line-height:var(--lh-tight)}
.cd-no{font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.015em}
.cd-date{font-size:var(--fs-lg);font-weight:400;color:var(--ink-2)}
.cd-org{margin-top:var(--s-2);font-size:var(--fs-lg);line-height:1.35;max-width:62ch;overflow-wrap:anywhere}
.cd-org a{color:var(--ink);font-weight:500;text-decoration:none;border-bottom:1px solid var(--line-strong)}
.cd-org a:hover{color:var(--accent-ink);border-color:currentColor}
.cd-head.is-cancelled .cd-no,.cd-head.is-cancelled .cd-org a{color:var(--ink-2)}
.cd-dlgrp{display:inline-flex}
.cd-dlgrp .btn{font-family:var(--font-data);font-size:var(--fs-table)}
.cd-dlgrp .btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}
.cd-dlgrp .btn + .btn{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}
.cd-head .actions svg.i{width:20px;height:20px;flex:none}

/* ---------- раскладка ---------- */
.cd-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:var(--s-5);align-items:start}
.cd-main,.cd-side{display:flex;flex-direction:column;gap:var(--s-4);min-width:0}

/* ---------- панель: счётчик, пустые строки ---------- */
.cd-fold summary h2{margin:0;font-size:var(--fs-base);font-weight:600}
.cd-count{display:inline-grid;place-items:center;min-width:22px;height:20px;padding:0 6px;border-radius:var(--r-pill);background:var(--surface-3);color:var(--ink-2);font-family:var(--font-data);font-size:var(--fs-meta);font-weight:500}
.panel.is-padded h3,.cd-sub{font-size:var(--fs-meta);font-weight:600;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;margin:var(--s-4) 0 var(--s-2);display:flex;align-items:center;gap:var(--s-2)}
.cd-none{color:var(--ink-3);font-style:italic;font-family:var(--font-ui);letter-spacing:0}
.cd-empty-line{color:var(--ink-2);max-width:62ch}

.cd-orgname{font-weight:500;line-height:1.35;margin-bottom:var(--s-3);overflow-wrap:anywhere}

/* ---------- снятые пункты ---------- */
.cd-excl{margin-top:var(--s-2);padding-top:var(--s-1);border-top:1px solid var(--line)}
.cd-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.cd-chips li{padding:2px var(--s-2);border:1px dashed var(--line-strong);border-radius:var(--r-sm);font-size:var(--fs-meta);color:var(--ink-2);text-decoration:line-through;text-decoration-color:var(--ink-3)}

/* ---------- суммы ---------- */
.cd-total{margin-left:auto;font-size:var(--fs-meta);color:var(--ink-3);white-space:nowrap}
.cd-total b{font-size:var(--fs-lg);font-weight:500;color:var(--ink);letter-spacing:-.01em}
.cd-amounts{display:flex;grid-template-columns:none;flex-wrap:wrap;gap:var(--s-3) var(--s-8);margin:0}
.cd-amounts > div{display:flex;flex-direction:column;gap:2px}
.cd-amounts dt{margin:0}
.cd-amounts dd{margin:0;font-size:var(--fs-lg);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.cd-split{width:100%;margin-top:var(--s-4)}

/* ---------- версии файла (таймлайн) ---------- */
.cd-versions{list-style:none;margin:0;padding:0}
.cd-ver{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:var(--s-3);align-items:start;padding:var(--s-2) 0}
.cd-ver::before{content:"";position:absolute;left:9px;top:0;bottom:0;width:1px;background:var(--line)}
.cd-ver:first-child::before{top:18px}
.cd-ver:last-child::before{bottom:calc(100% - 18px)}
.cd-ver:only-child::before{display:none}
.cd-ver__dot{position:relative;width:11px;height:11px;margin:5px 0 0 4px;border-radius:50%;border:1.5px solid var(--draft-line);background:var(--surface)}
.cd-ver.is-final .cd-ver__dot{border-color:var(--ok-ink);background:var(--ok-soft)}
.cd-ver.is-current .cd-ver__dot{box-shadow:0 0 0 3px var(--accent-soft)}
.cd-ver__top{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}
.cd-ver__top b{font-weight:500}
.cd-ver:not(.is-current) .cd-ver__top b{font-weight:400;color:var(--ink-2)}
.cd-tag{padding:1px 6px;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-meta);font-weight:500}
.cd-ver__meta{display:flex;flex-wrap:wrap;gap:0 6px;margin-top:2px;font-size:var(--fs-meta);color:var(--ink-3);min-width:0}
.cd-ver__meta .sep{color:var(--line-strong)}
.cd-fname{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cd-ver__dl{min-width:52px;justify-content:center;border:1px solid var(--line);padding:0 var(--s-2)}

/* ---------- документы к договору ---------- */
.cd-kids{list-style:none;margin:0 calc(-1 * var(--s-2));padding:0}
.cd-kid{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:var(--s-3);min-height:var(--row-h);padding:var(--s-1) var(--s-2);border-radius:var(--r-md);color:var(--ink);text-decoration:none;transition:background-color var(--d-fast) var(--ease-out)}
.cd-kids li + li .cd-kid{border-top:1px solid var(--line);border-radius:0}
.cd-kid:hover{background:var(--surface-2)}
.cd-kid__no{font-size:var(--fs-table);color:var(--accent-ink);font-weight:500}
.cd-kid__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cd-kid__date{font-size:var(--fs-meta);color:var(--ink-3)}
.cd-kid.is-cancelled .cd-kid__name,.cd-kid.is-cancelled .cd-kid__no{color:var(--ink-3)}

/* ---------- ИИ-проверка ---------- */
.cd-notes{margin:0;padding-left:var(--s-5);color:var(--ink-2);max-width:80ch}
.cd-notes li{margin:var(--s-1) 0}
.cd-notes li::marker{color:var(--ink-3)}

/* ---------- раскрывашка полей ---------- */
.cd-fold > summary{display:flex;align-items:center;gap:var(--s-2);min-height:var(--control-h-touch);margin:calc(-1 * var(--s-2)) 0;cursor:pointer;list-style:none;border-radius:var(--r-sm)}
.cd-fold > summary::-webkit-details-marker{display:none}
.cd-fold__chev{margin-left:auto;color:var(--ink-3);transition:transform var(--d-base) var(--ease-out)}
.cd-fold[open] .cd-fold__chev{transform:rotate(90deg)}
.cd-fold[open] > summary{margin-bottom:var(--s-2)}

/* ---------- пустое состояние организации ---------- */
.cd-empty{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-3);border:1px dashed var(--line-strong);border-radius:var(--r-md);color:var(--ink-2)}
.cd-empty svg.i{color:var(--ink-3)}
.cd-empty b{color:var(--ink);font-weight:500}
.cd-empty p{margin-top:2px;font-size:var(--fs-table);overflow-wrap:anywhere}

/* ---------- опасная зона ---------- */
.cd-danger{background:transparent;border-style:dashed}
.cd-danger form + form{margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--line)}
.cd-danger p{color:var(--ink-2);font-size:var(--fs-table);margin-bottom:var(--s-2)}

/* ============ СВЕРКА ФИНАЛА ============ */
.cd-diff-lead{color:var(--ink-2);max-width:72ch;margin-top:var(--s-2)}
.cd-diff{list-style:none;margin:0;padding:0}
.cd-diff__head,.cd-diff li{display:grid;grid-template-columns:minmax(160px,1fr) minmax(0,1.3fr) 24px minmax(0,1.3fr);gap:var(--s-3);align-items:start}
.cd-diff__head{padding:0 0 var(--s-2);border-bottom:1px solid var(--line-strong);font-size:var(--fs-meta);font-weight:600;color:var(--ink-3)}
.cd-diff li{padding:var(--s-3) 0;border-bottom:1px solid var(--line)}
.cd-diff li:last-child{border-bottom:0;padding-bottom:0}
.cd-diff__key{font-size:var(--fs-table);color:var(--ink-2);font-weight:500}
.cd-diff__was,.cd-diff__now{font-size:var(--fs-table);overflow-wrap:anywhere;padding:2px var(--s-2);border-radius:var(--r-sm)}
.cd-diff__was{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--danger-ink)}
.cd-diff__was.is-empty{text-decoration:none;font-style:italic}
.cd-diff__now{background:var(--ok-soft);color:var(--ink)}
.cd-diff__arrow{color:var(--ink-3);padding-top:3px}
.cd-diff__arrow svg{width:20px;height:20px}
.cd-diff__lbl{display:none}
.cd-choice{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3);margin-top:var(--s-2)}
.cd-choice button{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-1);text-align:left;padding:var(--s-4);min-height:88px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);cursor:pointer;font:inherit;transition:background-color var(--d-fast) var(--ease-out),border-color var(--d-fast) var(--ease-out)}
.cd-choice button:hover{background:var(--surface-2);border-color:var(--ink-3)}
.cd-choice button strong{display:flex;align-items:center;gap:var(--s-2);font-weight:600}
.cd-choice button span{color:var(--ink-2);font-size:var(--fs-table)}
.cd-choice button.is-main{border-color:var(--accent);background:var(--accent-soft)}
.cd-choice button.is-main strong{color:var(--accent-ink)}
.cd-choice button.is-main:hover{border-color:var(--accent-hover)}
.cd-diff-note{margin-top:var(--s-3);color:var(--ink-3);font-size:var(--fs-meta)}

/* ============ АДАПТИВ ============ */
@media (max-width:1179px){
  .cd-layout{grid-template-columns:1fr}
  .cd-side{display:grid;grid-template-columns:1fr 1fr;align-items:start}
  .cd-danger{grid-column:1 / -1}
}
@media (max-width:767px){
  .cd-head{align-items:stretch;padding-bottom:var(--s-4);margin-bottom:var(--s-4)}
  .cd-title{flex-basis:100%}
  .cd-head h1{font-size:var(--fs-xl)}
  .cd-org{font-size:var(--fs-base)}
  .cd-head .actions{width:100%}
  .cd-head .actions > .btn{flex:1 1 100%;min-height:var(--control-h-touch)}
  .cd-dlgrp{flex:1 1 100%}
  .cd-dlgrp .btn{flex:1;min-height:var(--control-h-touch)}
  .cd-side{display:flex}
  .cd-crumbs a{min-height:var(--control-h-touch)}
  .cd-kid{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"no st" "name name" "date date";row-gap:2px;padding:var(--s-2)}
  .cd-kid__no{grid-area:no}.cd-kid__st{grid-area:st;justify-self:end}.cd-kid__name{grid-area:name;white-space:normal}.cd-kid__date{grid-area:date}
  .cd-ver__dl{min-height:var(--control-h-touch)}
  .cd-danger .btn{width:100%;min-height:var(--control-h-touch)}
  .cd-diff__head{display:none}
  .cd-diff li{grid-template-columns:1fr;gap:var(--s-1)}
  .cd-diff__arrow{display:none}
  .cd-diff__lbl{display:block;font-size:var(--fs-meta);color:var(--ink-3);margin-top:var(--s-1)}
  .cd-choice{grid-template-columns:1fr}
}
@media (prefers-reduced-motion: reduce){
  .cd-kid,.cd-fold__chev,.cd-choice button{transition:none}
}

/* ============ НОВЫЙ ДОГОВОР, ВЫБОР ШАБЛОНА, ФИНАЛ, БЫСТРЫЙ ВВОД (nf-) ============ */
.nf-page{max-width:1120px}

/* ---------- заголовок страницы ---------- */
.nf-head{margin-bottom:var(--s-5)}
.nf-head h1{font-size:var(--fs-2xl);letter-spacing:-.015em;line-height:var(--lh-tight);margin:var(--s-1) 0 var(--s-2);text-wrap:balance}
.nf-head p{color:var(--ink-2);max-width:72ch;margin:0}
.nf-head p b{color:var(--ink);font-weight:500}
.nf-code{display:inline-flex;align-items:center;min-height:22px;padding:0 var(--s-2);margin-right:var(--s-2);border-radius:var(--r-sm);background:var(--surface-3);color:var(--ink-2);font-family:var(--font-data);font-size:var(--fs-meta);vertical-align:1px}

/* ---------- шаги выбора ---------- */
.nf-steps{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-4);margin:0 0 var(--s-5);padding:0;list-style:none;counter-reset:nfstep;font-size:var(--fs-meta);color:var(--ink-3)}
.nf-steps li{display:flex;align-items:center;gap:var(--s-2);counter-increment:nfstep}
.nf-steps li::before{content:counter(nfstep);width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-strong);font-family:var(--font-data);font-size:11px}
.nf-steps li + li::after{content:none}
.nf-steps li[aria-current="step"]{color:var(--ink);font-weight:500}
.nf-steps li[aria-current="step"]::before{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.nf-steps li.is-done{color:var(--ink-2)}
.nf-steps li.is-done::before{background:var(--accent-soft);border-color:transparent;color:var(--accent-ink)}
.nf-steps a{color:inherit}

/* ---------- секция: колонка-подпись + тело (как «Ждёт финала» в журнале) ---------- */
.nf-sec{display:grid;grid-template-columns:var(--queue-label-w) minmax(0,1fr);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);margin-bottom:var(--s-4);scroll-margin-top:var(--s-4)}
.nf-sec__label{background:var(--surface-2);padding:var(--s-4);border-right:1px solid var(--line);border-radius:var(--r-lg) 0 0 var(--r-lg);display:flex;flex-direction:column;gap:var(--s-1)}
.nf-sec__label h2{font-size:var(--fs-lg);margin:0;line-height:var(--lh-tight)}
.nf-sec__label p{margin:0;color:var(--ink-2);font-size:var(--fs-meta);line-height:var(--lh-base)}
.nf-sec__body{padding:var(--s-4) var(--s-5) var(--s-5);min-width:0}
.nf-num{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-ink);font-family:var(--font-data);font-size:var(--fs-meta);font-weight:500;margin-bottom:var(--s-1)}
.nf-sub{font-size:var(--fs-table);font-weight:600;color:var(--ink);margin:var(--s-5) 0 var(--s-3);padding-top:var(--s-4);border-top:1px solid var(--line)}

/* ---------- поля ---------- */
.nf-f{display:grid;grid-template-columns:auto 1fr;align-content:start;column-gap:2px;row-gap:6px;font-size:var(--fs-meta);font-weight:500;color:var(--ink-2)}
.nf-f > input,.nf-f > select,.nf-f > textarea,.nf-f > .nf-err,.nf-f > .hint{grid-column:1/-1}
.nf-f > input::placeholder{color:var(--ink-3);opacity:.8}
.nf-f .req{justify-self:start}
.nf-f select{appearance:none;padding-right:var(--s-8);background-image:linear-gradient(45deg,transparent 50%,var(--ink-2) 50%),linear-gradient(135deg,var(--ink-2) 50%,transparent 50%);background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px;background-repeat:no-repeat;cursor:pointer}
.nf-mono,input.nf-mono{font-family:var(--font-data);font-size:var(--fs-table)}
.nf-err{display:flex;align-items:flex-start;gap:var(--s-1);color:var(--danger-ink);font-weight:500}
.nf-err svg.i{width:16px;height:16px;flex:none;margin-top:1px}
.nf-f.is-invalid > input,.nf-f.is-invalid > select{border-color:var(--danger-ink)}
.nf-f.is-invalid > input:focus{box-shadow:0 0 0 3px var(--danger-soft)}
.nf-f.is-filled > input{background:var(--ok-soft);border-color:var(--ok-line)}
.nf-f.is-filled > input:focus{background:var(--surface)}

.nf-note{display:flex;gap:var(--s-2);align-items:flex-start;margin:0 0 var(--s-4);padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--surface-2);color:var(--ink-2);font-size:var(--fs-meta);line-height:var(--lh-base)}
.nf-note svg.i{width:18px;height:18px;flex:none;color:var(--accent-ink);margin-top:1px}
.nf-note a{color:var(--accent-ink)}

/* ---------- заполнить из документа ---------- */
.nf-import__body{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:var(--s-4)}
.nf-src{display:flex;flex-direction:column;gap:var(--s-2);min-width:0}
.nf-src textarea{margin:0;min-height:88px}
.nf-src__act{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}
.nf-src__note{font-size:var(--fs-meta);color:var(--ink-3)}
.nf-or{display:flex;flex-direction:column;align-items:center;color:var(--ink-3);font-size:var(--fs-meta)}
.nf-or::before,.nf-or::after{content:"";flex:1;width:1px;background:var(--line)}
.nf-or span{padding:var(--s-2) 0}
.nf-drop{position:relative;display:flex;flex-direction:row;align-items:center;gap:var(--s-3);min-height:88px;padding:var(--s-3) var(--s-4);border:1px dashed var(--control-line);border-radius:var(--r-md);background:var(--surface-2);color:var(--ink-2);cursor:pointer;transition:border-color var(--d-fast) var(--ease-out),background-color var(--d-fast) var(--ease-out)}
.nf-drop:hover{border-color:var(--accent);background:var(--accent-soft)}
.nf-drop:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.nf-drop > svg.i{width:24px;height:24px;flex:none;color:var(--accent-ink)}
.nf-drop__t{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:var(--fs-meta);font-weight:400}
.nf-drop__t b{color:var(--ink);font-size:var(--fs-table);font-weight:500;overflow-wrap:anywhere}
.nf-drop input[type="file"]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;min-height:0;padding:0;border:0}
.nf-drop.has-file{border-style:solid;border-color:var(--accent);background:var(--accent-soft)}
.nf-status{margin:0;min-height:0;font-size:var(--fs-meta);color:var(--ink-2);display:flex;align-items:center;gap:var(--s-2)}
.nf-status:empty{display:none}
.nf-status[data-state="loading"]::before{content:"";width:12px;height:12px;flex:none;border-radius:50%;border:2px solid var(--accent);border-right-color:transparent;animation:spin .7s linear infinite}
.nf-status[data-state="ok"]{color:var(--ok-ink)}
.nf-status[data-state="err"]{color:var(--danger-ink)}

/* ---------- пункты договора ---------- */
.nf-cl-tools{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-2)}
.nf-cl-sum{font-size:var(--fs-meta);color:var(--ink-3)}
.nf-cl-sum.is-changed{color:var(--warn-ink);font-weight:500}
.nf-cl details{background:var(--surface);border-color:var(--line);margin:0;border-radius:0;border-bottom-width:0}
.nf-cl details:first-child{border-radius:var(--r-md) var(--r-md) 0 0}
.nf-cl details:nth-last-child(2){border-bottom-width:1px;border-radius:0 0 var(--r-md) var(--r-md)}
.nf-cl details:first-child:nth-last-child(2){border-radius:var(--r-md)}
.nf-cl summary{min-height:var(--row-h);padding:var(--s-1) var(--s-3);font-size:var(--fs-table)}
.nf-cl summary:hover{background:var(--surface-2)}
.nf-cl summary b{font-weight:500;flex:1;min-width:0}
.nf-cl summary .check{padding:var(--s-1);margin:calc(-1 * var(--s-1))}
.nf-cl .gone{margin-left:0;white-space:nowrap}
.nf-chev{width:16px;height:16px;flex:none;color:var(--ink-3);transition:transform var(--d-fast) var(--ease-out)}
.nf-cl details[open] > summary .nf-chev{transform:rotate(90deg)}
.nf-cl details[open] > summary{border-bottom:1px solid var(--line)}
.nf-cl details.is-off > summary b{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--line-strong)}
.nf-cl .items{padding:var(--s-2) var(--s-3) var(--s-3) calc(var(--s-3) + 26px)}
.nf-cl .items .check{font-size:var(--fs-table);line-height:var(--lh-base);padding:5px 0}
.nf-cl .items .check input{margin-top:2px}
.nf-cl .items .check:has(input:not(:checked)) > span{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--line-strong)}
.nf-cl .items .check:has(input:disabled){cursor:default}
.nf-cl .nf-mono{color:var(--ink-3);font-size:var(--fs-meta)}
.nf-lock{font-size:var(--fs-meta);color:var(--ink-3);white-space:nowrap}

/* ---------- выбор направления и шаблона ---------- */
.nf-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s-3)}
.nf-tile{display:flex;flex-direction:column;justify-content:space-between;gap:var(--s-4);min-height:96px;padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);color:var(--ink);text-decoration:none;transition:border-color var(--d-fast) var(--ease-out),background-color var(--d-fast) var(--ease-out),transform var(--d-fast) var(--ease-out)}
.nf-tile:hover{border-color:var(--accent);background:var(--surface-2)}
.nf-tile:active{transform:translateY(1px)}
.nf-tile__code{font-family:var(--font-data);font-size:var(--fs-xl);font-weight:500;color:var(--accent-ink);letter-spacing:-.01em}
.nf-tile__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);font-size:var(--fs-meta);color:var(--ink-2)}
.nf-tile__foot svg.i{width:18px;height:18px;color:var(--ink-3)}
.nf-tile.is-other{background:var(--surface-2);border-style:dashed}
.nf-tile.is-other .nf-tile__code{font-family:var(--font-ui);font-size:var(--fs-lg);color:var(--ink)}

.nf-group + .nf-group{margin-top:var(--s-5)}
.nf-group h2{font-size:var(--fs-table);font-weight:600;color:var(--ink-2);margin:0 0 var(--s-2)}
.nf-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:clip}
.nf-list li + li{border-top:1px solid var(--line)}
.nf-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto 20px;align-items:center;gap:var(--s-3);min-height:56px;padding:var(--s-2) var(--s-4);color:var(--ink);text-decoration:none;transition:background-color var(--d-fast) var(--ease-out)}
.nf-row:hover{background:var(--surface-2)}
.nf-row:hover .nf-row__go{color:var(--accent-ink);transform:translateX(2px)}
.nf-row__code{font-family:var(--font-data);font-size:var(--fs-meta);color:var(--ink-3)}
.nf-row__name{font-weight:500;min-width:0}
.nf-row__name span{display:block;font-weight:400;font-size:var(--fs-meta);color:var(--ink-2)}
.nf-row__go{width:18px;height:18px;color:var(--ink-3);transition:transform var(--d-fast) var(--ease-out),color var(--d-fast) var(--ease-out)}

.nf-aside{margin-top:var(--s-5);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-4);font-size:var(--fs-meta);color:var(--ink-2)}

/* ---------- загрузка финала ---------- */
.nf-after{margin:var(--s-4) 0 0}
.nf-drop.is-invalid{border-color:var(--danger-ink)}
.nf-steps-v{list-style:none;margin:0;padding:0;counter-reset:nfv;display:flex;flex-direction:column;gap:var(--s-3)}
.nf-steps-v li{counter-increment:nfv;display:grid;grid-template-columns:24px minmax(0,1fr);gap:var(--s-3);color:var(--ink-2);line-height:var(--lh-base)}
.nf-steps-v li::before{content:counter(nfv);width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-ink);font-family:var(--font-data);font-size:var(--fs-meta)}
.nf-steps-v b{color:var(--ink);font-weight:500}

/* ---------- адаптив ---------- */
@media (max-width:1179px){
  .nf-import__body{grid-template-columns:1fr}
  .nf-or{flex-direction:row}
  .nf-or::before,.nf-or::after{width:auto;height:1px}
  .nf-or span{padding:0 var(--s-3)}
}
@media (max-width:1023px){
  .nf-sec{grid-template-columns:1fr}
  .nf-sec__label{border-right:0;border-bottom:1px solid var(--line);border-radius:var(--r-lg) var(--r-lg) 0 0;display:grid;grid-template-columns:auto 1fr;column-gap:var(--s-3);align-items:center}
  .nf-sec__label p{grid-column:1/-1}
  .nf-sec__label:not(:has(.nf-num)){display:block}
  .nf-sec__label:not(:has(.nf-num)) p{margin-top:var(--s-1)}
  .nf-num{margin:0}
}
@media (max-width:767px){
  .nf-head h1{font-size:var(--fs-xl)}
  .nf-sec__label{padding:var(--s-3) var(--s-4)}
  .nf-sec__body{padding:var(--s-4)}
  .nf-f > input,.nf-f > select,.nf-src textarea{min-height:var(--control-h-touch);font-size:16px}
  .nf-src__act .btn{flex:1 1 auto}
  .nf-cl summary{min-height:48px}
  .nf-cl .items{padding-left:var(--s-3)}
  .nf-cl .items .check{min-height:44px;align-items:center;padding:var(--s-1) 0}
  .nf-cl .lvl3{padding-left:var(--s-4)}
  .nf-cl .lvl4{padding-left:var(--s-8)}
  .nf-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nf-tile{min-height:96px;padding:var(--s-3) var(--s-4)}
  .nf-row{grid-template-columns:44px minmax(0,1fr) 18px;min-height:60px;padding:var(--s-2) var(--s-3)}
  .nf-row__tag{grid-column:2;grid-row:2}
  .nf-row__tag:empty{display:none}
  .nf-row__go{grid-column:3;grid-row:1/span 2}
  .nf-steps li:not([aria-current="step"]) .nf-step-t{display:none}
}
@media (prefers-reduced-motion: reduce){
  .nf-tile:active{transform:none}
  .nf-row:hover .nf-row__go{transform:none}
  .nf-status[data-state="loading"]::before{animation:none;border-right-color:var(--accent)}
}

/* ============ СПРАВОЧНИКИ: ОРГАНИЗАЦИИ, ШАБЛОНЫ, ДОСТУП, ОШИБКА (cat-) ============ */
/* ---------- общие мелочи ---------- */
.cat-head{margin-bottom:var(--s-5)}
.cat-head p{max-width:72ch}
.cat-head > .btn,.cat-head > .actions{align-self:flex-start}
.cat-count{font-family:var(--font-data);font-size:var(--fs-meta);font-weight:400;color:var(--ink-3);font-variant-numeric:tabular-nums}
.cat-meta{display:block;font-size:var(--fs-meta);line-height:16px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.cat-clip{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-clip2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cat-empty{color:var(--ink-3)}
.cat-missing{display:inline-flex;align-items:center;gap:6px;color:var(--warn-ink);font-weight:500}
.cat-missing svg.i{width:16px;height:16px}
.cat-pad{padding:var(--s-4) var(--s-5)}
.cat-foot-note{margin-top:var(--s-4);color:var(--ink-3);font-size:var(--fs-meta);max-width:72ch}

/* ---------- таблица справочников ---------- */
.cat-wrap{overflow:visible}
.cat-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:var(--fs-table);line-height:var(--lh-table)}
.cat-table thead th{background:var(--surface-2);height:36px;padding:0 var(--s-3);text-align:left;font-weight:500;font-size:var(--fs-meta);color:var(--ink-2);border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-wrap .cat-table thead th:first-child{border-top-left-radius:calc(var(--r-lg) - 1px)}
.cat-wrap .cat-table thead th:last-child{border-top-right-radius:calc(var(--r-lg) - 1px)}
.cat-wrap .cat-table tbody tr:last-child td:first-child{border-bottom-left-radius:calc(var(--r-lg) - 1px)}
.cat-wrap .cat-table tbody tr:last-child td:last-child{border-bottom-right-radius:calc(var(--r-lg) - 1px)}
.cat-table th.r,.cat-table td.r{text-align:right}
.cat-table tbody td{padding:var(--s-2) var(--s-3);height:var(--row-h);border-bottom:1px solid var(--line);vertical-align:middle;min-width:0;overflow-wrap:anywhere}
.cat-table tbody tr:last-child td{border-bottom:0}
.cat-table tbody tr{transition:background-color var(--d-fast) var(--ease-out)}
.cat-table tbody tr:hover{background:var(--surface-2)}
.cat-table tbody tr[data-href]{cursor:pointer}
.cat-name{display:block;font-weight:500;color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-name:hover{color:var(--accent-ink);text-decoration:underline}
.cat-table .mono{font-size:13px}
.cat-c-act .more-d{display:inline-block;vertical-align:middle}

/* организации */
.cat-orgs .cat-c-ids{width:156px}
.cat-orgs .cat-c-sign{width:22%}
.cat-orgs .cat-c-contact{width:22%}
.cat-orgs .cat-c-act{width:56px;text-align:right}

/* ---------- карточка организации ---------- */
.cat-title{min-width:0}
.cat-title h1{overflow-wrap:anywhere}
.cat-facts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-4);margin-top:var(--s-2)}
.cat-facts .mono{color:var(--ink)}
.cat-note{margin:calc(-1 * var(--s-2)) 0 var(--s-5)}

.cat-detail{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-5);align-items:start}
.cat-req-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.cat-req-group{padding:var(--s-4) var(--s-5);border-top:1px solid var(--line);min-width:0}
.cat-req-group:nth-child(-n+2){border-top:0}
.cat-req-group:nth-child(even){border-left:1px solid var(--line)}
.cat-req-group:last-child:nth-child(odd){grid-column:1 / -1}
.cat-req-group h3{font-size:var(--fs-meta);font-weight:500;color:var(--ink-3);margin:0 0 var(--s-2);letter-spacing:.02em}
.cat-contracts .cat-table tbody tr:last-child td:first-child{border-bottom-left-radius:calc(var(--r-lg) - 1px)}
.cat-contracts .cat-table tbody tr:last-child td:last-child{border-bottom-right-radius:calc(var(--r-lg) - 1px)}
.cat-ctr .cat-cell-no{width:128px}
.cat-ctr th:nth-child(1){width:128px}
.cat-ctr th:nth-child(3){width:148px}
.cat-ctr th:nth-child(4){width:128px}
.cat-ctr th:nth-child(5){width:112px}
.cat-cell-no a{font-weight:500;color:var(--ink);text-decoration:none;white-space:nowrap}
.cat-cell-no a:hover{color:var(--accent-ink);text-decoration:underline}
.cat-sline{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-2);white-space:nowrap}
.cat-ctr tr.is-cancelled .cat-sline .mono{color:var(--ink-3);text-decoration:line-through;text-decoration-thickness:1px}
.cat-files{display:inline-flex;gap:2px;justify-content:flex-end;white-space:nowrap}
.cat-table td.cat-c-files,.cat-table td.cat-cell-no,.cat-table td.cat-cell-st{overflow-wrap:normal}
.cat-file{display:inline-flex;align-items:center;min-height:32px;padding:0 var(--s-1);border-radius:var(--r-sm);font-family:var(--font-data);font-size:var(--fs-meta);color:var(--accent-ink);text-decoration:none;transition:background-color var(--d-fast) var(--ease-out)}
.cat-file:hover{background:var(--accent-soft)}
.cat-state-sm{padding:var(--s-6) var(--s-5)}

.cat-danger{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--s-3) var(--s-6);margin-top:var(--s-8);padding-top:var(--s-5);border-top:1px solid var(--line)}
.cat-danger h2{font-size:var(--fs-base);margin:0 0 var(--s-1)}
.cat-danger p{color:var(--ink-2);font-size:var(--fs-table);max-width:64ch}

@media (min-width:1280px){
  .cat-detail{grid-template-columns:minmax(360px,5fr) minmax(0,8fr)}
  .cat-req-groups{grid-template-columns:minmax(0,1fr)}
  .cat-req-group:nth-child(-n+2){border-top:1px solid var(--line)}
  .cat-req-group:first-child{border-top:0}
  .cat-req-group:nth-child(even){border-left:0}
}

/* ---------- формы ---------- */
.cat-form{display:flex;flex-direction:column;gap:var(--s-4);max-width:1120px}
.cat-fieldset{margin:0;padding:var(--s-4) var(--s-5) var(--s-5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);min-width:0}
.cat-fieldset legend{float:left;width:100%;padding:0;margin:0 0 var(--s-1);font-size:var(--fs-lg);font-weight:600;line-height:var(--lh-tight)}
.cat-fieldset legend + *{clear:both}
.cat-fieldset .hint{margin-bottom:var(--s-1)}
.cat-fieldset .fields{margin-top:var(--s-3);clear:both}
.cat-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.cat-field > .hint{line-height:16px}
.cat-field > label{display:block;font-size:var(--fs-meta);line-height:16px;font-weight:500;color:var(--ink-2)}
.cat-select{display:flex}
.cat-select select{width:100%;font-size:var(--fs-table)}

/* ---------- шаблоны ---------- */
.cat-jump{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-2)}
.cat-jump a{display:inline-flex;align-items:center;gap:var(--s-2);min-height:32px;padding:0 var(--s-3);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--ink-2);text-decoration:none;font-size:var(--fs-table);transition:border-color var(--d-fast) var(--ease-out),color var(--d-fast) var(--ease-out)}
.cat-jump a:hover{border-color:var(--accent);color:var(--ink)}
.cat-group{margin-top:var(--s-6);scroll-margin-top:var(--s-4)}
.cat-group h2{display:flex;align-items:baseline;gap:var(--s-2);margin:0}
.cat-group .cat-wrap{margin-top:var(--s-2)}
.cat-tpl .cat-c-code{width:72px}
.cat-tpl .cat-c-form{width:22%}
.cat-tpl .cat-c-rev{width:120px}
.cat-tpl .cat-c-act{width:196px}
.cat-tname{display:block;font-weight:500}
.cat-tags{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-1) var(--s-2)}
.cat-tags .cat-meta{display:inline;white-space:normal}
.cat-date{color:var(--ink-2)}
.cat-row-act{display:inline-flex;gap:var(--s-1);justify-content:flex-end}
.cat-tpl tr.is-off .cat-tname{color:var(--ink-2);font-weight:400}

/* ---------- настройка полей ---------- */
.cat-lead{color:var(--ink-2);max-width:72ch;margin-bottom:var(--s-4)}
.cat-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4);align-items:start;margin-bottom:var(--s-4)}
.cat-checks{margin:0;padding:0;min-width:0}
.cat-checks > legend.panel__bar{float:left;width:100%;box-sizing:border-box;margin:0}
.cat-checks > legend + *{clear:both}
.cat-legend{display:flex;align-items:center;gap:var(--s-3);font-size:var(--fs-lg);font-weight:600;min-width:0}
.cat-legend .cat-meta{font-weight:400;white-space:normal}
.cat-glyph{width:32px;height:32px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-ink);flex:none}
.cat-toggles{display:flex;gap:var(--s-1);padding:var(--s-2) var(--s-3) 0}
.cat-toggles:not(:has(button:not([hidden]))){display:none}
.cat-checklist{list-style:none;margin:0;padding:var(--s-1) var(--s-2) var(--s-2)}
.cat-check{display:flex;flex-direction:row;align-items:center;gap:var(--s-3);min-height:40px;padding:var(--s-1) var(--s-3);border-radius:var(--r-md);color:var(--ink);font-size:var(--fs-table);font-weight:400;cursor:pointer;transition:background-color var(--d-fast) var(--ease-out)}
.cat-check:hover{background:var(--surface-2)}
.cat-check:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:-2px}
.cat-check input:focus-visible{outline:none}

/* ---------- доступ ---------- */
.cat-add{margin-bottom:var(--s-6)}
.cat-add-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr) auto;gap:var(--s-4);align-items:start;padding:var(--s-4) var(--s-5) var(--s-5)}
.cat-field-btn{padding-top:22px}
.cat-uname{overflow-wrap:anywhere}
.cat-prefix{display:flex;align-items:center;border:1px solid var(--control-line);border-radius:var(--r-md);background:var(--surface);transition:border-color var(--d-fast) var(--ease-out),box-shadow var(--d-fast) var(--ease-out)}
.cat-prefix:hover{border-color:var(--ink-3)}
.cat-prefix:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.cat-prefix > span{padding-left:var(--s-3);color:var(--ink-3);font-family:var(--font-data)}
.cat-prefix input,.cat-prefix input:hover,.cat-prefix input:focus{border:0;box-shadow:none;background:transparent;padding-left:2px;font-family:var(--font-data)}
.cat-users h2{display:flex;align-items:baseline;gap:var(--s-2);margin:0}
.cat-users .cat-wrap{margin-top:var(--s-2)}
.cat-acc .cat-c-user{width:200px}
.cat-acc .cat-c-by{width:150px}
.cat-acc .cat-c-act{width:136px}
.cat-uname{font-weight:500;color:var(--ink)}
.cat-inline{display:flex;gap:var(--s-2);align-items:center}
.cat-inline input{min-height:36px;flex:1 1 0;min-width:0}
.cat-inline input:not(:hover):not(:focus){border-color:var(--line)}
.cat-revoke{color:var(--danger-ink)}
.cat-revoke:hover{background:var(--danger-soft)}

/* ---------- ошибка ---------- */
.cat-error{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-3);max-width:560px;margin:var(--s-12) auto var(--s-8);padding:var(--s-8);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.cat-error-code{font-size:var(--fs-meta);color:var(--ink-3);margin-top:var(--s-2)}
.cat-error h1{font-size:var(--fs-2xl);letter-spacing:-.015em;margin-top:calc(-1 * var(--s-2))}
.cat-error-detail{color:var(--ink);font-weight:500}
.cat-error-hint{color:var(--ink-2);max-width:52ch}
.cat-error .actions{margin-top:var(--s-2)}

/* ---------- адаптив ---------- */
@media (max-width:1279px){
  .cat-orgs .cat-c-contact{display:none}
  .cat-orgs .cat-c-sign{width:30%}
}
@media (max-width:1100px){
  .cat-add-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cat-field-btn{padding-top:0}
  .cat-acc .cat-c-by{display:none}
}
@media (max-width:1023px){
  .cat-tpl .cat-c-form{width:26%}
  .cat-tpl .cat-c-rev{display:none}
  .cat-ctr .cat-c-files{display:none}
}
@media (max-width:1179px){
  .cat-jump a{min-height:44px}
  .cat-file{min-height:44px;padding:0 var(--s-3)}
  .cat-check{min-height:48px}
  .cat-inline input{min-height:44px}
}

/* телефон: таблицы становятся карточками */
@media (max-width:767px){
  .cat-head > .btn,.cat-head > .actions{align-self:stretch}
  .cat-head .btn-primary{width:100%}
  .cat-wrap{border:0;background:transparent;border-radius:0}
  .cat-contracts .panel__bar{border-radius:calc(var(--r-lg) - 1px) calc(var(--r-lg) - 1px) 0 0}
  .cat-table,.cat-table tbody{display:block}
  .cat-table thead,.cat-table caption{display:none}
  .cat-table tbody{display:flex;flex-direction:column;gap:var(--s-3)}
  .cat-table tbody tr{display:grid;gap:var(--s-2) var(--s-3);padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
  .cat-table tbody tr:hover{background:var(--surface)}
  .cat-table tbody td{display:block;height:auto;padding:0;border:0;text-align:left;min-width:0}
  .cat-table tbody td.r{text-align:left}
  .cat-wrap .cat-table tbody tr td{border-radius:0!important}
  .cat-name{font-size:1rem;white-space:normal;line-height:1.35}
  .cat-orgs .cat-c-ids::before,.cat-orgs .cat-c-sign::before,.cat-orgs .cat-c-contact::before{display:block;font-size:var(--fs-meta);color:var(--ink-3);line-height:16px;margin-bottom:2px}

  .cat-orgs tbody tr{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;grid-template-areas:"name name act" "ids sign sign" "contact contact contact"}
  .cat-orgs .cat-cell-name{grid-area:name}
  .cat-orgs .cat-c-act{grid-area:act;width:auto;margin:calc(-1 * var(--s-2)) calc(-1 * var(--s-2)) 0 0}
  .cat-orgs .cat-c-act .more{width:44px;height:44px}
  .cat-orgs .cat-c-ids{grid-area:ids;width:auto}
  .cat-orgs .cat-c-ids::before{content:"ИНН"}
  .cat-orgs .cat-c-sign{grid-area:sign;width:auto}
  .cat-orgs .cat-c-sign::before{content:"Подписант"}
  .cat-orgs .cat-c-contact{grid-area:contact;display:block;width:auto;padding-top:var(--s-2);border-top:1px solid var(--line)}
  .cat-orgs .cat-c-contact::before{content:"Контакты"}
  .cat-orgs .cat-c-contact .cat-clip,.cat-orgs .cat-c-contact .cat-meta{white-space:normal}
  .cat-orgs .cat-meta{white-space:normal}

  .cat-req-groups{grid-template-columns:minmax(0,1fr)}
  .cat-req-group{padding:var(--s-4)}
  .cat-req-group:nth-child(2){border-top:1px solid var(--line)}
  .cat-req-group:nth-child(even){border-left:0}
  .cat-contracts{background:transparent;border:0}
  .cat-contracts .panel__bar{border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:var(--s-3)}
  .cat-ctr tbody tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"no st" "doc doc" "sum files"}
  .cat-ctr .cat-cell-no{grid-area:no;width:auto}
  .cat-ctr .cat-cell-no a{font-size:var(--fs-base)}
  .cat-ctr .cat-c-doc{grid-area:doc}
  .cat-ctr .cat-cell-sum{grid-area:sum;align-self:center}
  .cat-ctr .cat-sline{justify-content:flex-start}
  .cat-ctr .cat-cell-st{grid-area:st}
  .cat-ctr .cat-c-files{grid-area:files;display:block}
  .cat-ctr .cat-file{border:1px solid var(--line-strong);border-radius:var(--r-md);font-family:var(--font-ui);font-weight:500;color:var(--ink)}
  .cat-danger{flex-direction:column;align-items:stretch}
  .cat-danger .btn{width:100%}

  .cat-fieldset{padding:var(--s-4)}

  .cat-group h2{font-size:var(--fs-lg)}
  .cat-tpl tbody tr{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"code form" "name name" "act act"}
  .cat-tpl .cat-c-code{grid-area:code;width:auto}
  .cat-tpl .cat-cell-name{grid-area:name}
  .cat-tpl .cat-tname{font-size:1rem;line-height:1.35}
  .cat-tpl .cat-c-form{grid-area:form;width:auto;justify-self:end}
  .cat-tpl .cat-c-act{grid-area:act;width:auto}
  .cat-tpl .cat-c-act:empty,.cat-tpl .cat-c-act:not(:has(a)){display:none}
  .cat-row-act{display:flex;gap:var(--s-2)}
  .cat-row-act .btn{flex:1}
  .cat-row-act .btn-quiet{border-color:var(--line-strong)}

  .cat-two{grid-template-columns:minmax(0,1fr)}

  .cat-add-form{grid-template-columns:minmax(0,1fr);padding:var(--s-4)}
  .cat-add-form .btn{width:100%}
  .cat-acc tbody tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"user act" "edit edit"}
  .cat-acc .cat-c-user{grid-area:user;width:auto;align-self:center}
  .cat-acc .cat-uname{font-size:var(--fs-base)}
  .cat-acc .cat-cell-edit{grid-area:edit}
  .cat-acc .cat-c-act{grid-area:act;width:auto}
  .cat-inline{flex-wrap:wrap}
  .cat-inline input{flex:1 1 100%}
  .cat-inline .btn{width:100%}

  .cat-error{margin:var(--s-4) 0 var(--s-6);padding:var(--s-6) var(--s-5)}
  .cat-error h1{font-size:var(--fs-xl)}
  .cat-error .actions{width:100%}
}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}
  dialog.sheet[open]{animation:none}
}

/* ---- Вход на сайт ------------------------------------------------------------ */
.auth-body{min-height:100vh}
.auth{position:relative;display:grid;grid-template-columns:minmax(280px,38%) 1fr;min-height:100vh}
.auth-spine{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:var(--s-8);padding:var(--s-10) var(--s-10) var(--s-8);background:var(--nav-bg);color:var(--nav-ink);overflow:hidden}
.auth-spine::after{content:"";position:absolute;inset:auto -20% -30% auto;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,var(--nav-bg-2),transparent);opacity:.7;pointer-events:none}
.auth-spine .brand b{font-size:var(--fs-xl)}
.auth-spine .brand span{font-size:var(--fs-lg)}
.auth-stack{position:relative;z-index:1;display:grid;gap:10px;max-width:340px}
.auth-stack span{display:block;width:var(--w);height:14px;border-radius:3px;background:var(--nav-bg-2);border-left:4px solid var(--nav-ink-2);opacity:.9;animation:authspine .7s var(--ease-out) both}
.auth-stack span:nth-child(2){animation-delay:60ms}
.auth-stack span:nth-child(3){animation-delay:120ms;border-left-color:var(--accent-soft)}
.auth-stack span:nth-child(4){animation-delay:180ms}
.auth-stack span:nth-child(5){animation-delay:240ms}
@keyframes authspine{from{opacity:0;transform:translateX(-12px)}to{opacity:.9;transform:none}}
.auth-tagline{position:relative;z-index:1;margin:0;max-width:30ch;font-size:var(--fs-lg);line-height:var(--lh-base);color:var(--nav-ink-2)}
.auth-main{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-6);padding:var(--s-12) var(--s-4)}
.auth-theme{position:absolute;top:var(--s-3);right:var(--s-3);z-index:2;color:var(--ink-2)}
.auth-theme:hover{background:var(--surface-3)}
.auth-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--s-4);animation:authin var(--d-sheet) var(--ease-out) both}
@keyframes authin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.auth-card h1{margin:0;font-size:var(--fs-2xl);font-weight:600;line-height:var(--lh-tight);letter-spacing:-.01em}
.auth-lead{margin:calc(-1 * var(--s-2)) 0 var(--s-2);color:var(--ink-3);font-size:var(--fs-table)}
.auth-card .callout{margin:0}
.auth-card .callout p{margin:0}
.auth-mbrand{display:none;color:var(--ink)}
.auth-mbrand span{color:var(--ink-3)}
.auth-field{display:flex;flex-direction:column;gap:6px}
.auth-field label{font-size:var(--fs-table);font-weight:500;color:var(--ink-2)}
.auth-input{position:relative;display:block}
.auth-input > svg.i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}
.auth-input input{min-height:var(--control-h-touch);padding-left:40px;font-size:var(--fs-base)}
.auth-input input[type="password"],.auth-input input#password{padding-right:48px}
.auth-input input[aria-invalid="true"]{border-color:var(--danger-ink)}
.auth-reveal{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:var(--r-sm);background:none;color:var(--ink-3);cursor:pointer}
.auth-reveal:hover{background:var(--surface-3);color:var(--ink)}
.auth-caps{margin:0;font-size:var(--fs-meta);color:var(--warn-ink)}
.auth-submit{min-height:var(--control-h-touch);margin-top:var(--s-2);font-size:var(--fs-base)}
.auth-submit svg.i{transition:transform var(--d-fast) var(--ease-out)}
.auth-submit:hover svg.i{transform:translateX(3px)}
.auth-foot{margin:0;font-size:var(--fs-meta);color:var(--ink-3)}
@media (max-width: 767px){
  .auth{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .auth-spine{padding:var(--s-5) var(--s-4);gap:var(--s-4);flex-direction:row;align-items:center}
  .auth-spine .auth-stack,.auth-spine .auth-tagline,.auth-spine::after{display:none}
  .auth-spine .brand b{font-size:var(--fs-lg)}
  .auth-spine .brand span{font-size:var(--fs-base)}
  .auth-main{justify-content:flex-start;padding:var(--s-8) var(--s-4) var(--s-6)}
  .auth-theme{top:10px;right:var(--s-2);color:var(--nav-ink)}
  .auth-theme:hover{background:var(--nav-bg-2)}
}
@media (prefers-reduced-motion: reduce){
  .auth-card,.auth-stack span{animation:none}
}

/* Выход из меню */
.logout-form{margin:0}
.sheet .sheet-user .logout-form{margin-left:auto}
