/* ==========================================================================
   База судебной практики BGP Litigation — стили приложения.
   Токены и компоненты — по образцу «Прототип_витрины_v3.0.html»:
   двухосные темы data-mode=dark|light × data-style=color|mono,
   шрифт Hanken Grotesk, hover-подсветка карточек за курсором (--mx/--my).
   ========================================================================== */

:root{
  --violet:#b11cab;
  --font:"Hanken Grotesk",Manrope,Inter,"Segoe UI",system-ui,sans-serif;
  --t:.3s ease; --radius:10px;
}
html[data-mode="dark"]{
  --bg:#212322; --bg-2:#1d1f1e; --fg:#d9d8d6; --fg-strong:#ffffff;
  --card:#262827; --panel:rgba(38,40,39,.55);
  --line:#3a3c3b; --line-soft:#2c2e2d;
  --muted:#a7a8a9; --muted2:#76777a;
  --accent:#2ed9c3; --accent-2:#2ed9c3; --accent-ink:#122421;
  --accent-soft:rgba(46,217,195,.08); --accent-line:rgba(46,217,195,.4);
  --mark:rgba(46,217,195,.24); --mark-fg:#d8fff9;
  --hl:rgba(243,189,72,.28); --hl-fg:#ffe9b8;
  --green:#3dae2b; --green-soft:rgba(61,174,43,.10); --green-line:rgba(61,174,43,.4);
  --orange:#f3bd48; --orange-soft:rgba(243,189,72,.08); --orange-line:rgba(243,189,72,.45);
  --red:#ff7b7b; --red-soft:rgba(208,0,0,.12); --red-line:rgba(208,0,0,.45);
  --violet-fg:#d873d4; --violet-soft:rgba(177,28,171,.10);
  --topbar:rgba(26,28,27,.86); --shadow:0 18px 50px rgba(0,0,0,.42);
  --input:#1b1d1c;
}
html[data-mode="light"]{
  --bg:#f3f3f1; --bg-2:#e9e9e6; --fg:#333534; --fg-strong:#1f2120;
  --card:#ffffff; --panel:#f7f7f5;
  --line:#d9d9d6; --line-soft:#e6e6e3;
  --muted:#565857; --muted2:#838685;
  --accent:#146E62; --accent-2:#0b8c7d; --accent-ink:#ffffff;
  --accent-soft:rgba(20,110,98,.10); --accent-line:rgba(11,140,125,.4);
  --mark:rgba(46,217,195,.4); --mark-fg:#0c3f38;
  --hl:rgba(243,189,72,.45); --hl-fg:#5c4305;
  --green:#2f8f22; --green-soft:rgba(47,143,34,.10); --green-line:rgba(47,143,34,.35);
  --orange:#a97a10; --orange-soft:rgba(169,122,16,.10); --orange-line:rgba(169,122,16,.4);
  --red:#c40000; --red-soft:rgba(196,0,0,.08); --red-line:rgba(196,0,0,.35);
  --violet-fg:#9b1a95; --violet-soft:rgba(177,28,171,.06);
  --topbar:rgba(255,255,255,.88); --shadow:0 16px 44px rgba(20,40,36,.12);
  --input:#ffffff;
}
/* Стиль «монохром» */
html[data-style="mono"][data-mode="dark"]{
  --bg:oklch(.21 0 0); --bg-2:oklch(.17 0 0); --fg:oklch(.92 0 0); --fg-strong:oklch(.985 0 0);
  --card:oklch(.25 0 0); --panel:oklch(.23 0 0);
  --line:oklch(.33 0 0); --line-soft:oklch(.28 0 0);
  --muted:oklch(.72 0 0); --muted2:oklch(.58 0 0);
  --accent:oklch(.922 0 0); --accent-2:oklch(.85 0 0); --accent-ink:oklch(.205 0 0);
  --accent-soft:oklch(1 0 0 / .06); --accent-line:oklch(1 0 0 / .25);
  --mark:oklch(1 0 0 / .16); --mark-fg:oklch(.97 0 0);
}
html[data-style="mono"][data-mode="light"]{
  --bg:oklch(.985 0 0); --bg-2:oklch(.955 0 0); --fg:oklch(.32 0 0); --fg-strong:oklch(.145 0 0);
  --card:oklch(1 0 0); --panel:oklch(.97 0 0);
  --line:oklch(.88 0 0); --line-soft:oklch(.92 0 0);
  --muted:oklch(.45 0 0); --muted2:oklch(.6 0 0);
  --accent:oklch(.205 0 0); --accent-2:oklch(.35 0 0); --accent-ink:oklch(.985 0 0);
  --accent-soft:oklch(.205 0 0 / .06); --accent-line:oklch(.205 0 0 / .3);
  --mark:oklch(.205 0 0 / .14); --mark-fg:oklch(.2 0 0);
}
html[data-style="mono"] .logo svg line[stroke="#2ED9C3"]{stroke:var(--muted2)}

body{background:var(--bg);color:var(--fg);font-family:var(--font);font-weight:300;line-height:1.55;-webkit-font-smoothing:antialiased;transition:background .4s ease,color .4s ease;margin:0}
/* Верхняя панель не скачет при появлении/исчезновении вертикального скроллбара */
html{overflow-y:scroll}
@supports (scrollbar-gutter:stable){html{overflow-y:auto;scrollbar-gutter:stable}}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
a{color:var(--accent-2);text-decoration:none;cursor:pointer}
a:hover{text-decoration:underline}
mark{background:var(--mark);color:var(--mark-fg);padding:0 2px;border-radius:2px}
mark.hl{background:var(--hl);color:var(--hl-fg)}

/* Верхняя панель */
.top{border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--topbar);backdrop-filter:blur(14px);z-index:60}
/* Логотип и правый блок (выход + переключатели) всегда в одну верхнюю строку;
   переносится только сама навигация — так правый блок не «сползает» вниз. */
.top .wrap{display:flex;align-items:flex-start;gap:18px;padding:12px 28px;flex-wrap:nowrap}
.logo{display:flex;align-items:center;gap:10px;color:var(--fg-strong);font-weight:500;font-size:14px;white-space:nowrap;text-decoration:none}
.logo:hover{text-decoration:none}
.logo span{line-height:1.25}
.logo svg{height:35px;width:auto;flex:none}
.logo b{color:var(--accent-2);font-weight:600}
.nav{display:flex;gap:2px;flex-wrap:wrap;flex:1 1 auto;min-width:0;align-items:center}
.nav a{font-size:12.5px;color:var(--muted);padding:6px 9px;border-radius:30px;transition:var(--t);white-space:nowrap;text-decoration:none}
.nav a:hover{background:var(--accent-soft);color:var(--accent-2)}
.nav a.on{background:var(--accent);color:var(--accent-ink);font-weight:500}
.nav .divider{width:1px;background:var(--line);margin:2px 4px}
.rightbox{margin-left:auto;display:flex;align-items:center;gap:10px;flex:0 0 auto;align-self:flex-start}
.logout-btn{padding:5px 14px;font-size:12px;border-radius:30px;text-decoration:none;white-space:nowrap}
.logout-btn:hover{text-decoration:none}
.logo{flex:0 0 auto}
@media(max-width:760px){
  .top .wrap{flex-wrap:wrap}
  .nav{order:3;flex:1 1 100%}
}
.cart-badge{display:inline-grid;place-items:center;min-width:17px;height:17px;border-radius:10px;background:var(--accent);color:var(--accent-ink);font-size:10.5px;font-weight:700;padding:0 4px;margin-left:4px}

/* Переключатели темы и стиля (стандарт BGP) */
.theme-switch{position:relative;display:inline-flex;align-items:center;background:var(--bg-2);border:1px solid var(--line);border-radius:30px;padding:3px;cursor:pointer;transition:var(--t)}
.theme-switch:hover{border-color:var(--accent-line)}
.theme-switch .opt{position:relative;z-index:2;display:grid;place-items:center;width:30px;height:24px;border-radius:30px;color:var(--muted2);transition:color .3s}
.theme-switch .opt svg{width:14px;height:14px}
.theme-switch .knob{position:absolute;top:3px;left:3px;width:30px;height:24px;border-radius:30px;background:var(--accent);transition:transform .32s cubic-bezier(.4,1.3,.5,1)}
html[data-mode="light"] .theme-switch .knob{transform:translateX(30px)}
html[data-mode="dark"] .theme-switch .opt.moon{color:var(--accent-ink)}
html[data-mode="light"] .theme-switch .opt.sun{color:var(--accent-ink)}
.style-switch .opt{font-size:9.5px;font-weight:700;letter-spacing:.4px;font-family:var(--font);width:30px}
html:not([data-style="mono"]) .style-switch .knob{transform:translateX(30px)}
html[data-style="mono"] .style-switch .knob{transform:translateX(0)}
html[data-style="mono"] .style-switch .opt.mono{color:var(--accent-ink)}
html:not([data-style="mono"]) .style-switch .opt.color{color:var(--accent-ink)}

/* Общее */
.pg{padding:32px 0 76px;animation:fade .45s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.kick{color:var(--accent-2);letter-spacing:2px;text-transform:uppercase;font-size:11.5px;font-weight:600;display:inline-block;margin-bottom:10px}
h1{font-size:30px;font-weight:200;color:var(--fg-strong);letter-spacing:-.3px;margin:0 0 6px}
h1 b{font-weight:500;color:var(--accent-2)}
.sub{color:var(--muted);font-size:14.5px;max-width:82ch;margin:0}
.tag{display:inline-block;font-size:10.5px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;padding:4px 11px;border-radius:30px;border:1px solid;margin:0 5px 5px 0;white-space:nowrap}
.t-pub{color:var(--green);border-color:var(--green-line);background:var(--green-soft)}
.t-draft{color:var(--orange);border-color:var(--orange-line);background:var(--orange-soft)}
.t-proc{color:var(--accent-2);border-color:var(--accent-line);background:var(--accent-soft)}
.t-neg{color:var(--red);border-color:var(--red-line);background:var(--red-soft)}
.t-grey{color:var(--muted);border-color:var(--line)}
.btn{display:inline-flex;align-items:center;gap:7px;background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);padding:9px 20px;font-size:13.5px;font-weight:500;cursor:pointer;transition:var(--t);border-radius:0;font-family:var(--font);text-decoration:none}
.btn:hover{background:transparent;color:var(--accent-2);text-decoration:none}
.btn-o{display:inline-flex;align-items:center;gap:7px;background:transparent;color:var(--fg);border:1px solid var(--muted2);padding:9px 20px;font-size:13.5px;cursor:pointer;transition:var(--t);border-radius:0;font-family:var(--font)}
.btn-o:hover{border-color:var(--accent);color:var(--accent-2)}
.btn-r{display:inline-flex;align-items:center;gap:7px;background:transparent;color:var(--red);border:1px solid var(--red-line);padding:9px 20px;font-size:13.5px;cursor:pointer;transition:var(--t);border-radius:0;font-family:var(--font)}
.btn-r:hover{background:var(--red-soft)}
.mini{font-size:12.5px;padding:6px 13px}
.card{border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;background:var(--card);transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s;position:relative;overflow:hidden}
.card.hoverable:hover, .hoverable:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.card.hoverable:before{content:"";position:absolute;left:0;top:0;height:100%;width:3px;background:var(--accent);transform:scaleY(0);transform-origin:top;transition:transform .4s}
.card.hoverable:hover:before{transform:scaleY(1)}
/* Подсветка карточки за курсором (мягкое бирюзовое пятно) */
.hoverable:after{content:"";position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .45s;pointer-events:none;background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),rgba(46,217,195,.14),transparent 62%)}
.hoverable:hover:after{opacity:1}
html[data-mode="light"] .hoverable:after{background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),rgba(20,110,98,.10),transparent 62%)}

[data-tip]{position:relative}
[data-tip]:hover:after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);background:var(--fg-strong);color:var(--bg);font-size:12px;font-weight:400;line-height:1.4;padding:9px 12px;border-radius:7px;width:230px;z-index:80;box-shadow:var(--shadow);pointer-events:none;white-space:normal;text-align:left}

/* Витрина */
.searchrow{display:flex;gap:12px;margin:22px 0 8px;align-items:center;flex-wrap:wrap}
.searchbox{flex:1;min-width:320px;position:relative;display:flex;align-items:center;background:var(--input);border:1px solid var(--line);border-radius:9px;transition:var(--t);overflow:hidden}
.searchbox.ai{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.searchbox svg.lens{margin-left:15px;color:var(--muted2);flex:none}
.searchbox input{flex:1;background:transparent;border:none;color:var(--fg);font-family:var(--font);font-size:15px;padding:13px 14px;outline:none}
.searchbox input::placeholder{color:var(--muted2)}
.ai-badge{display:none;align-items:center;margin-right:10px;font-size:10.5px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--accent-ink);background:var(--accent);padding:3px 9px;border-radius:30px;white-space:nowrap}
.searchbox.ai .ai-badge{display:inline-flex}
.aitoggle{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);cursor:pointer;user-select:none;padding:0 4px;white-space:nowrap}
.aitoggle b{color:var(--fg);font-weight:500}
.sw{position:relative;width:42px;height:24px;border-radius:30px;background:var(--line);border:1px solid var(--line);transition:var(--t);flex:none}
.sw:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--muted);transition:transform .28s cubic-bezier(.4,1.3,.5,1),background .28s}
.aitoggle.on .sw{background:var(--accent);border-color:var(--accent)}
.aitoggle.on .sw:after{transform:translateX(18px);background:#fff}
.aitoggle.on{color:var(--fg)}

.layout{display:grid;grid-template-columns:250px 1fr;gap:26px;margin-top:22px}
@media(max-width:880px){.layout{grid-template-columns:1fr}}
.filters{font-size:13px}
.fgroup{border:1px solid var(--line-soft);border-radius:9px;padding:14px 16px;margin-bottom:12px;background:var(--panel)}
.fgroup h4{font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted2);font-weight:600;margin:0 0 9px}
.tree div{padding:3px 0;color:var(--muted);cursor:pointer;transition:color .2s}
.tree div:hover{color:var(--accent-2)}
.tree .lvl2{padding-left:14px}.tree .lvl3{padding-left:26px;font-size:12.5px}
.tree .lvl4,.tree .lvl5{padding-left:38px;font-size:12px}
.tree .sel{color:var(--accent-2);font-weight:500}
.tree .cnt{color:var(--muted2);font-size:11px}
.fgroup label{display:flex;align-items:center;gap:8px;color:var(--muted);padding:3px 0;cursor:pointer}
.fgroup label:hover{color:var(--fg)}
.fgroup input{accent-color:var(--accent)}
.rescount{font-size:13px;color:var(--muted2);margin:2px 0 14px}
.rescount b{color:var(--fg)}
.res{display:flex;flex-direction:column;gap:14px}
.res .card h3{font-size:16.5px;font-weight:500;color:var(--fg-strong);margin:8px 0 7px;line-height:1.35}
.res .card p{font-size:13.5px;color:var(--muted);margin:0}
.meta{font-size:12px;color:var(--muted2);margin-top:11px;display:flex;gap:16px;flex-wrap:wrap}
.meta b{color:var(--muted);font-weight:500}
.relbar{position:absolute;right:20px;top:20px;text-align:right;font-size:11px;color:var(--muted2)}
.relbar .pct{font-size:19px;font-weight:600;color:var(--accent-2);line-height:1}
.res .card{padding-right:96px}
.pager{display:flex;gap:6px;margin-top:20px;flex-wrap:wrap}
.pager a{min-width:34px;text-align:center;padding:7px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;color:var(--muted);background:var(--panel)}
.pager a:hover{border-color:var(--accent);color:var(--accent-2);text-decoration:none}
.pager a.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}

/* Блок ИИ-ответа */
.rag{border:1px solid var(--accent-line);border-radius:var(--radius);margin-bottom:16px;background:linear-gradient(180deg,var(--accent-soft),transparent);overflow:hidden}
.rag-h{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line-soft)}
.rag-h .ic{width:26px;height:26px;border-radius:7px;background:var(--accent);display:grid;place-items:center;color:var(--accent-ink);flex:none;font-size:11px;font-weight:700}
.rag-h b{font-size:13.5px;color:var(--fg-strong);font-weight:600}
.rag-h .lbl{font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--violet-fg);margin-left:auto}
.rag-body{padding:16px 20px;font-size:14px;color:var(--fg);line-height:1.65}
.rag-body .cite{display:inline-flex;font-size:11px;font-weight:600;color:var(--accent-2);border:1px solid var(--accent-line);border-radius:5px;padding:0 5px;margin:0 1px;text-decoration:none;vertical-align:baseline}
.rag-body .cite:hover{background:var(--accent-soft)}
.rag-src{padding:0 20px 15px;font-size:12px;color:var(--muted2)}

/* Запросы / очередь */
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.fbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;align-items:center}
.fpill{font-size:12.5px;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:30px;padding:6px 14px;cursor:pointer;transition:var(--t);display:inline-flex;gap:7px;align-items:center;text-decoration:none}
.fpill:hover{border-color:var(--accent-line);text-decoration:none}
.fpill.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:500}
.fpill .c{font-size:11px;opacity:.7}
.sortsel{margin-left:auto;font-size:12.5px;color:var(--muted);background:var(--input);border:1px solid var(--line);border-radius:8px;padding:7px 12px;font-family:var(--font);cursor:pointer}
.reqlist{display:flex;flex-direction:column;gap:11px}
.reqrow{border:1px solid var(--line);border-radius:10px;background:var(--card);padding:15px 18px;cursor:pointer;transition:var(--t);display:grid;grid-template-columns:1fr auto;gap:8px 18px;align-items:center;position:relative;overflow:hidden}
.reqrow:hover{border-color:var(--accent);transform:translateX(2px)}
.reqrow .id{font-size:11.5px;color:var(--muted2);font-weight:600;letter-spacing:.5px}
.reqrow h3{font-size:15px;color:var(--fg-strong);font-weight:500;margin:3px 0 6px;line-height:1.35}
.reqrow .rmeta{font-size:12px;color:var(--muted2);display:flex;gap:14px;flex-wrap:wrap}
.reqrow .rmeta b{color:var(--muted);font-weight:500}
.reqrow .right{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.empty{text-align:center;padding:50px 20px;color:var(--muted2);font-size:14px}

/* Карточка практики / запроса */
.crumbs{font-size:12.5px;color:var(--muted2);margin-bottom:15px}
.cols{display:grid;grid-template-columns:1fr 300px;gap:26px;margin-top:22px}
@media(max-width:900px){.cols{grid-template-columns:1fr}}
.block{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:19px 22px;margin-bottom:16px}
.block h4{font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent-2);font-weight:600;margin:0 0 12px;display:flex;align-items:center}
table.acts{width:100%;border-collapse:collapse;font-size:13px}
table.acts th{font-size:10px;letter-spacing:1.1px;text-transform:uppercase;color:var(--muted2);text-align:left;font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line)}
table.acts td{padding:10px;border-bottom:1px solid var(--line-soft);vertical-align:top;color:var(--fg);overflow-wrap:anywhere}
table.acts tr:last-child td{border-bottom:none}
table.acts td.qcell{max-width:260px;overflow-wrap:anywhere;word-break:break-word}
.quote{border:1px solid var(--line-soft);border-radius:8px;padding:13px 16px;margin-bottom:10px;font-size:13.5px;color:var(--muted);background:var(--panel)}
.quote .src{font-size:11.5px;color:var(--muted2);margin-top:8px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}
.ok{color:var(--green)}
.side .kv{font-size:13px;display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line-soft);gap:10px}
.side .kv:last-child{border-bottom:none}
.side .kv span{color:var(--muted2)}
.side .kv b{color:var(--fg);font-weight:400;text-align:right}

/* Этапы запроса */
.steps{display:flex;margin:20px 0 6px;flex-wrap:wrap;gap:3px}
.step{position:relative;font-size:11.5px;letter-spacing:.3px;color:var(--muted2);padding:8px 15px;border:1px solid var(--line);background:var(--panel);cursor:help;transition:var(--t)}
.step:first-child{border-radius:30px 0 0 30px}
.step:last-child{border-radius:0 30px 30px 0}
.step.done{color:var(--green)}
.step.cur{color:var(--accent-ink);background:var(--accent);font-weight:600;border-color:var(--accent)}
.step .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:6px;vertical-align:middle;opacity:.7}

.qtext{font-size:14px;color:var(--muted);border:1px dashed var(--line);border-radius:9px;padding:13px 16px;margin-bottom:10px;transition:var(--t)}
.qtext b.lb{display:block;font-size:10px;letter-spacing:1.3px;text-transform:uppercase;color:var(--muted2);font-weight:600;margin-bottom:6px}
.qtext.refined{border-style:solid;border-color:var(--accent-line)}
.qtext.refined b.lb{color:var(--accent-2)}
.offer{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:17px 20px;margin-bottom:13px;position:relative;overflow:hidden}
.offer h3{font-size:15.5px;font-weight:500;color:var(--fg-strong);margin:0 0 6px;line-height:1.35}
.offer p{font-size:13px;color:var(--muted);margin:0}
.oq{font-size:13px;color:var(--muted);border-left:2px solid var(--accent-line);padding:5px 12px;margin:9px 0;font-style:italic;line-height:1.5}
.ofoot{display:flex;justify-content:space-between;align-items:baseline;gap:8px 14px;margin-top:12px;flex-wrap:wrap}
.osrc{font-size:12px;color:var(--muted2)}

/* Новый запрос */
.composer{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:22px;margin-top:24px;position:relative}
.composer .lbl-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:8px}
.composer h4{font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--accent-2);font-weight:600;margin:0}
.channel{display:flex;gap:6px}
.channel span{font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:30px;padding:5px 12px;display:inline-flex;align-items:center;gap:6px}
.channel span.on{border-color:var(--accent);color:var(--accent-2);background:var(--accent-soft)}
.composer textarea{width:100%;min-height:96px;background:var(--input);border:1px solid var(--line);border-radius:10px;color:var(--fg);font-family:var(--font);font-size:15.5px;padding:15px 17px;outline:none;resize:vertical;transition:var(--t);line-height:1.55;box-sizing:border-box}
.composer textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.composer .actions{display:flex;gap:12px;margin-top:18px;align-items:center;flex-wrap:wrap}
.livehint{margin-top:14px;border:1px dashed var(--accent-line);border-radius:10px;overflow:hidden;max-height:0;opacity:0;transition:max-height .4s ease,opacity .4s ease,margin .4s}
.livehint.show{max-height:480px;opacity:1;margin-top:16px}
.livehint .lh-h{display:flex;align-items:center;gap:9px;padding:12px 16px;background:var(--accent-soft)}
.livehint .lh-h .ic{width:22px;height:22px;border-radius:6px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;flex:none;font-size:10px;font-weight:700}
.livehint .lh-h b{font-size:12.5px;color:var(--fg-strong)}
.livehint .lh-h .cnt{margin-left:auto;font-size:12px;color:var(--violet-fg)}
.livehint .lh-b{padding:15px 17px}

/* Статистика / отчёт */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:28px 0 10px}
@media(max-width:760px){.stats{grid-template-columns:1fr 1fr}}
.stat{border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;background:var(--card);text-align:center}
.stat .num{font-size:30px;font-weight:600;color:var(--accent-2);line-height:1}
.stat .lab{font-size:12.5px;color:var(--muted);margin-top:7px;line-height:1.35}

/* Рубрикатор — большое дерево */
.tree.big .tnode{padding:5px 0;color:var(--muted);display:flex;gap:8px;align-items:baseline}
.tree.big .tnode:hover{color:var(--fg)}
.tree.big .tw{cursor:pointer;user-select:none;color:var(--muted2);width:14px;flex:none}
.tree.big .tw.open{transform:rotate(90deg)}
.tree.big .cnt{color:var(--muted2);font-size:11.5px;margin-left:auto}

/* Настройки */
.flbl{display:block;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted2);font-weight:600;margin:12px 0 6px}
.finp{width:100%;background:var(--input);border:1px solid var(--line);border-radius:9px;color:var(--fg);font-family:var(--font);font-size:14px;padding:11px 14px;outline:none;transition:var(--t);box-sizing:border-box}
.finp:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}

/* Toast */
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);background:var(--fg-strong);color:var(--bg);font-size:13.5px;padding:11px 22px;border-radius:30px;opacity:0;transition:all .35s;z-index:100;pointer-events:none;box-shadow:var(--shadow)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Агент К+: статусы заданий */
.agent-status{display:inline-block;font-size:11.5px;padding:2px 10px;border-radius:20px;border:1px solid var(--line)}
.agent-status.st-queued{color:var(--muted);border-color:var(--line)}
.agent-status.st-running{color:var(--accent-2);border-color:var(--accent-line)}
.agent-status.st-done{color:var(--green);border-color:var(--green-line);background:var(--green-soft)}
.agent-status.st-error{color:var(--red);border-color:var(--red-line);background:var(--red-soft)}

/* AJAX-лоадер витрины (оверлей + спиннер, обе темы через переменные) */
#resultsPane{position:relative;min-height:140px}
.ajax-overlay{position:absolute;inset:0;background:var(--bg);opacity:.55;display:flex;align-items:flex-start;justify-content:center;padding-top:90px;z-index:45;border-radius:var(--radius)}
.ajax-overlay.page-loader{position:fixed;z-index:200;padding-top:35vh;border-radius:0}
.ajax-spinner{width:36px;height:36px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:ajaxspin .8s linear infinite;flex:none}
@keyframes ajaxspin{to{transform:rotate(360deg)}}

/* Карточка акта: реквизиты компактной сеткой в 2 колонки */
.req-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 26px}
.req{display:flex;gap:10px;align-items:baseline;font-size:13px;padding:5px 0;border-bottom:1px solid var(--line-soft)}
.req>span{color:var(--muted2);flex:0 0 104px}
.req>b{font-weight:400;color:var(--fg);overflow-wrap:anywhere;min-width:0}
.req .req-links{display:flex;gap:6px;flex-wrap:wrap}
.req .req-links .fpill{font-size:12px}
@media(max-width:700px){.req-grid{grid-template-columns:1fr}}

/* Агент К+: панель постановки задания во всю ширину */
.enqueue-form{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.enqueue-form .searchbox{display:flex;align-items:center;gap:8px}
@media(max-width:760px){.enqueue-form{flex-direction:column;align-items:stretch}
.enqueue-form .btn,.enqueue-form .btn-o{justify-content:center}}


/* Сохранённая копия документа К+ (?r=doc): панель + читаемое тело */
body.docpage{background:var(--bg);color:var(--fg);font-family:var(--font)}
.docbar{position:sticky;top:0;z-index:50;background:var(--topbar);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line)}
.docbar-in{max-width:940px;margin:0 auto;padding:12px 20px}
.docbar-title{font-size:16px;font-weight:600;color:var(--fg-strong);line-height:1.35}
.docbar-meta{margin-top:6px;font-size:12.5px;color:var(--muted)}
.docbar-meta a{color:var(--accent-2);text-decoration:none}
.docbar-meta a:hover{text-decoration:underline}
.docbar-note{margin-top:4px;font-size:11.5px;color:var(--muted2)}
.docbar-note a{color:var(--muted);text-decoration:none}
.docbar-note a:hover{color:var(--accent-2)}
.docbody{max-width:900px;margin:26px auto 60px;padding:28px 34px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--radius);
  font-size:14.5px;line-height:1.62;overflow-wrap:anywhere}
.docbody p{margin:0 0 10px}
.docbody div{margin:0}
.docbody table{border-collapse:collapse;margin:12px 0;max-width:100%}
.docbody td,.docbody th{border:1px solid var(--line);padding:6px 10px;vertical-align:top}
.docbody a{color:var(--accent-2)}
.docbody img{max-width:100%;height:auto}
@media(max-width:760px){.docbody{margin:16px 12px 40px;padding:18px 16px;font-size:13.5px}}


/* Статусные чипы программной сверки цитат (карточка практики) */
.v-chip{display:inline-block;font-size:11px;padding:1px 9px;border-radius:12px;border:1px solid}
.v-chip.v-ok{color:var(--green);border-color:var(--green-line);background:var(--green-soft)}
.v-chip.v-none{color:var(--muted2);border-color:var(--line)}
.v-chip.v-bad{color:var(--red);border-color:var(--red-line);background:var(--red-soft)}

/* ===== вход по паролю (views/login.php) ===== */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:20px;box-sizing:border-box}
.login-card{width:380px;max-width:100%;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:30px 28px;box-shadow:var(--shadow);animation:fade .45s ease}
.login-logo{display:flex;align-items:center;gap:12px;font-size:14px;line-height:1.35;color:var(--fg);margin-bottom:14px}
.login-logo b{font-weight:600;color:var(--fg-strong)}
.login-sub{font-size:13px;color:var(--muted);margin:0 0 16px}
.login-input{width:100%;box-sizing:border-box;background:var(--input);border:1px solid var(--line);border-radius:10px;color:var(--fg);font:inherit;font-size:15px;padding:11px 14px;outline:none;transition:var(--t)}
.login-input:focus{border-color:var(--accent-line)}
.login-err{color:var(--red);font-size:12.5px;margin:10px 0 0}
.login-btn{width:100%;justify-content:center;margin-top:14px}
.login-note{font-size:11.5px;color:var(--muted2);margin:12px 0 0;text-align:center}

/* ===== карточка задания: таймлайн и живой статус ===== */
.tl{display:flex;align-items:center;gap:0;flex-wrap:wrap}
.tl-step{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:110px;padding:4px 6px}
.tl-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--muted2);background:transparent;box-sizing:border-box}
.tl-step.on .tl-dot{border-color:var(--accent-2);background:var(--accent-2)}
.tl-step.err .tl-dot{border-color:var(--red);background:var(--red)}
.tl-label{font-size:12px;color:var(--muted);font-weight:500}
.tl-step.on .tl-label{color:var(--fg-strong)}
.tl-step.err .tl-label{color:var(--red)}
.tl-time{font-size:11px;color:var(--muted2)}
.tl-line{flex:1 1 40px;height:2px;min-width:24px;background:var(--line);margin:0 2px 34px}
.tl-line.on{background:var(--accent-line)}
.status-sub{font-size:11.5px;color:var(--muted2);font-weight:400;letter-spacing:0;text-transform:none}
.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent-2);margin-left:8px;vertical-align:middle;animation:livepulse 1.6s ease infinite}
@keyframes livepulse{0%,100%{opacity:1}50%{opacity:.25}}

/* ===== флоу ?r=ask: понятная ошибка поиска ===== */
.askerr{border:1px solid var(--red-line);background:var(--red-soft);border-radius:12px;padding:14px 16px}
.askerr-title{color:var(--red);font-weight:600;font-size:14px;margin:0 0 6px}
.askerr-why{font-size:12.5px;color:var(--fg);margin:0 0 6px}
.askerr-note{font-size:12.5px;color:var(--muted);margin:0 0 12px}

/* ===== мобильная вёрстка: широкие таблицы и длинные чипы ===== */
/* Широкая таблица скроллится внутри своего контейнера, а не растягивает страницу */
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.tscroll table.acts{min-width:520px}
/* grid-элементы должны уметь сжиматься ниже ширины содержимого */
.cols>*,.layout>*{min-width:0}
.block,.card{max-width:100%;box-sizing:border-box}
@media(max-width:520px){
  .tscroll table.acts{min-width:460px}
  /* длинные чипы (например «задание №34 · тема запроса») переносятся */
  .tag{white-space:normal;overflow-wrap:anywhere;max-width:100%}
  .block{padding:16px 14px}
}

/* ===== запросы: идентификация, форма создания, секретность ===== */
.whoami-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);background:var(--panel);border:1px solid var(--line-soft);border-radius:10px;padding:10px 14px;margin-bottom:16px}
.whoami-bar b{color:var(--fg-strong);font-weight:600}
.linklike{background:none;border:none;color:var(--accent-2);cursor:pointer;font:inherit;font-size:12.5px;padding:0;text-decoration:underline}
.whoami-form{display:flex;gap:8px;align-items:center;width:100%;margin-top:4px}
.whoami-form input[type=text]{flex:1 1 auto;max-width:280px;background:var(--input);border:1px solid var(--line);border-radius:8px;color:var(--fg);font:inherit;font-size:13px;padding:7px 11px;outline:none}
.newreq-card{border-color:var(--accent-line)}
.fld-label{display:block;font-size:12px;color:var(--muted);font-weight:500;margin-bottom:5px}
.fld{width:100%;box-sizing:border-box;background:var(--input);border:1px solid var(--line);border-radius:10px;color:var(--fg);font:inherit;font-size:14px;padding:10px 12px;resize:vertical;outline:none;transition:var(--t)}
.fld:focus{border-color:var(--accent-line)}
.secret-toggle{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--fg);cursor:pointer;user-select:none}
.secret-toggle input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.secret-toggle input:disabled{cursor:not-allowed}
.secret-badge{color:var(--orange);font-weight:600}
.btn.mini,.btn-o.mini{padding:6px 13px;font-size:12.5px}
.reqrow .t a{font-size:15px;font-weight:500;color:var(--fg-strong);text-decoration:none}
.reqrow .t a:hover{color:var(--accent-2)}
.reqrow .s{font-size:12.5px;color:var(--muted2);margin-top:4px}
.fpill .c{display:inline-block;min-width:16px;padding:0 5px;margin-left:4px;border-radius:20px;background:var(--line-soft);font-size:10.5px;color:var(--muted)}

/* ===== «Как это работает» (перенос из прототипа v3.0) ===== */
.how-hero{text-align:center;margin-bottom:22px}
.how-hero h1{margin-bottom:8px}
.how-hero .sub{margin:0 auto;max-width:70ch}
.stage-cap{text-align:center;margin:22px auto 0;max-width:640px;min-height:66px}
.stage-cap .st-t{font-size:19px;font-weight:500;color:var(--accent-2);transition:.3s}
.stage-cap .st-d{font-size:13.5px;color:var(--muted);margin-top:6px;line-height:1.5;transition:.3s}
.track{position:relative;margin:26px auto 0;max-width:1000px}
.pipe{display:flex;justify-content:space-between;position:relative;z-index:2;gap:6px}
.pnode{flex:1;text-align:center}
.pnode .circle{width:56px;height:56px;border-radius:50%;margin:0 auto 10px;display:grid;place-items:center;background:var(--card);border:2px solid var(--line);color:var(--muted2);transition:.45s;position:relative}
.pnode .circle svg{width:24px;height:24px}
.pnode.active .circle{border-color:var(--accent);color:var(--accent-2);background:var(--accent-soft);transform:scale(1.12);box-shadow:0 0 0 6px var(--accent-soft)}
.pnode.passed .circle{border-color:var(--green);color:var(--green)}
.pnode .plab{font-size:12px;color:var(--muted);line-height:1.3;transition:.3s}
.pnode.active .plab{color:var(--fg-strong);font-weight:500}
.railwrap{position:absolute;top:28px;left:7%;right:7%;height:3px;background:var(--line);z-index:1;border-radius:3px}
.rail-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,var(--green),var(--accent));border-radius:3px;width:0;transition:width .6s ease}
.packet{position:absolute;top:-4px;left:0;width:14px;height:14px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);transition:left .6s cubic-bezier(.5,0,.3,1);z-index:3}
.howctl{display:flex;gap:12px;justify-content:center;align-items:center;margin-top:30px}
.howctl .dots{display:flex;gap:7px}
.howctl .dots i{width:8px;height:8px;border-radius:50%;background:var(--line);cursor:pointer;transition:.3s}
.howctl .dots i.on{background:var(--accent);width:22px;border-radius:30px}
.flowdiag{margin-top:40px;border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:26px}
.flowdiag h3{font-size:13px;letter-spacing:1.4px;text-transform:uppercase;color:var(--accent-2);font-weight:600;text-align:center;margin-bottom:22px}
.fd-svg{width:100%;min-width:680px;height:auto;display:block}
.howfeat{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px}
@media(max-width:760px){.howfeat{grid-template-columns:1fr};.pnode .plab{font-size:10.5px};.pnode .circle{width:44px;height:44px}}
.howfeat .f{border:1px solid var(--line-soft);border-radius:10px;padding:18px 20px;background:var(--card)}
.howfeat .f .n{font-size:24px;font-weight:600;color:var(--accent-2)}
.howfeat .f h5{font-size:14px;color:var(--fg-strong);font-weight:500;margin:6px 0 5px}
.howfeat .f p{font-size:12.5px;color:var(--muted);line-height:1.5}

/* акцентный чип-ссылка (наша копия документа приоритетнее оригинала К+) */
.fpill-accent{border-color:var(--accent-line)!important;background:var(--accent-soft)!important;color:var(--accent-2)!important;font-weight:600}
.fpill-accent:hover{background:var(--accent)!important;color:var(--accent-ink)!important}

/* ===== карточка документа К+ (?r=doc) — читаемая версия ===== */
.doc-title{font-size:22px;line-height:1.3;font-weight:500;max-width:80ch}
.doc-badges{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0 4px;font-size:12.5px}
.doc-meta-item{color:var(--muted2)}
.doc-orig{color:var(--accent-2);text-decoration:none}
.doc-orig:hover{text-decoration:underline}
.doc-req-strip{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:12px 16px;margin:14px 0;background:var(--panel);border:1px solid var(--line-soft);border-radius:10px;font-size:13px;color:var(--muted)}
.doc-req-strip b{color:var(--fg-strong);font-weight:600}
.doc-layout{display:grid;grid-template-columns:1fr 260px;gap:24px;margin-top:18px;align-items:start}
@media(max-width:900px){.doc-layout{grid-template-columns:1fr}.doc-side{order:-1}}
.doc-essence{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:12px;padding:18px 20px;margin-bottom:20px}
.doc-essence h4{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--accent-2);font-weight:600;margin:0 0 4px}
.doc-essence-hint{font-size:11.5px;color:var(--muted2);margin:0 0 12px}
.doc-essence-row{display:flex;gap:12px;padding:7px 0;border-top:1px solid var(--line-soft)}
.doc-essence-row:first-of-type{border-top:none}
.doc-essence-label{flex:none;width:120px;font-size:12px;font-weight:600;color:var(--accent-2);text-transform:uppercase;letter-spacing:.5px}
.doc-essence-val{font-size:13.5px;color:var(--fg);line-height:1.5}
.doc-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:8px;border-bottom:1px solid var(--line);margin:22px 0 16px}
.doc-tb-label{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted2);font-weight:600}
.doc-hl-toggle{font-size:12.5px;color:var(--muted);display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.doc-hl-toggle input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}
/* Полный текст — во всю ширину контейнера (вынесен из колонки с сайдбаром).
   Внутренние отступы шире, чтобы длинные строки не липли к рамке. */
.doc-paper{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:34px 44px;
  max-width:none;font-size:15px;line-height:1.72;color:var(--fg)}
@media(max-width:600px){.doc-paper{padding:22px 18px;font-size:14px}}
.doc-paper .doc-h{font-size:15.5px;font-weight:600;color:var(--fg-strong);margin:22px 0 10px;line-height:1.4}
.doc-paper .doc-h:first-child{margin-top:0}
.doc-paper .doc-p{margin:0 0 13px;text-align:justify}
.doc-paper .doc-li{padding-left:18px;position:relative}
.doc-paper .doc-li::before{content:"•";position:absolute;left:2px;color:var(--accent-2)}
.doc-paper mark{background:var(--hl);color:var(--hl-fg);padding:1px 3px;border-radius:3px}
.doc-paper.nohl mark{background:transparent;color:inherit;padding:0}
.doc-paper .doc-ref{color:var(--accent-2)}
.doc-paper b{color:var(--fg-strong);font-weight:600}
.doc-fallback{font-size:14px;line-height:1.6;color:var(--muted)}
.doc-side-card{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:16px;position:sticky;top:80px}
.doc-side-h{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted2);font-weight:600;margin-bottom:10px}
.doc-side-link{display:block;font-size:13px;color:var(--accent-2);text-decoration:none;padding:5px 0}
.doc-side-link:hover{text-decoration:underline}
.doc-side-note{font-size:11.5px;color:var(--muted2);line-height:1.5;margin-top:14px;padding:0 4px}

/* ===== карточка задания: метрики и черновики ===== */
.tmetrics{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
.tmetric{flex:1 1 120px;border:1px solid var(--line-soft);border-radius:10px;padding:14px 16px;background:var(--panel);text-align:center}
.tm-n{display:block;font-size:26px;font-weight:600;color:var(--accent-2);line-height:1}
.tm-l{display:block;font-size:11.5px;color:var(--muted2);margin-top:5px}
.tdraft{padding:14px 0;border-bottom:1px solid var(--line-soft)}
.tdraft:last-of-type{border-bottom:none}
.tdraft-title{font-size:14.5px;font-weight:500;color:var(--fg-strong);margin:8px 0 4px;line-height:1.4}
.tdraft-title a{color:var(--fg-strong);text-decoration:none}
.tdraft-title a:hover{color:var(--accent-2)}
.tdraft-req{font-size:12px;color:var(--muted2);margin-bottom:6px}
.tdraft-pos{font-size:13px;color:var(--muted);line-height:1.55;margin:6px 0}
.tdraft-note{font-size:12px;color:var(--orange);margin:6px 0}
.tdraft-actions{display:flex;gap:8px;margin-top:10px}

/* ===== строка цитирования акта + кнопка «Копировать» ===== */
.cites{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft)}
.citerow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 12px;margin-bottom:8px;
  border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.citelabel{font-size:10px;letter-spacing:1.1px;text-transform:uppercase;color:var(--muted2);
  font-weight:600;white-space:nowrap;flex:0 0 auto}
.citetext{flex:1 1 320px;min-width:0;font-size:13.5px;line-height:1.45;color:var(--fg-strong);
  user-select:all;-webkit-user-select:all;overflow-wrap:anywhere}
.citebtn{flex:0 0 auto;padding:6px 14px;font-size:12px}
.citebtn.copied{border-color:var(--green-line);color:var(--green)}
.cites-note{font-size:11.5px;color:var(--muted2);margin:6px 0 0}
@media(max-width:520px){
  .citerow{padding:10px}
  .citebtn{width:100%;justify-content:center}
}

/* ===== таблицы .acts-cards на узких экранах → карточки (подписи из data-label) ===== */
@media(max-width:640px){
  .tscroll table.acts-cards{min-width:0}
  table.acts-cards thead{display:none}
  table.acts-cards,table.acts-cards tbody,table.acts-cards tr,table.acts-cards td{display:block;width:auto}
  table.acts-cards tr{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 10px}
  table.acts-cards tr:last-child{margin-bottom:0}
  /* подпись — отдельной строкой над значением: не ломает вложенные
     элементы ячейки (пилюли статуса, кнопки, многострочный текст) */
  table.acts-cards td{border:none!important;padding:2px 0 7px;max-width:none!important;
    white-space:normal!important;display:block;font-size:13px}
  table.acts-cards td::before{content:attr(data-label);display:block;font-size:9.5px;letter-spacing:.9px;
    text-transform:uppercase;color:var(--muted2);font-weight:600;margin-bottom:3px}
  table.acts-cards td:not([data-label]):empty{display:none}
  table.acts-cards td.qcell{max-width:none!important}
}

/* ===== ссылки К+ внутри документа: живые (есть копия) и мёртвые ===== */
.doc-paper .doc-ref-live{color:var(--accent-2);text-decoration:none;border-bottom:1px solid var(--accent-line)}
.doc-paper .doc-ref-live:hover{border-bottom-color:var(--accent-2);background:var(--accent-soft)}
.doc-paper span.doc-ref{color:var(--muted);border-bottom:1px dotted var(--line);cursor:help}
.doc-paper :target{background:var(--mark);border-radius:3px;scroll-margin-top:90px}

/* ===== блок «Ссылки в тексте» ===== */
.doc-links{margin-top:26px;border-top:1px solid var(--line);padding-top:16px}
.doc-links-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.doc-links-count{font-size:12px;color:var(--muted2)}
.doc-links-count b{color:var(--accent-2)}
.doc-links-msg{font-size:12.5px;color:var(--muted);margin:0 0 10px}
.doc-links-msg.ok{color:var(--green)}
.doc-links-msg.err{color:var(--red)}
.doc-links-form{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.doc-links-hint{font-size:11.5px;color:var(--muted2);flex:1 1 260px}
.doc-links-list{list-style:none;margin:0;padding:0}
.doc-link-item{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;margin-bottom:8px;
  border:1px solid var(--line);border-radius:10px;background:var(--panel);font-size:13px}
.doc-link-item.has-copy{border-color:var(--accent-line)}
.doc-link-badge{flex:0 0 auto;font-size:9.5px;letter-spacing:.8px;text-transform:uppercase;font-weight:600;
  color:var(--muted2);border:1px solid var(--line);border-radius:20px;padding:3px 9px;white-space:nowrap}
.doc-link-item.has-copy .doc-link-badge{color:var(--accent-2);border-color:var(--accent-line)}
.doc-link-body{flex:1 1 auto;min-width:0;line-height:1.45}
.doc-link-label{color:var(--fg)}
.doc-link-as{display:block;font-size:11.5px;color:var(--muted2);margin-top:2px}
.doc-link-state{flex:0 0 auto;font-size:11.5px;color:var(--muted2);white-space:nowrap}
.doc-link-item.has-copy .doc-link-state{color:var(--green)}
@media(max-width:600px){
  .doc-link-item{flex-wrap:wrap;gap:6px}
  .doc-link-state{width:100%}
}
/* выравнивание абзацев документа К+ (классы C/R из исходной разметки) */
.doc-paper .doc-c{text-align:center}
.doc-paper .doc-r{text-align:right}
/* заголовок статьи в кодексе + подсветка цели перехода со ссылки */
.doc-paper .doc-art{font-weight:600;color:var(--fg-strong);margin-top:20px}
.doc-paper .doc-p:target,.doc-paper .doc-h:target{background:var(--accent-soft);
  border-left:3px solid var(--accent-2);padding-left:12px;margin-left:-15px;
  border-radius:0 4px 4px 0}
/* цель перехода не должна прятаться под липкой шапкой (~100px) */
.doc-paper [id^="art"],.doc-paper [id^="pt"]{scroll-margin-top:130px}

/* ===== ?r=doc: «Суть» под текстом и ссылки в 2 колонки ===== */
.doc-essence-after{margin-top:26px}
.doc-links-cols{column-count:2;column-gap:16px}
.doc-links-cols .doc-link-item{break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid}
@media(max-width:820px){.doc-links-cols{column-count:1}}

/* ===== пустая витрина (нет запроса и фильтров) ===== */
.startbox{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:26px 28px}
.startbox-h{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--accent-2);font-weight:600;margin-bottom:10px}
.startbox-lead{font-size:14.5px;line-height:1.6;color:var(--fg);margin:0 0 16px;max-width:70ch}
.startbox-ex{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-bottom:16px}
.startbox-ex-label{font-size:12px;color:var(--muted2);margin-right:2px}
.startbox-alt{font-size:13px;color:var(--muted);margin:0;line-height:1.6;padding-top:14px;border-top:1px solid var(--line-soft)}

/* ===== рубрикатор в сайдбаре: дерево + контекстный поиск ===== */
.fgroup-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.tree-tools{display:flex;gap:4px}
.tree-tool{background:transparent;border:1px solid var(--line);color:var(--muted2);font:inherit;font-size:10.5px;
  padding:3px 8px;border-radius:30px;cursor:pointer;transition:var(--t);font-family:var(--font)}
.tree-tool:hover{border-color:var(--accent-line);color:var(--accent-2)}
.tree-search{display:flex;align-items:center;gap:7px;margin:8px 0 10px;padding:6px 10px;
  border:1px solid var(--line);border-radius:30px;background:var(--input);color:var(--muted2)}
.tree-search:focus-within{border-color:var(--accent-line)}
.tree-search svg{flex:0 0 auto}
.tree-search-input{flex:1 1 auto;min-width:0;background:transparent;border:none;outline:none;
  color:var(--fg);font:inherit;font-size:12.5px;font-family:var(--font)}
.tree-search-clear{background:transparent;border:none;color:var(--muted2);font-size:17px;line-height:1;
  cursor:pointer;padding:0 2px}
.tree-search-clear:hover{color:var(--accent-2)}
.rubric-tree .tnode{display:flex;align-items:flex-start;gap:5px;padding:3px 0;font-size:12.5px;line-height:1.4}
.rubric-tree .tnode[hidden]{display:none}
.rubric-tree .tnode>a{color:var(--muted);text-decoration:none;flex:1 1 auto;min-width:0}
.rubric-tree .tnode>a:hover{color:var(--accent-2);text-decoration:none}
.rubric-tree .tnode.sel>a{color:var(--accent-2);font-weight:500}
.rubric-tree .tnode.thit>a{color:var(--fg)}
.rubric-tree .cnt{color:var(--muted2);font-size:11px}
.rubric-tree .tw{flex:0 0 auto;width:16px;height:16px;line-height:16px;text-align:center;background:transparent;
  border:none;color:var(--muted2);cursor:pointer;font-size:10px;padding:0;transition:transform .2s ease;
  transform:rotate(0deg);font-family:var(--font)}
.rubric-tree .tw.open{transform:rotate(90deg);color:var(--accent-2)}
.rubric-tree .tw-space{flex:0 0 auto;width:16px}
.rubric-tree.searching .tw{visibility:hidden}
.tree-empty{font-size:12px;color:var(--muted2);padding:8px 0}
.rubric-tree .lvl1{margin-left:0}
.rubric-tree .lvl2{margin-left:12px}
.rubric-tree .lvl3{margin-left:24px}
.rubric-tree .lvl4{margin-left:36px}
.rubric-tree .lvl5{margin-left:48px}

/* ===== индикатор состояния узла агента ===== */
.nodebar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 18px;padding:11px 16px;
  border:1px solid var(--line);border-radius:12px;background:var(--panel);font-size:13px}
.nodebar.on{border-color:var(--green-line);background:var(--green-soft)}
.nodebar.off{border-color:var(--orange-line);background:var(--orange-soft)}
.node-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.nodebar.on .node-dot{background:var(--green);animation:livepulse 1.8s ease infinite}
.nodebar.off .node-dot{background:var(--orange)}
.node-text{color:var(--fg)}
.nodebar.on .node-text b{color:var(--green)}
.nodebar.off .node-text b{color:var(--orange)}
.node-hint{font-size:12px;color:var(--muted2);flex:1 1 320px}
.node-hint code{background:var(--bg-2);border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:11.5px}

/* ===== режим редактора: правка карточки практики ===== */
.pedit{margin:6px 0 4px}
.pedit-label{font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--accent-2);
  font-weight:600;margin:12px 0 6px}
.pedit-title,.pedit-essence{width:100%;box-sizing:border-box;background:var(--input);
  border:1px solid var(--line);border-radius:10px;color:var(--fg);font:inherit;padding:12px 14px;
  outline:none;resize:vertical;font-family:var(--font);line-height:1.5}
.pedit-title{font-size:19px;font-weight:400;color:var(--fg-strong)}
.pedit-essence{font-size:14px}
.pedit-title:focus,.pedit-essence:focus{border-color:var(--accent-line)}
.pedit-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}
.pedit-hint{font-size:12px;color:var(--muted2)}
.pedit-log{padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:12.5px}
.pedit-log:last-child{border-bottom:none}
.pedit-log-h{color:var(--muted2);font-size:11.5px;margin-bottom:5px}
.pedit-log-h b{color:var(--fg)}
.pedit-log-old{color:var(--muted2);text-decoration:line-through;margin-bottom:3px;line-height:1.45}
.pedit-log-new{color:var(--fg);line-height:1.45}

/* ===== отклонение черновика с причиной ===== */
.rejbox{display:inline-block}
.rejbox summary{list-style:none;display:inline-flex;align-items:center;cursor:pointer}
.rejbox summary::-webkit-details-marker{display:none}
.rejform{margin-top:10px;padding:12px 14px;border:1px solid var(--red-line);border-radius:12px;
  background:var(--red-soft);min-width:min(420px,100%)}
.rejlabel{font-size:12px;color:var(--muted);margin-bottom:8px;line-height:1.45}
.rejchips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.rejchip{display:inline-flex;align-items:center;cursor:pointer}
.rejchip input{position:absolute;opacity:0;width:0;height:0}
.rejchip span{font-size:11.5px;color:var(--muted);border:1px solid var(--line);border-radius:30px;
  padding:4px 10px;transition:var(--t)}
.rejchip input:checked+span{border-color:var(--red-line);color:var(--red);background:var(--red-soft)}
.rejtext{width:100%;box-sizing:border-box;background:var(--input);border:1px solid var(--line);
  border-radius:10px;color:var(--fg);font:inherit;font-size:13px;padding:9px 12px;outline:none;
  resize:vertical;font-family:var(--font)}
.rejtext:focus{border-color:var(--red-line)}
.rejactions{display:flex;align-items:center;gap:10px;margin-top:9px}
.rejhint{font-size:11.5px;color:var(--muted2)}

/* ===== интерактивные метрики задания и список найденных документов ===== */
.tmetric-link{text-decoration:none;transition:var(--t);cursor:pointer}
.tmetric-link:hover{border-color:var(--accent-line);text-decoration:none}
.tm-more{display:block;font-size:10.5px;color:var(--accent-2);margin-top:6px}
.founddocs{margin-top:16px;border-top:1px solid var(--line-soft);padding-top:12px}
.founddocs>summary{cursor:pointer;font-size:12.5px;color:var(--accent-2);margin-bottom:10px}
.founddocs-list{margin:0;padding-left:22px;font-size:13px}
.founddocs-list li{padding:10px 0;border-bottom:1px solid var(--line-soft)}
.founddocs-list li:last-child{border-bottom:none}
.fd-title{color:var(--fg-strong);font-weight:500;line-height:1.45}
.fd-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:11.5px;color:var(--muted2);margin-top:4px}
.fd-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.fd-snippet{font-size:12.5px;color:var(--muted);margin-top:6px;line-height:1.5}

/* ===== таблица заданий агента: 3 колонки, запрос — во всю ширину ===== */
.tasks-table{table-layout:fixed;width:100%}
.tasks-table .c-task{width:210px}
.tasks-table .c-res{width:290px}
.tasks-table .c-query{width:auto}
.tasks-table td{vertical-align:top;padding:12px 12px}
.tk-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.tk-no{font-weight:600;font-size:13.5px;text-decoration:none}
.tk-type{font-size:11.5px;color:var(--muted2);margin-bottom:4px}
.tk-dates{font-size:11.5px;color:var(--muted2);margin-top:5px;white-space:nowrap}
.tk-arrow{color:var(--muted2)}
.tasks-table .status-sub{display:block;margin-top:2px}
.tk-query{display:block;font-size:14px;line-height:1.45;color:var(--fg-strong);text-decoration:none;
  overflow-wrap:anywhere}
.tk-query:hover{color:var(--accent-2);text-decoration:none}
.tk-orig{font-size:11.5px;color:var(--muted2);margin-top:5px;line-height:1.4;overflow-wrap:anywhere}
.tk-hint{font-size:11.5px;color:var(--muted2);margin-top:4px;line-height:1.4}
.tasks-table .c-res{font-size:12.5px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.tasks-table td.qcell{max-width:none}
@media(max-width:640px){
  .tasks-table{table-layout:auto}
  .tasks-table .c-task,.tasks-table .c-res,.tasks-table .c-query{width:auto}
}
