/* Экосистема расчётов: общий хедер с возвратом, меню калькуляторов, таблица подбора.
   Опирается на токены и компоненты site/styles.css — отдельной палитры не вводит. */

/* ——— Общий хедер ——— */
.header-side{display:flex;align-items:center;min-width:150px}
.header-side.right{justify-content:flex-end}
.header-back{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:#50545b;font-size:11px;font-weight:700;text-decoration:none;transition:.15s ease;white-space:nowrap}
.header-back:hover{background:#eef1f4;color:#111}
.header-back span{font-size:13px;line-height:1}
body.theme-dark .header-back{background:#242a35;border-color:#3b4452;color:#c2c9d4}
body.theme-dark .header-back:hover{background:#303744;color:#f4f6f8}
@media(max-width:640px){.header-side{min-width:44px}.header-back-text{display:none}.header-back{padding:0 9px}}

/* ——— Хаб ——— */
.hub-hero{padding:56px 0 30px}
.hub-hero h1{font-size:clamp(34px,4.4vw,58px);line-height:1.02;letter-spacing:-.05em;font-weight:760;margin:14px 0 16px}
.hub-hero h1 em{font-style:normal;color:#8b9199}
body.theme-dark .hub-hero h1 em{color:#79818e}
.hub-hero p{max-width:640px;margin:0;font-size:16px;line-height:1.55;color:#656b73}
body.theme-dark .hub-hero p{color:#a5adb9}
.hub-hero-points{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.hub-hero-points span{padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:11px;font-weight:650;color:#575d65}
body.theme-dark .hub-hero-points span{background:#242a35;color:#aeb6c2}

.hub-section{padding:26px 0 34px}
.hub-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:26px 0 16px}
.hub-section-head h2{margin:0;font-size:15px;font-weight:750;letter-spacing:-.01em}
.hub-section-head small{font-size:11px;color:#8a9098}

.hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}
.hub-card{position:relative;display:flex;flex-direction:column;gap:11px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:inherit;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.hub-card.ready:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(25,31,40,.10);border-color:#cfd5dc}
body.theme-dark .hub-card.ready:hover{box-shadow:0 16px 40px rgba(0,0,0,.34);border-color:#4a5364}
.hub-card.soon{background:var(--surface-2);cursor:default}
.hub-card.soon .hub-card-title,.hub-card.soon .hub-card-text{color:#8d939b}
body.theme-dark .hub-card.soon .hub-card-title,body.theme-dark .hub-card.soon .hub-card-text{color:#7e8695}
.hub-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.hub-card-num{font-size:10px;font-weight:800;letter-spacing:.14em;color:#9ca1a8}
.hub-badge{font-size:9px;font-weight:800;letter-spacing:.06em;border-radius:999px;padding:5px 8px}
.hub-badge.ready{background:#e8f6e9;color:#3d9141}
.hub-badge.new{background:#e9f0fb;color:#3a6bb5}
.hub-badge.soon{background:#eef0f2;color:#868d96}
body.theme-dark .hub-badge.ready{background:#20372a;color:#7fc98a}
body.theme-dark .hub-badge.new{background:#22304a;color:#8fb4ec}
body.theme-dark .hub-badge.soon{background:#2b313c;color:#8e96a3}
.hub-card-title{font-size:18px;font-weight:750;letter-spacing:-.025em;line-height:1.2}
.hub-card-text{font-size:12.5px;line-height:1.5;color:#69707a;flex:1}
body.theme-dark .hub-card-text{color:#9aa3b0}
.hub-tags{display:flex;flex-wrap:wrap;gap:6px}
.hub-tags span{padding:5px 8px;border:1px solid var(--line);border-radius:7px;font-size:10px;font-weight:650;color:#6d747c;background:var(--surface-2)}
body.theme-dark .hub-tags span{color:#a3abb8;background:#2a303b;border-color:#3b4452}
.hub-card-go{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:750;color:#20242a}
body.theme-dark .hub-card-go{color:#e8ebf0}
.hub-card.soon .hub-card-go{color:#9aa0a8}

.hub-note{margin-top:8px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);font-size:12px;line-height:1.55;color:#646b74}
body.theme-dark .hub-note{color:#9aa3b0}
.hub-note a{color:inherit}

/* ——— Калькулятор подбора: таблица «диаметр × шаг» ——— */
.matrix-panel{padding:22px;background:#fbfcfd;border-right:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
body.theme-dark .matrix-panel{background:#1e232d}
.matrix-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.matrix-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.matrix{border-collapse:separate;border-spacing:0;width:100%;font-variant-numeric:tabular-nums}
.matrix th,.matrix td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:0;text-align:center;white-space:nowrap}
.matrix tr:last-child th,.matrix tr:last-child td{border-bottom:0}
.matrix th:last-child,.matrix td:last-child{border-right:0}
.matrix thead th{position:sticky;top:0;z-index:3;background:var(--surface-2);padding:9px 8px;font-size:10px;font-weight:800;letter-spacing:.04em;color:#767d86}
.matrix thead th.corner{left:0;z-index:4;text-align:left;padding-left:12px}
.matrix tbody th{position:sticky;left:0;z-index:2;background:var(--surface-2);padding:0 12px;font-size:12px;font-weight:750;color:#3c4249;text-align:left;min-width:74px}
body.theme-dark .matrix thead th,body.theme-dark .matrix tbody th{background:#262c37;color:#b9c1cd}
.matrix tbody th small{display:block;font-size:9px;font-weight:600;color:#949aa3;margin-top:-2px}
.matrix-cell{display:block;width:100%;min-width:62px;height:46px;border:0;background:transparent;font:inherit;font-size:12.5px;font-weight:650;color:#9aa1aa;cursor:pointer;transition:background .12s ease,color .12s ease}
.matrix-cell:hover{background:#eef1f4}
body.theme-dark .matrix-cell:hover{background:#333a47}
.matrix-cell.ok{background:#f0f9f1;color:#2f7a36}
body.theme-dark .matrix-cell.ok{background:#1f3527;color:#83cc8d}
.matrix-cell.ok:hover{background:#e3f4e5}
body.theme-dark .matrix-cell.ok:hover{background:#274430}
.matrix-cell.low{color:#a8aeb6}
body.theme-dark .matrix-cell.low{color:#767e8b}
.matrix-cell.invalid{color:#c8503f;background:repeating-linear-gradient(135deg,transparent,transparent 5px,rgba(244,67,54,.10) 5px,rgba(244,67,54,.10) 10px)}
body.theme-dark .matrix-cell.invalid{color:#e58877}
.matrix-cell.best{box-shadow:inset 0 0 0 2px #3d9141;color:#26662c;font-weight:800}
body.theme-dark .matrix-cell.best{box-shadow:inset 0 0 0 2px #5fae68;color:#9adaa3}
.matrix-cell.selected{background:var(--accent);color:var(--surface);font-weight:800;box-shadow:inset 0 0 0 2px var(--accent)}
body.theme-dark .matrix-cell.selected{background:#454e5e;color:#f1f3f7;box-shadow:inset 0 0 0 2px #454e5e}
.matrix-cell.selected:hover{background:var(--accent)}
.matrix-empty{padding:40px 22px;color:#9aa0a7;font-size:12px;text-align:center}

.matrix-legend{display:flex;flex-wrap:wrap;gap:14px;padding:12px 2px 0;font-size:11px;color:#767d86}
.matrix-legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.matrix-legend i.ok{background:#dff0e1}
.matrix-legend i.best{background:#fff;box-shadow:inset 0 0 0 2px #3d9141}
.matrix-legend i.selected{background:var(--accent)}
.matrix-legend i.invalid{background:repeating-linear-gradient(135deg,#fff,#fff 3px,rgba(244,67,54,.35) 3px,rgba(244,67,54,.35) 6px)}
.matrix-legend i.low{background:#eceff2}
.matrix-note{margin-top:10px;font-size:11px;line-height:1.5;color:#7d848c}
body.theme-dark .matrix-note,body.theme-dark .matrix-legend{color:#9aa3b0}

/* ——— Результат подбора ——— */
.pick-title{font-size:26px;font-weight:800;letter-spacing:-.035em;margin-top:1px}
.pick-title small{font-size:13px;font-weight:700;color:#727980;letter-spacing:0}
.alt-head{display:flex;align-items:baseline;justify-content:space-between;margin:18px 0 8px}
.alt-head span{font-size:11px;font-weight:750;letter-spacing:.1em;color:#8a9098}
.alt-head small{font-size:10px;color:#9aa0a8}
.pick-actions{display:grid;gap:8px;margin-top:15px}
.pick-actions .details-btn{margin-top:0;display:flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;line-height:1}
.pick-actions a.details-btn:hover{border-color:#c3cad2}
.pick-actions .primary{background:var(--accent);color:var(--surface);border-color:var(--accent)}
body.theme-dark .pick-actions .primary{background:#454e5e;color:#f1f3f7;border-color:#454e5e}
.copy-line{margin-top:9px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#4a5159;word-break:break-word}
body.theme-dark .copy-line{color:#c2c9d4}

/* Раскладка на погонный метр (Aₛ1/Aₛ2): общий вывод — result-message (крупнее,
   рядом со статусом), детали по каждой грани — мельче, ниже, всегда обе видны. */
.result-detail-list{grid-column:1/-1;display:grid;gap:5px;margin-top:2px}
.result-detail-item{display:grid;grid-template-columns:16px 1fr;gap:7px;align-items:start;font-size:11px;line-height:1.4}
.result-detail-item .rd-icon{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;font-size:9px;font-weight:800;margin-top:1px}
.result-detail-item strong{display:block;font-size:11px;font-weight:750;color:#20242a}
.result-detail-item small{display:block;color:#6f767e;margin-top:1px}
.result-detail-item.rd-ok .rd-icon{background:#e7f6e8;color:#39853c}
.result-detail-item.rd-warning .rd-icon{background:#fff1c7;color:#876800}
.result-detail-item.rd-fail .rd-icon{background:#fde4e1;color:#b5362f}
body.theme-dark .result-detail-item strong{color:#eef2f7}
body.theme-dark .result-detail-item small{color:#9aa3b0}
body.theme-dark .result-detail-item.rd-ok .rd-icon,
body.theme-dark .result-detail-item.rd-warning .rd-icon,
body.theme-dark .result-detail-item.rd-fail .rd-icon{background:#2a303c;color:#f1f3f7}

.range-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.range-row .field-group{margin-bottom:0}
.field-note{margin-top:6px;font-size:11px;line-height:1.45;color:#858c94}

@media(max-width:1180px){
  .workspace.spacing-workspace{grid-template-columns:1fr}
  .matrix-panel,.spacing-workspace .inputs-panel{border-right:0;border-bottom:1px solid var(--line)}
}

/* Легенда таблицы в тёмной теме — образцы должны совпадать с заливкой ячеек. */
body.theme-dark .matrix-legend i.ok{background:#1f3527}
body.theme-dark .matrix-legend i.low{background:#2e3541}
body.theme-dark .matrix-legend i.best{background:#222733;box-shadow:inset 0 0 0 2px #5fae68}
body.theme-dark .matrix-legend i.selected{background:#454e5e}
body.theme-dark .matrix-legend i.invalid{background:repeating-linear-gradient(135deg,#222733,#222733 3px,rgba(229,136,119,.5) 3px,rgba(229,136,119,.5) 6px)}

/* ——— Справочник конструктивных требований ——— */
.ref-hero{padding:46px 0 22px}
.ref-hero h1{font-size:clamp(30px,3.6vw,46px);line-height:1.04;letter-spacing:-.045em;font-weight:760;margin:12px 0 14px}
.ref-hero p{max-width:760px;margin:0;font-size:15px;line-height:1.58;color:#656b73}
body.theme-dark .ref-hero p{color:#a5adb9}
.ref-section{padding:0 0 22px}
.ref-panel{padding:20px 22px 22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}
.ref-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
@media(max-width:980px){.ref-grid{grid-template-columns:1fr}}
.ref-count{font-size:11px;font-weight:700;color:#8a9098}

.ref-controls{display:flex;flex-wrap:wrap;gap:8px}
.ref-field{display:flex;align-items:center;gap:7px;padding:4px 9px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);font-size:11px;font-weight:650;color:#6b7179;white-space:nowrap}
.ref-field select,.ref-field input{height:28px;min-width:62px;padding:0 6px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font-size:12px;font-weight:650}
body.theme-dark .ref-field{background:#262c37;border-color:#3b4452;color:#aeb6c2}
body.theme-dark .ref-field select,body.theme-dark .ref-field input{background:#2d3440;border-color:#444d5c}

.ref-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;margin-top:4px}
.ref-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}
.ref-table th,.ref-table td{padding:9px 11px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:left;vertical-align:top}
.ref-table tr:last-child th,.ref-table tr:last-child td{border-bottom:0}
.ref-table th:last-child,.ref-table td:last-child{border-right:0}
.ref-table thead th{position:sticky;top:0;z-index:2;background:var(--surface-2);font-size:10px;font-weight:800;letter-spacing:.04em;color:#767d86;white-space:nowrap}
.ref-table tbody th{background:var(--surface-2);font-size:12px;font-weight:750;white-space:nowrap}
.ref-table tbody th a{color:inherit;text-decoration:none;border-bottom:1px dashed #b3bac2}
.ref-table tbody th a:hover{border-bottom-style:solid}
body.theme-dark .ref-table thead th,body.theme-dark .ref-table tbody th{background:#262c37;color:#b9c1cd}
.ref-table tr.ref-group th{background:var(--accent);color:var(--surface);font-size:10px;font-weight:800;letter-spacing:.08em;position:static}
body.theme-dark .ref-table tr.ref-group th{background:#e8ebf0;color:#171b24}
.ref-table tr.ref-row-advisory{background:#fffaf0}
body.theme-dark .ref-table tr.ref-row-advisory{background:#2d2a20}
.ref-num{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.ref-dim{color:#6f767e;line-height:1.45}
body.theme-dark .ref-dim{color:#98a1ae}
.ref-muted{color:#a8aeb6}
.ref-rule .ref-value{display:block;font-weight:700}
.ref-rule small{display:block;margin-top:2px;font-size:10px;color:#8a9098}
.ref-advisory{margin-top:6px;padding-top:6px;border-top:1px dashed var(--line);font-size:10.5px;color:#8a7433}
body.theme-dark .ref-advisory{color:#c9ad62}
.ref-tag{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:6px;background:#fff1c7;color:#866800;font-size:9px;font-weight:800;white-space:nowrap}
body.theme-dark .ref-tag{background:#3a3520;color:#d8bd6c}

.ref-classes{display:grid;gap:9px}
.ref-class{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.ref-class.empty{opacity:.55}
.ref-class-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.ref-class-head strong{font-size:13px;font-weight:750}
.ref-class-head span{font-size:11px;font-weight:800;color:#8a9098}
.ref-class p{margin:5px 0 0;font-size:11.5px;line-height:1.5;color:#6f767e}
body.theme-dark .ref-class{background:#262c37;border-color:#3b4452}
body.theme-dark .ref-class p{color:#98a1ae}

.ref-pending{display:grid;gap:9px}
.ref-pending-item{padding:12px 14px;border:1px dashed var(--line);border-radius:12px}
.ref-pending-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ref-pending-head a{font-size:12.5px;font-weight:750;color:inherit;text-decoration:none;border-bottom:1px dashed #b3bac2}
.ref-pending-head span{font-size:11px;font-weight:700;color:#8a9098;white-space:nowrap}
.ref-pending-item p{margin:5px 0 0;font-size:11.5px;line-height:1.5;color:#6f767e}
body.theme-dark .ref-pending-item p{color:#98a1ae}
.ref-pending-note{padding:12px 14px;border-radius:12px;background:#fffaf0;border:1px solid #f2d77e;font-size:11.5px;line-height:1.55;color:#6b5a20}
body.theme-dark .ref-pending-note{background:#2d2a20;border-color:#5a4f2a;color:#d8c98c}
.ref-other{display:block;margin-bottom:3px}
.ref-other b{display:inline-block;min-width:38px;font-weight:750;color:#8a9098}

/* ——— Тёмная тема: содержимое всплывающих подсказок ———
   В styles.css тёмными сделаны только фон и рамка поповеров; текст внутри
   остался в светлых цветах (#69717a на тёмном фоне не читается), а формула
   и подстановка — на светлой плашке. Здесь это доведено до конца. */
body.theme-dark .info-note,
body.theme-dark .check-popover-note{color:#a8b1bd}
body.theme-dark .info-popover strong,
body.theme-dark .check-popover-title{color:#f1f4f8}
body.theme-dark .info-popover a,
body.theme-dark .check-popover a,
body.theme-dark .info-clause{color:#8fb4ec}
body.theme-dark .info-formula,
body.theme-dark .check-popover-formula{background:#1d222b;border-color:#3b4452;color:#dfe5ee}
body.theme-dark .check-popover-substitution{background:#1d222b;border-color:#3b4452;color:#dfe5ee}
body.theme-dark .info-symbols b,
body.theme-dark .check-popover-symbols b{color:#eef2f7}
body.theme-dark .info-symbols>div,
body.theme-dark .check-popover-symbols>div{color:#a8b1bd}

/* ——— Альтернативы выпадающим списком ——— */
.alt-select{width:100%;height:42px;padding:0 10px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--text);font:inherit;font-size:12.5px;font-weight:650;cursor:pointer}
.alt-select:disabled{color:#9aa0a8;cursor:default}
body.theme-dark .alt-select{background:#262c37;border-color:#3b4452;color:var(--text)}
body.theme-dark .alt-select option{background:#262c37;color:#eef2f7}
.alt-note{margin-top:7px;font-size:11px;line-height:1.45;color:#858c94}
body.theme-dark .alt-note{color:#98a1ae}

/* ——— 05. Что определяет раскладку ——— */
.guidance-bottom{border-top:1px solid var(--line)}
body.theme-dark .guidance-bottom{background:#1e232d}
.checks-bottom-head #guidanceHint{font-size:11px;color:#8a9098}
.governing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media(max-width:860px){.governing-grid{grid-template-columns:1fr}}
.gov-card{padding:14px 15px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
body.theme-dark .gov-card{background:#262c37;border-color:#3b4452}
.gov-title{font-size:10px;font-weight:800;letter-spacing:.08em;color:#8a9098;text-transform:uppercase}
.gov-value{margin-top:6px;font-size:19px;font-weight:800;letter-spacing:-.025em}
.gov-rule{margin-top:6px;font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#4a5159}
body.theme-dark .gov-rule{color:#c2c9d4}
.gov-card a{display:inline-block;margin-top:5px;font-size:11px;font-weight:700;color:#4a5159;text-decoration:none;border-bottom:1px dashed #b3bac2}
.gov-card a:hover{text-decoration:none;border-bottom-style:solid}
body.theme-dark .gov-card a{color:#c2c9d4;border-bottom-color:#4a5364}
.gov-source{display:inline-block;margin-top:5px;font-size:11px;font-weight:700;color:#7d848c}
body.theme-dark .gov-source{color:#98a1ae}
.gov-rest{margin-top:7px;padding-top:7px;border-top:1px dashed var(--line);font-size:10.5px;color:#868d95}
body.theme-dark .gov-rest{color:#98a1ae}

.reco-list{display:grid;gap:7px;margin-top:12px}
.reco-item{padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:var(--surface);font-size:12px;line-height:1.5;color:#4e555d}
body.theme-dark .reco-item{background:#262c37;border-color:#3b4452;color:#b9c1cd}
.reco-item.warn{border-color:#f2d77e;background:#fffaf0;color:#6b5a20}
body.theme-dark .reco-item.warn{background:#2d2a20;border-color:#5a4f2a;color:#d8c98c}
.reco-item.judgement{border-style:dashed}
.reco-item.pending{margin-top:10px;font-size:11px}

.rules-details{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);overflow:hidden}
body.theme-dark .rules-details{background:#242a34;border-color:#3b4452}
.rules-details summary{padding:11px 14px;cursor:pointer;font-size:12px;font-weight:750;list-style:none;display:flex;align-items:baseline;gap:9px}
.rules-details summary::-webkit-details-marker{display:none}
.rules-details summary::before{content:'▸';font-size:11px;color:#8a9098}
.rules-details[open] summary::before{content:'▾'}
.rules-count{font-size:11px;font-weight:600;color:#8a9098}
.rules-table-wrap{overflow:auto;margin:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
body.theme-dark .rules-table-wrap{background:#1e232d;border-color:#3b4452}
.rules-table{width:100%;border-collapse:separate;border-spacing:0;font-size:11px}
.rules-table th,.rules-table td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.rules-table tr:last-child td{border-bottom:0}
.rules-table thead th{position:sticky;top:0;background:var(--surface-2);font-size:9px;font-weight:800;letter-spacing:.05em;color:#767d86;text-transform:uppercase;white-space:nowrap}
body.theme-dark .rules-table thead th{background:#262c37;color:#b9c1cd}
.rules-table a{color:#4a5159;text-decoration:none;font-weight:700;white-space:nowrap;border-bottom:1px dashed #b3bac2}
.rules-table a:hover{border-bottom-style:solid}
body.theme-dark .rules-table a{color:#c2c9d4;border-bottom-color:#4a5364}
.rules-table .rule-idle{opacity:.5}
.rules-table .rule-active .rule-flag{color:#3d9141;font-weight:750}
body.theme-dark .rules-table .rule-active .rule-flag{color:#7fc98a}
.rule-doc{white-space:nowrap;font-weight:650}
.rule-value{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:nowrap}
.rule-note{color:#7d848c;line-height:1.4}
body.theme-dark .rule-note{color:#98a1ae}
.rules-details .reco-item.pending{margin:10px 14px 14px}

/* ——— Схема поперечного сечения (раскладка на сечение) ——— */
.section-scheme{margin-bottom:14px;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;line-height:0}
body.theme-dark .section-scheme{border-color:#3b4452;background:#222733}
.section-scheme svg{display:block;width:100%;height:auto}
.section-scheme-empty{padding:26px 14px;font-size:11px;color:#9aa0a7;text-align:center;line-height:1.4}
.matrix-narrow{width:auto;min-width:min(100%,340px)}
.matrix-narrow .matrix-cell{min-width:104px}

/* ——— Закладные детали (embedded.html) ——— */
.embedded-scheme{min-height:120px}
.embedded-forces{padding:0 2px 6px;overflow-x:auto}
.embedded-forces-table{width:100%;font-size:12px}
.embedded-forces-table td,.embedded-forces-table th{text-align:right}
.embedded-forces-table td:first-child,.embedded-forces-table th:first-child{text-align:left}
.embedded-checks{display:grid;gap:14px}
.embedded-check-group{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}
.embedded-check-group-title{padding:9px 14px;font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#7a8089;background:var(--surface-2);border-bottom:1px solid var(--line)}
.embedded-check{border-bottom:1px solid var(--line)}
.embedded-check:last-child{border-bottom:0}
.embedded-check>summary{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;list-style:none}
.embedded-check>summary::-webkit-details-marker{display:none}
.embedded-check>summary:hover{background:#fafbfc}
.embedded-check[open]>summary{background:#f6f7f9}
.embedded-check-body{display:grid;gap:8px;padding:4px 14px 14px 44px;font-size:12px;line-height:1.5}
.embedded-util{font-size:12px;font-weight:750;font-variant-numeric:tabular-nums;color:#3d434b}
.embedded-util.over{color:#b4412c}
.check-icon.check-na{background:#eceef1;color:#8d939b}
body.theme-dark .embedded-check-group{border-color:#3b4452;background:#1d222b}
body.theme-dark .embedded-check-group-title{background:#222733;border-color:#3b4452;color:#9aa3b0}
body.theme-dark .embedded-check{border-color:#3b4452}
body.theme-dark .embedded-check>summary:hover,body.theme-dark .embedded-check[open]>summary{background:#252b36}
body.theme-dark .embedded-util{color:#dfe5ee}
body.theme-dark .embedded-util.over{color:#e58877}
body.theme-dark .check-icon.check-na{background:#2c333f;color:#8d96a4}
@media(max-width:800px){.embedded-check>summary{grid-template-columns:auto 1fr auto}.embedded-check>summary .check-status{display:none}.embedded-check-body{padding-left:14px}}.embedded-views{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:12px}
.embedded-view{margin:0}
.embedded-view figcaption{margin:0 0 6px 2px;font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#7a8089}
.embedded-view .section-scheme{margin-bottom:0}
.embedded-forces-head{display:flex;justify-content:space-between;gap:10px;margin:4px 2px 6px;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#7a8089}
.embedded-forces-head #modelNote{font-weight:600;letter-spacing:0;text-transform:none}
.embedded-not-checked{margin:0;padding:10px 14px 12px 32px;display:grid;gap:5px;font-size:12px;line-height:1.45;color:#5b6169}
body.theme-dark .embedded-view figcaption,body.theme-dark .embedded-forces-head{color:#9aa3b0}
body.theme-dark .embedded-not-checked{color:#a8b1bd}
/* ——— Закладные: экраны и боковое меню ——— */
.embedded-workspace{grid-template-columns:86px 300px minmax(400px,1fr) 320px}
.embedded-rail{display:flex;flex-direction:column;gap:6px;padding:14px 8px;border-right:1px solid var(--line);background:var(--surface-2)}
.rail-btn{display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 4px;border:1px solid transparent;border-radius:12px;background:transparent;color:#6b7179;font:inherit;font-size:10.5px;font-weight:700;line-height:1.25;text-align:center;cursor:pointer}
.rail-btn:hover{background:var(--surface);border-color:var(--line)}
.rail-btn.active{background:var(--surface);border-color:#cfd5dc;color:#1a1c1f;box-shadow:0 4px 14px rgba(25,31,40,.06)}
.rail-num{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e7eaee;color:#3d434b;font-size:13px;font-weight:800}
.rail-btn.active .rail-num{background:#20242a;color:#fff}
.embedded-views.two{grid-template-columns:1fr 1fr;align-items:start}
.embedded-db{margin-bottom:16px}
.embedded-db-img{display:grid;place-items:center;padding:8px;background:#fff}
.embedded-db-img img{display:block;width:100%;height:auto;max-height:240px;object-fit:contain}
.embedded-params-table{width:100%;font-size:12px;margin-bottom:6px}
.embedded-params-table td:first-child{width:44px;font-weight:750;white-space:nowrap}
.embedded-params-table td:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.embedded-warn{padding:9px 11px;border-radius:10px;background:#fff6dc;color:#6b5311}
.link-btn{padding:0;border:0;background:none;color:inherit;font:inherit;font-weight:700;text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}
.embedded-check-options{display:grid;gap:2px;margin-bottom:8px}
.embedded-check-option{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:6px 4px;border-radius:8px;font-size:12px;cursor:pointer}
.embedded-check-option:hover{background:var(--surface-2)}
.embedded-check-option small{color:#9aa0a8;font-size:10px}
body.theme-dark .embedded-rail{background:#1b2029;border-color:#3b4452}
body.theme-dark .rail-btn{color:#9aa3b0}
body.theme-dark .rail-btn:hover,body.theme-dark .rail-btn.active{background:#252b36;border-color:#3b4452;color:#eef2f7}
body.theme-dark .rail-num{background:#2c333f;color:#dfe5ee}
body.theme-dark .rail-btn.active .rail-num{background:#eef2f7;color:#171b24}
body.theme-dark .embedded-db-img{background:#fff}
body.theme-dark .embedded-warn{background:#3a3220;color:#f0d9a0}
@media(max-width:1250px){.embedded-workspace{grid-template-columns:86px 280px minmax(0,1fr)}.embedded-workspace .result-panel{grid-column:2 / -1;border-top:1px solid var(--line)}}
@media(max-width:900px){.embedded-workspace{grid-template-columns:1fr}.embedded-rail{flex-direction:row;border-right:0;border-bottom:1px solid var(--line)}.rail-btn{flex:1}.embedded-workspace .result-panel{grid-column:auto}.embedded-views.two{grid-template-columns:1fr}}
.embedded-workspace .pick-title{font-size:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ——— Закладные: экраны 1–3, v2 ——— */
.embedded-workspace.no-side{grid-template-columns:86px 300px minmax(0,1fr)}
.embedded-workspace.no-side #side{display:none}
.embedded-workspace .result-panel{min-width:0;overflow:hidden}
.embedded-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start}
.embedded-card-body{display:grid;gap:6px;min-width:0}
.embedded-card .pick-title{font-size:20px;line-height:1.2;white-space:normal;overflow-wrap:anywhere}
.embedded-card .result-message{overflow-wrap:anywhere}
.embedded-card .status-mini{justify-self:start}
.embedded-governing{display:grid;gap:3px;margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.embedded-governing span{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#7a8089}
.embedded-governing b{font-size:14px;line-height:1.3;overflow-wrap:anywhere}
.embedded-governing small{color:#7a8089}
.embedded-bars{display:grid;gap:10px;margin-bottom:12px}
.embedded-bar{display:grid;gap:4px;min-width:0}
.embedded-bar-top{display:flex;justify-content:space-between;gap:8px;font-size:12px}
.embedded-bar-top b{font-variant-numeric:tabular-nums;white-space:nowrap}
.embedded-bar-top b.over{color:#b4412c}
.embedded-bar small{font-size:11px;color:#7a8089;overflow-wrap:anywhere}
.embedded-bar-track{height:6px;border-radius:4px;background:#e7eaee;overflow:hidden}
.embedded-bar-track i{display:block;height:100%;background:#4f8a5b;border-radius:4px}
.embedded-bar-track i.near{background:#c99a2e}
.embedded-bar-track i.over{background:#c2533f}
.embedded-list{display:grid;gap:5px;margin-bottom:10px;padding:10px 12px;border-radius:12px;font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.embedded-list-title{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.embedded-list.fail{background:#fdeceb;color:#7d2a1e}
.embedded-list.warn{background:#fff6dc;color:#6b5311}
.embedded-list.reco{background:var(--surface-2);color:#3d434b}
/* Поиск по базе — в стиле полей формы (.field-group) */
.embedded-search-field{margin-bottom:8px}
.embedded-search-wrap{position:relative}
.embedded-search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);font-size:16px;line-height:1;color:#9aa0a8;pointer-events:none}
.embedded-search-field input[type=search]{padding-left:32px;-webkit-appearance:none;appearance:none}
.embedded-search-field input[type=search]::-webkit-search-cancel-button{cursor:pointer}
.embedded-search-count,.embedded-side-label{margin:2px 2px 6px;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#7a8089}
.embedded-search-empty{padding:10px 12px;border:1px dashed var(--line);border-radius:10px;font-size:12px;line-height:1.45;color:#69707a}
.embedded-search-list{display:grid;max-height:280px;overflow:auto;margin-bottom:4px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.embedded-search-item{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:10px;padding:8px 12px;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;font:inherit;font-size:12.5px;text-align:left;cursor:pointer}
.embedded-search-item:last-child{border-bottom:0}
.embedded-search-mark{font-weight:750;white-space:nowrap}
.embedded-search-meta{color:#7a8089;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.embedded-search-item:hover{background:var(--surface-2)}
.embedded-search-item.active{background:var(--surface-2);box-shadow:inset 3px 0 0 #20242a}
.embedded-family{padding:10px 0;border-bottom:1px solid var(--line)}
.embedded-family-title{font-size:12.5px;font-weight:750}
.embedded-family.active .embedded-family-title::after{content:' · выбрано';font-weight:500;color:#7a8089}
.embedded-family-text{margin:3px 0 7px;font-size:11.5px;line-height:1.45;color:#69707a}
.embedded-family-schemes{display:flex;flex-wrap:wrap;gap:4px}
.embedded-chip{padding:3px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:inherit;font:inherit;font-size:11px;font-weight:700;cursor:pointer}
.embedded-chip:hover,.embedded-chip.active{background:#20242a;border-color:#20242a;color:#fff}
/* Всплывающий вид схемы серии — те же панели «Вид сверху / Разрез», что на экранах */
.embedded-preview{position:fixed;z-index:60;display:grid;gap:8px;width:280px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 14px 40px rgba(25,31,40,.18);pointer-events:none}
.embedded-preview .embedded-view figcaption{margin-bottom:4px}
.embedded-preview-pane{display:grid;place-items:center;margin:0;padding:4px;overflow:hidden}
.embedded-preview-pane svg{display:block;width:100%;height:auto;max-height:170px}
.embedded-preview-pane img{display:block;width:100%;height:auto;max-height:150px;object-fit:contain}
.embedded-preview-pane:has(img){background:#fff}
.embedded-preview-title{font-size:12px;line-height:1.35;color:#3d434b}
.embedded-preview-note{font-size:11px;color:#7a8089}
body.theme-dark .embedded-preview{border-color:#3b4452;background:#1d222b;box-shadow:0 14px 40px rgba(0,0,0,.45)}
body.theme-dark .embedded-preview-title{color:#dfe5ee}
body.theme-dark .embedded-search-list{border-color:#3b4452;background:#1d222b}
body.theme-dark .embedded-search-item{border-color:#3b4452}
body.theme-dark .embedded-search-item:hover,body.theme-dark .embedded-search-item.active{background:#252b36}
body.theme-dark .embedded-search-item.active{box-shadow:inset 3px 0 0 #eef2f7}
body.theme-dark .embedded-search-empty{border-color:#3b4452;color:#a8b1bd}
body.theme-dark .embedded-search-count,body.theme-dark .embedded-side-label{color:#9aa3b0}
/* Связь «таблица параметров ↔ схема»: подсветка размера и строки */
.embedded-scheme-svg .emb-dim,.embedded-scheme-svg .emb-anchor,.embedded-scheme-svg .emb-part{cursor:help}
.embedded-scheme-svg .emb-dim.hl line{stroke:#2f6db5;stroke-width:1.6}
.embedded-scheme-svg .emb-dim.hl text,.embedded-scheme-svg .emb-dim:hover text{fill:#2f6db5;font-weight:700}
.embedded-scheme-svg .emb-anchor.hl circle,.embedded-scheme-svg .emb-anchor.hl rect,.embedded-scheme-svg .emb-anchor:hover circle,.embedded-scheme-svg .emb-anchor:hover rect,.embedded-scheme-svg rect[data-dim].hl,.embedded-scheme-svg .emb-part:hover{stroke:#2f6db5}
.embedded-params-table tr[data-dim]{cursor:default}
.embedded-params-table tr.hl td{background:#eaf1fa}
body.theme-dark .embedded-scheme-svg .emb-dim.hl line{stroke:#8fb4ec}
body.theme-dark .embedded-scheme-svg .emb-dim.hl text,body.theme-dark .embedded-scheme-svg .emb-dim:hover text{fill:#8fb4ec}
body.theme-dark .embedded-scheme-svg .emb-anchor.hl circle,body.theme-dark .embedded-scheme-svg .emb-anchor.hl rect,body.theme-dark .embedded-scheme-svg .emb-anchor:hover circle,body.theme-dark .embedded-scheme-svg .emb-anchor:hover rect,body.theme-dark .embedded-scheme-svg rect[data-dim].hl,body.theme-dark .embedded-scheme-svg .emb-part:hover{stroke:#8fb4ec}
body.theme-dark .embedded-params-table tr.hl td{background:#263447}
/* Правая колонка экрана 3: использование по всем проверкам, сгруппировано */
.embedded-bar-group{display:grid;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.embedded-bar-group-title{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#7a8089}
.embedded-bar.governing .embedded-bar-top span{font-weight:750}
.embedded-bar.governing .embedded-bar-top span::after{content:' · определяет';font-weight:500;color:#7a8089}
body.theme-dark .embedded-bar-group{border-color:#3b4452;background:#1d222b}
body.theme-dark .embedded-bar-group-title{color:#9aa3b0}
.embedded-mandatory{display:grid;gap:2px;margin-bottom:6px}
.embedded-mandatory-row{display:grid;grid-template-columns:auto 1fr;column-gap:8px;padding:5px 4px;font-size:12px}
.embedded-mandatory-row .lock{grid-row:span 2;color:#4f8a5b;font-weight:800}
.embedded-mandatory-row small{color:#9aa0a8;font-size:10.5px}
.embedded-extra{margin-bottom:8px;padding:8px 8px 4px;border:1px solid var(--line);border-radius:12px}
.embedded-extra.on{border-color:#9aa3ad;background:var(--surface)}
.embedded-extra .embedded-check-option{grid-template-columns:auto 1fr;padding:2px 0;font-weight:700}
.embedded-extra-body{margin-top:8px}
body.theme-dark .embedded-governing{border-color:#3b4452;background:#1d222b}
body.theme-dark .embedded-bar-track{background:#2c333f}
body.theme-dark .embedded-list.fail{background:#3a2420;color:#f0b9ad}
body.theme-dark .embedded-list.warn{background:#3a3220;color:#f0d9a0}
body.theme-dark .embedded-list.reco{background:#252b36;color:#dfe5ee}
body.theme-dark .embedded-search-item,body.theme-dark .embedded-chip{border-color:#3b4452;background:#1d222b}
body.theme-dark .embedded-chip:hover,body.theme-dark .embedded-chip.active{background:#eef2f7;color:#171b24}
body.theme-dark .embedded-family{border-color:#3b4452}
body.theme-dark .embedded-extra{border-color:#3b4452}
body.theme-dark .embedded-extra.on{background:#1d222b}
@media(max-width:1250px){.embedded-workspace.no-side{grid-template-columns:86px 280px minmax(0,1fr)}}
@media(max-width:900px){.embedded-workspace.no-side{grid-template-columns:1fr}}
.embedded-scheme svg{max-height:440px}
.embedded-workspace.no-side .embedded-views{grid-template-columns:1fr 1fr;align-items:start}
@media(max-width:1100px){.embedded-workspace.no-side .embedded-views{grid-template-columns:1fr}}
.embedded-mandatory-details summary{cursor:pointer;font-size:12px;font-weight:700;padding:4px 0}

.embedded-docx-btn{width:100%;justify-content:center;margin:4px 0 10px}
.embedded-warn-inline{color:#9a5b12;font-weight:600}

.embedded-busy{padding:18px 14px;border:1px dashed var(--line);border-radius:12px;font-size:12.5px;color:#69707a;text-align:center}

/* Аксонометрия (экран 3): поворот перетаскиванием */
.embedded-3d{cursor:grab;touch-action:none;user-select:none}
.embedded-3d.dragging{cursor:grabbing}
.embedded-3d svg{max-height:440px}

/* Масштаб схем экрана 3 */
.embedded-view figcaption{display:flex;align-items:center;justify-content:space-between;gap:8px}
.zoom-tools{display:inline-flex;gap:3px;text-transform:none;letter-spacing:0}
.zoom-tools button{width:24px;height:22px;padding:0;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:#3d434b;font:inherit;font-size:13px;font-weight:700;line-height:1;cursor:pointer}
.zoom-tools button:hover{border-color:#9aa3ad}
.zoomable{overflow:hidden}
.zoomable.zoomed:not(.embedded-3d){cursor:grab}
.zoomable.panning{cursor:grabbing!important}
body.theme-dark .zoom-tools button{border-color:#3b4452;background:#1d222b;color:#dfe5ee}.pick-list{display:grid;gap:6px;margin-bottom:8px}
.pick-item{display:grid;gap:3px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:12px;line-height:1.4}
.pick-item small{color:#6d747c;font-size:11px}
.pick-item.current{border-color:#2f7d4f;background:#eef7f1}
.pick-item.fail{background:var(--surface-2)}
.pick-item-top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-weight:650}
.pick-accept{flex:none;height:24px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);font-size:11px;font-weight:700;cursor:pointer;color:inherit}
.pick-accept:hover{border-color:#2f7d4f}
.pick-bad summary{cursor:pointer;font-size:12px;font-weight:700;padding:4px 0 6px}
body.theme-dark .pick-item.current{background:#1f3328;border-color:#4c9b6c}
body.theme-dark .pick-item small{color:#a9b1bc}
/* Анкеры, экран 1 справа: принципиальная схема и «Назначение и особенности»; экран 2: отверстие d_f */
.anchor-detail{margin:0 0 12px}
.anchor-detail .embedded-scheme svg{max-height:520px}
.anchor-about{display:grid;gap:7px;margin-bottom:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.anchor-about p{margin:0}
.anchor-about ul{margin:0;padding-left:16px;display:grid;gap:3px}
.anchor-about-kind{font-size:13px;font-weight:800}
.anchor-about-kind::first-letter{text-transform:uppercase}
.anchor-about-title{margin-top:2px;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#7a8089}
body.theme-dark .anchor-about-title{color:#9aa3b0}
.df-input{margin-top:6px}
/* Анкеры, экран 1: параметры ТП для расчёта — внизу на всю ширину */
.tp-params{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px 10px;margin-bottom:12px}
.tp-param{display:flex;justify-content:space-between;gap:10px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font-size:12px}
.tp-param span{color:#6d747c}
.tp-param b{text-align:right}
body.theme-dark .tp-param span{color:#a9b1bc}
#paramsSource{text-align:right;margin-left:12px}
/* Главная: иконки модулей — в стиле схем (бетон со штриховкой, сталь, размерные линии, нагрузки) */
.hub-card{--ic-bg:#fff;--ic-concrete:#eef0f2;--ic-hatch:#9aa0a8;--ic-steel:#c7ccd2;--ic-ink:#33373c;--ic-dim:#6d747c;--ic-alert:#c8503f}
body.theme-dark .hub-card{--ic-bg:#222733;--ic-concrete:#303744;--ic-hatch:#7c8798;--ic-steel:#596374;--ic-ink:#eef2f7;--ic-dim:#aeb7c5;--ic-alert:#e58877}
.hub-ic{display:block;width:100%;height:auto;max-height:110px;border:1px solid var(--line);border-radius:12px;background:var(--ic-bg)}
.hub-card.soon .hub-ic{opacity:.6}
.hub-ic .c{fill:var(--ic-concrete)}
.hub-ic .hl{stroke:var(--ic-hatch);stroke-width:.6}
.hub-ic .s{fill:var(--ic-steel);stroke:var(--ic-ink);stroke-width:.9}
.hub-ic .p{fill:var(--ic-steel);stroke:var(--ic-ink);stroke-width:1.3}
.hub-ic .k{fill:var(--ic-ink);fill-opacity:.7}
.hub-ic .st{fill:none;stroke:var(--ic-ink);stroke-width:2}
.hub-ic .bolt{fill:none;stroke:var(--ic-ink);stroke-width:4.5;stroke-linejoin:round}
.hub-ic .l{fill:none;stroke:var(--ic-ink);stroke-width:.8}
.hub-ic .l.thin{stroke-width:.8}
.hub-ic .d{fill:none;stroke:var(--ic-dim);stroke-width:.9}
.hub-ic .x{fill:none;stroke:var(--ic-dim);stroke-width:.6;stroke-dasharray:2 2}
.hub-ic .a{fill:none;stroke:var(--ic-alert);stroke-width:1.8}
.hub-ic .af{fill:var(--ic-alert)}
.hub-ic .cone{fill:var(--ic-alert);fill-opacity:.07;stroke:var(--ic-alert);stroke-width:1;stroke-dasharray:4 2.5}
.hub-ic text{fill:var(--ic-ink);font:italic 700 8.5px Inter,Arial,sans-serif}
.hub-ic{max-height:130px}
.hub-ic .rib{fill:none;stroke:var(--ic-ink);stroke-width:.5;stroke-opacity:.75}
.hub-ic .w{fill:var(--ic-ink)}
.hub-ic .dot{fill:var(--ic-ink);fill-opacity:.55}
.hub-ic .ax{fill:none;stroke:var(--ic-dim);stroke-width:.5;stroke-dasharray:9 2 1.5 2}
.hub-ic .bolt{stroke-width:3.6;stroke-linecap:butt}
.hub-ic text.at{fill:var(--ic-alert)}
.hub-ic text.sub{font-size:6px}
/* Главная: заголовок шапки слева, вводный текст сразу под шапкой */
.hub-hero.hub-hero-compact{padding:26px 0 18px}
.hub-hero.hub-hero-compact p{max-width:none}
.hub-ic .bolt-in{fill:none;stroke:var(--ic-steel);stroke-width:2;stroke-linecap:butt}

/* ——— Онлайн-версия: ожидание ответа сервера и ошибки связи (ONLINE_TZ, раздел 11). В локальной версии не появляются. ——— */
.api-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:1000;pointer-events:none;opacity:0;transition:opacity .15s;background:linear-gradient(90deg,transparent,#2563eb 40%,#2563eb 60%,transparent);background-size:40% 100%;background-repeat:no-repeat}
body.api-waiting .api-progress{opacity:1;animation:api-progress 1s linear infinite}
@keyframes api-progress{from{background-position:-40% 0}to{background-position:140% 0}}
body.api-waiting #resultCard,body.api-waiting #scheme,body.api-waiting #checks,body.api-waiting #center,body.api-waiting #side{opacity:.55;transition:opacity .15s}
body.api-stale #resultCard,body.api-stale #scheme,body.api-stale #checks,body.api-stale #center,body.api-stale #side{opacity:.45;filter:grayscale(.6)}
.api-banner{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:1001;max-width:min(560px,calc(100vw - 32px));padding:10px 14px;border-radius:10px;font-size:14px;line-height:1.4;box-shadow:0 6px 24px rgba(0,0,0,.18);background:#fff7ed;color:#7c2d12;border:1px solid #fdba74}
.api-banner-version{background:#eff6ff;color:#1e3a8a;border-color:#93c5fd}
.api-banner button{margin-left:10px;padding:4px 10px;border-radius:6px;border:1px solid currentColor;background:transparent;color:inherit;font:inherit;cursor:pointer}
body.theme-dark .api-banner{background:#3b2414;color:#fed7aa;border-color:#9a3412}
body.theme-dark .api-banner-version{background:#172554;color:#bfdbfe;border-color:#1e40af}
.api-field-error,.api-field-error select,.api-field-error input{outline:2px solid #dc2626;outline-offset:1px}
