/* ============================================================================
   Blueprint VSE-269 — стили макета. Токены взяты из боевого портала ВОСТИО
   (tokens.css) как ориентир: IBM Plex, стальной синий, малые радиусы, тихие
   тени. Шапка макета намеренно ИНОГО цвета (графит), чтобы стенд визуально
   не путали с боевым порталом.
   ============================================================================ */
@font-face { font-family:'IBM Plex Sans'; font-weight:400; font-display:swap; src:url(../fonts/ibm-plex-sans-cyrillic-400-normal.woff2) format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'IBM Plex Sans'; font-weight:400; font-display:swap; src:url(../fonts/ibm-plex-sans-latin-400-normal.woff2) format('woff2'); unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2116,U+2191,U+2193,U+2212; }
@font-face { font-family:'IBM Plex Sans'; font-weight:500; font-display:swap; src:url(../fonts/ibm-plex-sans-cyrillic-500-normal.woff2) format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'IBM Plex Sans'; font-weight:500; font-display:swap; src:url(../fonts/ibm-plex-sans-latin-500-normal.woff2) format('woff2'); unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2116; }
@font-face { font-family:'IBM Plex Sans'; font-weight:600; font-display:swap; src:url(../fonts/ibm-plex-sans-cyrillic-600-normal.woff2) format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'IBM Plex Sans'; font-weight:600; font-display:swap; src:url(../fonts/ibm-plex-sans-latin-600-normal.woff2) format('woff2'); unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2116; }
@font-face { font-family:'IBM Plex Sans'; font-weight:700; font-display:swap; src:url(../fonts/ibm-plex-sans-cyrillic-700-normal.woff2) format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'IBM Plex Sans'; font-weight:700; font-display:swap; src:url(../fonts/ibm-plex-sans-latin-700-normal.woff2) format('woff2'); unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2116; }
@font-face { font-family:'IBM Plex Mono'; font-weight:400; font-display:swap; src:url(../fonts/ibm-plex-mono-cyrillic-400-normal.woff2) format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'IBM Plex Mono'; font-weight:400; font-display:swap; src:url(../fonts/ibm-plex-mono-latin-400-normal.woff2) format('woff2'); unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2116,U+2212; }
@font-face { font-family:'IBM Plex Mono'; font-weight:600; font-display:swap; src:url(../fonts/ibm-plex-mono-cyrillic-600-normal.woff2) format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'IBM Plex Mono'; font-weight:600; font-display:swap; src:url(../fonts/ibm-plex-mono-latin-600-normal.woff2) format('woff2'); unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2116,U+2212; }

:root{
  --color-text:#0F172A; --color-text-muted:#475569;
  --color-primary:#1F4E79; --color-primary-dark:#163A5C; --color-primary-tint:#EAF1F8; --color-primary-light:#7FB2E5;
  --color-success:#15803D; --color-success-dark:#166534; --color-success-bg:#DCFCE7;
  --color-danger:#B91C1C; --color-danger-bg:#FEE2E2;
  --color-warning:#B45309; --color-warning-bg:#FEF3C7; --color-warning-text-onbg:#92400E;
  --color-alert:#E65100; --color-alert-bg:#FFF3E0; --color-alert-text-onbg:#7C2D12;
  --color-bg:#F6F8FB; --color-surface:#FFFFFF; --color-surface-sunken:#F8FAFC;
  --color-border-field:#6B7280; --color-border:#E2E8F0; --color-border-strong:#CBD5E1;
  --color-hairline:rgba(15,23,42,.10); --focus-ring:#1F4E79;
  /* Графит шапки МАКЕТА — отличается от боевого портала намеренно */
  --mock-header:#334155; --mock-header-2:#1E293B; --mock-accent:#F59E0B;
  --sidebar-w:248px;
  --space-1:2px;--space-2:4px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:24px;--space-7:32px;--space-8:48px;
  --fs-xs:12px;--fs-sm:14px;--fs-base:16px;--fs-lg:18px;--fs-xl:24px;--fs-xxl:34px;
  --font-ui:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Roboto,Arial,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  --radius-sm:4px;--radius-md:6px;--radius-lg:8px;
  --shadow-sm:0 1px 2px rgba(15,23,42,.05);
  --shadow-1:0 1px 2px rgba(15,23,42,.04),0 2px 6px rgba(15,23,42,.06);
  --shadow-2:0 4px 10px -2px rgba(15,23,42,.08),0 12px 24px -6px rgba(15,23,42,.10);
  --ease-out:cubic-bezier(0.23,1,0.32,1); --dur:180ms; --target-min:44px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{overflow-wrap:break-word;}
body{font-family:var(--font-ui);font-size:var(--fs-base);line-height:1.5;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;}
h1,h2,h3{margin:0 0 var(--space-4);line-height:1.25;letter-spacing:-0.011em;}
h1{font-size:var(--fs-xl);font-weight:600;}
h2{font-size:var(--fs-lg);font-weight:600;}
h3{font-size:var(--fs-base);font-weight:600;}
a{color:var(--color-primary);text-decoration:none;}
a:hover{text-decoration:underline;}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;}
.muted{color:var(--color-text-muted);}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;}}

/* ---- Верхняя лента-дисклеймер (водяной знак макета) ---- */
.mock-ribbon{background:repeating-linear-gradient(45deg,#7C2D12,#7C2D12 12px,#8a3414 12px,#8a3414 24px);
  color:#fff;font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;text-align:center;
  padding:5px var(--space-4);font-weight:600;}
/* тихий диагональный водяной знак поверх всей рабочей области */
.watermark{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden;}
.watermark span{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%) rotate(-24deg);
  font-size:8vw;font-weight:700;color:rgba(51,65,85,.05);white-space:nowrap;letter-spacing:.1em;}

/* ---- Шапка макета ---- */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--space-5);
  background:var(--mock-header);color:#fff;padding:var(--space-3) var(--space-5);flex-wrap:wrap;}
.topbar .brand{font-weight:600;display:flex;align-items:center;gap:var(--space-3);}
.topbar .brand .dot{width:10px;height:10px;border-radius:2px;background:var(--mock-accent);}
.topbar .concept-badge{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);
  border-radius:var(--radius-sm);padding:2px 8px;font-size:var(--fs-sm);}
.topbar .spacer{flex:1;}
.topbar form{display:flex;align-items:center;gap:var(--space-2);margin:0;}
.topbar label{font-size:var(--fs-xs);color:#cbd5e1;text-transform:uppercase;letter-spacing:.05em;}
.topbar select{font-family:var(--font-ui);font-size:var(--fs-sm);padding:6px 8px;border-radius:var(--radius-sm);
  border:1px solid var(--color-border-field);background:#fff;color:var(--color-text);min-height:44px;}
.topbar a.tb-link{color:#e2e8f0;font-size:var(--fs-sm);}

/* ---- Раскладка ---- */
.layout{position:relative;z-index:2;}
.layout.with-sidebar{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);align-items:start;}
.main{padding:var(--space-6);max-width:1180px;margin:0 auto;width:100%;min-width:0;}
.page-head{margin-bottom:var(--space-6);}
.page-head .sub{color:var(--color-text-muted);font-size:var(--fs-sm);margin-top:var(--space-2);max-width:70ch;}
.page-head .cnt{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-muted);}

/* ---- Сайдбар (концепт A) ---- */
.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);min-height:calc(100vh - 90px);
  padding:var(--space-5) var(--space-3);position:sticky;top:56px;}
.sidebar .sec-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);
  padding:var(--space-4) var(--space-3) var(--space-2);}
.sidebar a{display:flex;align-items:center;gap:var(--space-3);padding:11px var(--space-3);border-radius:var(--radius-sm);
  color:#334155;font-size:var(--fs-sm);min-height:44px;min-width:0;overflow-wrap:anywhere;}
.sidebar a:hover{background:#F1F5F9;text-decoration:none;}
.sidebar a.active{background:var(--color-sidebar-active,#EAF1F8);color:var(--color-primary-dark);font-weight:600;}
.sidebar a.mine{border-left:3px solid var(--color-primary);}
.sidebar .other{opacity:.7;}

/* ---- Единый Blueprint (A+B): вход в «Сквозной процесс» ---- */
.sidebar a.process-link{border:1px solid var(--color-primary);color:var(--color-primary-dark);
  background:var(--color-primary-tint);font-weight:600;}
.sidebar a.process-link:hover{background:#dfeaf6;}
.sidebar a.process-link.active{background:var(--color-primary);color:#fff;}
.process-cta{display:flex;align-items:center;gap:var(--space-5);margin-bottom:var(--space-6);
  padding:var(--space-5) var(--space-6);border:1px solid var(--color-primary);border-left:4px solid var(--color-primary);
  border-radius:var(--radius-lg);background:var(--color-primary-tint);color:var(--color-text);
  box-shadow:var(--shadow-sm);transition:box-shadow var(--dur) var(--ease-out);}
.process-cta:hover{text-decoration:none;box-shadow:var(--shadow-2);}
.process-cta .pc-ic{font-size:26px;flex:0 0 auto;}
.process-cta .pc-body{display:flex;flex-direction:column;gap:2px;}
.process-cta .pc-body b{color:var(--color-primary-dark);font-size:var(--fs-lg);}
.process-cta .pc-body span{font-size:var(--fs-sm);color:var(--color-text-muted);}
.process-cta .pc-go{margin-left:auto;font-size:24px;color:var(--color-primary);flex:0 0 auto;}

/* ---- Карта процесса (страница-режим «Сквозной процесс») ---- */
.pm-chain{display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--space-3);list-style:none;margin:var(--space-5) 0 0;padding:0;}
.pm-chain li{display:flex;align-items:center;gap:var(--space-3);}
.pm-stage{display:flex;flex-direction:column;gap:4px;min-width:180px;padding:var(--space-4) var(--space-5);
  border:1px solid var(--color-border-strong);border-top:3px solid var(--color-primary);border-radius:var(--radius-md);
  background:#fff;color:var(--color-text);transition:box-shadow var(--dur) var(--ease-out),transform var(--dur) var(--ease-out);}
.pm-stage:hover{text-decoration:none;box-shadow:var(--shadow-2);transform:translateY(-2px);border-top-color:var(--color-primary-dark);}
.pm-stage .pm-n{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);}
.pm-stage .pm-name{font-weight:600;font-size:var(--fs-base);}
.pm-stage .pm-fig{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--color-primary-dark);}
.pm-stage .pm-open{font-size:var(--fs-xs);color:var(--color-primary);}
.pm-arrow{color:var(--color-border-strong);font-size:20px;flex:0 0 auto;}

/* ---- Конвейер (концепт B) ---- */
.conveyor{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-4) var(--space-5);
  position:sticky;top:56px;z-index:10;overflow-x:auto;}
.conveyor ol{display:flex;align-items:stretch;gap:0;list-style:none;margin:0;padding:0;min-width:max-content;}
.conveyor li{display:flex;align-items:center;}
.conveyor .stage{display:flex;flex-direction:column;gap:2px;padding:8px 14px;border:1px solid var(--color-border-strong);
  border-radius:var(--radius-md);background:#fff;min-width:120px;color:var(--color-text);}
.conveyor .stage:hover{text-decoration:none;border-color:var(--color-primary);}
.conveyor .stage.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);}
.conveyor .stage .st-n{font-size:var(--fs-xs);opacity:.75;}
.conveyor .stage .st-name{font-weight:600;font-size:var(--fs-sm);}
.conveyor .stage .st-state{font-size:var(--fs-xs);}
.conveyor .arrow{color:var(--color-border-strong);padding:0 4px;font-size:18px;flex:0 0 auto;}
.prevnext{display:flex;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-7);
  padding-top:var(--space-5);border-top:1px solid var(--color-border);}
.prevnext a{display:inline-flex;flex-direction:column;padding:10px 14px;border:1px solid var(--color-border-strong);
  border-radius:var(--radius-md);min-width:180px;min-height:var(--target-min);background:#fff;}
.prevnext a .lbl{font-size:var(--fs-xs);color:var(--color-text-muted);}
.prevnext a.next{text-align:right;margin-left:auto;}

/* ---- Диспетчерская (концепт C) ---- */
.hub-top{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-3) var(--space-5);
  position:sticky;top:56px;z-index:10;display:flex;gap:var(--space-4);align-items:center;font-size:var(--fs-sm);}
.hub-top a{color:var(--color-text-muted);}
.breadcrumb{font-size:var(--fs-sm);color:var(--color-text-muted);margin-bottom:var(--space-5);}
.hub-map{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--space-5);margin:var(--space-6) 0;}
.hub-tile{display:block;background:var(--color-surface);border:1px solid var(--color-border);border-top:3px solid var(--color-primary);
  border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-1);transition:box-shadow var(--dur) var(--ease-out),transform var(--dur) var(--ease-out);color:var(--color-text);}
.hub-tile:hover{text-decoration:none;box-shadow:var(--shadow-2);transform:translateY(-2px);}
.hub-tile .t-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);}
.hub-tile .t-value{font-family:var(--font-mono);font-size:26px;font-weight:600;margin:var(--space-2) 0;overflow-wrap:anywhere;}
.hub-tile .t-flow{font-size:var(--fs-xs);color:var(--color-text-muted);}
.hub-tile.alert{border-top-color:var(--color-danger);}
.hub-tile.warn{border-top-color:var(--color-warning);}

/* ---- Карточки/сетки KPI ---- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-5);margin-bottom:var(--space-6);}
.kpi{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);}
.kpi .k-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);}
.kpi .k-value{font-family:var(--font-mono);font-size:22px;font-weight:600;margin-top:6px;overflow-wrap:anywhere;}
.kpi.neg .k-value{color:var(--color-danger);}
.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);
  padding:var(--space-6);box-shadow:var(--shadow-sm);margin-bottom:var(--space-6);}
.card h2{margin-bottom:var(--space-4);}

/* ---- Таблицы ---- */
.tbl-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;}
table.data{width:100%;border-collapse:collapse;font-size:var(--fs-sm);}
table.data th{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);
  padding:10px var(--space-4);border-bottom:1px solid var(--color-border-strong);background:var(--color-surface-sunken);white-space:nowrap;}
table.data td{padding:10px var(--space-4);border-bottom:1px solid var(--color-border);vertical-align:top;}
table.data tr:last-child td{border-bottom:none;}
table.data td.num,table.data th.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;}
table.data tr.deficit td{background:var(--color-danger-bg);}
table.data tr.neg td{background:var(--color-danger-bg);}
table.data tfoot td{font-weight:600;background:var(--color-surface-sunken);border-top:2px solid var(--color-border-strong);}
.trace-btn{background:none;border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);
  padding:4px 8px;font-size:var(--fs-xs);cursor:pointer;color:var(--color-primary);min-height:32px;}
.trace-row td{background:var(--color-primary-tint);font-size:var(--fs-sm);color:var(--color-primary-dark);}

/* ---- Статус-бейджи (не только цвет: иконка+текст) ---- */
.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:var(--fs-xs);font-weight:600;border:1px solid transparent;}
.badge .ic{font-weight:700;}
.badge.ok{background:var(--color-success-bg);color:var(--color-success-dark);}
.badge.warn{background:var(--color-warning-bg);color:var(--color-warning-text-onbg);}
.badge.err{background:var(--color-danger-bg);color:var(--color-danger);}
.badge.alert{background:var(--color-alert-bg);color:var(--color-alert-text-onbg);}
.badge.info{background:var(--color-primary-tint);color:var(--color-primary-dark);}

/* Светофор расчёта — крупный */
.calc-banner{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-5);border-radius:var(--radius-lg);
  border:1px solid var(--color-border);margin-bottom:var(--space-6);background:#fff;}
.calc-banner .light{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;flex:0 0 auto;}
.calc-banner.current .light{background:var(--color-success);}
.calc-banner.stale .light{background:var(--color-warning);}
.calc-banner.error .light{background:var(--color-danger);}
.calc-banner .txt{flex:1;}
.calc-banner .txt strong{display:block;}
.calc-banner .txt .note{font-size:var(--fs-sm);color:var(--color-text-muted);}

/* ---- Кнопки ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--target-min);
  padding:9px var(--space-5);border-radius:var(--radius-md);font-family:var(--font-ui);font-size:var(--fs-sm);
  font-weight:600;cursor:pointer;border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;}
.btn:hover{background:var(--color-primary-dark);text-decoration:none;}
.btn.ghost{background:#fff;color:var(--color-primary);}
.btn.ghost:hover{background:var(--color-primary-tint);}
.btn[disabled]{opacity:.5;cursor:not-allowed;}
.btn-row{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center;}
.locked-hint{font-size:var(--fs-xs);color:var(--color-text-muted);}

/* ---- Сноска «Что здесь происходит» ---- */
.explain{background:var(--color-primary-tint);border:1px solid #cfe0f1;border-radius:var(--radius-lg);
  padding:var(--space-5);margin-bottom:var(--space-6);display:flex;gap:var(--space-4);}
.explain .ic{font-size:20px;flex:0 0 auto;}
.explain .body b{color:var(--color-primary-dark);}
.explain .body p{margin:0;font-size:var(--fs-sm);}

/* плашка «будущая автоматизация» */
.future{background:var(--color-alert-bg);border:1px solid #f3d9bf;color:var(--color-alert-text-onbg);
  border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);font-size:var(--fs-sm);margin-bottom:var(--space-5);}

/* ---- Форма обратной связи ---- */
.feedback{position:relative;z-index:3;margin:var(--space-8) auto 0;max-width:1180px;padding:0 var(--space-6) var(--space-8);}
.fb-panel{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);}
.fb-toggle{display:flex;align-items:center;gap:var(--space-3);width:100%;text-align:left;background:none;border:none;
  padding:var(--space-5);font-family:var(--font-ui);font-size:var(--fs-base);font-weight:600;cursor:pointer;min-height:var(--target-min);}
.fb-toggle .chev{margin-left:auto;transition:transform var(--dur) var(--ease-out);}
.fb-panel[open] .chev{transform:rotate(180deg);}
.fb-body{padding:0 var(--space-5) var(--space-5);}
.fb-body label{display:block;font-size:var(--fs-sm);font-weight:600;margin:var(--space-4) 0 var(--space-2);}
.fb-body input[type=text],.fb-body textarea{width:100%;font-family:var(--font-ui);font-size:var(--fs-base);
  padding:10px var(--space-4);border:1px solid var(--color-border-field);border-radius:var(--radius-md);background:#fff;}
.fb-body textarea{min-height:90px;resize:vertical;}
.fb-file{margin-top:var(--space-2);}
.previews{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4);}
.thumb{position:relative;width:84px;height:84px;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;}
.thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.thumb button{position:absolute;top:2px;right:2px;width:22px;height:22px;border-radius:50%;border:none;
  background:rgba(15,23,42,.75);color:#fff;cursor:pointer;font-size:14px;line-height:1;}
.fb-errors{background:var(--color-danger-bg);border:1px solid #f6bcbc;color:var(--color-danger);border-radius:var(--radius-md);
  padding:var(--space-4);margin:var(--space-4) 0;font-size:var(--fs-sm);}
.fb-errors ul{margin:6px 0 0;padding-left:20px;}
.fb-ok{background:var(--color-success-bg);border:1px solid #b7e4c7;color:var(--color-success-dark);border-radius:var(--radius-md);
  padding:var(--space-4);margin:var(--space-4) 0;font-size:var(--fs-sm);}
.cmt-list{margin-top:var(--space-6);border-top:1px solid var(--color-border);padding-top:var(--space-5);}
.cmt{padding:var(--space-4) 0;border-bottom:1px solid var(--color-border);}
.cmt .meta{font-size:var(--fs-xs);color:var(--color-text-muted);margin-bottom:4px;}
.cmt .meta b{color:var(--color-text);font-size:var(--fs-sm);}
.cmt .imgs{display:flex;gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;}
.cmt .imgs a img{width:72px;height:72px;object-fit:cover;border:1px solid var(--color-border);border-radius:var(--radius-sm);}
.cmt-empty{color:var(--color-text-muted);font-size:var(--fs-sm);}

/* ---- Дисклеймер-подвал ---- */
.mock-foot{position:relative;z-index:2;text-align:center;color:var(--color-text-muted);font-size:var(--fs-xs);
  padding:var(--space-6);border-top:1px solid var(--color-border);}

/* ---- Стартовая: выбор концепта ---- */
.chooser-wrap{position:relative;z-index:2;max-width:1080px;margin:0 auto;padding:var(--space-8) var(--space-6);}
.concept-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6);margin-top:var(--space-6);}
.concept-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);
  padding:var(--space-6);box-shadow:var(--shadow-1);display:flex;flex-direction:column;}
.concept-card .code{font-family:var(--font-mono);font-size:var(--fs-xxl);font-weight:600;color:var(--color-primary);}
.concept-card h2{margin:var(--space-2) 0;}
.concept-card .tag{color:var(--color-text-muted);font-size:var(--fs-sm);margin-bottom:var(--space-4);}
.concept-card .pc{font-size:var(--fs-sm);margin:4px 0;}
.concept-card .pc.plus{color:var(--color-success-dark);}
.concept-card .pc.minus{color:var(--color-warning-text-onbg);}
.concept-card .pc.risk{color:var(--color-danger);}
.concept-card .btn{margin-top:auto;}
.honest{background:var(--color-alert-bg);border:1px solid #f3d9bf;color:var(--color-alert-text-onbg);
  border-radius:var(--radius-md);padding:var(--space-5);margin-top:var(--space-6);font-size:var(--fs-sm);}

/* ---- Логин ---- */
.login-wrap{max-width:400px;margin:8vh auto;padding:var(--space-7);background:#fff;border:1px solid var(--color-border);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-2);}
.login-wrap label{display:block;font-weight:600;font-size:var(--fs-sm);margin:var(--space-4) 0 var(--space-2);}
.login-wrap input{width:100%;padding:10px var(--space-4);border:1px solid var(--color-border-field);border-radius:var(--radius-md);font-size:var(--fs-base);}
.login-wrap .btn{width:100%;margin-top:var(--space-5);}
.login-err{background:var(--color-danger-bg);color:var(--color-danger);border-radius:var(--radius-md);padding:var(--space-4);margin-top:var(--space-4);font-size:var(--fs-sm);}

/* ---- Адаптив ---- */
@media (max-width:860px){
  .layout.with-sidebar{grid-template-columns:minmax(0,1fr);}
  .sidebar{position:static;min-height:auto;border-right:none;border-bottom:1px solid var(--color-border);
    display:grid;grid-template-columns:repeat(2,1fr);gap:2px;}
  .sidebar .sec-title{grid-column:1/-1;}
  .main{padding:var(--space-5);}
  .topbar{gap:var(--space-3);}
  .topbar .spacer{flex-basis:100%;height:0;}
  .topbar{padding-left:var(--space-4);padding-right:var(--space-4);}
  .topbar form{flex-wrap:wrap;}
  .topbar select{max-width:42vw;}
  .topbar .brand{font-size:var(--fs-sm);flex-basis:100%;}
  .topbar .concept-badge{font-size:var(--fs-xs);}
  .sidebar a{min-width:0;overflow-wrap:anywhere;}
}
