:root {
  --side: #0e0e0e;
  --side-text: #f2f2f2;
  --side-muted: #8d8d8d;
  --side-on: #1c1c1c;
  --bg: #0e0e0e;
  --card: #161616;
  --line: #2a2a2a;
  --text: #f2f2f2;
  --muted: #8d8d8d;
  --faint: #6e6e6e;
  --blue: #c6f135;
  --ok: #3ecf8e;
  --ok-bg: #143024;
  --bad: #f0a0a0;
  --bad-bg: #3a1a1a;
  --radius: 12px;
  color-scheme: dark;
}

[hidden] { display: none !important; }
#app { position: fixed; inset: 0; z-index: 2; background: var(--bg); }
* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body {
  background: var(--bg);
  color: var(--text);
  font: 13px/1.4 "Segoe UI", system-ui, sans-serif;
}
button, input, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
h1 { margin: 0; font-size: 18px; font-weight: 650; letter-spacing: -0.02em; }
.sub { color: var(--muted); font-size: 12px; margin-top: 2px; }
.login-note { min-height: 1.3em; margin-top: 8px; font-size: 13px; color: var(--text); white-space: pre-wrap; }
.session-note { white-space: pre-wrap; max-height: 180px; overflow: auto; }
.login-note.bad { color: var(--bad); }
.login-note.ok { color: var(--ok); }
.err { color: var(--bad); min-height: 1.2em; font-size: 12px; }

.gate { min-height: 100%; display: grid; place-items: center; background: var(--bg); }
.gate-box {
  width: 340px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 10px 30px rgba(22, 32, 54, 0.06);
}

.logo { display: flex; align-items: center; gap: 10px; color: var(--side-text); font-weight: 650; }
.gate-box .logo { color: var(--text); }
.mark {
  width: 28px; height: 28px; border-radius: 8px;
  display: grid; place-items: center;
  background: var(--blue); color: #142000; font-size: 14px;
}

.shell { height: 100%; display: grid; grid-template-columns: 220px 1fr; }
.side {
  background: var(--side);
  color: var(--side-text);
  display: flex;
  flex-direction: column;
  padding: 16px 12px 12px;
  gap: 14px;
}
.side-label {
  color: var(--side-muted);
  font-size: 11px;
  padding: 0 8px;
}
.nav { display: flex; flex-direction: column; gap: 2px; }
.nav button {
  display: flex;
  align-items: center;
  gap: 8px;
  text-align: left;
  background: transparent;
  border: 0;
  color: var(--side-text);
  height: 36px;
  border-radius: 8px;
  padding: 0 10px;
}
.nav svg, .logout svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.nav button.on, .nav button:hover { background: var(--side-on); }
.logout {
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  border: 1px solid #334055;
  color: var(--side-muted);
  height: 34px;
  border-radius: 8px;
  padding: 0 10px;
}

.main { min-width: 0; min-height: 0; padding: 16px 18px 18px; display: flex; }
.view { display: flex; flex-direction: column; gap: 12px; width: 100%; min-height: 0; }
.page-head, .toolbar, .top-actions, .form-row {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.page-head { justify-content: space-between; }
.grow { flex: 1; color: var(--muted); font-size: 12px; text-align: right; }

.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.dash-stats { grid-template-columns: repeat(4, 1fr); }
.stat { text-align: left; }
button.stat { cursor: pointer; font: inherit; color: inherit; width: 100%; }
.stack.slim { min-width: 180px; }
.px-actions { display: flex; gap: 6px; }
.stat {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 12px 14px 10px;
  min-height: 72px;
}
.stat.on { border-color: var(--blue); box-shadow: 0 0 0 1px var(--blue); color: #142000; background: var(--blue); }
.stat.on span, .stat.on b { color: #142000; }
.stat b { display: block; font-size: 22px; letter-spacing: -0.03em; }
.stat span { color: var(--muted); font-size: 12px; }

.card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.toolbar, .form { padding: 0; }
.form { padding: 14px; display: flex; flex-direction: column; gap: 12px; }
.stack { display: flex; flex-direction: column; gap: 6px; }
.stack span, .field span { color: var(--muted); font-size: 12px; }
.field { display: flex; align-items: center; gap: 8px; }
select, input, textarea {
  background: #101010;
  border: 1px solid #333;
  color: var(--text);
  border-radius: 8px;
  height: 34px;
  padding: 0 10px;
  outline: none;
}
textarea { height: auto; padding: 8px 10px; width: 100%; resize: vertical; }
input:focus, textarea:focus { border-color: #b9c6ea; }
.field input[type="number"] { width: 84px; }
#group, #query, #phone, #code, #audience { width: 220px; }

.btn {
  height: 34px;
  padding: 0 12px;
  border-radius: 8px;
  border: 1px solid #333;
  background: #1c1c1c;
  color: var(--text);
}
.btn.solid { background: var(--blue); border-color: var(--blue); color: #142000; font-weight: 600; }
.btn.solid:disabled { opacity: 0.5; }
.btn.danger { color: var(--bad); border-color: #5a3030; background: #1c1c1c; }
.seg { display: flex; background: #101010; border: 1px solid #333; border-radius: 8px; overflow: hidden; }
.seg button { border: 0; background: transparent; height: 32px; padding: 0 10px; color: var(--muted); }
.seg button.on { background: #243014; color: var(--blue); font-weight: 600; }

.line {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 12px;
  color: var(--muted);
  min-height: 18px;
}
.table-wrap { flex: 1; overflow: auto; min-height: 0; }
table { width: 100%; border-collapse: collapse; }
th {
  text-align: left; font-weight: 500; color: var(--faint); font-size: 12px;
  padding: 10px 12px; position: sticky; top: 0; background: #161616;
  border-bottom: 1px solid var(--line);
}
td { padding: 10px 12px; border-top: 1px solid var(--line); vertical-align: top; }
tr:hover td { background: #1c1c1c; }
.user { font-weight: 550; }
td.ok { color: var(--ok); }
td.bad { color: var(--bad); }
td.dim { color: var(--muted); }
.empty { color: var(--faint); padding: 22px 12px; }

.split { flex: 1; min-height: 0; display: grid; grid-template-columns: 280px 1fr; gap: 12px; }
.list-card { display: flex; flex-direction: column; min-height: 0; padding: 8px; }
.list-card .side-label { color: var(--faint); }
.list { overflow: auto; }
.file {
  width: 100%; text-align: left; background: transparent; border: 0; border-radius: 8px;
  padding: 8px; display: flex; justify-content: space-between; gap: 8px; color: var(--text);
}
.file:hover, .file.on { background: #1c1c1c; }
.file b { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file span { color: var(--faint); }

#view-search #query { width: 100%; }
#view-search .search-line, #search-line { min-height: 18px; }
#view-search .open { align-items: center; min-width: 0; }
#view-search .open > span:first-child { min-width: 0; display: flex; align-items: center; gap: 8px; }
#view-search .open b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#view-search .row-actions { flex: none; }
#view-search .row-actions .btn { white-space: nowrap; }
.opens { padding: 4px 12px; overflow: auto; }
.open, .history div {
  display: flex; justify-content: space-between; gap: 12px;
  padding: 10px 0; border-top: 1px solid var(--line);
}
.open b { font-weight: 550; }
.history { overflow: auto; }
.field.grow { flex: 1; min-width: 220px; }
.field.grow input, #group-add, #proxy-manual { width: 100%; }
.spaces { display: flex; flex-direction: column; gap: 10px; }
.space {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  padding: 12px 14px;
}
.space > b { width: 88px; }
.space .mid { flex: 1; min-width: 180px; }
.space select { width: 200px; }
.space .who { font-weight: 550; }
.px.bad { color: var(--bad); }
.space .px, .opens .ok, .opens .bad { font-size: 12px; }
.opens .ok { color: var(--ok); }
.opens .bad { color: var(--bad); }
.dest {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
  border-top: 1px solid var(--line);
}
.row-actions { display: flex; align-items: center; gap: 8px; color: var(--muted); }
.main .side-label { color: var(--faint); padding: 0; }
.stack { min-width: 140px; }
.stack input, .stack select { width: 100%; }
.check { display: flex; align-items: center; gap: 8px; color: var(--text); }
.check input { width: auto; height: auto; }
details { border-top: 1px solid var(--line); padding-top: 8px; }
summary { cursor: pointer; font-weight: 550; }
.opt { display: flex; flex-direction: column; gap: 10px; padding: 10px 0 2px; }
#inv-report { min-height: 180px; }

#view-enter { overflow: auto; }
button.stat { text-align: left; width: 100%; }
.acc-tools { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.acc-tools select, #acc-search { height: 34px; }
.acc-table { min-height: 220px; }
.acc-table td { vertical-align: middle; }
.ava, .ava-ph {
  width: 28px; height: 28px; border-radius: 50%; object-fit: cover;
  display: inline-grid; place-items: center; vertical-align: middle; margin-right: 8px;
}
.ava-ph { background: #d9c7f5; color: #5c3d86; font-weight: 650; }
.phone { font-variant-numeric: tabular-nums; }
.phone.copy { cursor: pointer; }
.phone.copy:hover, .phone.copied, .misc button.copied { color: var(--blue); }
#copy-toast {
  position: fixed; left: 50%; top: 18px; z-index: 80;
  transform: translateX(-50%) translateY(-10px);
  background: #c6f135; color: #142000; font-weight: 700;
  padding: 8px 16px; border-radius: 999px;
  opacity: 0; pointer-events: none;
  transition: opacity .15s ease, transform .15s ease;
}
#copy-toast.on { opacity: 1; transform: translateX(-50%) translateY(0); }
.badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 12px; background: #242424; color: var(--muted); }
.badge.ok { background: var(--ok-bg); color: var(--ok); }
.badge.bad { background: var(--bad-bg); color: var(--bad); }
.badge.warn { background: #fff4e5; color: #a86412; }
.role-pick { height: 30px; }
.acc-name {
  display: flex; flex-direction: column; align-items: flex-start; gap: 1px;
  background: transparent; border: 0; color: inherit; cursor: pointer; text-align: left; padding: 0;
}
.acc-name b { font-weight: 650; }
.acc-name span { color: var(--faint); font-size: 11px; }
.acc-name.empty b { color: var(--faint); font-weight: 500; }
.acc-name-input { width: 140px; }
.misc { display: flex; gap: 4px; }
.misc button {
  width: 26px; height: 26px; border: 0; background: transparent; border-radius: 6px;
  color: #8b95a8; display: grid; place-items: center; padding: 0;
}
.misc .btn { width: auto; height: auto; min-height: 30px; padding: 4px 8px; white-space: nowrap; border: 1px solid var(--line); color: var(--text); }
.misc .btn.danger { color: var(--bad); border-color: #5a3030; }
.misc button svg { display: block; }
.misc button:hover { background: #2a2a2a; color: var(--text); }
.acc-foot { display: flex; align-items: center; gap: 8px; position: relative; }
.menu {
  position: absolute; right: 0; bottom: 42px; z-index: 5;
  background: #161616; border: 1px solid var(--line); border-radius: 12px;
  box-shadow: 0 12px 32px rgba(22, 32, 54, 0.12);
  display: flex; flex-direction: column; min-width: 280px; padding: 6px;
}
.menu button { text-align: left; background: transparent; border: 0; height: 34px; border-radius: 8px; padding: 0 10px; }
.menu button:hover { background: #242424; }
.acc-log {
  margin: 0; min-height: 120px; max-height: 220px; overflow: auto;
  background: #161b22; color: #d6deea; border-radius: 12px; padding: 12px 14px;
  font: 12px/1.45 ui-monospace, Consolas, monospace; white-space: pre-wrap;
}
.modal {
  position: fixed; inset: 0; z-index: 20; background: rgba(28, 36, 52, 0.45);
  display: grid; place-items: center; padding: 18px;
}
.modal-card {
  width: min(440px, 100%); background: #161616; color: var(--text); border: 1px solid #2a2a2a; border-radius: 16px; padding: 18px;
  display: flex; flex-direction: column; gap: 12px;
  box-shadow: 0 16px 40px rgba(22, 32, 54, 0.18);
}
.modal-card h2 { margin: 0; font-size: 16px; }
.modal-card .stack select, .modal-card .stack input, .modal-card .stack textarea { width: 100%; }
.modal-card .stack textarea { min-height: 72px; resize: vertical; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.parse-split { flex: 1; min-height: 280px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.parse-pane { padding: 14px; display: flex; flex-direction: column; gap: 8px; min-height: 0; }
.parse-pane-h { font-weight: 650; }
.parse-tasks, .parse-result { overflow: auto; min-height: 180px; }
.parse-empty { color: var(--faint); text-align: center; padding: 36px 12px; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.task {
  width: 100%; text-align: left; background: transparent; border: 0; border-radius: 8px;
  padding: 8px; display: flex; flex-direction: column; gap: 2px;
}
.task.on, .task:hover { background: #1c1c1c; }
.task b { font-weight: 600; }
.task span { color: var(--muted); font-size: 12px; }
.parse-modal { width: min(760px, 100%); max-height: min(92vh, 860px); overflow: auto; }
#parse-modal { background: rgba(0, 0, 0, 0.62); }
#parse-modal .parse-modal {
  background: #161616;
  color: #f2f2f2;
  border: 1px solid #2a2a2a;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.45);
}
#parse-modal h2 { color: #fff; }
#parse-modal .sub, #parse-modal .stack span { color: #8d8d8d; }
#parse-modal .btn { background: #1c1c1c; border-color: #333; color: #eee; }
#parse-modal .btn.solid { background: #c6f135; border-color: #c6f135; color: #142000; }
#parse-modal select, #parse-modal input, #parse-modal textarea {
  background: #101010;
  border-color: #333;
  color: #fff;
}
#parse-modal input:focus, #parse-modal textarea:focus, #parse-modal select:focus { border-color: #3ecf8e; }
#parse-modal .mode { background: #141414; border-color: #2c2c2c; color: #eee; }
#parse-modal .mode span { color: #8d8d8d; }
#parse-modal .mode.on { border-color: #3ecf8e; box-shadow: 0 0 0 1px #3ecf8e; background: #141414; }
#parse-modal .check { color: #eee; }
#parse-modal .check input { accent-color: #c6f135; }
#aud-modal, #aud-edit-modal { background: rgba(0, 0, 0, 0.62); }
#aud-modal .modal-card, #aud-edit-modal .modal-card {
  background: #161616;
  color: #f2f2f2;
  border: 1px solid #2a2a2a;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.45);
}
#aud-modal h2, #aud-edit-modal h2 { color: #fff; }
#aud-modal .sub, #aud-modal .stack span, #aud-edit-modal .stack span { color: #8d8d8d; }
#aud-modal .btn, #aud-edit-modal .btn { background: #1c1c1c; border-color: #333; color: #eee; }
#aud-modal .btn.solid, #aud-edit-modal .btn.solid { background: #c6f135; border-color: #c6f135; color: #142000; }
#aud-modal input, #aud-edit-modal input {
  background: #101010;
  border-color: #333;
  color: #fff;
}
#aud-modal input::placeholder, #aud-edit-modal input::placeholder { color: #6f6f6f; }
#aud-modal input:focus, #aud-edit-modal input:focus { border-color: #3ecf8e; }
#aud-modal .seg { background: #101010; border-color: #333; }
#aud-modal .seg button { color: #bbb; }
#aud-modal .seg button.on { background: #c6f135; color: #142000; }
.mode-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.mode {
  text-align: left; background: #161616; border: 1px solid var(--line); border-radius: 12px;
  padding: 10px 12px; display: flex; flex-direction: column; gap: 4px; min-height: 92px;
}
.mode b { font-weight: 650; }
.mode span { color: var(--muted); font-size: 12px; font-weight: 400; }
.mode.on { border-color: var(--blue); box-shadow: 0 0 0 1px var(--blue); background: #243014; }
.parse-result table { font-size: 12px; }
.aud-split { display: grid; grid-template-columns: 180px 240px 1fr; gap: 12px; min-height: 320px; }
.res-head { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.via-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.via-tabs button.on { background: #e8eefc; }
.person { display: flex; gap: 8px; align-items: center; }
.letter {
  width: 28px; height: 28px; border-radius: 50%; background: #e8eefc; color: #24324a;
  display: grid; place-items: center; font-size: 12px; flex: none;
}
.person small { display: block; color: var(--faint); }
.cg-card { border: 1px solid var(--line); border-radius: 12px; padding: 10px; display: flex; flex-direction: column; gap: 8px; }
@media (max-width: 980px) {
  .aud-split, #view-aud .aud-split { grid-template-columns: 1fr; height: auto; }
  #view-aud .aud-form { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .parse-split, .mode-grid, .grid-2 { grid-template-columns: 1fr; }
}

@media (max-width: 980px) {
  .shell { grid-template-columns: 1fr; }
  .side { flex-direction: row; flex-wrap: wrap; align-items: center; }
  .logout { margin-top: 0; }
  .nav { flex-direction: row; flex-wrap: wrap; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .split { grid-template-columns: 1fr; }
  .space select { width: 100%; }
}

#view-dlg.dlg { gap: 0; background: #0e1116; color: #e8eaed; border-radius: 12px; overflow: hidden; flex: 1; min-height: 0; }
.dlg-spaces, .dlg-stages { display: flex; gap: 6px; align-items: center; padding: 8px 12px 0; background: #14181f; }
.dlg-stages { padding-bottom: 6px; border-bottom: 1px solid #232833; }
.dlg-spaces button[data-dlg-role], .dlg-stages button {
  background: transparent; border: 0; color: #b7c0d0; border-radius: 999px; padding: 7px 14px; cursor: pointer; font: inherit; font-size: 15px;
}
.dlg-spaces button.on, .dlg-stages button.on { background: #243044; color: #fff; }
.dlg-accs { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 12px; background: #14181f; border-bottom: 1px solid #232833; }
.dlg-accs button {
  border: 1px solid #2a3140; background: #12161c; color: #d5deea; border-radius: 999px; padding: 5px 10px; cursor: pointer; font: inherit; font-size: 13px;
}
.dlg-accs button.on { background: #243044; border-color: #4d6280; color: #fff; }
.dlg-accs b { margin-left: 6px; color: #c6f135; font-weight: 650; }
#view-dlg .dlg-people { width: 36px; height: 32px; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
#view-dlg .dlg-people svg { width: 18px; height: 18px; fill: currentColor; }
#view-dlg .dlg-accs:not(.open) { flex-wrap: nowrap; }
#view-dlg .dlg-chip-ava { width: 18px; height: 18px; border-radius: 50%; object-fit: cover; margin-right: 4px; vertical-align: -4px; }
#view-dlg .acc-hp { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex: none; }
#view-dlg .hp-ok { background: #3ecf8e; box-shadow: 0 0 0 2px rgba(62, 207, 142, 0.28); }
#view-dlg .hp-stale { background: #e6c15a; box-shadow: 0 0 0 2px rgba(230, 193, 90, 0.28); }
#view-dlg .hp-down { background: #f07178; box-shadow: 0 0 0 2px rgba(240, 113, 120, 0.28); }
#view-dlg .hp-unknown { background: #6e6e6e; }
#view-dlg .plat-chip { font-size: 10px; font-weight: 700; letter-spacing: 0.04em; border-radius: 4px; padding: 1px 4px; line-height: 1.4; }
#view-dlg .pc-tg { background: #1d3a5f; color: #8ec5ff; }
#view-dlg .pc-bot { background: #3a2a12; color: #e6c15a; }
#view-dlg .dlg-row b { display: flex; align-items: center; gap: 4px; min-width: 0; }
#view-dlg .dlg-title-txt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }#view-dlg .dlg-body { grid-template-columns: 380px 1fr; }
#view-dlg .dlg-row { grid-template-columns: 44px minmax(0, 1fr) auto; padding: 11px 12px; }
#view-dlg .dlg-row b { font-size: 15px; }
#view-dlg .dlg-row small { font-size: 13px; }
#view-dlg .dlg-ava-wrap, #view-dlg .dlg-letter { width: 44px; height: 44px; font-size: 16px; }
#view-dlg .bubble { font-size: 16px; line-height: 1.45; }
#view-dlg .dlg-head { font-size: 16px; }
#view-dlg .dlg-form { align-items: flex-end; flex-wrap: wrap; }
#view-dlg .dlg-form textarea {
  flex: 1; min-width: 180px; min-height: 64px; max-height: 180px; resize: vertical;
  background: #12161c; color: #e8eaed; border: 1px solid #2a3140; border-radius: 12px; padding: 10px 12px; font: 16px/1.45 inherit;
}
.dlg-tools { display: flex; gap: 2px; align-items: center; }
.dlg-tools button { background: transparent; border: 0; color: #d5deea; cursor: pointer; font: inherit; height: 40px; padding: 0 8px; border-radius: 8px; }
.dlg-tools button:hover, #dlg-mic.on { background: #1c2433; }
#dlg-mic.on { color: #ff8d8d; }
#dlg-when { background: #12161c; color: #e8eaed; border: 1px solid #2a3140; border-radius: 8px; padding: 8px; }
.tpl-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 8px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.tpl-row .sub { grid-column: 1 / -1; white-space: pre-wrap; }
#tpl-list { max-height: 240px; overflow: auto; margin-bottom: 8px; }
.dlg-top { display: flex; gap: 8px; align-items: center; padding: 10px 12px; background: #14181f; border-bottom: 1px solid #232833; }
.dlg-top select { background: #0e1116; color: #e8eaed; border: 1px solid #2a3140; border-radius: 8px; padding: 6px 8px; }
#dlg-note { color: #8b93a7; font-size: 12px; }
.dlg-body { display: grid; grid-template-columns: 300px 1fr; min-height: 0; flex: 1; }
.dlg-list { border-right: 1px solid #232833; display: flex; flex-direction: column; min-height: 0; background: #12161c; }
#dlg-q { margin: 8px; background: #0e1116; color: #e8eaed; border: 1px solid #2a3140; border-radius: 8px; padding: 8px 10px; }
#dlg-rows { overflow: auto; min-height: 0; }
.dlg-row { width: 100%; display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 8px 10px; cursor: pointer; border: 0; border-bottom: 1px solid #1c212b; background: transparent; color: inherit; text-align: left; min-width: 0; }
.dlg-row.on { background: #1c2433; }
.dlg-row > span { min-width: 0; }
.dlg-row b { font-weight: 600; font-size: 13px; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dlg-row small { color: #8b93a7; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: none; }
.dlg-row small .rr1, .dlg-row small .rr2 { margin-right: 4px; }
.dlg-meta { color: #8b93a7; font-size: 11px; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.dlg-when { display: inline-flex; align-items: center; gap: 4px; }
.dlg-ava-wrap { position: relative; width: 36px; height: 36px; }
.dlg-ava-wrap .dlg-letter, .dlg-ava-wrap img.dlg-ava { position: absolute; inset: 0; }
.dlg-kind, .dlg-pin { display: inline-flex; align-items: center; justify-content: center; line-height: 0; }
.dlg-kind { position: absolute; right: -3px; bottom: -3px; width: 16px; height: 16px; border-radius: 50%; background: #0e1116; box-shadow: 0 0 0 2px #0e1116; }
.dlg-kind svg, .dlg-pin svg { width: 12px; height: 12px; fill: currentColor; }
.dlg-pin { color: #8b93a7; }
.dlg-pin svg { width: 11px; height: 11px; }
.dlg-kind.k-channel { color: #6cb6ff; }
.dlg-kind.k-bot { color: #c6f135; }
.dlg-kind.k-group { color: #3ecf8e; }
.dlg-row.on .dlg-kind { background: #1c2433; box-shadow: 0 0 0 2px #1c2433; }
.dlg-badge { background: #3ddc84; color: #063; border-radius: 999px; min-width: 18px; height: 18px; font-size: 11px; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }
.dlg-letter { width: 36px; height: 36px; border-radius: 50%; background: #2a3344; display: flex; align-items: center; justify-content: center; font-size: 13px; flex: none; }
.dlg-thread { display: flex; flex-direction: column; min-height: 0; background: #0e1116; }
.dlg-head { padding: 12px 14px; border-bottom: 1px solid #232833; font-weight: 600; }
.dlg-pins { padding: 8px 12px; background: #1a2230; color: #c9d4ea; font-size: 12px; border-bottom: 1px solid #232833; }
.dlg-msgs { flex: 1; overflow: auto; padding: 12px; display: flex; flex-direction: column; gap: 8px; min-height: 0; }
.bubble { max-width: 72%; background: #1c2433; border-radius: 12px; padding: 8px 10px; font-size: 14px; white-space: pre-wrap; }
.bubble.out { align-self: flex-end; background: #1e3a5f; }
.bubble time { display: block; color: #8b93a7; font-size: 11px; text-align: right; margin-top: 4px; }
.bubble audio, .bubble img, .bubble video { max-width: 260px; display: block; margin-top: 6px; border-radius: 8px; }
.kb { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }
.kb button, .kb a { background: #16324f; color: #9ecbff; border: 1px solid #24507a; border-radius: 8px; padding: 6px 8px; text-align: center; text-decoration: none; font-size: 13px; cursor: pointer; }
.dlg-form { display: flex; gap: 8px; padding: 10px; border-top: 1px solid #232833; }
.dlg-form input[type="text"] { flex: 1; background: #12161c; color: #e8eaed; border: 1px solid #2a3140; border-radius: 8px; padding: 8px 10px; }
@media (max-width: 900px) { .dlg-body { grid-template-columns: 1fr; } }
.dlg-head { display: flex; align-items: center; gap: 10px; }
.dlg-head .btn { margin-left: 8px; flex: none; white-space: nowrap; }
.room-stats { margin-left: auto; display: flex; align-items: baseline; gap: 14px; font-size: 13px; font-weight: 500; white-space: nowrap; }
.room-stats #room-total { font-size: 15px; }
.room-online { color: #8d8d8d; }
.room-stats button { border: 0; background: transparent; padding: 0; }
.room-up { color: #3ecf8e; font-weight: 650; }
.room-down { color: #f07178; font-weight: 650; }
.room-up.on, .room-down.on { text-decoration: underline; }
.room-flow { max-height: 220px; overflow: auto; border-bottom: 1px solid #1c212b; background: #12161c; padding: 8px 14px 10px; font-size: 13px; }
.room-flow b { display: block; margin-bottom: 6px; color: #8d8d8d; font-size: 12px; font-weight: 500; }
.room-day { margin: 8px 0 4px; color: #c6f135; font-size: 12px; }
.room-setup { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 22px; margin: 12px 14px 0; padding: 14px 16px 12px; border: 1px solid #2a3140; border-radius: 14px; background: #161616; max-height: 48%; overflow: auto; }
.room-setup .set-span { grid-column: 1 / -1; }
.room-setup b { color: #c6f135; font-size: 12px; font-weight: 650; letter-spacing: .02em; }
.room-setup .check { display: flex; align-items: center; gap: 8px; font-size: 13px; margin: 0; padding: 4px 0; }
.room-setup .check input { accent-color: #c6f135; width: 15px; height: 15px; }
.room-setup .stack { gap: 6px; }
.room-setup select { background: #101010; color: #e8eaed; border: 1px solid #2a3140; border-radius: 8px; padding: 8px 10px; }
.room-link { display: flex; align-items: center; gap: 8px; min-width: 0; padding-top: 4px; border-top: 1px solid #2a3140; }
.room-link span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #b7c3d6; font-size: 12px; }
.room-setup-bar { display: flex; gap: 8px; }
.room-flow .room-person { display: flex; justify-content: space-between; gap: 12px; padding: 3px 0; }
.room-flow small { color: #8d8d8d; }
.dlg-who { display: flex; flex-direction: column; min-width: 0; }
.dlg-who small { color: #8b93a7; font-weight: 400; font-size: 12px; }
#dlg-ava { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
#dlg-letter { width: 36px; height: 36px; }
.dlg-row img.dlg-ava, #room-ava { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; flex: none; }
.msg-who { color: #8ec5ff; font-size: 12px; margin-bottom: 2px; }
.msg-author { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; margin-bottom: 5px; white-space: normal; }
.msg-author .msg-who { overflow-wrap: anywhere; margin-bottom: 0; }
.msg-sender-badge { color: #aab1bf; font-size: 10px; line-height: 1.5; border: 1px solid currentColor; border-radius: 5px; padding: 0 5px; }
.bubble.sender-invited { background: #17332f; box-shadow: inset 3px 0 #42caa4; }
.sender-invited .msg-sender-badge { color: #80e1c4; }
.bubble.sender-team { box-shadow: inset 3px 0 #a89ae3; }
.sender-team .msg-sender-badge { color: #c9bdf5; }
.sender-community .msg-sender-badge { color: #bde14b; }
.sender-attempt .msg-sender-badge { color: #e7c87a; }
.sender-participant .msg-sender-badge { color: #99c8f2; }
.sender-bot .msg-sender-badge { color: #aab1bf; }
.sender-unknown .msg-sender-badge { color: #aab1bf; }
.reply-quote { border-left: 2px solid #3d7dff; padding-left: 6px; color: #b7c3d6; font-size: 12px; cursor: pointer; margin-bottom: 4px; }
.reacts { margin-top: 4px; font-size: 13px; }
.meta { color: #8b93a7; font-size: 11px; text-align: right; margin-top: 4px; }
.rr2 { color: #7eb6ff; }
.rr1 { color: #8b93a7; }
.dlg-menu { position: fixed; z-index: 40; background: #1b2230; border: 1px solid #2c3548; border-radius: 10px; min-width: 190px; padding: 6px; box-shadow: 0 8px 24px rgba(0,0,0,.35); }
.dlg-menu button { display: block; width: 100%; text-align: left; background: transparent; color: #e8eaed; border: 0; padding: 7px 8px; cursor: pointer; border-radius: 6px; }
.dlg-menu button:hover { background: #243044; }
.dlg-menu .mm-re { display: flex; gap: 4px; padding: 4px 4px 6px; }
.dlg-menu .mm-re button { width: auto; padding: 4px 6px; }
.dlg-menu .mm-ask { padding: 6px 8px 4px; color: #f0a0a0; font-size: 12px; }
.mm-read { color: #9ecbff; font-size: 12px; padding: 6px 8px 2px; }
.vp { display: flex; align-items: center; gap: 8px; min-width: 230px; }
.vp-play, .vp-rate, .vp-tr { width: 32px; height: 32px; border-radius: 50%; border: 0; background: #24507a; color: #fff; cursor: pointer; flex: 0 0 auto; }
.vp-tr.on { background: #3d7dff; }
.vp-body { display: flex; flex-direction: column; gap: 2px; }
.vp-wave { position: relative; height: 22px; width: 148px; cursor: pointer; }
.vp-bars { display: flex; align-items: center; gap: 2px; height: 22px; }
.vp-bars i { display: block; width: 3px; background: #5d6b82; border-radius: 2px; }
.vp-fill { position: absolute; left: 0; top: 0; height: 22px; width: var(--vp-p, 0%); overflow: hidden; }
.vp-fill i { background: #9ecbff; }
.vp-time { color: #8b93a7; font-size: 11px; }
.voice-tr { margin-top: 6px; color: #d5deea; font-size: 13px; }
.dlg-reply, .dlg-fwd { display: flex; gap: 8px; align-items: center; padding: 6px 10px; background: #1a2230; color: #c9d4ea; font-size: 13px; }
.dlg-reply span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dlg-older { align-self: center; background: transparent; color: #9ecbff; border: 0; cursor: pointer; margin-bottom: 8px; }
.log-box { display: flex; flex-direction: column; gap: 6px; margin: 0 0 12px; min-height: 0; }
.log-h { color: var(--muted); font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; }
.parse-log {
  margin: 0;
  height: 180px;
  min-height: 72px;
  max-height: none;
  resize: vertical;
  overflow: auto;
  white-space: pre-wrap;
  word-break: break-word;
  background: var(--side);
  color: var(--side-text);
  border-radius: 10px;
  padding: 12px 14px;
  font: 12px/1.55 ui-monospace, Consolas, "Segoe UI Mono", monospace;
}

#view-parse {
  background: #0e0e0e;
  color: #f2f2f2;
  margin: -16px -18px -18px;
  padding: 16px 18px 18px;
}
#view-parse .sub, #view-parse .task-meta, #view-parse .dim { color: #8d8d8d; }
#view-parse h1 { color: #fff; }
#view-parse .stat, #view-parse .card {
  background: #161616;
  border-color: #2a2a2a;
  color: #f2f2f2;
}
#view-parse .stat b { color: #fff; }
#view-parse .stat.on b, #view-aud .stat.on b { color: #142000; }
.acc-folders { display: flex; flex-wrap: wrap; gap: 8px; }
.acc-folders button {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: 6px 12px;
}
.acc-folders button.on { background: #142000; color: #c6f135; border-color: #142000; }
.rooms-split {
  display: grid;
  grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
  flex: 1;
  min-height: 0;
  background: #0e1116;
  color: #e8eaed;
  border-radius: 12px;
  overflow: hidden;
}
.room-side, .rooms-split .dlg-thread { min-width: 0; min-height: 0; overflow: hidden; }
.room-roles { display: flex; gap: 6px; padding: 8px; border-bottom: 1px solid #1c212b; }
.room-roles button { border: 1px solid #2a3140; background: transparent; color: #8d8d8d; border-radius: 999px; height: 28px; padding: 0 12px; }
.room-roles button.on { background: #142000; color: #c6f135; border-color: #142000; }
.room-tree { overflow: auto; min-height: 0; flex: 1; }
.room-new { display: flex; gap: 6px; align-items: center; padding: 8px; }
.room-new input { flex: 1; min-width: 0; }
.room-new .btn { flex: none; white-space: nowrap; }
.room-fold input { flex: 1; min-width: 0; }
.room-fold, .room-acc {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  text-align: left;
  background: transparent;
  color: inherit;
  border: 0;
  border-bottom: 1px solid #1c212b;
  padding: 10px 12px;
  cursor: pointer;
  min-width: 0;
}
.room-fold.on, .room-acc.on { background: #1c2433; }
.room-fold b, .room-acc b {
  font-weight: 600;
  font-size: 13px;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.room-fold small { margin: 0 0 0 auto; white-space: nowrap; flex: none; }
.room-acc { padding-left: 22px; }
.room-tools { display: flex; align-items: center; gap: 6px; margin-left: auto; flex: none; }
.room-tool { border: 0; background: transparent; color: #8d8d8d; cursor: pointer; font-size: 12px; padding: 0 2px; }
.room-tool.on { color: #c6f135; }
.room-mini { font-size: 11px; color: #8d8d8d; }
.room-mini.on { color: #3ecf8e; }
.room-arch { background: #141820; }
.room-bulk { display: flex; align-items: center; gap: 8px; padding: 6px 12px 8px 28px; background: #142000; }
.room-bulk b { color: #c6f135; font-size: 12px; font-weight: 600; }
.dlg-row.pick { box-shadow: inset 3px 0 0 #c6f135; }
.dlg-arch { color: #f0a0a0; font-size: 11px; font-weight: 500; margin-left: 6px; }
.room-log-wrap { border-top: 1px solid #1c212b; padding: 8px 10px 10px; max-height: 168px; display: flex; flex-direction: column; min-height: 0; }
.room-log-wrap b { color: #8d8d8d; font-size: 11px; font-weight: 600; }
.room-log { margin: 4px 0 0; white-space: pre-wrap; overflow: auto; color: #c9d4ea; font-size: 11px; line-height: 1.35; font-family: inherit; }
.room-common { padding: 8px 14px; border-bottom: 1px solid #1c212b; color: #b7c3d6; font-size: 12px; }
#view-warm { gap: 10px; }
#view-warm .page-head { align-items: flex-start; }
#view-warm .acc-tools { align-items: flex-end; }
#view-warm .warm-extra {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #2a2a2a;
  border-radius: 10px;
  background: #161616;
}
#view-warm .warm-extra .stack { min-width: 0; }
#view-warm .warm-extra .check { height: 34px; white-space: nowrap; }
.activ-split { display: grid; grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); gap: 12px; min-height: 0; flex: 1; }
.activ-main { min-height: 0; overflow: auto; display: flex; flex-direction: column; gap: 12px; }
.activ-lab { padding: 12px; display: flex; flex-direction: column; gap: 8px; }
.activ-thread { display: flex; flex-direction: column; gap: 8px; }
.activ-turn { border-top: 1px solid var(--line); padding-top: 8px; }
.activ-turn b { font-weight: 550; }
.activ-turn .sub { margin-top: 4px; }
.activ-list, .activ-card { overflow: auto; padding: 12px; display: flex; flex-direction: column; gap: 8px; min-height: 0; }
.activ-row { text-align: left; background: transparent; border: 1px solid transparent; border-radius: 8px; padding: 8px 10px; cursor: pointer; }
.activ-row b { display: block; font-weight: 550; }
.activ-row small { color: var(--muted); }
.activ-row.on { border-color: var(--blue); background: #142000; }
.activ-card textarea { min-height: 72px; }
.activ-card select, .activ-card input, .activ-card textarea { width: 100%; }
.pair-inputs { display: flex; gap: 4px; }
.pair-inputs input { width: 72px; }
.warm-head { color: var(--muted); }
.warm-help { padding: 12px 14px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.warm-help p { margin: 0 0 6px; }
.warm-help p:last-child { margin: 0; }
.warm-help b { color: var(--text); font-weight: 600; }
#warm-start { background: #c6f135; border-color: #c6f135; color: #142000; font-weight: 650; }
#warm-start:disabled { opacity: 1; background: #1c1c1c; border-color: #333; color: #8d8d8d; font-weight: 500; }
#warm-forecast, #warm-note { min-height: 1.2em; }
.warm-list { padding: 4px 12px; display: grid; max-height: 360px; overflow: auto; }
.warm-list label.warm-head { grid-template-columns: 18px 1fr; }
.warm-list label {
  display: grid;
  grid-template-columns: 18px minmax(0, 1.3fr) minmax(0, 1fr) minmax(140px, 1fr);
  gap: 10px;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid #1c212b;
}
.warm-list input { accent-color: #c6f135; margin: 0; }
.warm-list input:disabled { opacity: 0.35; }
.warm-list b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.warm-list .grow { color: #8d8d8d; font-size: 12px; text-align: left; min-width: 0; }
.warm-list .warm-detail { color: #d5d5d5; font-size: 12px; max-width: none; text-align: right; min-width: 0; }
#view-warm .btn.stop {
  background: #ff5d52;
  border-color: #ff5d52;
  color: #2a0c0a;
  font-weight: 700;
  min-width: 76px;
}
#view-warm .btn.stop:hover { background: #ff766d; }
.warm-badge { font-size: 11px; font-weight: 550; padding: 3px 8px; border-radius: 99px; border: 1px solid var(--line); color: var(--muted); white-space: nowrap; }
.warm-badge.run { color: #142000; background: var(--blue); border-color: var(--blue); }
.warm-badge.done { color: var(--ok); border-color: #1e4a36; }
.warm-badge.stop, .warm-badge.bad { color: var(--bad); border-color: #5a3030; }
.warm-squares { display: flex; flex-wrap: wrap; gap: 4px; }
.warm-squares i { width: 28px; height: 22px; border-radius: 4px; border: 1px solid var(--line); display: grid; place-items: center; font-style: normal; font-size: 10px; color: var(--muted); }
.warm-squares i.on { background: var(--blue); color: #142000; border-color: var(--blue); }
.warm-history { padding: 4px 12px; height: 160px; min-height: 72px; max-height: 50vh; resize: vertical; overflow: auto; }
.warm-history div { display: flex; gap: 12px; padding: 7px 0; border-bottom: 1px solid #1c212b; color: var(--muted); font-size: 12px; }
#warm-log {
  margin: 0;
  height: 420px;
  min-height: 160px;
  max-height: 80vh;
  resize: vertical;
  overflow: auto;
  white-space: normal;
  padding: 8px 10px;
}
.warm-line { display: flex; gap: 10px; align-items: baseline; padding: 2px 0; color: #c9c9c9; font-size: 12px; line-height: 1.45; }
.warm-line time { flex: none; color: #6f6f6f; font-variant-numeric: tabular-nums; }
.warm-line span { min-width: 0; white-space: pre-wrap; }
.warm-line.ok { color: #c6f135; }
.warm-line.wait { color: #8d8d8d; }
.warm-line.bad { color: #ff8d86; }
.warm-line.info { color: #e8e8e8; }
.room-kids .dlg-row { padding-left: 10px; }
.geo-cell { white-space: nowrap; }
.geo-cell .flag { width: 22px; height: 15px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(255,255,255,.28); vertical-align: -3px; margin-right: 6px; }
.pf-file { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pf-file .sub { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.room-x { margin-left: auto; flex: none; color: #8b93a7; background: transparent; border: 0; cursor: pointer; padding: 0 4px; }
.room-words { padding: 0 10px 8px; }
.room-words summary { cursor: pointer; color: #8d8d8d; font-size: 12px; }
.room-words textarea { width: 100%; margin-top: 6px; background: #12161c; color: #e8eaed; border: 1px solid #2a3140; border-radius: 8px; }
.rooms-split .dlg-form button { flex: none; white-space: nowrap; }
.rooms-split .dlg-who { min-width: 0; }
.rooms-split .dlg-who b, .rooms-split .dlg-who small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#view-rooms {
  background: #0e0e0e;
  color: #f2f2f2;
  margin: -16px -18px -18px;
  padding: 16px 18px 12px;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}
#view-rooms .page-head { flex: none; align-items: flex-start; }
#view-rooms .page-head .btn { flex: none; white-space: nowrap; }
#view-rooms h1, #view-rooms .parse-pane-h { color: #fff; }
#view-rooms .sub { color: #8d8d8d; }
#view-rooms .card { background: #161616; border-color: #2a2a2a; color: #f2f2f2; }
#view-rooms .btn { background: #1c1c1c; border-color: #333; color: #eee; }
#view-rooms .btn.solid { background: #c6f135; border-color: #c6f135; color: #142000; }
#view-rooms select, #view-rooms textarea, #view-rooms input {
  background: #101010;
  color: #eee;
  border: 1px solid #333;
}
#view-parse #parse-stop { color: #f0a0a0; border-color: #5a3030; }
#view-parse #parse-stop:disabled { opacity: 0.6; }
#view-parse .btn.solid {
  background: #c6f135;
  border-color: #c6f135;
  color: #142000;
}
#view-parse .btn { background: #1c1c1c; border-color: #333; color: #eee; }
#view-parse .parse-who { margin: 0 0 12px; padding: 12px 14px; }
#view-parse .parse-who .hit {
  display: block;
  width: 100%;
  text-align: left;
  border: 1px solid #2c2c2c;
  background: #141414;
  color: #eee;
  border-radius: 10px;
  padding: 8px 10px;
  margin-top: 8px;
  cursor: pointer;
}
#view-parse .parse-who .hit b { color: #fff; }
#view-parse .parse-who .hit span { display: block; color: #9a9a9a; font-size: 12px; margin-top: 2px; }
#view-parse .parse-who .hit:hover { border-color: #c6f135; }
#view-parse .parse-split {
  grid-template-columns: 360px minmax(0, 1fr);
  height: calc(100vh - 220px);
  min-height: 320px;
  align-items: stretch;
}
#view-parse .parse-pane { height: 100%; overflow: hidden; }
#view-parse .parse-tasks, #view-parse .parse-result { flex: 1; min-height: 0; }
#view-parse .parse-log { height: auto; min-height: 160px; max-height: none; resize: none; }
#view-parse .log-grip {
  position: sticky;
  bottom: 0;
  height: 14px;
  margin-top: 4px;
  cursor: ns-resize;
  background: #161616;
  flex: none;
  z-index: 2;
}
#view-parse .log-grip::before {
  content: "";
  display: block;
  width: 46px;
  height: 4px;
  margin: 5px auto 0;
  border-radius: 4px;
  background: #3a3a3a;
}
#view-parse .log-grip:hover::before { background: #c6f135; }
#view-parse .task {
  border: 1px solid #2c2c2c;
  background: #141414;
  border-radius: 12px;
  padding: 12px;
  gap: 6px;
  margin-bottom: 8px;
}
#view-parse .task.on { border-color: #3ecf8e; box-shadow: 0 0 0 1px #3ecf8e; background: #141414; }
#view-parse .task:hover { background: #1a1a1a; }
#view-parse .task b { color: #fff; font-weight: 650; word-break: break-all; }
#view-parse .task-top, #view-parse .task-tools { display: flex; align-items: flex-start; gap: 8px; }
#view-parse .task-top { justify-content: space-between; }
#view-parse .task-tools { align-items: center; flex: none; }
#view-parse .task-meta, #view-parse .task-counts { font-size: 12px; }
#view-parse .task-counts { color: #ddd; }
#view-parse .task-counts .raw { color: #fff; font-weight: 700; }
#view-parse .task-counts .kept { color: #3ecf8e; font-weight: 650; margin-left: 8px; }
#view-parse .task-del {
  width: 22px; height: 22px; display: grid; place-items: center;
  color: #8d8d8d; border-radius: 6px; font-size: 14px;
}
#view-parse .task-del:hover { background: #2a2a2a; color: #fff; }
.task-ask { display: inline-flex; align-items: center; gap: 6px; color: #f0a0a0; font-size: 12px; white-space: nowrap; }
.task-yes, .task-no { border: 0; border-radius: 6px; padding: 2px 8px; cursor: pointer; }
.task-yes { background: #3a1a1a; color: #f0a0a0; }
.task-no { background: #1c1c1c; color: #ddd; }
.room-new { display: flex; gap: 6px; align-items: center; }
.room-new input { flex: 1; min-width: 0; }
#view-parse .task-ask { display: flex; align-items: center; gap: 6px; color: #f0a0a0; font-size: 12px; white-space: nowrap; }
#view-parse .task-yes, #view-parse .task-no { border-radius: 6px; padding: 2px 8px; }
#view-parse .task-yes { background: #3a1a1a; color: #f0a0a0; }
#view-parse .task-no { background: #1c1c1c; color: #ddd; }
#view-parse .badge.ok { background: #16351f; color: #8ee0b0; }
#view-parse .badge.warn { background: #33280f; color: #e6c36a; }
#view-parse .badge.bad { background: #3a1a1a; color: #f0a0a0; }
#view-parse .parse-result th { background: #161616; color: #8a8a8a; border-bottom-color: #2a2a2a; text-transform: uppercase; letter-spacing: 0.04em; }
#view-parse .parse-result td { border-top-color: #242424; color: #eee; }
#view-parse .parse-result tr:hover td { background: #1c1c1c; }
#view-parse .letter { background: #2a2a2a; color: #ddd; }
#view-parse .person small { color: #8d8d8d; }
#view-parse .via-tabs button { background: #1c1c1c; border: 1px solid #333; color: #ccc; border-radius: 999px; height: 28px; padding: 0 10px; }
#view-parse .via-tabs button.on { background: #c6f135; border-color: #c6f135; color: #142000; font-weight: 650; }
#view-parse .closed-lists {
  margin: 12px 0 4px;
  padding: 12px 14px;
  border: 1px solid #4a3d18;
  background: #1c1a14;
  border-radius: 12px;
}
#view-parse .closed-lists b { display: block; margin-bottom: 4px; }
#view-parse .closed-lists pre {
  margin: 8px 0 10px;
  white-space: pre-wrap;
  font: 13px/1.45 ui-monospace, monospace;
  color: #eee;
}
#view-parse .task-info {
  display: grid;
  gap: 6px;
  margin: 0 0 12px;
  padding: 10px 12px;
  border: 1px solid #2a2a2a;
  border-radius: 10px;
  background: #141414;
}
#view-parse .task-info div { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; }
#view-parse .task-info span { color: #8d8d8d; }
#view-parse .log-fold { margin-top: 12px; }
#view-parse .log-fold summary { cursor: pointer; color: #8d8d8d; font-size: 12px; }
#view-parse .parse-empty { color: #8d8d8d; }

#view-aud {
  background: #0e0e0e;
  color: #f2f2f2;
  margin: -16px -18px -18px;
  padding: 16px 18px 18px;
}
#view-aud h1, #view-aud .parse-pane-h, #view-aud b { color: #fff; }
#view-aud .sub { color: #8d8d8d; }
#view-aud .card {
  background: #161616;
  border-color: #2a2a2a;
  color: #f2f2f2;
}
#view-aud .btn.solid { background: #c6f135; border-color: #c6f135; color: #142000; }
#view-aud .btn { background: #1c1c1c; border-color: #333; color: #eee; }
#view-aud .aud-split {
  grid-template-columns: 220px 280px minmax(0, 1fr);
  height: calc(100vh - 168px);
  min-height: 360px;
  align-items: stretch;
}
#view-aud .parse-pane { height: 100%; overflow: hidden; }
#view-aud .parse-tasks, #view-aud .parse-result { flex: 1; min-height: 0; }
#view-aud .task {
  border: 0;
  background: transparent;
  box-shadow: none;
  border-radius: 8px;
  padding: 8px 12px;
  margin: 0 0 4px;
  min-height: 36px;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: #eee;
}
#view-aud .task:hover { background: #1c1c1c; }
#view-aud .aud-group.on { background: #c6f135; color: #142000; }
#view-aud .aud-group.on b, #view-aud .aud-group.on span, #view-aud .aud-group.on .aud-count { color: #142000; }
#view-aud .aud-group .task-del { opacity: 0; }
#view-aud .aud-group:hover .task-del, #view-aud .aud-group.on .task-del { opacity: 1; }
#view-aud .aud-row {
  border: 1px solid #2a2a2a;
  background: #141414;
  border-radius: 10px;
  padding: 10px 12px;
}
#view-aud .aud-row.on { border-color: #3ecf8e; background: #141414; }
#view-aud .aud-row:hover { background: #1a1a1a; }
#view-aud .aud-row-main { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; }
#view-aud .aud-row-main span { color: #8d8d8d; font-size: 12px; }
#view-aud .aud-chev { color: #666; font-size: 20px; line-height: 1; }
#view-aud .aud-icon { width: 34px; padding: 0; }
#view-aud .task-top { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
#view-aud .aud-side { display: flex; align-items: center; gap: 6px; }
#view-aud .task-del {
  width: 22px; height: 22px; display: inline-grid; place-items: center;
  color: #8d8d8d; border-radius: 6px;
}
#view-aud .aud-group.on .task-del { color: #142000; }
#view-aud .task-del:hover { background: #2a2a2a; color: #fff; }
#view-aud .aud-form {
  display: grid;
  grid-template-columns: 1fr 1fr 1.4fr auto auto;
  gap: 8px;
}
#view-aud .aud-form input {
  background: #101010;
  border: 1px solid #333;
  color: #fff;
  border-radius: 8px;
  height: 34px;
  padding: 0 10px;
}
#view-aud .aud-person {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 4px;
  border-bottom: 1px solid #242424;
}
#view-aud .aud-person-main { flex: 1; min-width: 0; }
#view-aud .aud-person-main b { display: block; font-weight: 650; }
#view-aud .aud-person-main small { display: block; color: #8d8d8d; }
#view-photo .photo-layout { display: grid; grid-template-columns: 320px 1fr; gap: 12px; min-height: 0; flex: 1; }
#view-photo .photo-form { padding: 12px; display: flex; flex-direction: column; gap: 10px; overflow: auto; }
#photo-line { white-space: pre-wrap; max-height: 240px; overflow: auto; line-height: 1.45; margin-top: auto; }
#view-photo .photo-lib { min-width: 0; min-height: 0; display: flex; flex-direction: column; gap: 12px; overflow: auto; }
#view-photo .photo-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
#view-photo .photo-col { padding: 10px 12px; min-height: 160px; }
#view-photo .photo-packs { display: flex; flex-direction: column; gap: 8px; }
#view-photo .photo-pack {
  display: flex; flex-direction: column; align-items: flex-start; gap: 3px;
  width: 100%; text-align: left; background: #111; border: 1px solid var(--line);
  border-radius: 10px; padding: 10px 12px; cursor: pointer;
}
#view-photo .photo-pack:hover { border-color: var(--blue); }
#view-photo .photo-pack > b { color: var(--text); margin-bottom: 4px; }
#view-photo .photo-pack small { color: var(--muted); }
#view-photo .photo-stat {
  display: flex; align-items: center; gap: 8px; width: 100%;
  color: var(--muted); font-size: 13px;
}
#view-photo .photo-stat svg { width: 15px; height: 15px; flex: none; }
#view-photo .photo-stat b { margin-left: auto; color: var(--text); font-weight: 600; }
#view-photo .photo-meta { display: block; margin-top: 6px; }
#view-photo .photo-open { padding: 12px; }
#view-photo .photo-open-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
#view-photo .photo-open-stats { max-width: 280px; margin-top: 8px; display: flex; flex-direction: column; gap: 3px; }
#view-photo .photo-person { margin-top: 0; border-top: 1px solid var(--line); }
#view-photo .photo-person summary {
  cursor: pointer; list-style: none; display: flex; flex-wrap: wrap; gap: 6px 8px;
  align-items: center; padding: 10px 4px 10px 22px; position: relative;
}
#view-photo .photo-person summary::-webkit-details-marker { display: none; }
#view-photo .photo-person summary::marker { content: ""; }
#view-photo .photo-person summary::before {
  content: ""; position: absolute; left: 4px; top: 50%; margin-top: -4px;
  border-width: 4px 0 4px 6px; border-style: solid;
  border-color: transparent transparent transparent var(--muted);
}
#view-photo .photo-person[open] summary::before {
  margin-top: -2px; border-width: 6px 4px 0 4px;
  border-color: var(--muted) transparent transparent transparent;
}
#view-photo .photo-person summary b,
#view-photo .photo-person summary .photo-nick { color: var(--text); }
#view-photo .photo-drop { margin-left: auto; }
#view-photo .photo-chip {
  color: var(--muted); border: 1px solid var(--line); border-radius: 999px;
  padding: 1px 8px; font-size: 12px;
}
#view-photo .photo-grid { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 10px 22px; align-items: flex-start; }
#view-photo .photo-grid img { width: 96px; height: 96px; object-fit: cover; border-radius: 8px; background: #111; }
#view-photo .photo-shot { margin: 0; width: 96px; }
#view-photo .photo-shot figcaption { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.3; }
#view-photo .photo-later img { opacity: 0.38; }
#view-photo .photo-now-note,
#view-photo .photo-later-note { margin: 8px 0 4px; color: var(--muted); }
#view-photo .photo-bio { margin: 0 0 8px 22px; white-space: pre-wrap; color: var(--text); }
#view-photo .photo-bio span { color: var(--muted); margin-right: 6px; }
#view-photo .photo-bound { margin-bottom: 12px; }
#view-photo .photo-bound-wrap { border: 1px solid var(--line); border-radius: 12px; }
#view-photo .photo-bound-h { margin: 0; font-weight: 650; display: flex; align-items: center; gap: 8px; cursor: pointer; padding: 10px 12px; list-style: none; }
#view-photo .photo-bound-h::-webkit-details-marker { display: none; }
#view-photo .photo-bound-h .btn { margin-left: auto; }
#view-photo .photo-bound-list { padding: 0 10px 10px; }
#view-photo .photo-bound-split { margin: 10px 2px 2px; color: var(--muted); font-size: 12px; }
#view-photo a.photo-open { color: var(--muted); font-size: 12px; text-decoration: none; }
#view-photo a.photo-open:hover { color: var(--text); }
#view-photo .photo-bound-card {
  border: 1px solid var(--line); border-radius: 10px; padding: 0 12px; margin-top: 8px;
  display: block;
}
#view-photo .photo-bound-card summary {
  cursor: pointer; list-style: none; display: flex; gap: 10px;
  align-items: center; padding: 10px 4px 10px 22px; position: relative;
}
#view-photo .bound-ava-wrap { width: 42px; height: 42px; flex: 0 0 auto; }
#view-photo .bound-ava {
  width: 42px; height: 42px; border-radius: 50%; object-fit: cover; flex: 0 0 auto;
  background: #2c2418; border: 1px solid var(--line);
}
#view-photo .bound-letter {
  display: inline-flex; align-items: center; justify-content: center;
  color: #f2d7a2; font-weight: 700;
}
#view-photo .bound-main { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1; }
#view-photo .bound-line { display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; }
#view-photo .photo-chip.ok { color: #d7f5c8; border-color: #3d6b32; }
#view-photo .photo-chip.bad { color: #ffb4b4; border-color: #8a3030; background: #2a1212; }
#view-photo .photo-bound-card summary::-webkit-details-marker { display: none; }
#view-photo .photo-bound-card summary::marker { content: ""; }
#view-photo .photo-bound-card summary::before {
  content: ""; position: absolute; left: 4px; top: 50%; margin-top: -4px;
  border-width: 4px 0 4px 6px; border-style: solid;
  border-color: transparent transparent transparent var(--muted);
}
#view-photo .photo-bound-card[open] summary::before {
  margin-top: -2px; border-width: 6px 4px 0 4px;
  border-color: var(--muted) transparent transparent transparent;
}
#view-photo .photo-bound-body { padding: 0 0 10px 22px; }
#view-photo .photo-bound-card .photo-grid { width: 100%; margin: 4px 0 0; }
#view-photo .photo-bound-who { font-weight: 650; }
#view-photo .photo-bound-donor { color: var(--muted); }
#view-photo .photo-bound-donor b,
#view-photo .photo-copy { color: var(--text); }
#view-photo .photo-copy {
  border: 0; background: transparent; padding: 0; cursor: pointer; font: inherit;
}
#view-photo .photo-bound-note { margin: 6px 0 0; color: var(--muted); }
#view-photo .photo-bound-logbox { margin-top: 8px; }
#view-photo .photo-bound-logbox > summary { cursor: pointer; color: var(--muted); }
#view-photo .photo-bound-log {
  margin: 6px 0 0; max-height: 160px; overflow: auto; white-space: pre-wrap;
  color: var(--text); font: 12px/1.45 Consolas, ui-monospace, monospace;
}
#view-photo .photo-bound-card .photo-bio { margin: 0; }
#view-photo .photo-bound-card .btn { margin-top: 8px; }
#photo-viewer {
  position: fixed; inset: 0; z-index: 80; display: flex; align-items: center; justify-content: center;
  background: rgba(0,0,0,.82); padding: 24px;
}
#photo-viewer[hidden] { display: none; }
#photo-viewer img { max-width: min(920px, 86vw); max-height: 86vh; object-fit: contain; border-radius: 8px; }
#photo-viewer .photo-view-x,
#photo-viewer .photo-view-prev,
#photo-viewer .photo-view-next {
  position: absolute; border: 0; background: transparent; color: #fff; cursor: pointer; font-size: 32px;
}
#photo-viewer .photo-view-x { top: 12px; right: 16px; }
#photo-viewer .photo-view-prev { left: 12px; }
#photo-viewer .photo-view-next { right: 12px; }
#photo-viewer .photo-view-count { position: absolute; bottom: 16px; color: #ddd; font-size: 13px; }
.donor-line { display: block; margin-top: 6px; font-size: 12px; color: var(--muted); }
.donor-line a { color: var(--blue, #9ecbff); text-decoration: none; }
.donor-line a:hover { text-decoration: underline; }
@media (max-width: 980px) {
  #view-photo .photo-layout, #view-photo .photo-cols { grid-template-columns: 1fr; }
}
#view-aud .letter { background: #2a2a2a; color: #ddd; }
.bots-list { display: flex; flex-direction: column; gap: 10px; }
.bots-card { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
.bots-card b { margin-right: 8px; }
.bots-card div { margin-top: 4px; color: var(--muted, #9a9a9a); font-size: 13px; }
.bots-card .photo-copy { border: 0; background: transparent; padding: 0; cursor: pointer; font: inherit; color: var(--text, #eee); }
.bots-card a.photo-open { color: var(--muted, #9a9a9a); margin-left: 6px; }

.launch-wrap { display: flex; flex-direction: column; gap: 10px; }
.launch-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.launch-head h2 { margin: 0; font-size: 16px; font-weight: 650; letter-spacing: -0.02em; }
#launch-grid { display: flex; flex-direction: column; gap: 16px; }
.launch-section { display: flex; flex-direction: column; gap: 8px; }
.launch-section-head { display: flex; align-items: center; gap: 8px; color: #f2f2f2; font-size: 13px; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.launch-group-name {
  width: min(280px, 46vw); background: transparent; border: 0; border-bottom: 1px solid transparent;
  color: inherit; font: inherit; letter-spacing: inherit; text-transform: uppercase; padding: 2px 0;
}
.launch-group-name:focus { outline: none; border-bottom-color: #5eecc0; }
.launch-card.tone-group { box-shadow: inset 3px 0 0 #3ecf8e; }
.launch-card.tone-channel { box-shadow: inset 3px 0 0 #5aa8ff; }
.launch-card.tone-bot { box-shadow: inset 3px 0 0 #c6f135; }
.launch-card.tone-user { box-shadow: inset 3px 0 0 #b48cff; }
.launch-section-head .dlg-kind { position: static; width: 26px; height: 26px; border-radius: 8px; box-shadow: none; }
.launch-section-head .dlg-kind svg { width: 15px; height: 15px; }
.launch-section.is-group .launch-section-head,
.launch-section-head.is-group { color: #5eecc0; }
.launch-section.is-group .dlg-kind,
.launch-section-head.is-group .dlg-kind { background: #123828; color: #5eecc0; }
.launch-section.is-group .launch-card { box-shadow: inset 3px 0 0 #3ecf8e; }
.launch-section.is-channel .launch-section-head,
.launch-section-head.is-channel { color: #8ec8ff; }
.launch-section.is-channel .dlg-kind,
.launch-section-head.is-channel .dlg-kind { background: #14283f; color: #8ec8ff; }
.launch-section.is-channel .launch-card { box-shadow: inset 3px 0 0 #5aa8ff; }
.launch-section.is-bot .launch-section-head,
.launch-section-head.is-bot { color: #dff86a; }
.launch-section.is-bot .dlg-kind,
.launch-section-head.is-bot .dlg-kind { background: #2c320c; color: #dff86a; }
.launch-section.is-bot .launch-card { box-shadow: inset 3px 0 0 #c6f135; }
.launch-section.is-user .launch-section-head,
.launch-section-head.is-user { color: #d2b0ff; }
.launch-section.is-user .dlg-kind,
.launch-section-head.is-user .dlg-kind { background: #2a1d3d; color: #d2b0ff; }
.launch-section.is-user .launch-card { box-shadow: inset 3px 0 0 #b48cff; }
.launch-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.launch-log {
  margin-top: 14px;
  border: 1px solid #2a2a2a;
  border-radius: 14px;
  background: #141414;
  overflow: hidden;
}
.launch-log-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px 8px;
}
.launch-log-head h2 { margin: 0; font-size: 15px; }
.launch-log-list { max-height: 320px; overflow: auto; padding: 0 8px 8px; }
.launch-log-item {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 10px;
  align-items: start;
  padding: 8px 8px;
  border-radius: 10px;
}
.launch-log-item + .launch-log-item { margin-top: 2px; }
.launch-log-item time { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.launch-log-item b { display: block; font-size: 13px; }
.launch-log-item span { color: #d7d7d7; font-size: 13px; }
.launch-log-item.is-copy { background: #1c220c; }
.launch-log-item.is-request { background: #241c0c; }
.launch-log-item.is-sent { background: #102218; }
.launch-log-item.is-join { background: #101c28; }
.launch-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 12px 14px 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.launch-card.ready { border-color: #245c40; }
.launch-card.gap { border-color: #6a3030; }
.launch-card.later { opacity: 0.72; }
.launch-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.launch-kicker { display: flex; align-items: center; gap: 6px; color: var(--faint); font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; }
.launch-kicker .dlg-kind { position: static; width: 16px; height: 16px; border-radius: 5px; box-shadow: none; background: transparent; }
.launch-kicker .dlg-kind svg { width: 14px; height: 14px; }
.launch-ava-wrap .dlg-kind { right: -4px; bottom: -4px; width: 18px; height: 18px; border-radius: 6px; box-shadow: 0 0 0 2px var(--card); }
.launch-card.tone-group .dlg-kind { color: #5eecc0; }
.launch-card.tone-group .launch-kicker { color: #5eecc0; }
.launch-card.tone-group .launch-ava-wrap .dlg-kind { background: #123828; }
.launch-card.tone-channel .dlg-kind { color: #8ec8ff; }
.launch-card.tone-channel .launch-kicker { color: #8ec8ff; }
.launch-card.tone-channel .launch-ava-wrap .dlg-kind { background: #14283f; }
.launch-card.tone-bot .dlg-kind { color: #dff86a; }
.launch-card.tone-bot .launch-kicker { color: #dff86a; }
.launch-card.tone-bot .launch-ava-wrap .dlg-kind { background: #2c320c; }
.launch-card.tone-user .dlg-kind { color: #d2b0ff; }
.launch-card.tone-user .launch-kicker { color: #d2b0ff; }
.launch-card.tone-user .launch-ava-wrap .dlg-kind { background: #2a1d3d; }
.launch-name { font-size: 15px; font-weight: 650; letter-spacing: -0.02em; margin-top: 2px; }
.launch-pill {
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 650;
  border-radius: 999px;
  padding: 3px 8px;
  background: #243014;
  color: var(--blue);
}
.launch-card.ready .launch-pill { background: var(--ok-bg); color: var(--ok); }
.launch-card.is-watch .launch-pill { background: #123828; color: #5eecc0; }
.launch-card.gap .launch-pill { background: var(--bad-bg); color: var(--bad); }
.launch-card.later .launch-pill { background: #1c1c1c; color: var(--muted); }
.launch-note {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.launch-log-people { margin-top: 4px; display: flex; flex-direction: column; gap: 2px; }
.launch-log-people div { color: #d7d7d7; font-size: 12px; line-height: 1.35; }
.launch-link {
  color: var(--blue);
  text-decoration: none;
  font-size: 12px;
  font-weight: 650;
}
.launch-link:hover { text-decoration: underline; }
.launch-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.launch-checks li {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-size: 12px;
  border-top: 1px solid var(--line);
  padding-top: 4px;
}
.launch-checks span { color: var(--muted); }
.launch-checks b { font-weight: 550; text-align: right; }
.launch-checks b.yes { color: var(--ok); }
.launch-checks b.no { color: var(--bad); }
.launch-checks b.maybe { color: var(--muted); }
.launch-card { cursor: pointer; }
.launch-card .launch-link, .launch-card .launch-copy { cursor: pointer; }
.launch-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.launch-copy {
  border: 0; background: transparent; padding: 0; color: var(--blue);
  font-size: 12px; font-weight: 650; cursor: pointer;
}
.launch-sheet { width: min(760px, 100%); max-height: min(860px, 90vh); overflow: auto; }
.launch-block { display: flex; flex-direction: column; gap: 8px; }
.launch-block h3 { margin: 8px 0 0; font-size: 13px; font-weight: 650; }
.launch-stat { display: flex; flex-direction: column; gap: 3px; font-size: 12px; }
.launch-people { color: var(--text); }
.launch-stat-line { display: flex; gap: 10px; align-items: baseline; }
.launch-stat-line span { width: 78px; color: var(--muted); }
.launch-stat-line .up { color: #3ecf8e; font-weight: 650; }
.launch-stat-line .down { color: #ff8d8d; font-weight: 650; }
.launch-stat-line .shut { color: #e2c36a; font-weight: 650; }
.launch-owner-line { align-items: center; min-width: 0; }
.launch-owner-name { color: var(--text); font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.launch-ava-wrap.mini, .launch-ava-wrap.mini .launch-letter { width: 18px; height: 18px; border-radius: 6px; font-size: 10px; }
.launch-top { align-items: center; }
.launch-ava { width: 38px; height: 38px; border-radius: 12px; object-fit: cover; background: #222; flex: 0 0 auto; }
.launch-ava-wrap { position: relative; width: 38px; height: 38px; flex: 0 0 auto; }
.launch-ava-wrap .launch-ava { position: absolute; inset: 0; width: 100%; height: 100%; }
.launch-letter { width: 38px; height: 38px; border-radius: 12px; background: #2a3344; color: #d5dbe6; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 650; }
.launch-ava-edit .launch-ava-wrap, .launch-ava-edit .launch-letter { width: 64px; height: 64px; border-radius: 16px; font-size: 22px; }
.launch-ava-edit { display: flex; align-items: center; gap: 10px; }
.launch-ava-edit .launch-ava { width: 64px; height: 64px; border-radius: 16px; }
.launch-ava-edit.profile { margin: 2px 0 8px; }
.launch-ava-edit.profile .launch-ava-wrap,
.launch-ava-edit.profile .launch-letter,
.launch-ava-edit.profile .launch-ava { width: 72px; height: 72px; border-radius: 18px; font-size: 24px; }
.launch-copy.copied { color: #3ecf8e; }
.launch-group { margin-top: 8px; font-size: 12px; letter-spacing: 0.01em; }
.launch-pick button.chat { align-items: center; }
.launch-pick button.chat.idle { opacity: 0.62; cursor: default; }
.launch-flow { display: flex; flex-wrap: wrap; gap: 8px; }
.launch-flow b { display: block; font-size: 16px; }
.launch-flow span { color: var(--muted); font-size: 11px; }
.launch-flow div {
  background: #121212; border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; min-width: 92px;
}
.launch-msgs { display: flex; flex-direction: column; gap: 6px; }
.launch-msg { background: #121212; border-radius: 10px; padding: 8px 10px; }
.launch-msg span { display: block; color: var(--faint); font-size: 11px; }
.launch-msg-text {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  white-space: pre-wrap;
}
.launch-msg-text.open { display: block; -webkit-line-clamp: unset; overflow: visible; }
.launch-more {
  border: 0; background: transparent; padding: 4px 0 0; color: var(--blue);
  font-size: 12px; font-weight: 650; cursor: pointer;
}
.launch-links { display: flex; flex-direction: column; gap: 6px; }
.launch-links div { display: flex; gap: 8px; align-items: center; justify-content: space-between; }
.launch-links code {
  color: var(--text); font: 12px/1.4 ui-monospace, Consolas, monospace; word-break: break-all;
}
.launch-about { width: 100%; min-height: 72px; resize: vertical; background: #121212; color: var(--text); border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; }
.launch-admin {
  display: flex; flex-direction: column; gap: 4px; padding: 8px 0; border-top: 1px solid var(--line);
}
.launch-admin .who { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.launch-rights { color: var(--muted); font-size: 12px; }
.launch-switch { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.launch-pick { display: flex; flex-direction: column; gap: 10px; }
.launch-pick details { border-top: 1px solid var(--line); padding-top: 8px; }
.launch-pick summary { cursor: pointer; }
.launch-pick button.chat {
  display: flex; justify-content: space-between; gap: 8px; width: 100%; text-align: left;
  background: transparent; border: 0; color: inherit; padding: 6px 0; cursor: pointer;
}
#launch-sheet-err { color: var(--bad); }
#launch-sheet-ok { color: var(--ok); }
