/* =======================================================================
   Стенд: пульт разделов. Общий словарь `--wb-*` / `.wb-*` для всех разделов —
   раздел не держит свою копию. В каркас не попадает: разметка пульта помечена
   `стенд:начало / стенд:конец` и вырезается сборщиком.
   ======================================================================= */
:root {
  --wb-rail: #101a1d; --wb-rail-2: #17262a; --wb-line: #24373c;
  --wb-text: #e7eeef; --wb-dim: #93a7ab; --wb-faint: #64787d;
  --wb-on: #14a7a0; --wb-on-soft: rgba(20,167,160,.16); --wb-warn: #e0a83c;
  --wb-mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;
  --wb-ui: Inter, system-ui, sans-serif;
}
/* box-sizing глобально — требование контракта раздела: без него max-width + padding
   дают ширину больше заявленной и все размеры расходятся с картой. */
* { box-sizing: border-box; }

.wb-fab {
  position: fixed; left: 14px; bottom: 86px; z-index: 900;
  display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 13px;
  border-radius: 100px; border: 1px solid var(--wb-line);
  background: var(--wb-rail); color: var(--wb-text);
  font: 500 12.5px/1 var(--wb-ui); cursor: pointer; opacity: .8;
  box-shadow: 0 4px 14px rgba(12,20,22,.28);
}
.wb-fab:hover { opacity: 1; border-color: var(--wb-on); }
.wb-fab__k { font-family: var(--wb-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--wb-on); }

.wb-scrim { position: fixed; inset: 0; z-index: 950; background: rgba(8,14,16,.6); display: flex; align-items: center; justify-content: center; padding: 16px; }
.wb-modal {
  width: 100%; max-width: 700px; max-height: 88vh; overflow-y: auto;
  background: var(--wb-rail); color: var(--wb-text);
  border: 1px solid var(--wb-line); border-radius: 14px; padding: 18px;
  display: flex; flex-direction: column; gap: 18px;
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
}
.wb-modal__head { display: flex; align-items: center; gap: 12px; }
.wb-modal__t { flex: 1; font-size: 16px; font-weight: 600; }
.wb-modal__x { width: 34px; height: 34px; border: 1px solid var(--wb-line); border-radius: 50%; background: var(--wb-rail-2); color: var(--wb-text); font-size: 19px; cursor: pointer; }
.wb-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 18px; }
.wb-grp { display: flex; flex-direction: column; gap: 7px; }
.wb-grp__h { font-family: var(--wb-mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--wb-faint); padding-bottom: 5px; border-bottom: 1px solid var(--wb-line); }
.wb-btn {
  display: flex; align-items: center; width: 100%; min-height: 38px; padding: 8px 11px;
  background: var(--wb-rail-2); color: var(--wb-text);
  border: 1px solid var(--wb-line); border-radius: 8px;
  font: inherit; font-size: 13.5px; text-align: left; cursor: pointer;
}
.wb-btn:hover { border-color: var(--wb-on); }
.wb-chk { display: flex; align-items: center; gap: 9px; min-height: 32px; font-size: 13px; color: var(--wb-text); cursor: pointer; }
.wb-chk input { flex: none; width: 16px; height: 16px; accent-color: var(--wb-on); cursor: pointer; }
.wb-chk.is-on { color: var(--wb-warn); }
.wb-seg { display: flex; gap: 6px; }
.wb-seg button { flex: 1; min-height: 34px; border-radius: 7px; cursor: pointer; background: var(--wb-rail-2); border: 1px solid var(--wb-line); color: var(--wb-dim); font: 500 12.5px/1 var(--wb-ui); }
.wb-seg button.is-on { background: var(--wb-on-soft); border-color: var(--wb-on); color: var(--wb-text); }
.wb-note { font-family: var(--wb-mono); font-size: 11px; color: var(--wb-faint); line-height: 1.5; word-break: break-word; margin: 0; }

/* Кнопка пульта отбивает виджет Perplexity, если он на странице (раздел 01).
   Там, где виджета нет, она садится ниже. */
.wb-fab--low { bottom: 14px; }
