/* КОДИ / ДИЗАЙН-СИСТЕМА 1.3
   Все цвета, интервалы, радиусы и размеры текста задаются токенами ниже.
   :root — тёмная тема; :root[data-theme="light"] — только цветовые переопределения.
   Breakpoints 1100px / 760px — структурные пороги: CSS-переменные недоступны в media queries.
*/
:root {
  color-scheme: dark;
  /* Реплики и прогулка Коди */
  --bubble-width: 288px; --bubble-x: 16px; --bubble-y: 80px; --bubble-tip: 8px;
  --roam-width: 120px; --roam-x: 0px; --roam-y: 0px; --roam-z: 50;
  --bubble-z: 51; --cat-run-direction: 1; --cat-run-hop: -4px;
  --kodi-menu-width: 264px; --kodi-menu-top: 46px; --kodi-line-duration: 12s;
  --cat-run-duration: 280ms; --companion-margin: 12px;

  /* Дополнительные экраны и мобильный клиентский кабинет */
  --editor-height: 248px; --mail-label-width: 88px; --portal-max: 1060px;
  --portal-bottom-space: 112px; --safe-bottom: env(safe-area-inset-bottom, 0px);

  /* Коди-кот: масштаб, SVG-линии, движения и изменяемое направление взгляда */
  --chat-history-width: 224px; --chat-history-narrow: 192px; --chat-content-max: 800px; --chat-user-width: 88%; --chat-cat-width: 116px; --chat-input-height: 72px; --chat-input-max: 200px; --chat-line-height: 1.65;
  --security-cell-min: 128px; --security-cell-mobile: 120px;
  
  /* Живые реакции: потягивание, умывание, зевок, любопытство и короткий сон */
  --cat-stretch-duration: 3200ms; --cat-groom-duration: 3600ms; --cat-curious-duration: 2800ms;
  --cat-yawn-duration: 2400ms; --cat-nap-duration: 6200ms; --cat-breathe-duration: 2500ms;
  --cat-body-origin: 87px 137px; --cat-ear-origin: 87px 36px;
  --cat-stretch-lift: -5px; --cat-groom-lift: -38px; --cat-groom-slide: -8px;
  --cat-sleep-tilt: 6deg; --cat-curious-left: -7deg; --cat-curious-right: 7deg;
  --cat-width: 168px; --cat-mobile-width: 104px; --cat-logo-width: 34px;
  --cat-stroke: 2.4; --cat-detail-stroke: 1.6; --cat-pause-size: 24px;
  --cat-gaze-x: 0px; --cat-gaze-y: 0px; --cat-head-x: 0px; --cat-head-angle: 0deg;
  --cat-tail-duration: 5s; --cat-play-duration: 2600ms; --cat-pet-duration: 1400ms;
  --cat-blink-duration: 180ms; --cat-gaze-duration: 110ms;
  --cat-tail-origin: 116px 124px; --cat-head-origin: 87px 99px; --cat-eye-origin: 87px 70px;
  --cat-paw-origin: 104px 126px; --cat-toy-origin: 150px 134px;
  --cat-tail-angle: 7deg; --cat-pet-angle: -6deg; --cat-play-angle: -24deg;
  --cat-paw-lift: -13px; --cat-toy-hop: -22px; --cat-toy-roll: 15px;
  --cat-love-lift: -6px; --cat-play-head-angle: 9deg;
  --cat-tail-outer-stroke: 10; --cat-tail-inner-stroke: 5;

  /* Нейтральные поверхности: страница, навигация, карточки, приподнятые элементы */
  --bg: #101214; --sidebar: #141719; --surface: #191c1f; --raised: #202428; --hover: #262b2f;
  --border: #30363a; --border-strong: #495258;
  /* Иерархия текста: основной, вторичный, пояснения, отключённый */
  --text: #f1f3f4; --muted: #a6afb5; --subtle: #89959d; --disabled: #758188;
  /* Единственный брендовый акцент: основной, фон, текст на заливке */
  --accent: #68dfdc; --accent-bg: #193331; --on-accent: #102727;
  /* Семантика: успех, внимание, запрет и действия агента клиента */
  --success: #82dca5; --success-bg: #1c3026;
  --warning: #e9bd74; --warning-bg: #342d21;
  --danger: #f09a9e; --danger-bg: #362427;
  --client: #c0b1f4; --client-bg: #2c273b;
  --transparent: transparent;
  /* Семейства, размеры и насыщенность шрифта; числа всегда моноширинные */
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --text-xs: 11px; --text-sm: 12px; --text-base: 14px; --text-md: 15px;
  --text-lg: 18px; --text-xl: 24px; --text-2xl: 30px; --text-metric: 32px;
  --weight-normal: 400; --weight-medium: 500; --weight-bold: 600; --weight-heavy: 700;
  --leading: 1.5; --leading-tight: 1.2; --tracking: -0.035em; --tracking-label: 0.09em;
  /* Шкала отступов: 2–48; нулевой токен также используется для reset */
  --s0: 0px; --s1: 2px; --s2: 4px; --s3: 6px; --s4: 8px; --s5: 10px; --s6: 12px;
  --s7: 16px; --s8: 20px; --s9: 24px; --s10: 28px; --s11: 32px; --s12: 40px; --s13: 48px;
  /* Радиусы: контролы, карточки и большие панели */
  --radius-sm: 8px; --radius-md: 10px; --radius-lg: 12px; --radius-round: 50%;
  /* Геометрия оболочки, контролов, знака агента и канбана */
  --sidebar-width: 216px; --topbar-height: 64px; --content-max: 1580px;
  --control: 36px; --icon: 18px; --icon-sm: 14px; --avatar: 32px; --brand-size: 38px;
  --dot: 6px; --mark: 24px; --mark-large: 60px; --orbit: 116px; --orbit-inner: 90px;
  --line: 1px; --focus-line: 2px; --focus-offset: 3px; --rail: 3px;
  --column-min: 240px; --column-mobile: 280px; --feed-icon: 34px; --swatch-height: 64px;
  --tick-width: 3px; --tick-height: 12px; --progress-height: 4px; --panel-min: 320px;
  /* Движение: спокойное появление и поворот контура агента; без свечений и теней */
  --duration: 160ms; --enter-duration: 420ms; --orbit-duration: 24s;
  --ease: cubic-bezier(.2,.8,.2,1); --enter-shift: 6px;
}
:root[data-theme="light"] {
  color-scheme: light;
  --bg: #f3f4f5; --sidebar: #fafbfb; --surface: #ffffff; --raised: #f0f2f3; --hover: #e8edef;
  --border: #dce1e3; --border-strong: #b8c3c8;
  --text: #182126; --muted: #536269; --subtle: #62727a; --disabled: #708089;
  --accent: #087f80; --accent-bg: #e0f3f1; --on-accent: #ffffff;
  --success: #237445; --success-bg: #e7f3eb;
  --warning: #855711; --warning-bg: #fbf0dc;
  --danger: #ad3945; --danger-bg: #fcecef;
  --client: #7150ad; --client-bg: #f0ebfb;
}
/* .app-shell / .sidebar / .topbar — постоянная оболочка */
* { box-sizing: border-box; }
body { margin: var(--s0); background: var(--bg); color: var(--text); font: var(--weight-normal) var(--text-base)/var(--leading) var(--font); }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
button, a { -webkit-tap-highlight-color: var(--transparent); }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
:focus-visible { outline: var(--focus-line) solid var(--accent); outline-offset: var(--focus-offset); }
h1,h2,h3,p { margin: var(--s0); }
h1 { font-size: var(--text-2xl); font-weight: var(--weight-bold); letter-spacing: var(--tracking); line-height: var(--leading-tight); }
h2 { font-size: var(--text-md); font-weight: var(--weight-bold); }
h3 { font-size: var(--text-base); font-weight: var(--weight-medium); }
.icon { width: var(--icon); height: var(--icon); flex-shrink: 0; vertical-align: middle; }
.mono, time, .count { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.muted { color: var(--muted); } .subtle { color: var(--subtle); } .accent { color: var(--accent); }
.small { font-size: var(--text-sm); } .upper { font-size: var(--text-xs); letter-spacing: var(--tracking-label); font-weight: var(--weight-bold); text-transform: uppercase; }
.row { display: flex; align-items: center; gap: var(--s4); } .between { justify-content: space-between; } .wrap { flex-wrap: wrap; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar-width) minmax(0,1fr); }
.sidebar { position: sticky; top: var(--s0); height: 100vh; background: var(--sidebar); border-right: var(--line) solid var(--border); display:flex; flex-direction:column; padding: var(--s9) var(--s6) var(--s7); }
.brand { display: flex; gap: var(--s6); align-items: center; padding: var(--s0) var(--s6) var(--s9); }
.brand-tile { width:var(--brand-size);height:var(--brand-size);border-radius:var(--radius-md);background:var(--accent);color:var(--on-accent);display:grid;place-items:center; }
.brand-name { font-size: var(--text-xl); font-weight:var(--weight-bold);letter-spacing:var(--tracking);line-height:var(--leading-tight); }
.brand-sub { color:var(--muted);font-size:var(--text-xs); }
.workspace { margin: var(--s0) var(--s2) var(--s9);padding:var(--s6);border:var(--line) solid var(--border);border-radius:var(--radius-sm); }
.workspace .upper { color:var(--subtle);font-size:var(--text-xs);letter-spacing:var(--s0);text-transform:none; }
.nav-label { color:var(--subtle);padding:var(--s0) var(--s6);margin-bottom:var(--s4); }
.nav-item { width:100%;display:flex;align-items:center;gap:var(--s6);padding:var(--s5) var(--s6);border-radius:var(--radius-sm);color:var(--muted);margin-bottom:var(--s2);border:var(--line) solid var(--transparent);background:var(--transparent);text-align:left; }
.nav-item:hover { background:var(--hover);color:var(--text); }
.nav-item.active { background:var(--accent-bg);color:var(--accent);border-color:var(--border); }
.nav-item:disabled { color:var(--disabled);background:var(--transparent); }
.nav-item .count { margin-left:auto;font-size:var(--text-sm); }
.sidebar-bottom { margin-top:auto;padding-top:var(--s11); }
.agent-mini { padding:var(--s6);border:var(--line) solid var(--border);border-radius:var(--radius-md);margin:var(--s0) var(--s2) var(--s7); }
.agent-mini .row { margin-bottom:var(--s4); }
.profile { display:flex;align-items:center;gap:var(--s5);padding:var(--s6) var(--s4) var(--s0);border-top:var(--line) solid var(--border); }
.avatar { width:var(--avatar);height:var(--avatar);display:grid;place-items:center;flex-shrink:0;background:var(--raised);color:var(--muted);border:var(--line) solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-bold); }
.main { min-width:0; }
.topbar { height:var(--topbar-height);display:flex;align-items:center;justify-content:space-between;padding:var(--s0) var(--s11);border-bottom:var(--line) solid var(--border);gap:var(--s7); }
.breadcrumb { display:flex;align-items:center;gap:var(--s6);font-size:var(--text-sm);color:var(--muted); }
.breadcrumb .icon { width:var(--icon-sm);height:var(--icon-sm); }
.top-actions { display:flex;align-items:center;gap:var(--s7); }
.domain { font-size:var(--text-xs);color:var(--subtle); }
.content { max-width:var(--content-max);margin:auto;padding:var(--s10) var(--s11) var(--s9);animation:enter var(--enter-duration) var(--ease); }
.page-heading { display:flex;align-items:center;justify-content:space-between;gap:var(--s7);margin-bottom:var(--s9); }
.page-heading p { color:var(--muted);margin-top:var(--s3); }
.date { color:var(--muted);font-size:var(--text-sm);white-space:nowrap; }
/* .button / .theme-toggle — обычная, hover, focus, disabled */
.button { border:var(--line) solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);min-height:var(--control);display:inline-flex;align-items:center;justify-content:center;gap:var(--s4);padding:var(--s4) var(--s6);transition:background var(--duration),border-color var(--duration);font-size:var(--text-sm);font-weight:var(--weight-medium); }
.button:hover { background:var(--hover);border-color:var(--border-strong); }
.button.primary { background:var(--accent);color:var(--on-accent);border-color:var(--accent); }
.button.primary:hover { opacity:.88; }
.button:disabled { color:var(--disabled);background:var(--raised);border-color:var(--border);opacity:.7; }
.theme-toggle { width:var(--control);padding:var(--s0); }
.text-link { display:inline-flex;align-items:center;gap:var(--s4);color:var(--accent);font-size:var(--text-sm); }
.text-link:hover { text-decoration:underline;text-underline-offset:var(--s2); }
/* .agent-mark / .agent-brief — фирменный знак и сводка, только CSS-анимация */
.agent-brief { display:flex;align-items:center;justify-content:space-between;gap:var(--s9);border:var(--line) solid var(--border);border-radius:var(--radius-lg);padding:var(--s8) var(--s9);margin-bottom:var(--s7);background:var(--surface);position:relative;overflow:hidden; }
.agent-brief:before { content:"";position:absolute;inset:var(--s8) auto var(--s8) var(--s0);width:var(--rail);background:var(--accent); }
.brief-title { display:flex;gap:var(--s4);align-items:center;color:var(--accent);margin-bottom:var(--s4); }
.brief-copy { font-size:var(--text-lg);font-weight:var(--weight-medium);letter-spacing:var(--tracking); }
.brief-sub { margin-top:var(--s3);font-size:var(--text-sm);color:var(--muted); }
.brief-bottom { margin-top:var(--s7);gap:var(--s8); }
/* .pill-status / .status-dot — семантические метки, всегда текст + цвет */
.pill-status { display:inline-flex;align-items:center;gap:var(--s2);padding:var(--s1) var(--s3);border:var(--line) solid var(--transparent);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap; }
.pill-status .icon { width:var(--icon-sm);height:var(--icon-sm); }
.neutral { color:var(--muted);background:var(--raised); }
.success { color:var(--success);background:var(--success-bg); }
.warning { color:var(--warning);background:var(--warning-bg); }
.danger { color:var(--danger);background:var(--danger-bg); }
.client { color:var(--client);background:var(--client-bg); }
.agent { color:var(--accent);background:var(--accent-bg); }
.status-dot { width:var(--dot);height:var(--dot);display:inline-block;border-radius:var(--radius-round);background:var(--success);flex-shrink:0; }
.status-dot.warning-dot { background:var(--warning); }.status-dot.client-dot { background:var(--client); }.status-dot.accent-dot { background:var(--accent); }.status-dot.neutral-dot { background:var(--subtle); }
/* .metric-card — одинаковая геометрия четырёх ключевых показателей */
.metrics { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s6);margin-bottom:var(--s9); }
.metric-card { padding:var(--s7) var(--s8);border:var(--line) solid var(--border);border-radius:var(--radius-md);background:var(--surface); }
.metric-label { display:flex;align-items:center;justify-content:space-between;gap:var(--s4);color:var(--muted);font-size:var(--text-sm); }
.metric-value { font-family:var(--mono);font-size:var(--text-metric);letter-spacing:var(--tracking);line-height:var(--leading-tight);margin:var(--s5) var(--s0) var(--s3); }
.metric-value small { font-size:var(--text-lg);color:var(--muted); }
.metric-note { font-size:var(--text-xs);color:var(--muted); }
.metric-note .warn-text { color:var(--warning); }
/* .panel / .panel-header — контейнеры рабочих списков */
.dashboard-grid { display:grid;grid-template-columns:minmax(0,1.13fr) minmax(0,1fr);gap:var(--s7);margin-bottom:var(--s7); }
.panel { border:var(--line) solid var(--border);background:var(--surface);border-radius:var(--radius-lg);min-width:0;overflow:hidden; }
.panel-header { display:flex;align-items:center;justify-content:space-between;gap:var(--s6);padding:var(--s7) var(--s8);border-bottom:var(--line) solid var(--border); }
.panel-header .count { color:var(--muted);font-size:var(--text-xs);padding:var(--s1) var(--s3);border:var(--line) solid var(--border);border-radius:var(--radius-sm); }
.panel-footer { border-top:var(--line) solid var(--border);padding:var(--s5) var(--s8);color:var(--subtle);font-size:var(--text-xs); }
/* .activity-item — лента разобранных писем */
.activity-list { list-style:none;margin:var(--s0);padding:var(--s0) var(--s8); }
.activity-item { display:flex;gap:var(--s6);padding:var(--s7) var(--s0);border-bottom:var(--line) solid var(--border); }
.activity-item:last-child { border-bottom:0; }
.activity-icon { display:grid;place-items:center;width:var(--feed-icon);height:var(--feed-icon);border-radius:var(--radius-sm);flex-shrink:0; }
.activity-body { flex:1;min-width:0; }
.activity-body h3 { margin-bottom:var(--s2); }
.activity-body p { font-size:var(--text-sm);color:var(--muted); }
.activity-meta { display:flex;align-items:center;gap:var(--s4);margin-top:var(--s5);font-size:var(--text-xs);color:var(--subtle); }
.activity-item time { font-size:var(--text-xs);color:var(--subtle);padding-top:var(--s2); }
/* .data-table — выровненные таблицы продлений и аудита */
.table-wrap { overflow-x:auto; }
.data-table { border-collapse:collapse;width:100%;text-align:left;font-size:var(--text-sm); }
.data-table th { font-size:var(--text-xs);color:var(--subtle);font-weight:var(--weight-medium);background:var(--raised); }
.data-table th,.data-table td { padding:var(--s6) var(--s8);border-bottom:var(--line) solid var(--border);vertical-align:middle; }
.data-table tr:last-child td { border-bottom:0; }
.data-table td strong { display:block;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text); }
.data-table td small { display:block;font-size:var(--text-xs);color:var(--muted);margin-top:var(--s2); }
.data-table tbody tr:hover { background:var(--hover); }
.data-table .numeric { text-align:right;white-space:nowrap;font-family:var(--mono); }
.audit-table .audit-action { min-width:var(--panel-min); }
.audit-table code { font-size:var(--text-xs);color:var(--danger);font-family:var(--mono); }
.audit-table td:first-child { color:var(--subtle);white-space:nowrap; }
.rejected td:first-child { border-left:var(--rail) solid var(--danger); }
/* .tabs / .tab — источник задач и журнал; только смена готовых панелей */
.tabs { display:flex;gap:var(--s2);padding:var(--s2);border:var(--line) solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:max-content;max-width:100%;overflow-x:auto; }
.tab { display:inline-flex;align-items:center;justify-content:center;gap:var(--s4);border:var(--line) solid var(--transparent);border-radius:var(--radius-sm);padding:var(--s3) var(--s6);background:var(--transparent);color:var(--muted);font-size:var(--text-sm);white-space:nowrap; }
.tab:hover { color:var(--text);background:var(--hover); }
.tab[aria-selected="true"] { color:var(--text);background:var(--raised);border-color:var(--border); }
.tab .count { font-size:var(--text-xs);color:var(--subtle); }
.tab[aria-selected="true"] .count { color:var(--accent); }
[hidden] { display:none !important; }
.toolbar { display:flex;align-items:center;justify-content:space-between;gap:var(--s7);margin-bottom:var(--s8); }
/* .board-column / .card-task / .task-source — канбан без лишних контролов */
.board { display:grid;grid-template-columns:repeat(4,minmax(var(--column-min),1fr));gap:var(--s6);align-items:start;overflow-x:auto;padding-bottom:var(--s7); }
.board-column { border:var(--line) solid var(--border);border-radius:var(--radius-lg);background:var(--sidebar);padding:var(--s5);min-height:var(--panel-min); }
.column-header { display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:var(--s4) var(--s2) var(--s7); }
.column-header h2 { font-size:var(--text-sm); }
.column-header .count { font-size:var(--text-xs);color:var(--subtle); }
.card-task { border:var(--line) solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:var(--s6);margin-bottom:var(--s5);transition:border-color var(--duration),background var(--duration); }
.card-task:last-child { margin-bottom:var(--s0); }
.card-task:hover { border-color:var(--border-strong);background:var(--raised); }
.card-task h3 { font-size:var(--text-base);font-weight:var(--weight-medium);line-height:var(--leading);margin-top:var(--s6);margin-bottom:var(--s6); }
.task-id { font-size:var(--text-xs);color:var(--subtle); }
.task-company { display:flex;align-items:center;gap:var(--s3);font-size:var(--text-xs);color:var(--muted); }
.task-company .icon { width:var(--icon-sm);height:var(--icon-sm); }
.task-description { margin-top:var(--s5);color:var(--muted);font-size:var(--text-sm); }
.task-footer { margin-top:var(--s6);padding-top:var(--s5);border-top:var(--line) solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:var(--s3); }
.task-source { display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--text-xs);color:var(--muted); }
.task-source .icon { width:var(--icon-sm);height:var(--icon-sm); }
.task-source.from-agent { color:var(--accent); }.task-source.from-client { color:var(--client); }
.task-deadline { font-size:var(--text-xs);color:var(--subtle);white-space:nowrap; }
.task-deadline.urgent { color:var(--warning); }
.task-note { display:flex;gap:var(--s3);font-size:var(--text-xs);color:var(--client);margin-top:var(--s5); }
.task-note .icon { width:var(--icon-sm);height:var(--icon-sm); }
.empty-state { color:var(--subtle);font-size:var(--text-sm);padding:var(--s9) var(--s6);text-align:center; }
.board-note { display:flex;align-items:center;justify-content:space-between;gap:var(--s7);padding:var(--s7) var(--s0);color:var(--muted);font-size:var(--text-sm); }
.legend { display:flex;gap:var(--s7);flex-wrap:wrap; }
/* .spec-section / .swatch / .component-inventory — спецификация для разработки */
.spec-section { margin-top:var(--s9); }
.spec-section>h2 { margin-bottom:var(--s6);font-size:var(--text-lg); }
.spec-intro { max-width: 72ch; color:var(--muted);margin-top:var(--s6); }
.spec-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6); }
.spec-card { padding:var(--s8);border:var(--line) solid var(--border);border-radius:var(--radius-md);background:var(--surface); }
.spec-card h3 { margin-bottom:var(--s4); }
.spec-card p { font-size:var(--text-sm);color:var(--muted); }
.swatches { display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s6); }
.swatch { height:var(--swatch-height);border-radius:var(--radius-sm);border:var(--line) solid var(--border);margin-bottom:var(--s4); }
.swatch-bg { background:var(--bg); }.swatch-surface { background:var(--surface); }.swatch-accent { background:var(--accent); }.swatch-success { background:var(--success); }.swatch-warning { background:var(--warning); }.swatch-danger { background:var(--danger); }
.sample-line { display:flex;flex-wrap:wrap;align-items:center;gap:var(--s6);margin-top:var(--s7); }
.inventory-wrap { margin-top:var(--s9); }
.inventory-wrap summary { cursor:pointer;color:var(--muted);font-size:var(--text-sm);padding:var(--s6) var(--s0); }
.component-inventory td:first-child { font-family:var(--mono);color:var(--accent); }
.footer { display:flex;justify-content:space-between;gap:var(--s7);padding-top:var(--s8);margin-top:var(--s8);border-top:var(--line) solid var(--border);color:var(--subtle);font-size:var(--text-xs); }
.skip-link { position:absolute;top:var(--s6);left:var(--s6);transform:translateY(-200%);z-index:10;padding:var(--s6);background:var(--accent);color:var(--on-accent);border-radius:var(--radius-sm); }
.skip-link:focus { transform:translateY(0); }
@keyframes orbit { to { transform:rotate(360deg); } }
@keyframes enter { from { opacity:0;transform:translateY(var(--enter-shift)); } to { opacity:1;transform:translateY(0); } }
@media (min-width:1101px) and (max-width:1400px) { .board { grid-template-columns:repeat(4,minmax(0,1fr)); }.card-task { padding:var(--s5); }.task-footer { flex-wrap:wrap; } }
@media (max-width:1100px) { .app-shell { grid-template-columns:minmax(0,1fr); }.sidebar { position:static;height:auto;flex-direction:row;align-items:center;gap:var(--s7);padding:var(--s6) var(--s8);border-right:0;border-bottom:var(--line) solid var(--border); }.brand { padding:var(--s0); }.brand-sub,.workspace,.nav-label,.sidebar-bottom { display:none; }.sidebar nav { display:flex;gap:var(--s4); }.nav-item { margin:var(--s0);width:auto; }.nav-item:disabled { display:none; }.content { padding:var(--s9); }.topbar { padding:var(--s0) var(--s9); }.board { grid-template-columns:repeat(4,var(--column-mobile)); }.swatches { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px) { .content { padding:var(--s8) var(--s7); }.topbar { padding:var(--s0) var(--s7); }.domain,.breadcrumb .parent,.breadcrumb>.icon,.date { display:none; }.top-actions { gap:var(--s4); }.sidebar { padding:var(--s6) var(--s7);justify-content:space-between;gap:var(--s6); }.brand-tile { display:none; }.brand-name { font-size:var(--text-xl); }.nav-item { font-size:var(--text-sm);padding:var(--s4);gap:var(--s3); }.nav-item .count { display:none; }h1 { font-size:var(--text-xl); }.page-heading { align-items:flex-start; }.page-heading p { font-size:var(--text-sm); }.agent-brief { padding:var(--s7);gap:var(--s4); }.orbit { display:none; }.brief-copy { font-size:var(--text-md); }.brief-bottom { flex-wrap:wrap;gap:var(--s4); }.metrics { grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4); }.metric-card { padding:var(--s6); }.metric-label { font-size:var(--text-xs); }.metric-value { font-size:var(--text-xl); }.dashboard-grid { grid-template-columns:minmax(0,1fr); }.panel-header { padding:var(--s6); }.activity-list { padding:var(--s0) var(--s6); }.activity-item { gap:var(--s4); }.data-table th,.data-table td { padding:var(--s6); }.toolbar { align-items:flex-start;flex-direction:column;gap:var(--s6); }.tab { padding:var(--s3) var(--s4); }.board-note { flex-direction:column;align-items:flex-start; }.spec-grid { grid-template-columns:minmax(0,1fr); }.swatches { grid-template-columns:repeat(2,minmax(0,1fr)); }.footer { flex-direction:column;gap:var(--s4); } }
@media (prefers-reduced-motion:reduce) { *,*:before,*:after { animation:none!important;transition:none!important; } }

/* .cat-stage / .cat-agent — единый SVG-маскот в логотипе и сводке */
.brand-tile { background:var(--accent-bg);color:var(--accent);border:var(--line) solid var(--border); }
.cat-agent { display:block;color:var(--accent);line-height:var(--s0); }
.cat-logo { width:var(--cat-logo-width); }
.cat-logo .cat-svg { overflow:hidden; }
.cat-logo .cat-tail,.cat-logo .cat-body,.cat-logo .cat-chest,.cat-logo .cat-paw,.cat-logo .cat-paw-play,.cat-logo .cat-toes,.cat-logo .cat-toy,.cat-logo .cat-love { display:none; }
.cat-svg { display:block;width:100%;height:auto;overflow:visible;stroke-linecap:round;stroke-linejoin:round; }
.cat-shell,.cat-body,.cat-paw { fill:var(--raised);stroke:var(--accent);stroke-width:var(--cat-stroke); }
.cat-face { fill:var(--bg);stroke:var(--border-strong);stroke-width:var(--cat-detail-stroke); }
.cat-ear,.cat-chest { fill:var(--accent-bg);stroke:var(--accent);stroke-width:var(--cat-detail-stroke); }
.cat-ear-line,.cat-circuit,.cat-toes,.cat-mouth,.cat-whisker,.cat-brow { fill:none;stroke:var(--accent);stroke-width:var(--cat-detail-stroke); }
.cat-brow,.cat-whisker,.cat-circuit { opacity:.65; }
.cat-eye-socket { fill:var(--accent-bg); }.cat-pupil,.cat-nose { fill:var(--accent); }
.cat-eye-shine { stroke:var(--on-accent);stroke-width:var(--cat-detail-stroke); }
.cat-eye-happy { display:none;stroke:var(--accent);stroke-width:var(--cat-stroke); }
.cat-tail-outer { stroke:var(--accent);stroke-width:var(--cat-tail-outer-stroke); }.cat-tail-inner { stroke:var(--raised);stroke-width:var(--cat-tail-inner-stroke); }
.cat-tail { transform-origin:var(--cat-tail-origin);animation:cat-tail var(--cat-tail-duration) ease-in-out infinite; }
.cat-gaze { transform:translate(var(--cat-gaze-x),var(--cat-gaze-y));transition:transform var(--cat-gaze-duration) ease-out; }
.cat-head-aim { transform-origin:var(--cat-head-origin);transform:translateX(var(--cat-head-x)) rotate(var(--cat-head-angle));transition:transform var(--cat-gaze-duration) ease-out; }
.cat-eye-open { transform-origin:var(--cat-eye-origin); }
.cat-head { transform-origin:var(--cat-head-origin); }
.cat-paw-play { transform-origin:var(--cat-paw-origin); }
.cat-toy { fill:var(--accent);stroke:var(--accent);stroke-width:var(--cat-detail-stroke);transform-origin:var(--cat-toy-origin);opacity:.65; }
.cat-love { opacity:0;fill:var(--accent);stroke:var(--accent);stroke-width:var(--cat-detail-stroke); }
.cat-stage { width:var(--cat-width);flex-shrink:0;align-self:center; }
.cat-pet-button { display:block;width:100%;padding:var(--s0);border:0;border-radius:var(--radius-lg);background:var(--transparent);color:var(--accent);touch-action:manipulation; }
.cat-pet-button:hover { background:var(--accent-bg); }
.cat-caption { display:flex;align-items:center;justify-content:center;gap:var(--s3);font-size:var(--text-xs);color:var(--subtle);white-space:nowrap; }
.cat-pause { display:grid;place-items:center;width:var(--cat-pause-size);height:var(--cat-pause-size);padding:var(--s2);border:var(--line) solid var(--transparent);border-radius:var(--radius-sm);color:var(--muted);background:var(--transparent); }
.cat-pause:hover { color:var(--accent);background:var(--raised);border-color:var(--border); }
.cat-pause svg { width:var(--icon-sm);height:var(--icon-sm);fill:none;stroke:currentColor;stroke-width:var(--cat-detail-stroke); }
.cat-resume-icon { display:none; }.cat-pause[aria-pressed="true"] .cat-resume-icon { display:block; }.cat-pause[aria-pressed="true"] .cat-pause-icon { display:none; }
.brief-cat-side { display:flex;align-items:center;gap:var(--s7); }
/* .is-blinking / .is-petted / .is-playing — локальные реакции без вмешательства в задачи */
.is-blinking .cat-eye-open { animation:cat-blink var(--cat-blink-duration) linear; }
.is-petted .cat-eye-open { display:none; }.is-petted .cat-eye-happy { display:block; }
.is-petted .cat-head { animation:cat-pet var(--cat-pet-duration) ease-in-out; }
.is-petted .cat-love { animation:cat-love var(--cat-pet-duration) ease-in-out; }
.is-playing .cat-paw-play { animation:cat-play var(--cat-play-duration) ease-in-out; }
.is-playing .cat-toy { animation:cat-toy var(--cat-play-duration) ease-in-out; }
.is-playing .cat-head { animation:cat-watch var(--cat-play-duration) ease-in-out; }
:root[data-cat-hidden="true"] .cat-agent *, :root[data-cat-paused="true"] .cat-agent *, :root[data-cat-reduced="true"] .cat-agent * { animation:none!important;transition:none!important; }
:root[data-cat-paused="true"] .cat-gaze,:root[data-cat-reduced="true"] .cat-gaze,:root[data-cat-paused="true"] .cat-head-aim,:root[data-cat-reduced="true"] .cat-head-aim { transform:none; }
@keyframes cat-tail { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(var(--cat-tail-angle)); } }
@keyframes cat-blink { 0%,100% { transform:scaleY(1); } 45%,65% { transform:scaleY(.08); } }
@keyframes cat-pet { 0%,100% { transform:rotate(0deg); } 40%,65% { transform:rotate(var(--cat-pet-angle)); } }
@keyframes cat-love { 0%,100% { opacity:0;transform:translateY(0); } 35%,75% { opacity:1;transform:translateY(var(--cat-love-lift)); } }
@keyframes cat-play { 0%,28%,70%,100% { transform:translateY(0) rotate(0deg); } 38%,50% { transform:translateY(var(--cat-paw-lift)) rotate(var(--cat-play-angle)); } }
@keyframes cat-toy { 0%,30%,100% { transform:translate(0,0) rotate(0deg); } 44% { transform:translate(var(--cat-toy-roll),var(--cat-toy-hop)) rotate(80deg); } 65% { transform:translate(var(--cat-toy-roll),0) rotate(140deg); } 80% { transform:translate(0,var(--cat-love-lift)) rotate(200deg); } }
@keyframes cat-watch { 0%,100% { transform:rotate(0deg); } 35%,70% { transform:rotate(var(--cat-play-head-angle)); } }
@media (max-width:760px) { .cat-stage { width:var(--cat-mobile-width); }.cat-caption { font-size:var(--text-xs);flex-wrap:wrap;gap:var(--s0); }.cat-caption>[data-cat-caption] { width:100%;text-align:center; }.brand-tile { display:grid; }.brand { gap:var(--s4); }.brief-cat-side { flex-direction:column;gap:var(--s4); }.agent-brief { gap:var(--s6); }.agent-brief>div:first-child { min-width:0; } }

/* .security-summary / .security-notice — состояние защиты и достоверность данных */
.security-summary { display:flex;justify-content:space-between;align-items:center;gap:var(--s7);padding:var(--s7) var(--s8);margin-bottom:var(--s9);background:var(--surface);border:var(--line) solid var(--border);border-left:var(--rail) solid var(--warning);border-radius:var(--radius-md); }
.security-summary h2 { display:flex;align-items:center;gap:var(--s4); }
.security-summary p { font-size:var(--text-sm);color:var(--muted);margin-top:var(--s2); }
.security-notice { padding:var(--s6) var(--s7);margin-bottom:var(--s7);background:var(--raised);border:var(--line) solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--muted); }
.security-layout { display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:var(--s7);align-items:start; }
.security-stack { display:grid;gap:var(--s7); }
/* .advisory-card — бюллетень с доказательством применимости */
.advisory-card { padding:var(--s7) var(--s8);border-bottom:var(--line) solid var(--border); }
.advisory-card:last-child { border-bottom:0; }
.advisory-card h3 { margin:var(--s5) var(--s0) var(--s3);font-weight:var(--weight-bold); }
.advisory-card p { font-size:var(--text-sm);color:var(--muted); }
.advisory-card .evidence { margin-top:var(--s6);padding:var(--s6);background:var(--raised);border-radius:var(--radius-sm); }
.advisory-card .evidence strong { color:var(--text);font-weight:var(--weight-medium); }
.advisory-card details { margin-top:var(--s6);font-size:var(--text-sm);color:var(--muted); }
.advisory-card summary { color:var(--accent);cursor:pointer; }
.advisory-card details p { padding-top:var(--s4); }
.security-table td { min-width:var(--security-cell-min); }
.security-table th { white-space:nowrap; }
.security-table .mono { font-size:var(--text-xs); }
.security-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6);margin-top:var(--s7); }
.security-callout { padding:var(--s7) var(--s8);border-left:var(--rail) solid var(--accent); }
.security-callout p { font-size:var(--text-sm);color:var(--muted);margin-top:var(--s4); }
.sidebar-bulletins { display:block;padding:var(--s6);margin:var(--s5) var(--s2) var(--s0);border:var(--line) solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-xs); }
.sidebar-bulletins:hover { border-color:var(--border-strong);background:var(--hover); }
.sidebar-bulletins strong { display:block;color:var(--text);font-weight:var(--weight-medium); }
.sidebar-bulletins span { color:var(--muted); }
@media (max-width:1100px) { .sidebar-bulletins { display:none; }.sidebar nav { overflow-x:auto;min-width:0; }.nav-item { flex-shrink:0; }.sidebar .brand { flex-shrink:0; } }
@media (max-width:760px) { .security-layout,.security-grid { grid-template-columns:minmax(0,1fr); }.security-summary { align-items:flex-start;flex-direction:column; }.sidebar { flex-wrap:wrap; }.sidebar nav { width:100%; }.security-table td { min-width:var(--security-cell-mobile); } }

/* .chat-layout / .conversation-list — история диалогов, как в привычном ИИ-чате */
.chat-layout { display:grid;grid-template-columns:var(--chat-history-width) minmax(0,1fr);gap:var(--s7);align-items:start; }
.conversation-list { width:100%;display:flex;flex-direction:column;gap:var(--s2);padding:var(--s4);border:0;background:var(--transparent);overflow:visible; }
.conversation-list .tab { display:flex;align-items:flex-start;flex-direction:column;justify-content:flex-start;gap:var(--s3);text-align:left;white-space:normal;padding:var(--s6);width:100%; }
.conversation-list .tab strong { font-weight:var(--weight-medium);font-size:var(--text-sm); }
.conversation-list .tab small { font-size:var(--text-xs);color:var(--muted); }
.conversation-list .tab[aria-selected="true"] { border-color:var(--border);background:var(--raised); }
.chat-workspace { min-width:0; }
.chat-heading { display:flex;align-items:center;justify-content:space-between;gap:var(--s7);padding:var(--s7) var(--s8);border-bottom:var(--line) solid var(--border); }
.chat-heading .cat-stage { width:var(--chat-cat-width); }
.chat-heading h2 { font-size:var(--text-lg); }
.chat-heading p { font-size:var(--text-sm);color:var(--muted);margin-top:var(--s3); }
/* .chat-message / .message-evidence — разговор, ссылки на факты и границы действий */
.chat-thread { padding:var(--s9);max-width:var(--chat-content-max);margin:auto; }
.chat-message { margin-bottom:var(--s9);font-size:var(--text-base);line-height:var(--chat-line-height); }
.chat-message:last-child { margin-bottom:var(--s0); }
.chat-message.user-message { margin-left:auto;max-width:var(--chat-user-width);padding:var(--s6) var(--s7);border:var(--line) solid var(--border);border-radius:var(--radius-lg);background:var(--raised); }
.message-author { display:flex;align-items:center;gap:var(--s4);font-size:var(--text-sm);font-weight:var(--weight-bold);margin-bottom:var(--s6); }
.message-author .cat-agent { width:var(--avatar); }
.chat-message p+p { margin-top:var(--s6); }
.message-author time { margin-left:auto;color:var(--subtle);font-size:var(--text-xs);font-weight:var(--weight-normal); }
.message-evidence { display:flex;flex-wrap:wrap;gap:var(--s4);margin-top:var(--s6); }
.message-evidence a { display:inline-flex;align-items:center;gap:var(--s4);padding:var(--s3) var(--s4);font-size:var(--text-xs);border:var(--line) solid var(--border);border-radius:var(--radius-sm);color:var(--muted); }
.message-evidence a:hover { color:var(--accent);border-color:var(--accent); }
.chat-action-card { padding:var(--s7);border:var(--line) solid var(--border);border-radius:var(--radius-md);background:var(--bg);margin-top:var(--s7); }
.chat-action-card h3 { margin-bottom:var(--s5); }
.chat-action-card .data-table td { padding:var(--s4) var(--s0);font-size:var(--text-sm); }
.chat-action-card .data-table td:last-child { text-align:right; }
.chat-action-card .row { margin-top:var(--s6); }
.chat-action-card .button { white-space:normal; }
/* .chat-composer — доступное поле ввода; отправка отключена до подключения ИИ */
.chat-composer { border-top:var(--line) solid var(--border);padding:var(--s7) var(--s8); }
.composer-box { border:var(--line) solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg);padding:var(--s6); }
.composer-box:focus-within { border-color:var(--accent); }
.composer-box label { display:block;font-size:var(--text-xs);color:var(--muted);margin-bottom:var(--s4); }
.composer-box textarea { display:block;width:100%;min-height:var(--chat-input-height);resize:vertical;max-height:var(--chat-input-max);background:var(--transparent);border:0;color:var(--text);font:var(--text-base)/var(--leading) var(--font);padding:var(--s2); }
.composer-box textarea::placeholder { color:var(--subtle); }
.composer-controls { display:flex;align-items:center;justify-content:space-between;gap:var(--s6);margin-top:var(--s6); }
.composer-note { margin-top:var(--s4);font-size:var(--text-xs);color:var(--subtle); }
.chat-context { color:var(--muted);font-size:var(--text-xs); }
@media (max-width:1100px) { .chat-layout { grid-template-columns:var(--chat-history-narrow) minmax(0,1fr); } }
@media (max-width:760px) { .chat-layout { grid-template-columns:minmax(0,1fr); }.conversation-list { flex-direction:row;overflow-x:auto; }.conversation-list .tab { min-width:var(--chat-history-narrow); }.chat-thread { padding:var(--s7); }.chat-heading { padding:var(--s6); }.chat-composer { padding:var(--s6); }.chat-heading .cat-stage { width:var(--cat-mobile-width); }.user-message { max-width:100%; }.composer-controls { align-items:flex-start; } }

/* Дополнительные состояния кота: не более одной активной реакции одновременно */
.cat-eye-sleep,.cat-yawn,.cat-sleep-z { display:none; }
.cat-eye-sleep { stroke:var(--accent);stroke-width:var(--cat-stroke); }
.cat-yawn { fill:var(--accent-bg);stroke:var(--accent);stroke-width:var(--cat-detail-stroke); }
.cat-sleep-z { stroke:var(--accent);stroke-width:var(--cat-detail-stroke);opacity:.6; }
.cat-body,.cat-chest { transform-origin:var(--cat-body-origin); }
.cat-ear { transform-origin:var(--cat-ear-origin); }
.is-curious .cat-head { animation:cat-curious var(--cat-curious-duration) ease-in-out; }
.is-curious .cat-ear { animation:cat-ear-flick var(--cat-curious-duration) ease-in-out; }
.is-stretching .cat-head { animation:cat-stretch-head var(--cat-stretch-duration) ease-in-out; }
.is-stretching .cat-body,.is-stretching .cat-chest { animation:cat-stretch-body var(--cat-stretch-duration) ease-in-out; }
.is-stretching .cat-eye-open { transform:scaleY(.65); }
.is-grooming .cat-paw-play { animation:cat-groom-paw var(--cat-groom-duration) ease-in-out; }
.is-grooming .cat-head { animation:cat-groom-head var(--cat-groom-duration) ease-in-out; }
.is-grooming .cat-eye-open,.is-sleeping .cat-eye-open,.is-yawning .cat-eye-open { display:none; }
.is-grooming .cat-eye-happy { display:block; }
.is-sleeping .cat-eye-sleep,.is-yawning .cat-eye-sleep { display:block; }
.is-yawning .cat-mouth { display:none; }.is-yawning .cat-yawn { display:block; }
.is-yawning .cat-head { animation:cat-yawn-head var(--cat-yawn-duration) ease-in-out; }
.is-sleeping .cat-sleep-z { display:block;animation:cat-sleep-z var(--cat-breathe-duration) ease-in-out infinite; }
.is-sleeping .cat-head { transform:rotate(var(--cat-sleep-tilt)); }
.is-sleeping .cat-body { animation:cat-breathe var(--cat-breathe-duration) ease-in-out infinite; }
@keyframes cat-curious { 0%,100% { transform:rotate(0deg); } 25%,45% { transform:rotate(var(--cat-curious-left)); } 65%,80% { transform:rotate(var(--cat-curious-right)); } }
@keyframes cat-ear-flick { 0%,35%,55%,100% { transform:scaleX(1); } 40%,50% { transform:scaleX(.93); } }
@keyframes cat-stretch-head { 0%,100% { transform:translateY(0); } 35%,65% { transform:translateY(var(--cat-stretch-lift)); } }
@keyframes cat-stretch-body { 0%,100% { transform:scaleY(1); } 35%,65% { transform:scaleY(1.12); } }
@keyframes cat-groom-paw { 0%,100% { transform:translate(0,0); } 20%,40%,60%,80% { transform:translate(var(--cat-groom-slide),var(--cat-groom-lift)); } 30%,50%,70% { transform:translate(0,var(--cat-groom-lift)); } }
@keyframes cat-groom-head { 0%,100% { transform:rotate(0deg); } 20%,40%,60%,80% { transform:rotate(var(--cat-sleep-tilt)); } 30%,50%,70% { transform:rotate(0deg); } }
@keyframes cat-yawn-head { 0%,100% { transform:translateY(0); } 40%,65% { transform:translateY(var(--cat-stretch-lift)); } }
@keyframes cat-sleep-z { 0%,100% { opacity:.2;transform:translateY(0); } 50% { opacity:.8;transform:translateY(var(--cat-love-lift)); } }
@keyframes cat-breathe { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(1.035); } }

/* .detail-grid / .field / .split-pane — формы и подробные карточки */
.detail-grid { display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--s7);align-items:start; }
.split-pane { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s7);align-items:stretch; }
.flow-stack { display:grid;gap:var(--s7); }
.section-space { margin-top:var(--s7); }
.padded { padding:var(--s8); }
.field { display:block;margin-bottom:var(--s7); }
.field>span { display:block;font-size:var(--text-sm);color:var(--muted);margin-bottom:var(--s4); }
.input-text,.field textarea { display:block;width:100%;font:var(--text-base)/var(--leading) var(--font);color:var(--text);background:var(--bg);border:var(--line) solid var(--border);border-radius:var(--radius-sm);padding:var(--s6); }
.input-text:focus,.field textarea:focus { border-color:var(--accent); }
.field textarea { min-height:var(--editor-height);resize:vertical; }
.prompt-editor { font-family:var(--mono)!important;font-size:var(--text-sm)!important; }
.mail-text { font-size:var(--text-base);line-height:var(--chat-line-height);min-height:var(--editor-height);padding-top:var(--s7); }
.mail-text p+p { margin-top:var(--s7); }
.mail-meta { display:grid;grid-template-columns:var(--mail-label-width) minmax(0,1fr);gap:var(--s3) var(--s6);font-size:var(--text-sm);color:var(--muted); }
.mail-meta strong { color:var(--text);font-weight:var(--weight-medium);overflow-wrap:anywhere; }
.action-row { display:flex;flex-wrap:wrap;align-items:center;gap:var(--s4);margin-top:var(--s7); }
.detail-label { font-size:var(--text-xs);color:var(--muted); }
.detail-value { margin-top:var(--s3);font-weight:var(--weight-medium); }
.detail-facts { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s7); }
.rule-list { list-style:none;padding:var(--s0);margin:var(--s0); }
.rule-list li { display:flex;align-items:center;justify-content:space-between;gap:var(--s6);padding:var(--s6) var(--s8);border-bottom:var(--line) solid var(--border);font-size:var(--text-sm); }
.rule-list li:last-child { border-bottom:0; }
.rule-list small { display:block;color:var(--muted);font-size:var(--text-xs); }
.timeline-item { display:flex;gap:var(--s6);padding:var(--s7) var(--s8);border-bottom:var(--line) solid var(--border); }
.timeline-item:last-child { border-bottom:0; }
.timeline-item time { color:var(--subtle);font-size:var(--text-xs);white-space:nowrap; }
.timeline-item p { font-size:var(--text-sm);color:var(--muted);margin-top:var(--s3); }
/* .portal-nav / .portal-content — клиентский кабинет, мобильный приоритет */
.portal .app-shell { grid-template-columns:minmax(0,1fr); }
.portal .content { max-width:var(--portal-max);padding-bottom:var(--portal-bottom-space); }
.portal .topbar { max-width:var(--portal-max);margin:auto;border-bottom:0; }
.portal .topbar .avatar { color:var(--client);background:var(--client-bg); }
.portal-brand { display:flex;align-items:center;gap:var(--s5);font-weight:var(--weight-bold);font-size:var(--text-lg); }
.portal-brand .cat-agent { width:var(--brand-size); }
.portal-nav { display:flex;justify-content:center;gap:var(--s4);padding:var(--s4) var(--s7);border-top:var(--line) solid var(--border);border-bottom:var(--line) solid var(--border);background:var(--sidebar); }
.portal-nav a { display:flex;align-items:center;gap:var(--s4);padding:var(--s5) var(--s7);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--muted); }
.portal-nav a:hover { background:var(--hover);color:var(--text); }
.portal-nav a[aria-current="page"] { background:var(--accent-bg);color:var(--accent); }
.portal .page-heading h1 { font-size:var(--text-xl); }
.portal-intro { display:flex;align-items:center;justify-content:space-between;gap:var(--s7); }
.portal-kpis { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6); }
.portal-section { margin-top:var(--s7); }
.portal-section-title { display:flex;align-items:center;justify-content:space-between;gap:var(--s6);margin-bottom:var(--s6); }
.document-card { display:flex;align-items:center;justify-content:space-between;gap:var(--s7);padding:var(--s7) var(--s8);border-bottom:var(--line) solid var(--border); }
.document-card:last-child { border-bottom:0; }
.document-card h3 { font-weight:var(--weight-medium); }
.document-card p { font-size:var(--text-sm);color:var(--muted);margin-top:var(--s3); }
.document-right { display:flex;align-items:flex-end;flex-direction:column;gap:var(--s5); }
.document-right strong { font-family:var(--mono);white-space:nowrap; }
.document-actions { display:flex;gap:var(--s4); }
.plan-price { font-size:var(--text-2xl);font-family:var(--mono);margin:var(--s7) var(--s0); }
.plan-price small { font:var(--text-sm)/var(--leading) var(--font);color:var(--muted); }
.plan-card { padding:var(--s8);border:var(--line) solid var(--border);border-radius:var(--radius-lg);background:var(--surface); }
.plan-card.current { border-color:var(--accent); }
.plan-card p { font-size:var(--text-sm);color:var(--muted); }
.plan-list { list-style:none;margin:var(--s7) var(--s0);padding:var(--s0); }
.plan-list li { padding:var(--s4) var(--s0);font-size:var(--text-sm); }
.plan-list li::before { content:'✓';color:var(--accent);margin-right:var(--s4); }
.diff-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6);margin-top:var(--s7); }
.diff-pane { border:var(--line) solid var(--border);border-radius:var(--radius-sm);padding:var(--s6);background:var(--surface); }
.diff-pane.after { border-color:var(--accent); }
.diff-pane small { display:block;font-size:var(--text-xs);color:var(--muted);margin-bottom:var(--s4); }
.limit-meter { width:100%;height:var(--s4);display:block;accent-color:var(--accent);margin-top:var(--s6); }
.limit-meter::-webkit-meter-bar { background:var(--raised);border:0; }
.limit-meter::-webkit-meter-optimum-value { background:var(--accent); }
.prototype-note { margin-top:var(--s6);font-size:var(--text-xs);color:var(--subtle); }
@media (max-width:1100px) { .detail-grid { grid-template-columns:minmax(0,1fr); } }
@media (max-width:760px) { .split-pane,.diff-grid { grid-template-columns:minmax(0,1fr); }.portal-nav { position:fixed;bottom:var(--s0);left:var(--s0);right:var(--s0);z-index:20;padding:var(--s3) var(--s4) calc(var(--s3) + var(--safe-bottom));justify-content:space-around; }.portal-nav a { flex-direction:column;gap:var(--s2);padding:var(--s4);font-size:var(--text-xs); }.portal-kpis { grid-template-columns:minmax(0,1fr); }.portal-kpis .metric-card { display:flex;align-items:center;justify-content:space-between;gap:var(--s6); }.portal-kpis .metric-value { margin:var(--s0); }.document-card { align-items:flex-start;padding:var(--s6);gap:var(--s4); }.document-actions { flex-wrap:wrap;justify-content:flex-end; }.document-right { flex-shrink:0; }.document-actions .button { padding:var(--s4); }.portal .topbar { padding:var(--s0) var(--s7); }.portal .top-actions { gap:var(--s3); }.portal .domain { display:none; }.portal .page-heading { margin-bottom:var(--s7); }.mail-meta { grid-template-columns:minmax(0,1fr); }.mail-meta>span { margin-top:var(--s3); }.portal-intro { align-items:flex-start; } }

/* .kodi-preferences — настройки полезных реплик и активности */
.kodi-preferences { position:relative; }
.kodi-preferences>summary { list-style:none;cursor:pointer; }
.kodi-preferences>summary::-webkit-details-marker { display:none; }
.kodi-settings { position:absolute;top:var(--kodi-menu-top);right:var(--s0);width:var(--kodi-menu-width);max-width:calc(100vw - var(--s9));z-index:var(--bubble-z);padding:var(--s7);border:var(--line) solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface); }
.kodi-settings label { display:block;margin-bottom:var(--s6);font-size:var(--text-sm);color:var(--muted); }
.kodi-settings select { width:100%;background:var(--bg);border:var(--line) solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:var(--s4);font:var(--text-sm)/var(--leading) var(--font);margin-top:var(--s4); }
.kodi-settings .action-row { flex-direction:column;align-items:stretch; }
.kodi-settings p { margin-top:var(--s6);font-size:var(--text-xs);color:var(--subtle); }
/* .kodi-bubble — текстовое облако поверх интерфейса, ограничено окном */
.kodi-bubble { position:fixed;left:var(--s0);top:var(--s0);transform:translate(var(--bubble-x),var(--bubble-y));width:var(--bubble-width);max-width:calc(100vw - var(--s9));z-index:var(--bubble-z);border:var(--line) solid var(--accent);border-radius:var(--radius-lg);background:var(--surface);padding:var(--s6); }
.kodi-bubble[data-style="comic"]:after { content:"";position:absolute;bottom:calc(var(--bubble-tip) * -1);left:50%;width:var(--bubble-tip);height:var(--bubble-tip);background:var(--surface);border-right:var(--line) solid var(--accent);border-bottom:var(--line) solid var(--accent);transform:rotate(45deg); }
.kodi-bubble[data-position="below"]:after { top:calc(var(--bubble-tip) / -2);bottom:auto;transform:rotate(225deg); }
.bubble-heading { display:flex;align-items:center;justify-content:space-between;gap:var(--s4);color:var(--accent);font-size:var(--text-xs);font-weight:var(--weight-bold); }
.bubble-close { border:0;background:var(--transparent);color:var(--muted);font-size:var(--text-lg);line-height:var(--leading-tight);padding:var(--s2) var(--s4);border-radius:var(--radius-sm); }
.bubble-close:hover { background:var(--hover);color:var(--text); }
.kodi-bubble p { font-size:var(--text-sm);line-height:var(--leading);margin:var(--s4) var(--s0) var(--s6); }
.bubble-marquee { display:none;overflow:hidden;white-space:nowrap;font:var(--text-xs)/var(--leading) var(--mono);color:var(--accent);border-bottom:var(--line) solid var(--border);padding-bottom:var(--s4);margin-bottom:var(--s4); }
.bubble-marquee span { display:inline-block;animation:kodi-ticker var(--kodi-line-duration) linear infinite; }
.kodi-bubble[data-style="digital"] { border-radius:var(--radius-sm);background:var(--bg); }
.kodi-bubble[data-style="digital"] .bubble-marquee { display:block; }
.kodi-bubble[data-style="digital"] p { font-family:var(--mono); }
.kodi-bubble:hover .bubble-marquee span { animation-play-state:paused; }
/* .kodi-roamer — единственный временный кот вне блока; клики проходят сквозь */
.cat-roaming-source { visibility:hidden; }
.kodi-roamer { position:fixed;left:var(--s0);top:var(--s0);width:var(--roam-width);z-index:var(--roam-z);pointer-events:none;transform:translate(var(--roam-x),var(--roam-y)); }
.kodi-roamer .cat-svg { transform:scaleX(var(--cat-run-direction)); }
.kodi-roamer .cat-agent { animation:cat-run-hop var(--cat-run-duration) ease-in-out infinite; }
.kodi-return { position:fixed;right:var(--s7);bottom:calc(var(--s7) + var(--safe-bottom));z-index:var(--bubble-z);background:var(--surface); }
.portal .kodi-return { bottom:calc(var(--portal-bottom-space) + var(--safe-bottom)); }
@keyframes cat-run-hop { 0%,100% { transform:translateY(0); } 50% { transform:translateY(var(--cat-run-hop)); } }
:root[data-cat-paused="true"] .bubble-marquee span,:root[data-cat-hidden="true"] .bubble-marquee span { animation-play-state:paused; }
@keyframes kodi-ticker { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce) { .bubble-marquee span { animation:none; }.kodi-roamer { display:none; } }

/* Границы навигации на узких экранах и небольших мониторах */
.breadcrumb { min-width:0; }.breadcrumb>span:last-child { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.top-actions { flex-shrink:0; }
@media (min-width:1101px) { .sidebar { overflow-y:auto; } }
