/* ---------- design tokens (1:1 с docossum, акцент — авокадо) ---------- */
:root {
  --layer0: #f4f4f5;
  --layer1: #ffffff;
  --layer2: #eeeeef;
  --accent1: #f4f4f5;
  --accent2: #e4e4e7;
  --border1: #e4e4e7;
  --border2: #d4d4d8;
  --primary: #18181b;
  --secondary: #52525b;
  --tertiary: #8b8b93;
  --brand: #4a7c1f;
  --mark: #fcd34d;
}
.dark {
  --layer0: #17181b;
  --layer1: #1d1d20;
  --layer2: #27272a;
  --accent1: #212124;
  --accent2: #2d2d30;
  --border1: #262629;
  --border2: rgba(63, 63, 70, 0.75);
  --primary: #fafafa;
  --secondary: #d4d4d8;
  --tertiary: #71717a;
  --brand: #93c451;
}

/* Базовые сбросы — в слое base, чтобы классы Tailwind (отступы, рамки, фон кнопок) их перекрывали */
@layer base {
  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body {
    margin: 0;
    min-height: 100dvh;
    background: var(--layer0);
    color: var(--primary);
    font-family: "Inter", ui-sans-serif, system-ui, sans-serif;
    letter-spacing: .0125rem;
    line-height: normal;
  }
  img, svg { max-width: 100%; }
  button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
  a { color: inherit; text-decoration: none; }
  input, textarea, select { font: inherit; }
}
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: .75rem; }
.table-wrapper { overflow-x: auto; }

/* ---------- блоки как у docossum ---------- */
.styledBlock {
  border: 1px solid var(--border1);
  background-color: var(--layer1);
}
.styledBlockPressable { transition: background-color .15s ease, border-color .15s ease, color .15s ease; }
.styledBlockPressable:hover, .styledBlockPressable:active, .styledBlockPressable.is-active { background-color: var(--accent1); }

.wordmark {
  font-weight: 700;
  font-size: 1.6rem;
  letter-spacing: -0.03em;
  color: var(--primary);
}
.wordmark span { color: var(--brand); }

.dotted-link {
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 4px;
  transition: color .15s ease;
}
.dotted-link:hover { color: var(--secondary); }

/* вкладки в шапке */
.tab {
  display: flex; align-items: center; justify-content: center; gap: .5rem;
  border-radius: .5rem; font-size: .875rem; font-weight: 500; white-space: nowrap;
  padding: .5rem 1rem; min-width: 11rem; color: var(--secondary);
  transition: background-color .2s ease, color .2s ease;
}
.tab:hover { background: #f4f4f5; }
.dark .tab:hover { background: rgba(24, 24, 27, .5); }
.tab.active { background: #ffffff; color: #09090b; box-shadow: 0 1px 1px rgba(0,0,0,.05); }
.dark .tab.active { background: rgba(24, 24, 27, .8); color: var(--primary); }
.tab svg { opacity: .75; }

/* Фильтры памятки: узкие вкладки на мобильном и без переноса на широком экране. */
.hb-tabs { display: flex; width: 100%; gap: .25rem; overflow-x: auto; }
.hb-tabs .hb-memo-tab { flex: 1 0 auto; min-width: 0; padding: .375rem .25rem; font-size: .625rem; line-height: 1.25rem; white-space: nowrap; }
@media (min-width: 48rem) {
  .hb-tabs .hb-memo-tab { flex: 1 1 0; }
}

/* нижняя навигация на мобильном */
.bottom-nav a { color: var(--tertiary); transition: color .15s ease; }
.bottom-nav a.active { color: var(--primary); }

/* выпадающий список поиска */
.search-panel mark, .snippet mark {
  background: var(--mark); color: #18181b; border-radius: .2em; padding: 0 .15em;
}
.result-item.is-active { background: var(--accent1); }

/* ---------- текст документа (правила docossum .forumPreview) ---------- */
.forumPreview {
  text-align: justify;
  font-size: .875rem;
  line-height: 1.25rem;
  font-weight: 400;
  color: var(--primary);
  overflow-wrap: anywhere;
}
.forumPreview .normalText { font-size: .875rem; line-height: 1.25rem; font-weight: 400; color: var(--primary) !important; }
@media (min-width: 48rem) {
  .forumPreview, .forumPreview .normalText { font-size: 1rem; line-height: 1.5rem; }
}
.forumPreview * {
  text-decoration-color: color-mix(in oklab, currentColor 75%, transparent) !important;
  text-underline-offset: 4px !important;
  text-decoration-style: dotted !important;
}
.forumPreview ::selection { background-color: color-mix(in oklab, var(--brand) 40%, transparent); }
.forumPreview br { content: ""; margin: 7px; font-size: 7px; display: block; }
.forumPreview .colored { color: var(--brand) !important; }
.forumPreview div { padding-block: .25rem; }
.forumPreview b, .forumPreview strong { font-weight: 500; }
.forumPreview a { cursor: pointer; color: #3b82f6; text-decoration: underline dotted; text-underline-offset: 3px; }
.forumPreview ol, .forumPreview ul { display: flex; flex-direction: column; gap: .375rem; padding-block: .125rem; margin: 0 0 0 2.5rem !important; padding-left: 0; }
.forumPreview ol { list-style-type: decimal; }
.forumPreview ul { list-style-type: disc; }
.forumPreview li > div { margin-left: 1rem !important; }
.forumPreview mark {
  background-color: var(--mark); color: #18181b;
  padding: .125em .25rem; border-radius: .25em;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
.forumPreview h1, .forumPreview h2, .forumPreview h3 {
  font-weight: 600 !important; text-wrap: balance !important; color: var(--primary) !important;
  white-space: pre-wrap; scroll-margin-top: 8.5rem; margin: 0;
}
.forumPreview h1 { padding-top: 1.25rem !important; padding-bottom: .5rem !important; font-size: 1.5rem !important; line-height: 2rem !important; }
.forumPreview h2 { padding-top: 1.5rem !important; padding-bottom: .375rem !important; font-size: 1.25rem !important; line-height: 1.75rem !important; }
.forumPreview h3 { padding-top: 1.5rem !important; padding-bottom: .375rem !important; font-size: 1.125rem !important; line-height: 1.75rem !important; }
.forumPreview table { border-collapse: separate; width: 100%; }
.forumPreview table tbody { display: block; border: 1px solid var(--border1); border-radius: .5rem; }
.forumPreview table tbody > * { padding: .5rem; }
.forumPreview table tbody > :not(:last-child) { border-bottom: 1px solid var(--border1); }
.forumPreview tr { display: flex; flex-direction: column; gap: .25rem; }
.forumPreview td { width: auto !important; }
.forumPreview hr { border: 0; border-top: 1px solid var(--border2); margin: .75rem 0; }
.forumPreview [id^="s"] { scroll-margin-top: 9rem; }

.sec-flash { animation: secflash 2.2s ease-out; border-radius: .25rem; }
@keyframes secflash {
  0%, 30% { background: color-mix(in oklab, var(--brand) 35%, transparent); box-shadow: 0 0 0 4px color-mix(in oklab, var(--brand) 35%, transparent); }
  100% { background: transparent; box-shadow: 0 0 0 4px transparent; }
}

/* спиннер и скелетон */
.spinner {
  width: 1.25rem; height: 1.25rem; border-radius: 9999px;
  border: 2px solid var(--border2); border-top-color: var(--tertiary);
  animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.skeleton {
  border-radius: .375rem;
  background: linear-gradient(90deg, var(--layer1), var(--accent2), var(--layer1));
  background-size: 200% 100%;
  animation: shimmer 1.3s infinite;
}
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* тосты и модалка */
.toast { transition: opacity .25s ease, transform .25s ease; }
.toast.hide { opacity: 0; transform: translateY(-6px); }
.modal-in { animation: modalin .18s ease-out; }
@keyframes modalin { from { opacity: 0; transform: translateY(6px) scale(.98); } to { opacity: 1; transform: none; } }
.chev { transition: transform .2s ease; }
[data-open="true"] .chev { transform: rotate(90deg); }

/* ================== общие элементы docossum: form / glass ================== */
.styledFormElement {
  border: 1px solid #e4e4e7;
  background-color: #ffffff;
  color: var(--primary);
  border-radius: .5rem;
  transition: background-color .15s ease, border-color .15s ease;
  outline: none;
}
.dark .styledFormElement { border-color: #27272a; background-color: rgba(39, 39, 42, .5); }
.styledFormElement::placeholder { color: var(--tertiary); }
.styledFormElement:focus-visible, .styledFormElement:focus { border-color: var(--border2); }
.styledFormElementPressable:hover, .styledFormElementPressable:active { background-color: rgba(244, 244, 245, .75); }
.dark .styledFormElementPressable:hover, .dark .styledFormElementPressable:active { background-color: rgba(39, 39, 42, .75); }

.glassElement {
  border: 1px solid #e4e4e7;
  background-color: rgba(255, 255, 255, .85);
  color: var(--primary);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border-radius: 9999px;
}
.dark .glassElement { border-color: #27272a; background-color: rgba(39, 39, 42, .5); }
.glassElementPressable { border-radius: 9999px; transition: background-color .15s ease; }
.glassElementPressable:hover, .glassElementPressable:active { background-color: rgba(244, 244, 245, .75); }
.dark .glassElementPressable:hover, .dark .glassElementPressable:active { background-color: rgba(39, 39, 42, .75); }

.avatar-chip {
  display: inline-flex; align-items: center; justify-content: center;
  width: 16px; height: 16px; border-radius: 9999px;
  font-size: 9px; font-weight: 600; color: var(--secondary);
  background: var(--layer0); outline: 1px solid var(--border1);
}

/* ================== схема документооборота (как React Flow) ================== */
:root {
  --registry-default-background: #ffffff;
  --registry-secondary-background: oklch(98.5% 0 0);
  --registry-blue-background: oklch(95% .015 240);
  --registry-green-background: oklch(95% .015 150);
  --registry-orange-background: oklch(95% .015 75);
  --registry-red-background: oklch(95% .015 0);
  --edge: oklch(37.3% .034 259.733);
}
.dark {
  --registry-default-background: oklch(21% .006 285.885);
  --registry-secondary-background: oklch(28% 0 258);
  --registry-blue-background: oklch(25% .02 240);
  --registry-green-background: oklch(25% .02 150);
  --registry-orange-background: oklch(25% .02 70);
  --registry-red-background: oklch(25% .02 0);
}
.flow-bg {
  background-color: var(--layer0);
  background-image: radial-gradient(circle, color-mix(in oklab, var(--tertiary) 35%, transparent) 1px, transparent 1px);
  background-size: 22px 22px;
  cursor: grab;
}
.flow-bg.is-grabbing { cursor: grabbing; }
.flow-edge {
  fill: none; stroke: var(--edge); stroke-width: 1.5; opacity: .6;
  stroke-dasharray: 5; animation: dashdraw .5s linear infinite;
}
.dark .flow-edge { opacity: 1; }
@keyframes dashdraw { from { stroke-dashoffset: 10; } to { stroke-dashoffset: 0; } }
.flow-node { box-shadow: 0 1px rgba(0,0,0,.05); }
.flow-ctl {
  display: inline-flex; align-items: center; justify-content: center;
  width: 2.25rem; height: 2.25rem; border-radius: 9999px; color: var(--secondary);
  transition: background-color .15s ease;
}
.flow-ctl:hover { background: rgba(244, 244, 245, .75); }
.dark .flow-ctl:hover { background: rgba(63, 63, 70, .6); }

.auth-gate { background: rgba(12, 13, 15, .28); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.auth-gate-card { border-color: color-mix(in oklab, var(--border1) 75%, transparent); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }

/* ================== редактор документа: превью бланка ================== */
.preview-wrap { container-type: inline-size; }
.doc-paper {
  position: relative; width: 100%; aspect-ratio: 9 / 12; overflow: hidden;
  background: #fff; color: #111; border-radius: .5rem; border: 1px solid var(--border1);
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  font-family: "Times New Roman", Times, serif;
  font-size: clamp(7px, 2.35cqw, 13px); line-height: 1.35;
}
.paper-inner { position: absolute; inset: 0; padding: 7% 9% 6%; overflow: hidden; }
.paper-head { display: flex; flex-direction: column; align-items: center; gap: .5em; text-align: center; }
.paper-emblem {
  width: 3.2em; height: 3.2em; padding: .65em; border-radius: 9999px;
  border: .12em solid #1f2937; color: #1f2937; display: flex; align-items: center; justify-content: center;
}
.paper-emblem svg { width: 100%; height: 100%; }
.paper-org { font-weight: 700; letter-spacing: .04em; font-size: 1.05em; }
.paper-rule { height: 0; border-top: .15em solid #111; border-bottom: .05em solid #111; padding-top: .15em; margin: .8em 0 .9em; }
.paper-meta { display: flex; justify-content: space-between; gap: 1em; font-size: .92em; }
.paper-title { margin: 1.4em 0 1em; text-align: center; font-weight: 700; font-size: 1.12em; text-transform: uppercase; }
.paper-sec { margin-bottom: .8em; text-align: justify; }
.paper-sec p { margin: 0 0 .35em; text-indent: 1.6em; white-space: pre-wrap; overflow-wrap: anywhere; }
.paper-sec-h { font-weight: 700; margin: .6em 0 .35em; }
.paper-ph { color: #9ca3af; }
.paper-signs { position: relative; margin-top: 1.6em; display: flex; flex-direction: column; gap: 1.1em; }
.paper-sign { display: grid; grid-template-columns: 1fr 6em 1fr; align-items: end; gap: .8em; font-size: .95em; }
.paper-sign-line { border-bottom: .08em solid #111; height: 1.2em; }
.paper-sign-name { text-align: right; }
.paper-stamp {
  position: absolute; right: 18%; top: -1.4em; width: 6.2em; height: 6.2em; border-radius: 9999px;
  border: .18em double rgba(37, 99, 235, .7); color: rgba(37, 99, 235, .75);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .1em;
  transform: rotate(-14deg); font-family: Inter, sans-serif; font-size: .78em; text-align: center; line-height: 1.1;
  pointer-events: none;
}
.paper-stamp b { font-size: 1.5em; letter-spacing: .04em; }
.paper-stamp span { font-size: .72em; letter-spacing: .08em; }

.sidebar-panel { background: #ffffff; }
.dark .sidebar-panel { background: #1a1a1e; }
.sidebar-bg { background: #ffffff; }
.dark .sidebar-bg { background: #1a1a1e; }
@media (max-width: 63.99rem) {
  .sidebar-panel.sidebar-mobile-open {
    display: block; position: fixed; inset: 0 0 0 auto; z-index: 60; width: min(88vw, 20rem);
    box-shadow: -20px 0 40px rgba(0,0,0,.35); overflow-y: auto;
  }
}

/* ================== ассистент ================== */
.chat-md p { margin: 0 0 .6em; }
.chat-md p:last-child { margin-bottom: 0; }
.chat-md ul { margin: 0 0 .7em; padding-left: 1.1em; display: flex; flex-direction: column; gap: .55em; }
.chat-md li::marker { color: var(--brand); }
.caret { display: inline-block; width: .5em; height: 1em; margin-left: 2px; vertical-align: -2px; background: var(--brand); animation: blink 1s steps(2) infinite; }
@keyframes blink { 50% { opacity: 0; } }


.switch { position: relative; display: inline-flex; width: 2.25rem; height: 1.25rem; flex-shrink: 0; }
.switch input { position: absolute; inset: 0; opacity: 0; cursor: pointer; margin: 0; z-index: 1; }
.switch span { position: absolute; inset: 0; border-radius: 9999px; background: var(--accent2); transition: background-color .15s ease; }
.switch span::after {
  content: ""; position: absolute; top: 2px; left: 2px; width: calc(1.25rem - 4px); height: calc(1.25rem - 4px);
  border-radius: 9999px; background: #fff; transition: transform .15s ease; box-shadow: 0 1px 2px rgba(0,0,0,.2);
}
.switch input:checked + span { background: var(--brand); }
.switch input:checked + span::after { transform: translateX(1rem); }

/* критичные размеры схемы — не зависят от Tailwind */
.flow-bg { position: relative; height: 100dvh; width: 100%; overflow: hidden; touch-action: none; }
.flow-node { position: absolute; }
.flow-node[data-go] { width: 320px; padding: .75rem 1.5rem; }

.workspace-page { height: 100dvh; overflow: hidden; }
.workspace-hero { min-height: 20rem; background: linear-gradient(115deg, color-mix(in oklab, var(--layer1) 95%, var(--brand)), var(--layer1) 56%, color-mix(in oklab, var(--layer1) 90%, #53704c)); }
.workspace-hero-art { position: absolute; top: 50%; right: 4%; width: min(42%, 22rem); height: 90%; transform: translateY(-50%); }
.workspace-hero-orbit { position: absolute; inset: 8%; border: 1px solid color-mix(in oklab, var(--brand) 26%, transparent); border-radius: 50%; transform: rotate(-24deg); }
.workspace-hero-folder { position: absolute; top: 20%; left: 30%; display: grid; width: 9rem; height: 11rem; place-items: center; border: 1px solid color-mix(in oklab, var(--brand) 25%, transparent); border-radius: 1.5rem; background: linear-gradient(145deg, color-mix(in oklab, var(--brand) 27%, var(--layer1)), var(--layer1) 66%); color: var(--brand); box-shadow: 0 28px 70px rgba(0,0,0,.16); transform: rotate(9deg); }
.workspace-hero-sheet { position: absolute; display: grid; width: 4rem; height: 5rem; place-items: center; border: 1px solid var(--border1); border-radius: .8rem; background: var(--layer1); color: var(--secondary); box-shadow: 0 14px 32px rgba(0,0,0,.12); }
.workspace-hero-sheet-a { top: 24%; left: 14%; transform: rotate(-13deg); }
.workspace-hero-sheet-b { right: 4%; bottom: 18%; color: var(--brand); transform: rotate(13deg); }
.case-cover { isolation: isolate; background: linear-gradient(145deg, color-mix(in oklab, var(--layer1) 96%, var(--brand)), var(--layer1) 55%, color-mix(in oklab, var(--layer1) 90%, #506848)); }
.case-cover-glow { position: absolute; top: -5rem; right: -4rem; width: 14rem; height: 14rem; border-radius: 50%; background: color-mix(in oklab, var(--brand) 16%, transparent); filter: blur(42px); transition: transform .25s ease; }
.case-cover-paper { position: absolute; right: 2.6rem; bottom: 2.4rem; display: flex; width: 6rem; height: 7rem; flex-direction: column; align-items: center; justify-content: center; gap: .55rem; border: 1px solid var(--border1); border-radius: .85rem; background: var(--layer1); color: var(--brand); box-shadow: 0 14px 32px rgba(0,0,0,.16); transform: rotate(9deg); transition: transform .25s ease; }
.case-cover-paper::after { content: ""; display: block; width: 58%; height: 2px; background: var(--border2); box-shadow: 0 7px var(--border1), 0 14px var(--border1); }
.case-cover:hover .case-cover-paper { transform: translateY(-5px) rotate(5deg); }
.case-cover:hover .case-cover-glow { transform: scale(1.25); }
.case-cover-illustration { position: absolute; top: 2.5rem; right: 1rem; width: 9rem; height: 8rem; color: var(--brand); opacity: .2; pointer-events: none; }
.case-cover-orbit { position: absolute; inset: 1rem .25rem; border: 1px solid currentColor; border-radius: 50%; transform: rotate(-28deg); }
.case-cover-folder { position: absolute; top: 2rem; right: 2.7rem; display: grid; width: 4rem; height: 3.2rem; place-items: center; border: 1px solid currentColor; border-radius: .7rem; background: color-mix(in oklab, var(--brand) 10%, var(--layer1)); box-shadow: 0 .7rem 1.8rem rgba(0,0,0,.12); }
.case-mini-sheet { position: absolute; top: .4rem; right: .6rem; display: grid; width: 2.2rem; height: 2.7rem; place-items: center; border: 1px solid currentColor; border-radius: .35rem; background: var(--layer1); box-shadow: 0 4px 12px rgba(0,0,0,.1); }
.case-mini-sheet:nth-of-type(2) { top: 3.4rem; right: .8rem; transform: rotate(9deg); }
.case-mini-sheet:nth-of-type(3) { top: .9rem; right: 5.7rem; transform: rotate(-12deg); }
.case-cover-glyph { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid color-mix(in oklab, var(--brand) 20%, var(--border1)); border-radius: .8rem; background: color-mix(in oklab, var(--brand) 12%, var(--layer1)); color: var(--brand); }
.case-board-title { display: flex; min-height: 2.5rem; align-items: center; gap: .5rem; padding: .5rem .9rem; border: 1px solid var(--border1); border-radius: 9999px; background: color-mix(in oklab, var(--layer1) 88%, transparent); color: var(--secondary); font-size: .8rem; box-shadow: 0 4px 16px rgba(0,0,0,.08); }
.workspace-case-topbar { min-height: 3.6rem; }
.workspace-action-bar { position: relative; z-index: 45; min-height: 3.5rem; }
.workspace-action { display: inline-flex; min-height: 2.55rem; align-items: center; gap: .55rem; border-radius: .7rem; padding: .4rem .75rem; color: var(--secondary); font-size: .8rem; font-weight: 500; white-space: nowrap; transition: background-color .15s ease, color .15s ease; }
.workspace-action:hover, .workspace-action[aria-pressed="true"] { background: var(--accent1); color: var(--primary); }
.workspace-action-icon { display: grid; width: 1.8rem; height: 1.8rem; flex: none; place-items: center; border: 1px solid var(--border1); border-radius: .55rem; background: var(--layer0); color: var(--brand); }
.workspace-actions-divider { width: 1px; height: 1.65rem; margin-inline: .2rem; background: var(--border1); }
.workspace-actions-count { margin-left: auto; padding-inline: .6rem; color: var(--tertiary); font-size: .72rem; white-space: nowrap; }
.workspace-board.hide-editors .workspace-card-foot { display: none; }
.workspace-board.hide-editors .workspace-card { width: 14.5rem; }
.workspace-board.hide-editors .workspace-paper { min-height: 8rem; margin: .55rem; padding: .8rem; }
.workspace-board.hide-editors .workspace-paper-lines i:nth-child(n+3) { display: none; }
.workspace-board { position: relative; min-height: 24rem; overflow: hidden; background-size: 22px 22px; cursor: grab; }
.workspace-board.is-panning { cursor: grabbing; user-select: none; }
.workspace-canvas-viewport { position: absolute; inset: 0; overflow: auto; border-radius: inherit; overscroll-behavior: contain; scrollbar-width: thin; touch-action: none; }
.workspace-canvas { position: relative; width: max(100%, 1500px); height: max(100%, 950px); }
.workspace-board-tools { position: absolute; top: .75rem; right: .75rem; left: .75rem; display: flex; min-height: 3.25rem; width: auto; justify-content: flex-start; border-radius: 1rem; }
.workspace-action { display: inline-flex; min-height: 2.5rem; align-items: center; gap: .55rem; border-radius: .7rem; padding: .45rem .8rem; color: var(--secondary); font-size: .8rem; font-weight: 500; white-space: nowrap; transition: background-color .15s ease, color .15s ease; }
.workspace-action:hover, .workspace-action[aria-pressed="true"] { background: var(--accent1); color: var(--primary); }
.workspace-action-icon { display: grid; width: 1.8rem; height: 1.8rem; flex: none; place-items: center; border: 1px solid var(--border1); border-radius: .55rem; background: var(--layer0); color: var(--brand); }
.workspace-actions-divider { width: 1px; height: 1.65rem; margin-inline: .15rem; background: var(--border1); }
.workspace-actions-count { margin-left: auto; padding-inline: .6rem; color: var(--tertiary); font-size: .72rem; white-space: nowrap; }
.workspace-board.hide-editors .workspace-card-foot { display: none; }
.workspace-board.hide-editors .workspace-card { width: 14.5rem; }
.workspace-board.hide-editors .workspace-paper { min-height: 8rem; margin: .55rem; padding: .8rem; }
.workspace-board.hide-editors .workspace-paper-lines i:nth-child(n+3) { display: none; }
.workspace-case-menu { max-height: min(70vh, 26rem); overflow-y: auto; }
.workspace-note { position: absolute; z-index: 2; display: flex; min-width: 190px; min-height: 140px; flex-direction: column; overflow: hidden; resize: none; box-shadow: 0 12px 34px rgba(0,0,0,.16); }
.workspace-note.is-dragging { z-index: 20; box-shadow: 0 20px 50px rgba(0,0,0,.28); }
.workspace-note-head { display: flex; flex: none; align-items: center; gap: .6rem; padding: .65rem .75rem; border-bottom: 1px solid var(--border1); cursor: grab; touch-action: none; user-select: none; }
.workspace-note-head button { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border-radius: .45rem; color: var(--tertiary); }
.workspace-note-head button:hover { background: var(--layer2); color: var(--primary); }
.workspace-note-text { min-height: 0; width: 100%; flex: 1; resize: none; border: 0; outline: 0; padding: .75rem; background: transparent; color: var(--primary); font: inherit; font-size: .875rem; line-height: 1.55; }
.workspace-note-grip { position: absolute; right: 2px; bottom: 2px; z-index: 3; width: 1rem; height: 1rem; cursor: nwse-resize; touch-action: none; }
.workspace-note-grip::after { content: ""; position: absolute; right: 3px; bottom: 3px; width: .55rem; height: .55rem; border-right: 2px solid var(--tertiary); border-bottom: 2px solid var(--tertiary); opacity: .7; }
.workspace-card-head { cursor: grab; }
.workspace-board-tools { z-index: 40; }
.workspace-page > .bottom-nav { display: flex !important; }
.workspace-page > .bottom-nav [data-profile-wrap] { max-width: 4rem; flex: 0 0 4rem; }
.workspace-page > .bottom-nav [data-profile-menu] { position: fixed; right: max(1rem, env(safe-area-inset-right)); bottom: calc(4.25rem + env(safe-area-inset-bottom)); left: auto; z-index: 100; width: min(16rem, calc(100vw - 2rem)); max-height: min(70vh, 26rem); overflow-y: auto; }
.workspace-card {
  position: absolute; left: var(--ws-x, 5%); top: var(--ws-y, 8%); width: min(18rem, calc(100vw - 4rem));
  overflow: hidden; box-shadow: 0 10px 32px rgba(0,0,0,.14); transition: box-shadow .16s ease, transform .16s ease;
}
.workspace-card:hover { transform: translateY(-2px); box-shadow: 0 16px 38px rgba(0,0,0,.2); }
.workspace-card.is-dragging { z-index: 15; cursor: grabbing; box-shadow: 0 20px 50px rgba(0,0,0,.28); transition: none; }
.workspace-card-head { display: flex; align-items: center; gap: .6rem; padding: .75rem; border-bottom: 1px solid var(--border1); cursor: grab; touch-action: none; user-select: none; }
.workspace-card.is-dragging .workspace-card-head { cursor: grabbing; }
.workspace-paper { margin: .75rem; min-height: 11.5rem; padding: 1.1rem; background: #fff; color: #202124; border: 1px solid #e5e7eb; box-shadow: 0 2px 5px rgba(0,0,0,.06); font-family: "Times New Roman", Times, serif; }
.workspace-paper-kicker { color: #74777d; font: 9px Inter, sans-serif; }
.workspace-paper-title { margin-top: 1.15rem; text-align: center; font-size: 13px; font-weight: 700; letter-spacing: .035em; }
.workspace-paper-line { height: 1px; margin: .8rem 0; background: #d1d5db; }
.workspace-paper-lines { display: flex; flex-direction: column; gap: .55rem; }
.workspace-paper-lines i { display: block; width: 96%; height: 3px; border-radius: 3px; background: #e5e7eb; }
.workspace-paper-lines i:nth-child(2) { width: 84%; }
.workspace-paper-lines i:nth-child(3) { width: 92%; }
.workspace-paper-lines i:nth-child(4) { width: 60%; }
.workspace-paper-sign { width: 38%; height: 1rem; margin: 1.2rem 0 0 auto; border-bottom: 1px solid #c4c8ce; }
.workspace-card-foot { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .25rem .75rem .75rem; color: var(--tertiary); font-size: 11px; }
.workspace-empty-hint { position: absolute; left: 50%; bottom: 1rem; display: flex; align-items: center; gap: .75rem; width: min(22rem, 80%); transform: translateX(-50%); color: var(--tertiary); font-size: 12px; pointer-events: none; }
@media (max-width: 767px) {
  .workspace-page { height: auto; min-height: 100dvh; overflow: visible; }
  .workspace-hero { min-height: 0; }
  .workspace-hero-art { top: 1rem; right: -3rem; width: 9rem; height: 10rem; transform: none; opacity: .42; }
  .workspace-hero-folder { top: 18%; left: 30%; width: 5rem; height: 7rem; }
  .workspace-hero-sheet { width: 2.6rem; height: 3.4rem; }
  .workspace-action-bar { margin-inline: .75rem; gap: .25rem; }
  .workspace-action { min-height: 2.25rem; gap: .35rem; padding: .35rem .5rem; font-size: .68rem; }
  .workspace-actions-count { display: none; }
  .workspace-board { min-height: 70vh; overflow: hidden; border: 1px solid var(--border1); background-image: none; }
  .workspace-canvas-viewport { position: absolute; inset: 0; overflow: auto; }
  .workspace-canvas { width: max(100%, 900px); height: max(100%, 750px); }
  .workspace-board-tools { position: absolute; top: .5rem; right: .5rem; left: .5rem; margin: 0; flex-wrap: wrap; }
  .workspace-action { min-height: 2.2rem; gap: .35rem; padding: .35rem .55rem; font-size: .7rem; }
  .workspace-actions-count { display: none; }
  .workspace-card { width: min(18rem, calc(100vw - 3rem)); }
  .workspace-card:hover { transform: none; }
  .workspace-note { max-width: calc(100vw - 3rem); }
  .workspace-empty-hint { position: static; width: auto; transform: none; }
}

/* ================== генератор документов ================== */
.gen-step { position: relative; padding: 0 0 1.75rem 2.5rem; }
.gen-step::before { content: ""; position: absolute; left: 11px; top: 1.75rem; bottom: .25rem; width: 2px; background: var(--layer2); }
.gen-step.is-last::before { display: none; }
.gen-num {
  position: absolute; left: 0; top: 0; display: flex; align-items: center; justify-content: center;
  width: 1.5rem; height: 1.5rem; border-radius: 9999px; background: var(--accent2); color: var(--secondary); font-size: .75rem;
}
.gen-step-title { margin: 0 0 .75rem; font-size: .95rem; font-weight: 600; color: var(--primary); line-height: 1.5rem; }
.gen-label { display: block; font-size: .8rem; font-weight: 500; color: var(--secondary); }
.gen-hint { display: flex; align-items: flex-start; gap: .4rem; margin: .6rem 0 0; font-size: .78rem; line-height: 1.15rem; color: var(--secondary); }
.gen-hint svg { margin-top: .12rem; flex-shrink: 0; }
.gen-warn { color: #d97706; }
.dark .gen-warn { color: #fbbf24; }
.gen-link { display: inline-flex; align-items: center; gap: .35rem; margin-top: .6rem; font-size: .8rem; color: var(--brand); }
.gen-link:hover { text-decoration: underline; }
.gen-check { display: flex; align-items: flex-start; gap: .6rem; padding: .35rem .15rem; font-size: .85rem; line-height: 1.25rem; color: var(--secondary); cursor: pointer; }
.gen-check input { position: absolute; opacity: 0; pointer-events: none; }
.gen-box {
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: .1rem;
  width: 1.05rem; height: 1.05rem; border-radius: .3rem; border: 1px solid var(--border2); color: transparent; transition: all .12s ease;
}
.gen-check input:checked + .gen-box { background: var(--brand); border-color: var(--brand); color: #0f130d; }
.gen-check input:focus-visible + .gen-box { outline: 2px solid color-mix(in oklab, var(--brand) 50%, transparent); outline-offset: 2px; }
.gen-chip {
  display: inline-flex; align-items: center; gap: .35rem; padding: .25rem .35rem .25rem .6rem; border-radius: .5rem;
  border: 1px solid var(--border1); background: var(--layer1); font-size: .75rem; color: var(--secondary);
}
.gen-chip button { display: inline-flex; padding: .15rem; border-radius: .3rem; color: var(--tertiary); }
.gen-chip button:hover { background: var(--accent2); color: var(--primary); }
.gen-ghost {
  display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; border-radius: .5rem; padding: .5rem .8rem;
  font-size: .85rem; color: var(--secondary); transition: background-color .15s ease, color .15s ease;
}
.gen-ghost:hover { background: var(--accent1); color: var(--primary); }
.gen-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: .45rem; border-radius: .6rem; padding: .6rem .9rem;
  font-size: .85rem; font-weight: 500; background: var(--brand); color: #0f130d; transition: filter .15s ease;
}
.gen-primary:hover { filter: brightness(1.08); }
select.styledFormElement { background-image: none; }
select.styledFormElement option { background: var(--layer1); color: var(--primary); }

.gen-paper {
  background: #fff; color: #111; border-radius: .5rem; border: 1px solid var(--border1);
  box-shadow: 0 12px 34px rgba(0,0,0,.28); overflow: hidden;
  font-family: "Times New Roman", Times, serif; font-size: clamp(9.5px, 2.25cqw, 13.5px); line-height: 1.42;
  max-height: calc(100dvh - 15rem); overflow-y: auto;
}
@media (max-width: 63.99rem) { .gen-paper { max-height: none; } }
.paper-doc { padding: 8% 8.5% 9%; min-height: calc(100cqw * 1.3); }
.pd-label { text-align: right; font-style: italic; color: #6b7280; font-size: .85em; margin-bottom: .8em; }
.pd-right { margin-left: auto; width: 58%; margin-bottom: 1.4em; font-size: .95em; }
.pd-right > div { overflow-wrap: anywhere; }
.pd-gap { height: .5em; }
.pd-title { text-align: center; font-weight: 700; font-size: 1.28em; letter-spacing: .03em; margin-top: .6em; }
.pd-sub { text-align: center; font-weight: 700; margin: .15em 0 1em; }
.pd-meta { display: flex; justify-content: space-between; gap: 1em; margin: .4em 0 1.1em; }
.pd-h { font-weight: 700; margin: 1em 0 .4em; text-transform: uppercase; font-size: .96em; }
.pd-center { text-align: center; }
.pd-p { margin: 0 0 .5em; text-align: justify; text-indent: 1.6em; white-space: pre-wrap; overflow-wrap: anywhere; }
.pd-list { margin: 0 0 .6em; padding-left: 2.6em; }
.pd-list li { margin-bottom: .2em; text-align: justify; overflow-wrap: anywhere; }
.pd-signs { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2em; margin-top: .6em; font-size: .92em; }
.pd-col { display: flex; flex-direction: column; gap: .12em; overflow-wrap: anywhere; }
.pd-col-t { font-weight: 700; margin-bottom: .25em; }
.pd-signline { display: flex; align-items: flex-end; gap: .5em; margin-top: .9em; }
.pd-signline .pd-sign { flex: 1; border-bottom: .08em solid #111; min-height: 1.6em; }
.pd-sign { font-family: "Marck Script", "Caveat", cursive; font-size: 1.45em; color: #1e3a8a; line-height: 1; padding: 0 .2em; }
.pd-sign-row { display: grid; grid-template-columns: auto 1fr auto; align-items: end; gap: 1em; margin-top: 2em; }
.pd-sign-cell { border-bottom: .08em solid #111; min-height: 1.8em; text-align: center; }
.ph { color: #9ca3af; font-style: italic; background: #f3f4f6; border-radius: .2em; padding: 0 .25em; }

/* Адвокатский запрос: строгая одно-страничная раскладка официального письма. */
.pd-right--request { width: 64%; margin-bottom: 1.8em; }
.pd-right--request > div { margin-bottom: .15em; }
.pd-title--request { margin-top: 0; margin-bottom: .2em; font-size: 1.16em; letter-spacing: .06em; }
.pd-sub--request { margin: 0 0 1.1em; font-weight: 400; }
.pd-h--request { margin: .75em 0 .35em; text-transform: none; font-size: .94em; }
.pd-p--request { margin-bottom: .48em; text-indent: 1.6em; }
.pd-list--request { margin-bottom: .65em; padding-left: 2.9em; }
.pd-list--request li { margin-bottom: .28em; }
.pdf-paper .pd-right--request { margin-top: 0; }
.pdf-paper .pd-p--request { margin-bottom: 7px; }
.print-paper .pd-p--request { margin-bottom: 7px; }

/* PDF: скрытый рендер A4 для html2canvas */
.pdf-host { position: fixed; left: -10000px; top: 0; width: 794px; z-index: -1; pointer-events: none; background: #fff; }
.pdf-paper { width: 794px; background: #fff; color: #111; font-family: "Times New Roman", Times, serif; font-size: 13.5px; line-height: 1.42; }
.pdf-paper .paper-doc { padding: 0 76px; min-height: 0; }

/* печать в PDF (запасной вариант вне Gumloop) */
.print-host { display: none; }
@media print {
  @page { size: A4; margin: 18mm 15mm 20mm 25mm; }
  body.is-printing { background: #fff !important; }
  body.is-printing > *:not(.print-host) { display: none !important; }
  body.is-printing .print-host { display: block; }
  .print-paper { color: #111; font-family: "Times New Roman", Times, serif; font-size: 12pt; line-height: 1.38; }
  .print-paper .paper-doc { padding: 0; min-height: 0; }
  .print-paper .pd-p, .print-paper .pd-h { break-inside: avoid-page; }
}

/* история чатов */
.hist-panel { transform: translateX(-100%); transition: transform .22s ease; }
[data-history].is-open .hist-panel { transform: none; }
[data-recent-toggle] .recent-chev { transition: transform .2s ease; }
[data-recent-toggle][data-open="true"] .recent-chev { transform: rotate(180deg); }

/* подсказки-вопросы ассистента (как у docossum) */
.ask-chip {
  display: inline-flex; align-items: center; max-width: 100%;
  border-radius: 9999px; padding: .5rem 1rem;
  background: #e4e4e7; color: var(--primary);
  font-size: .875rem; font-weight: 500; line-height: 1.25rem; text-align: left;
  transition: background-color .15s ease;
}
.ask-chip:hover { background: #d4d4d8; }
.dark .ask-chip { background: #27272a; }
.dark .ask-chip:hover { background: #3f3f46; }
