/* components.css (05.09) - стили ТОЛЬКО новых элементов, в прежнем визуальном языке style.css.
   Общий редизайн (redesign.css) откачен по слову Творца; этот файл его не заменяет и окна/вкладки не трогает. */

/* ── таб-бар окна не должен схлопываться под растущей вкладкой (поймано 05.09: Канон и Телефон
   выдавливали ряд вкладок в ноль высоты, и вернуться на другие было нельзя) ── */
.hud-win > .ws-hud-tabs { flex: 0 0 auto; }
#hud-pane-canon, #hud-pane-phone { flex: 1 1 auto; min-height: 0; overflow-y: auto; }

/* ── сцена: лица в кадре чипами ── */
.scene-chips .sc-lbl { display: block; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); font-weight: 600; margin-bottom: 6px; opacity: 1; }
.sc-row { display: flex; flex-wrap: wrap; gap: 6px; }
.sc-chip { display: inline-flex; align-items: center; gap: 7px; padding: 3px 11px 3px 3px; border-radius: 999px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); font-size: 14px; color: var(--ink); max-width: 100%; }
.sc-chip:hover { background: rgba(var(--accent-rgb), .14); border-color: rgba(var(--accent-rgb), .5); }
.sc-ava { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; object-position: top center; flex: 0 0 auto; background: rgba(255, 255, 255, .08); display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; color: var(--muted); }
.sc-nm { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.scene-absent { display: flex; flex-direction: column; gap: 3px; margin-top: 8px; font-size: 13.5px; color: var(--muted); }
.scene-absent .sc-names { color: var(--muted); }

/* ── ⌗ схема карты ── */

/* ── мысли: догрузка прошлого в окно ── */
.th-more { display: block; width: 100%; margin: 10px 0 2px; font: inherit; font-size: 12.5px; padding: 7px; border-radius: 10px; border: 1px dashed var(--border); background: transparent; color: var(--muted); cursor: pointer; }
.th-more:hover { color: var(--ink); background: rgba(255, 255, 255, .06); }
.th-more:disabled { opacity: .6; cursor: default; }
.th-sep { margin: 14px 0 6px; font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); font-weight: 600; border-bottom: 1px solid rgba(255, 255, 255, .08); padding-bottom: 4px; }
.th-hist-inline .th-hist-sep { font-size: 11px; color: var(--muted); margin: 8px 0 2px; font-family: ui-monospace, monospace; }
.thought-bubble.past { opacity: .8; font-size: 15px; margin: 8px 0; animation: none; }
.thought-bubble.past:hover { opacity: 1; }

/* ── вспомнили: этот ход · раньше ── */
.rc-sect { display: flex; flex-direction: column; gap: 8px; }
.rc-sub, .rc-who { font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.rc-who { margin-top: 4px; }
.rc-card.fresh { border-left-color: #caa46a; }
.rc-past { margin-top: 10px; }
.rc-past summary { cursor: pointer; font-size: 12.5px; color: var(--muted); list-style: none; padding: 6px 0; border-top: 1px solid rgba(255, 255, 255, .08); }
.rc-past summary::-webkit-details-marker { display: none; }
.rc-past summary::before { content: '▸ '; }
.rc-past[open] summary::before { content: '▾ '; }
.rc-turn { font-size: 11px; color: var(--muted); font-family: ui-monospace, monospace; margin: 8px 0 4px; }
.rc-past .rc-card { opacity: .82; margin-bottom: 8px; }
.rc-past .rc-card:hover { opacity: 1; }
.rc-hint { font-size: 12px; color: var(--muted); margin-top: 8px; }

/* ── партия: поиск лиц; бейдж числа на кнопке под вводом ── */
.hud-find { display: block; width: 100%; margin: 0 0 8px; padding: 7px 10px; font: inherit; font-size: 13.5px; border-radius: 9px; border: 1px solid var(--border); background: var(--panel); color: var(--ink); }
.hud-find:focus { outline: none; border-color: var(--accent); }
.hud-find::placeholder { color: var(--muted); }
.find-miss { display: none !important; }
.hud-actions button { position: relative; }
.hud-btn-badge { position: absolute; top: -5px; right: -5px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; font-size: 10px; font-weight: 700; font-family: ui-monospace, monospace; font-style: normal; line-height: 16px; background: var(--accent); color: var(--accent-ink); }

/* ===== ⌗ схема карты v2 (05.09): крупно, от точки «ты здесь» ===== */
.sch-wrap { display: flex; flex-direction: column; gap: 12px; }
.sch-hero { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(var(--accent-rgb), .5); background: rgba(var(--accent-rgb), .1); }
.sch-hero-ico { font-size: 40px; line-height: 1; flex: 0 0 auto; }
.sch-hero-tx { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.sch-hero-l { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }
.sch-hero-n { font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--ink); }
.sch-hero-d { font-size: 13px; color: var(--muted); }
.sch-hero-who { font-size: 13px; color: var(--ink); opacity: .9; }
.sch-near { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.sch-near-l { font-size: 12.5px; color: var(--muted); margin-right: 2px; }
.sch-near-b { font: inherit; font-size: 13px; padding: 6px 11px; border-radius: 999px; border: 1px solid var(--border); background: var(--panel); color: var(--ink); cursor: pointer; transition: background var(--motion-fast), border-color var(--motion-fast); }
.sch-near-b:hover { border-color: rgba(var(--accent-rgb), .6); background: rgba(var(--accent-rgb), .12); }
.sch-near-more { font-size: 12px; color: var(--muted); }
.sch-legend { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12px; color: var(--muted); }
.sch-grid { display: flex; flex-direction: column; gap: 10px; }
.sch-district { border: 1px solid var(--border); border-top: 3px solid rgba(255, 255, 255, .14); border-radius: 12px; background: rgba(255, 255, 255, .03); padding: 8px 10px 10px; }
.sch-district.has-here { border-top-color: var(--accent); background: rgba(var(--accent-rgb), .05); }
.sch-d-head { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; color: var(--ink); cursor: pointer; padding: 4px 2px; border-radius: 6px; }
.sch-d-head:hover { background: rgba(255, 255, 255, .05); }
.sch-d-ico { font-size: 18px; }
.sch-d-name { flex: 1; min-width: 0; }
.sch-d-cnt { font-size: 12px; font-weight: 500; color: var(--muted); white-space: nowrap; }
.sch-d-arrow { color: var(--muted); font-size: 13px; }
.sch-nodes { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: 8px; margin-top: 8px; }
.sch-node { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 6px 8px; border-radius: 10px; border: 1px solid rgba(255, 255, 255, .08); background: rgba(0, 0, 0, .18); cursor: pointer; text-align: center; min-height: 92px; transition: background var(--motion-fast), border-color var(--motion-fast); }
.sch-node:hover { background: rgba(255, 255, 255, .07); border-color: var(--border); }
.sch-node.here { background: rgba(var(--accent-rgb), .18); border-color: var(--accent); }
.sch-node.owned { border-color: rgba(var(--accent-rgb), .45); }
.sch-ico { font-size: 28px; line-height: 1; }
.sch-lbl { font-size: 12.5px; line-height: 1.3; color: var(--ink); opacity: .92; max-width: 100%; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.sch-node.here .sch-lbl { font-weight: 700; opacity: 1; }
.sch-you { position: absolute; top: -8px; right: -4px; font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 2px 7px; border-radius: 999px; background: var(--accent); color: var(--accent-ink); }
.sch-tokens { display: flex; gap: 3px; flex-wrap: wrap; justify-content: center; margin-top: 2px; }
.sch-token { width: 20px; height: 20px; border-radius: 50%; font-size: 11px; font-weight: 700; color: #fff; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255, 255, 255, .25); }
.sch-token.more { background: rgba(255, 255, 255, .1); color: var(--muted); border-color: var(--border); }
.sch-det { margin-top: 8px; padding: 10px 12px; border-radius: 10px; background: var(--panel); border: 1px solid var(--border); display: flex; flex-direction: column; gap: 5px; font-size: 13.5px; }
.sch-det-t { font-weight: 700; font-size: 14px; color: var(--ink); }
.sch-det-who { color: var(--ink); }
.sch-det-desc { color: var(--muted); line-height: 1.45; }
.sch-go { align-self: flex-start; margin-top: 2px; }
.sch-roads { font-size: 12.5px; }
/* развёрнутое окно ⛶ - узлы ещё крупнее */
body.hud-max-on .hud-win.hud-max .sch-nodes { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
body.hud-max-on .hud-win.hud-max .sch-lbl { font-size: 14px; }
body.hud-max-on .hud-win.hud-max .sch-ico { font-size: 34px; }

/* ===== 05.09 пульт: меню по лицу, чипы-заявки, «двинуть» ===== */
.pult-menu { position: fixed; z-index: 120; min-width: 190px; max-width: 280px; padding: 6px; border-radius: 10px; background: var(--panel); border: 1px solid var(--border); box-shadow: 0 10px 30px rgba(0, 0, 0, .45); display: flex; flex-direction: column; gap: 2px; }
.pult-menu-h { font-size: 12px; font-weight: 700; color: var(--muted); padding: 4px 8px 6px; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pult-item { font: inherit; font-size: 13.5px; text-align: left; padding: 7px 10px; border-radius: 7px; border: 1px solid transparent; background: transparent; color: var(--ink); cursor: pointer; transition: background var(--motion-fast), border-color var(--motion-fast); }
.pult-item:hover { background: rgba(var(--accent-rgb), .14); border-color: rgba(var(--accent-rgb), .4); }
.pult-item.on { background: rgba(var(--accent-rgb), .2); border-color: rgba(var(--accent-rgb), .55); font-weight: 600; }
.pult-item.danger { color: #e08a8a; }
.pult-sep { height: 1px; margin: 3px 6px; background: var(--border); }
.sc-chip { cursor: pointer; transition: border-color var(--motion-fast), background var(--motion-fast); }
.sc-chip:hover { border-color: rgba(var(--accent-rgb), .6); background: rgba(var(--accent-rgb), .1); }
.sc-chip.pult-focused { border-color: var(--accent); box-shadow: 0 0 0 2px rgba(var(--accent-rgb), .25); }
.sc-chip.pult-focused .sc-nm::after { content: ' 🎯'; }
.sc-abs-nm { cursor: pointer; border-bottom: 1px dashed rgba(255, 255, 255, .25); }
.sc-abs-nm:hover { color: var(--accent); border-bottom-color: var(--accent); }
.st-row { display: flex; align-items: center; gap: 6px; }
.st-row .st-tx { flex: 1; min-width: 0; }
.st-go { flex: 0 0 auto; font: inherit; font-size: 12px; line-height: 1; width: 26px; height: 26px; border-radius: 999px; border: 1px solid rgba(var(--accent-rgb), .45); background: rgba(var(--accent-rgb), .1); color: var(--accent); cursor: pointer; }
.st-go:hover { background: rgba(var(--accent-rgb), .25); }
.pulse-act { gap: 5px; }
.pulse-btn.ico { padding: 5px 8px; min-width: 32px; text-align: center; }
.pulse-btn.go { font-weight: 600; color: var(--accent); border-color: rgba(var(--accent-rgb), .5); background: rgba(var(--accent-rgb), .1); }
.pulse-btn.go:hover { background: rgba(var(--accent-rgb), .22); }
/* ревизор во вкладке: тело видно всегда (в плавающей полоске оно прячется до .open) */
#hud-pane-revizor { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
#hud-pane-revizor .revizor-body { display: block; max-height: none; padding: 0; }
.revizor-inl-h { font-size: 15px; font-weight: 700; color: var(--ink); margin-bottom: 10px; }
.revizor-inl-ts { font-size: 12px; font-weight: 400; color: var(--muted); }
#hud-pane-revizor .revizor-item { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; padding: 9px 0; border-top: 1px solid rgba(255, 255, 255, .06); }
#hud-pane-revizor .revizor-what { flex: 1 1 100%; line-height: 1.5; }
#hud-pane-revizor .revizor-fix, #hud-pane-revizor .revizor-send, #hud-pane-revizor .revizor-run, #hud-pane-revizor .revizor-task, #hud-pane-revizor .revizor-ok { font: inherit; font-size: 12.5px; padding: 5px 10px; border-radius: 6px; cursor: pointer; border: 1px solid rgba(var(--accent-rgb), .45); background: rgba(var(--accent-rgb), .1); color: var(--accent); }
#hud-pane-revizor .revizor-fix:hover, #hud-pane-revizor .revizor-send:hover, #hud-pane-revizor .revizor-run:hover, #hud-pane-revizor .revizor-task:hover { background: rgba(var(--accent-rgb), .22); }
#hud-pane-revizor .revizor-otvet { font: inherit; font-size: 13px; padding: 6px 9px; border-radius: 6px; border: 1px solid var(--border); background: var(--bg); color: var(--ink); width: 100%; margin: 6px 0; }
#hud-pane-revizor .revizor-sh { font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); font-weight: 600; margin: 14px 0 6px; }
#hud-pane-revizor .revizor-line { font-size: 13.5px; line-height: 1.5; color: var(--ink); padding: 2px 0; }
#hud-pane-revizor .revizor-otvecheno { font-size: 13px; color: var(--muted); padding: 2px 0 6px 14px; }
#hud-pane-revizor .revizor-foot { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; padding-top: 10px; border-top: 1px solid rgba(255, 255, 255, .06); }

/* ===== 05.09 🕘 Заходы: список и читалка ===== */
#hud-pane-zahody { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.zh-wrap { display: flex; flex-direction: column; gap: 10px; }
.zh-head { display: flex; align-items: center; gap: 10px; }
.zh-head .hud-find { flex: 1; margin: 0; }
.zh-cnt { font-size: 12px; color: var(--muted); white-space: nowrap; }
.zh-list { display: flex; flex-direction: column; gap: 8px; }
.zh-card { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; background: rgba(255, 255, 255, .03); display: flex; flex-direction: column; gap: 6px; }
.zh-card.active { border-color: rgba(var(--accent-rgb), .6); background: rgba(var(--accent-rgb), .07); }
.zh-card.test { opacity: .7; }
.zh-top { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.zh-code { font-family: ui-monospace, monospace; font-size: 11.5px; color: var(--muted); border: 1px solid var(--border); border-radius: 4px; padding: 1px 6px; }
.zh-title { font-size: 15px; font-weight: 700; color: var(--ink); flex: 1; min-width: 0; }
.zh-tag { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 2px 8px; border-radius: 4px; background: var(--accent); color: var(--accent-ink); }
.zh-tag.dim { background: transparent; color: var(--muted); border: 1px solid var(--border); }
.zh-meta { font-size: 12.5px; color: var(--muted); }
.zh-sum { font-size: 13.5px; line-height: 1.5; color: var(--ink); opacity: .9; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; cursor: pointer; }
.zh-sum.open { display: block; }
.zh-acts { display: flex; gap: 8px; flex-wrap: wrap; }
.zh-btn { font: inherit; font-size: 12.5px; padding: 5px 10px; border-radius: 6px; cursor: pointer; border: 1px solid var(--border); background: var(--panel); color: var(--ink); transition: background var(--motion-fast), border-color var(--motion-fast); white-space: nowrap; }
.zh-btn:hover:not(:disabled) { border-color: rgba(var(--accent-rgb), .6); background: rgba(var(--accent-rgb), .12); }
.zh-btn:disabled { opacity: .5; cursor: default; }
.zh-btn.go { color: var(--accent); border-color: rgba(var(--accent-rgb), .45); background: rgba(var(--accent-rgb), .1); font-weight: 600; }
/* читалка во весь экран */
.zh-reader { position: fixed; inset: 0; z-index: 150; background: #0e0d11; display: flex; flex-direction: column; }
.zh-bar { display: flex; align-items: center; gap: 8px; padding: 10px 18px; border-bottom: 1px solid var(--border); background: var(--panel); flex-wrap: wrap; }
.zh-r-title { flex: 1 1 320px; min-width: 0; font-size: 15px; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zh-r-sub { color: var(--muted); font-size: 13px; }
.zh-slider { flex: 1 1 200px; min-width: 120px; accent-color: var(--accent); }
.zh-pos { font-family: ui-monospace, monospace; font-size: 12px; color: var(--muted); white-space: nowrap; min-width: 120px; text-align: center; }
.zh-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 28px 24px 80px; }
.zh-body.busy { opacity: .5; }
.zh-col { max-width: 860px; margin: 0 auto; }
.zh-all { font-size: 12px; color: var(--muted); white-space: nowrap; display: flex; align-items: center; gap: 4px; cursor: pointer; }
.zh-body p { font-size: 18px; line-height: 1.75; color: var(--ink); margin: 0 0 14px; }
.zh-body .zh-creator { font-size: 16.5px; line-height: 1.6; color: var(--accent); background: rgba(var(--accent-rgb), .08); border-left: 3px solid rgba(var(--accent-rgb), .6); padding: 10px 16px; border-radius: 6px; margin: 10px auto 16px; }
.zh-body .zh-creator b { color: var(--accent); }
.zh-body .zh-epi { font-style: italic; opacity: .9; }
.zh-body .zh-note, .zh-body .zh-meta-l { font-size: 14px; color: var(--muted); }
.zh-body .zh-epi-p { font-size: 17.5px; line-height: 1.7; }
.zh-body hr.zh-sep { margin: 22px 0; border: 0; border-top: 1px dashed var(--border); }

/* 05.09 докачка мира */
.rc-refill { margin-top: 6px; }
.rc-refill-st { font-size: 12.5px; color: var(--muted); padding: 4px 2px 8px; white-space: pre-wrap; }

/* 05.09: выход из читалки и поиск по заходу */
.zh-bar .zh-back { color: var(--accent); border-color: rgba(var(--accent-rgb), .45); font-weight: 600; }
.zh-corner { position: fixed; top: 8px; right: 12px; z-index: 160; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--border); background: var(--panel); color: var(--ink); font-size: 18px; cursor: pointer; box-shadow: 0 4px 14px rgba(0, 0, 0, .4); }
.zh-corner:hover { border-color: rgba(var(--accent-rgb), .6); background: rgba(var(--accent-rgb), .16); }
.zh-bar { padding-right: 64px; }
.zh-find { font: inherit; font-size: 12.5px; padding: 5px 10px; border-radius: 6px; border: 1px solid var(--border); background: var(--panel-2); color: var(--ink); width: 200px; }
.zh-find:focus { outline: none; border-color: rgba(var(--accent-rgb), .6); }
.zh-hits { flex: 0 0 auto; max-height: 38vh; overflow-y: auto; border-bottom: 1px solid var(--border); background: var(--panel-2); padding: 8px 18px 10px; }
.zh-hits.hidden { display: none; }
.zh-hit-head { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--muted); margin: 0 auto 6px; max-width: 1100px; }
.zh-hit-head b { color: var(--ink); }
.zh-hit-head .zh-btn { margin-left: auto; }
.zh-hit-list { display: flex; flex-direction: column; gap: 3px; max-width: 1100px; margin: 0 auto; }
.zh-hit { display: flex; align-items: baseline; gap: 10px; text-align: left; font: inherit; font-size: 13.5px; line-height: 1.45; color: var(--ink); background: transparent; border: 1px solid transparent; border-radius: 6px; padding: 4px 8px; cursor: pointer; }
.zh-hit:hover { border-color: rgba(var(--accent-rgb), .45); background: rgba(var(--accent-rgb), .08); }
.zh-hit-pct { flex: 0 0 44px; font-family: ui-monospace, monospace; font-size: 12px; color: var(--muted); }
.zh-hit-snip { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: color-mix(in srgb, var(--ink) 80%, transparent); }
.zh-hit mark, .zh-body mark.zh-mark { background: rgba(var(--accent-rgb), .3); color: var(--ink); border-radius: 3px; padding: 0 2px; }
.zh-body mark.zh-mark.cur { background: var(--accent); color: var(--accent-ink); }
.zh-hit-note { font-size: 13px; color: var(--muted); max-width: 1100px; margin: 0 auto; }
/* 05.09: пока читаешь, ничего поверх - ⟳ (z-index 9999) лежал ровно на крестике читалки, это и был «невозможно вернуться» */
.zh-reader { z-index: 10000; }
.zh-corner { z-index: 10001; }

/* ── 🧠 Вспомнили: отчёт хода (20.09) - вкладки, сцены, записи, поправки ── */
.rc-tabs { display: flex; gap: 6px; margin: 0 0 10px; position: sticky; top: 0; z-index: 2; background: var(--panel); padding: 2px 0 6px; }
.rc-tab { flex: 1; padding: 6px 8px; font: inherit; font-size: 12.5px; border-radius: 8px; border: 1px solid var(--border); background: transparent; color: var(--muted); cursor: pointer; }
.rc-tab.on { color: var(--ink); border-color: var(--accent); background: rgba(202, 164, 106, .12); }
.rc-rep { border: 1px solid var(--border); border-radius: 10px; padding: 8px 10px; margin-bottom: 10px; }
.rc-rep-q { font-size: 13px; font-style: italic; color: var(--ink); margin-bottom: 6px; }
.rc-rep-l { font-size: 12px; color: var(--muted); margin-top: 5px; }
.rc-dobor { color: #caa46a; }
.rc-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.rc-chip { font-size: 11.5px; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--border); color: var(--ink); }
.rc-wife { border-top: 1px solid rgba(255, 255, 255, .08); padding: 6px 0; }
.rc-wife summary { cursor: pointer; list-style: none; font-size: 13.5px; padding: 3px 0; }
.rc-wife summary::-webkit-details-marker { display: none; }
.rc-wife summary::before { content: '▸ '; color: var(--muted); }
.rc-wife[open] summary::before { content: '▾ '; }
.rc-wife summary span { font-size: 11.5px; color: var(--muted); margin-left: 4px; }
.rc-scene { font-size: 11.5px; color: var(--muted); margin: 10px 0 4px; padding-left: 8px; border-left: 2px solid #caa46a; }
.rc-world { font-family: ui-monospace, monospace; color: #caa46a; }
.rc-it { display: flex; gap: 7px; padding: 5px 0 5px 8px; }
.rc-it-z { flex: 0 0 16px; text-align: center; color: var(--muted); font-size: 12.5px; }
.rc-it-b { flex: 1; min-width: 0; }
.rc-it-t { font-size: 13.5px; line-height: 1.4; color: var(--ink); }
.rc-golos .rc-it-t { color: #e6cf9f; }
.rc-probel .rc-it-t { font-style: italic; }
.rc-it-m { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 3px; }
.rc-tag { font-size: 10.5px; padding: 1px 6px; border-radius: 6px; border: 1px solid rgba(255, 255, 255, .12); color: var(--muted); }
.rc-tag-отрезок, .rc-tag-начало { color: #caa46a; border-color: rgba(202, 164, 106, .45); }
.rc-tag-sc { color: #9fc5a8; border-color: rgba(159, 197, 168, .4); }
.rc-lnk { font-size: 11.5px; color: var(--accent); cursor: pointer; opacity: .8; }
.rc-lnk:hover { opacity: 1; text-decoration: underline; }
.rc-it-x { font-size: 11.5px; color: var(--muted); margin-top: 3px; }
.rc-it-p { color: #e6cf9f; }
.rc-it-k { color: #9fb4c9; }
.rc-note { margin-top: 6px; }
.rc-note textarea { width: 100%; box-sizing: border-box; font: inherit; font-size: 13px; padding: 6px 8px; border-radius: 8px; border: 1px solid var(--border); background: var(--panel); color: var(--ink); resize: vertical; }
.rc-note button { font: inherit; font-size: 12px; margin: 4px 6px 0 0; padding: 3px 10px; border-radius: 7px; border: 1px solid var(--border); background: transparent; color: var(--ink); cursor: pointer; }
.rc-note-s { font-size: 11.5px; color: var(--muted); }

/* ===== 23.09 🤝 уговоры в Пульсе: та же карточка нити, свой край по состоянию =====
   сегодня - золото (как закреп), кандидат - штрих голубым (как «перейти к источнику»),
   пауза - штрих серым (как «забью»), сорван - красным (как просрочка). Новых цветов нет. */
.ugv-sec { margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid rgba(255, 255, 255, .07); }
.ugv-sum .ugv-ttl { color: var(--ink); }
.ugv-sum .ugv-cand-n { color: #8fb4dc; }
.ugv-card { cursor: pointer; }
.ugv-card .ugv-what { font-size: 14px; color: var(--muted); line-height: 1.5; margin: 4px 0 0 16px; }
.ugv-card .pulse-chips { display: flex; flex-wrap: wrap; gap: 5px; margin: 7px 0 0 16px; }
.ugv-card .pulse-chip { font-size: 12.5px; padding: 2px 9px; border-radius: 999px; background: rgba(255, 255, 255, .05); color: var(--muted); border: 1px solid rgba(255, 255, 255, .07); }
.ugv-card .pulse-chip.ugv-rep { color: var(--ink); }
/* длинное место или условие в узком окне HUD переносится внутри чипа, а не вылезает за карточку */
.ugv-card .pulse-chip { max-width: 100%; box-sizing: border-box; white-space: normal; overflow-wrap: anywhere; line-height: 1.4; }
.ugv-card .pulse-chip.ugv-yes { color: #6ab04a; border-color: rgba(106, 176, 74, .35); }
.ugv-card .pulse-chip.ugv-no { color: #e07565; border-color: rgba(192, 88, 74, .4); }
.ugv-card .pulse-chip.ugv-unk { color: #b8ad9c; }
.ugv-card .pulse-act { margin-left: 16px; }
.ugv-card .ugv-note { font-size: 12.5px; color: #8fb4dc; margin: 7px 0 0 16px; line-height: 1.5; }
.ugv-card .ugv-note.ugv-err { color: #e07565; }
.ugv-card.ugv-today { border-left-color: #d9a441; background: rgba(217, 164, 65, .06); }
.ugv-card.ugv-today .pulse-dot { background: #d9a441; box-shadow: 0 0 6px #d9a441; }
.ugv-card.ugv-today .pulse-due { color: #d9a441; background: rgba(217, 164, 65, .12); }
.ugv-card.ugv-cand { border-left-style: dashed; border-left-color: #8fb4dc; }
.ugv-card.ugv-cand .pulse-dot { background: #8fb4dc; box-shadow: 0 0 6px #8fb4dc; }
.ugv-card.ugv-cand .pulse-due { color: #8fb4dc; background: rgba(143, 180, 220, .12); }
.ugv-card.ugv-paused { opacity: .62; border-left-style: dashed; border-left-color: #7e96a4; }
.ugv-card.ugv-paused:hover { opacity: 1; }
.ugv-card.ugv-broken { border-left-color: #c0584a; background: rgba(192, 88, 74, .06); }
.ugv-card.ugv-broken .pulse-dot { background: #c0584a; box-shadow: 0 0 7px #c0584a; }
.ugv-card.ugv-broken .pulse-due { color: #e07565; background: rgba(192, 88, 74, .16); }
.pulse-btn.ugv-ok { color: #6ab04a; border-color: rgba(106, 176, 74, .45); }
.pulse-btn.ugv-ok:hover { background: rgba(106, 176, 74, .15); }
.pulse-btn:disabled { opacity: .5; cursor: not-allowed; }
