:root {
  --ink: #182119;
  --muted: #6b756b;
  --line: #e4e9e2;
  --paper: #f5f6f1;
  --panel: #ffffff;
  --green: #1f6f50;
  --green-deep: #174f3b;
  --mint: #dff1e7;
  --lime: #d9ee75;
  --amber: #f1b84b;
  --red: #b8493f;
  --shadow: 0 16px 42px rgba(30, 48, 36, 0.07);
  --radius: 20px;
}

/* Lab v2 is namespaced so the existing Lab remains visually and behaviorally intact. */
.lab-v2-hero { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, .6fr); gap: 28px; align-items: start; }
.lab-v2-hero h2 { max-width: 760px; font-size: clamp(1.65rem, 3vw, 2.65rem); line-height: 1.04; margin: 14px 0; }
.lab-v2-hero p { max-width: 780px; font-size: 1.05rem; line-height: 1.65; }
.lab-v2-steps { display: grid; gap: 10px; list-style: none; margin: 0; padding: 0; }
.lab-v2-steps li { display: flex; gap: 12px; align-items: center; padding: 12px 14px; background: #f6f2e9; border-radius: 12px; }
.lab-v2-steps strong, .lab-v2-blind-id { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #171714; color: #fff; flex: 0 0 auto; }
.lab-v2-session-list { display: grid; gap: 10px; }
.lab-v2-session-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border: 1px solid #e5dfd2; border-radius: 12px; color: inherit; text-decoration: none; }
.lab-v2-session-row:hover { border-color: #908670; background: #fbfaf6; }
.lab-v2-session-row span:first-child { display: grid; gap: 5px; }
.lab-v2-session-row small { color: #716d64; }
.lab-v2-source-picker { min-width: 0; margin: 0; padding: 0; border: 0; }
.lab-v2-source-picker > legend { padding: 0; font-size: .82rem; font-weight: 800; }
.lab-v2-source-picker-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 7px 0 12px; }
.lab-v2-source-picker-heading p { margin: 0; color: #716d64; font-size: .82rem; line-height: 1.5; }
.lab-v2-source-picker-heading .lab-meta { flex: 0 0 auto; }
.lab-v2-source-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr)); gap: 12px; }
.lab-v2-source-card { position: relative; min-width: 0; cursor: pointer; }
.lab-v2-source-radio { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.lab-v2-source-card-body { display: flex; flex-direction: column; min-height: 210px; height: 100%; padding: 16px; border: 1px solid #ddd5c6; border-radius: 15px; background: #fbfaf7; transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease; }
.lab-v2-source-card:hover .lab-v2-source-card-body { border-color: #8ba792; background: #fff; transform: translateY(-1px); }
.lab-v2-source-radio:focus-visible + .lab-v2-source-card-body { outline: 3px solid rgba(31, 111, 80, .2); outline-offset: 2px; }
.lab-v2-source-radio:checked + .lab-v2-source-card-body { border-color: #28744d; background: #f3faf5; box-shadow: 0 9px 28px rgba(40, 116, 77, .13); }
.lab-v2-source-card-topline { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.lab-v2-source-choice { display: grid; place-items: center; width: 22px; height: 22px; flex: 0 0 22px; border: 1px solid #aaa394; border-radius: 50%; background: #fff; }
.lab-v2-source-choice span { width: 10px; height: 10px; border-radius: 50%; background: transparent; }
.lab-v2-source-radio:checked + .lab-v2-source-card-body .lab-v2-source-choice { border-color: #28744d; }
.lab-v2-source-radio:checked + .lab-v2-source-card-body .lab-v2-source-choice span { background: #28744d; }
.lab-v2-source-card-body > strong { margin-bottom: 8px; font-size: .98rem; line-height: 1.35; }
.lab-v2-source-preview { display: -webkit-box; overflow: hidden; color: #4f4c46; font-size: .87rem; line-height: 1.52; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 6; }
.lab-v2-source-metrics { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 14px; }
.lab-v2-source-metrics span { padding: 5px 8px; color: #625d53; background: #fff; border: 1px solid #e1dacd; border-radius: 999px; font-size: .72rem; }
.lab-v2-source-empty { display: grid; gap: 4px; padding: 16px; color: #625b4d; background: #f6f2e9; border-radius: 12px; }
.lab-v2-source-empty span, .lab-v2-source-note { color: #756f63; }
.lab-v2-source-note { display: grid; justify-items: start; gap: 7px; margin-top: 12px; font-size: .82rem; }
.lab-v2-intake { display: grid; gap: 16px; padding: 20px; border: 1px solid #d9e5db; border-radius: 16px; background: #f8fbf8; }
.lab-v2-intake .section-heading, .lab-v2-auto-context .section-heading { margin: 0; }
.lab-v2-material-guide { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.lab-v2-material-guide div { display: grid; gap: 4px; padding: 12px; border: 1px solid #dfe7df; border-radius: 11px; background: #fff; }
.lab-v2-material-guide strong { color: #27573f; font-size: .79rem; }
.lab-v2-material-guide span { color: #6f746d; font-size: .76rem; line-height: 1.45; }
.lab-v2-auto-context { display: grid; gap: 15px; padding: 20px; border: 1px solid #e1dacd; border-radius: 16px; background: #f7f3ea; }
.lab-v2-auto-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; }
.lab-v2-auto-grid article { min-width: 0; padding: 14px; border-radius: 12px; background: #fff; }
.lab-v2-auto-grid article > span { display: block; margin-bottom: 5px; color: #766e60; font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.lab-v2-auto-grid article > strong { display: block; color: #29362e; font-size: .94rem; line-height: 1.35; }
.lab-v2-auto-grid article > p { margin: 7px 0 0; color: #666159; font-size: .78rem; line-height: 1.5; }
.lab-v2-guidance { border: 1px dashed #cfc5b5; border-radius: 14px; background: #fbfaf7; }
.lab-v2-guidance > summary { padding: 15px 17px; cursor: pointer; list-style: none; }
.lab-v2-guidance > summary::-webkit-details-marker { display: none; }
.lab-v2-guidance > summary::after { content: "⌄"; float: right; color: #716958; font-size: 1.1rem; transition: transform .16s ease; }
.lab-v2-guidance[open] > summary::after { transform: rotate(180deg); }
.lab-v2-guidance > summary span { display: inline-grid; gap: 3px; }
.lab-v2-guidance > summary small { color: #756f63; font-weight: 400; }
.lab-v2-guidance-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 0 17px 17px; border-top: 1px solid #ebe5da; }
.lab-v2-guidance-grid label { margin-top: 15px; }
.lab-v2-guidance-grid .wide { grid-column: 1 / -1; }
.lab-v2-model-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.lab-v2-model-card { display: grid !important; gap: 8px; padding: 14px; border: 1px solid #ddd5c6; border-radius: 14px; background: #fbfaf7; }
.lab-v2-model-choice { display: flex; align-items: center; gap: 9px; }
.lab-v2-model-card small { word-break: break-all; color: #777166; }
.lab-v2-evaluator-row { display: grid; grid-template-columns: 2fr 1fr; gap: 12px; padding: 16px; border-left: 4px solid #171714; background: #f3efe6; border-radius: 0 12px 12px 0; }
.lab-v2-provider-picker { display: grid; gap: 7px; padding: 14px 16px; margin-bottom: 12px; border: 1px solid #c7bfae; border-radius: 12px; background: #fbf8f1; }
.lab-v2-provider-picker label { margin: 0; }
.lab-v2-provider-picker small { color: #5f5a50; }
.lab-v2-model-card.provider-unavailable { opacity: .48; filter: grayscale(.8); }
.lab-v2-provider-status-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin-top: 16px; }
.lab-v2-provider-status-grid article { display: grid; align-content: start; gap: 10px; padding: 16px; border: 1px solid #d8d0c0; border-radius: 12px; background: #fbf8f1; }
.lab-v2-provider-status-grid .button { justify-self: start; }
.lab-v2-provider-switch { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0; }
.lab-v2-inline { display: flex !important; flex-direction: row !important; align-items: center; gap: 9px; }
.lab-v2-cost { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; padding: 12px 14px; border-radius: 10px; background: #fff3cc; }
.lab-v2-cost span { color: #625b4d; font-size: .88rem; }
.lab-v2-cost small { flex-basis: 100%; color: #756b58; }
.lab-v2-session-summary { display: grid; gap: 16px; }
.lab-v2-session-summary > div > p { white-space: pre-wrap; line-height: 1.6; }
.lab-v2-analysis-section { margin: 16px 0; }
.lab-v2-analysis-sections { margin-top: 16px; }
.lab-v2-stage { scroll-margin-top: 20px; }
.lab-v2-candidate-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 430px), 1fr)); gap: 18px; align-items: start; }
.lab-v2-candidate-grid--single { grid-template-columns: minmax(0, 860px); }
.lab-v2-candidate { border: 1px solid #ddd5c7; border-radius: 16px; padding: 18px; background: #fff; box-shadow: 0 7px 28px rgba(32, 28, 20, .05); }
.lab-v2-candidate.chosen { border: 2px solid #28744d; box-shadow: 0 9px 34px rgba(40, 116, 77, .13); }
.lab-v2-material-state { margin: 14px 0; }
.lab-v2-material-state p { margin: 8px 0 0; color: #6e5430; }
.lab-v2-subject { margin: 12px 0 5px; color: #23704a; font-size: .76rem; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.lab-v2-source-links { display: grid; gap: 7px; margin: 16px 0; padding: 13px; border: 1px solid #d9e5db; border-radius: 11px; background: #f7fbf8; }
.lab-v2-source-links a, .lab-v2-fact-list a { color: #176440; overflow-wrap: anywhere; }
.lab-v2-fact-list { display: grid; gap: 13px; padding-left: 0; list-style: none; }
.lab-v2-fact-list li { position: relative; display: grid; gap: 5px; padding: 12px 12px 12px 48px; border: 1px solid #e1ddd3; border-radius: 10px; background: #fbfaf7; }
.lab-v2-fact-list p, .lab-v2-fact-list small { margin: 0; }
.lab-v2-fact-id { position: absolute; top: 12px; left: 12px; display: inline-flex; justify-content: center; min-width: 26px; padding: 3px 5px; border-radius: 6px; background: #dff1e5; color: #185b3c; font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.lab-v2-thesis { font-size: 1.17rem; line-height: 1.48; font-weight: 650; }
.lab-v2-card-details { display: grid; gap: 10px; margin: 16px 0; }
.lab-v2-card-details div { display: grid; gap: 3px; padding-bottom: 9px; border-bottom: 1px solid #eee9df; }
.lab-v2-card-details dt { color: #7a7265; font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; }
.lab-v2-card-details dd { margin: 0; line-height: 1.5; }
.lab-v2-post { white-space: pre-wrap; line-height: 1.68; font-size: 1.02rem; }
.lab-v2-final { max-width: 820px; font-size: 1.08rem; }
.lab-v2-review { margin: 18px 0; padding: 15px; background: #f6f2e9; border-radius: 12px; }
.lab-v2-review-head { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.lab-v2-review-head > div { display: grid; gap: 3px; }
.lab-v2-review-head small { color: #756f63; }
.lab-v2-overall-score { color: #625b4d; font-size: .96rem; font-weight: 650; }
.lab-v2-score-row { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }
.lab-v2-score-row span { padding: 5px 8px; border: 1px solid #ded6c7; background: #fff; border-radius: 999px; font-size: .78rem; }
.lab-v2-review blockquote { margin: 10px 0 4px; padding-left: 12px; border-left: 3px solid #958a74; font-style: italic; }
.lab-v2-model-reveal { color: #6d675d; font-size: .86rem; }
.lab-v2-blind-note { margin-top: 14px; }
.lab-v2-select-form { display: grid; gap: 10px; margin-top: 14px; }
.lab-v2-select-form textarea, .lab-v2-run-form textarea { width: 100%; }
.lab-v2-manual-edit { padding: 10px 12px; border: 1px dashed #d8cfbf; border-radius: 10px; background: #fbfaf7; }
.lab-v2-manual-edit label { margin-top: 10px; }
.lab-v2-recovery-form { display: grid; gap: 8px; margin-top: 12px; }
.lab-v2-reroll { margin-top: 20px; padding: 18px; border: 1px solid #d8cfbf; border-radius: 16px; background: linear-gradient(135deg, #fbfaf7 0%, #f4f8ec 100%); }
.lab-v2-reroll .section-heading { margin-bottom: 4px; }
.lab-v2-reroll-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.lab-v2-raw { max-height: 340px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; background: #191814; color: #f5efe0; padding: 12px; border-radius: 9px; }
@media (max-width: 800px) { .lab-v2-hero, .lab-v2-evaluator-row, .lab-v2-source-grid, .lab-v2-material-guide, .lab-v2-auto-grid, .lab-v2-guidance-grid { grid-template-columns: 1fr; } .lab-v2-guidance-grid .wide { grid-column: auto; } .lab-v2-source-picker-heading { align-items: flex-start; } }

* { box-sizing: border-box; }

html { min-height: 100%; background: var(--paper); }

body {
  min-height: 100vh;
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 78% -10%, rgba(217, 238, 117, 0.18), transparent 30rem),
    var(--paper);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.5;
}

a { color: inherit; text-decoration: none; }
button, textarea, select, input { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .45; }

.shell {
  display: grid;
  grid-template-columns: 246px minmax(0, 1fr);
  min-height: 100vh;
}

.sidebar {
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  height: 100vh;
  padding: 28px 20px 22px;
  color: #f7fbf8;
  background:
    linear-gradient(175deg, rgba(255,255,255,.04), transparent 42%),
    #173d2f;
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 7px 34px;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  color: var(--green-deep);
  background: var(--lime);
  border-radius: 13px 13px 13px 5px;
  font: 800 21px/1 Georgia, serif;
}

.brand strong, .brand small { display: block; }
.brand strong { font-size: 16px; letter-spacing: .01em; }
.brand small { color: #a9c0b4; font-size: 11px; }

nav { display: grid; gap: 5px; }
nav a {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 11px 13px;
  color: #bed0c6;
  border-radius: 11px;
  transition: .16s ease;
}
nav a span { width: 20px; color: #91ac9f; font-size: 18px; text-align: center; }
nav a:hover { color: #fff; background: rgba(255,255,255,.06); }
nav a.active { color: #153d2e; background: var(--lime); font-weight: 700; }
nav a.active span { color: #153d2e; }

.sidebar-status {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: auto;
  padding: 14px 10px;
  color: #dce9e1;
  border-top: 1px solid rgba(255,255,255,.1);
}
.sidebar-status strong, .sidebar-status small { display: block; }
.sidebar-status strong { font-size: 12px; }
.sidebar-status small { margin-top: 2px; color: #86a396; font-size: 10px; }
.sidebar-logout { margin: 0; padding: 0 10px; }
.sidebar-logout button { width: 100%; padding: 8px 0; color: #91ac9f; background: transparent; border: 0; text-align: left; font-size: 11px; }
.sidebar-logout button:hover { color: #fff; }
.sidebar-logout span { display: inline-block; width: 18px; font-size: 14px; }

.status-dot {
  display: inline-block;
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin: 5px 7px 0 0;
  border-radius: 50%;
  background: #a5afa8;
}
.status-dot.online { background: #6fd092; box-shadow: 0 0 0 4px rgba(111,208,146,.12); }
.status-dot.waiting { background: var(--amber); box-shadow: 0 0 0 4px rgba(241,184,75,.12); }

main {
  width: min(1450px, 100%);
  padding: 32px clamp(24px, 4vw, 64px) 64px;
}

.topbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}
.topbar h1, h2, h3, p { margin-top: 0; }
.topbar h1 {
  margin-bottom: 0;
  font: 600 clamp(30px, 4vw, 45px)/1.05 Georgia, "Times New Roman", serif;
  letter-spacing: -.025em;
}
.eyebrow {
  margin: 0 0 6px;
  color: var(--green);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.topbar .eyebrow:empty { display: none; }
.top-actions { display: flex; gap: 9px; }

.notice {
  margin: -8px 0 18px;
  padding: 13px 16px;
  border: 1px solid;
  border-radius: 12px;
}
.notice.success { color: #175438; background: #e8f6ed; border-color: #b9dfc8; }
.notice.error { color: #81392f; background: #fff0ed; border-color: #f0c1ba; }
.notice.setup { color: #614b14; background: #fff8dd; border-color: #ecd995; }
.notice.review { color: #614b14; background: #fff8dd; border-color: #ecd995; }
.notice strong { margin-right: 4px; }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 9px 15px;
  border: 1px solid transparent;
  border-radius: 10px;
  font-weight: 750;
  transition: .15s ease;
}
.button:hover:not(:disabled) { transform: translateY(-1px); }
.button.primary { color: #fff; background: var(--green); }
.button.primary:hover { background: var(--green-deep); }
.button.secondary { color: var(--green-deep); background: #fff; border-color: #cbd5cd; box-shadow: 0 3px 9px rgba(32,50,38,.04); }
.button.ghost { color: var(--muted); background: transparent; border-color: var(--line); }
.button.small { min-height: 34px; padding: 6px 11px; font-size: 12px; }

.metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}
.metrics article {
  position: relative;
  min-height: 128px;
  padding: 21px 23px;
  overflow: hidden;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 17px;
  box-shadow: 0 7px 22px rgba(35,49,38,.035);
}
.metrics article.accent { color: #173b2e; background: var(--lime); border-color: #cadf64; }
.metrics small, .metrics span { display: block; color: var(--muted); }
.metrics article.accent small, .metrics article.accent span { color: #537035; }
.metrics strong { display: block; margin: 7px 0 0; font: 600 34px/1.1 Georgia, serif; }
.metrics span { font-size: 12px; }

.panel {
  margin-bottom: 18px;
  padding: 23px;
  background: rgba(255,255,255,.94);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.panel-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 19px;
}
.panel-head h2 {
  margin: 0;
  font: 600 22px/1.2 Georgia, serif;
  letter-spacing: -.01em;
}
.text-link { color: var(--green); font-size: 13px; font-weight: 750; }
.muted { color: var(--muted); }
.count {
  min-width: 34px;
  padding: 5px 10px;
  color: var(--green);
  background: var(--mint);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}

.table-wrap { overflow-x: auto; }
.signal-history {
  max-height: min(680px, 68vh);
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.signal-history thead th {
  position: sticky;
  z-index: 1;
  top: 0;
  padding-top: 11px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 1px 0 #edf0eb;
}
table { width: 100%; border-collapse: collapse; }
th {
  padding: 0 12px 10px;
  color: #8a938b;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .09em;
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}
td { padding: 13px 12px; border-top: 1px solid #edf0eb; vertical-align: middle; }
tbody tr:hover { background: #fafbf7; }
.post-cell { min-width: 310px; max-width: 560px; }
.post-cell a { display: block; overflow: hidden; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.post-cell a:hover { color: var(--green); }
.post-cell small { display: block; margin-top: 3px; color: var(--muted); }

.badge {
  display: inline-flex;
  align-items: center;
  width: max-content;
  padding: 4px 8px;
  color: #5f685f;
  background: #edf0ec;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.1;
  white-space: nowrap;
  text-transform: uppercase;
}
.badge.breakout { color: #4b4d07; background: var(--lime); }
.badge.accelerating, .badge.rising, .badge.active, .badge.success { color: #175438; background: var(--mint); }
.badge.cooling, .badge.paused, .badge.excluded { color: #72581a; background: #f8ecc9; }
.badge.error, .badge.rejected { color: #81392f; background: #fae2df; }
.badge.collecting, .badge.pending, .badge.candidate { color: #4d5e72; background: #e7edf5; }
.badge.own { color: #fff; background: var(--green); }
.badge.manual { color: #5c5612; background: #eef2c7; }

.empty {
  display: grid;
  place-items: center;
  padding: 42px 20px;
  text-align: center;
}
.empty.tall { min-height: 390px; }
.empty > span { display: grid; place-items: center; width: 50px; height: 50px; margin-bottom: 10px; color: var(--green); background: var(--mint); border-radius: 17px; font-size: 25px; }
.empty h3 { margin: 0 0 6px; font: 600 20px/1.2 Georgia, serif; }
.empty p { max-width: 620px; margin: 0; color: var(--muted); }

.two-columns { display: grid; grid-template-columns: 1.45fr 1fr; gap: 18px; }
.two-columns > .panel { margin-bottom: 0; }
.compact-list { display: grid; }
.compact-list a { display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 11px; padding: 11px 0; border-top: 1px solid #edf0eb; }
.compact-list a:first-child { border-top: 0; }
.compact-list a:hover strong { color: var(--green); }
.compact-list strong, .compact-list small { display: block; }
.compact-list strong { max-width: 510px; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.compact-list small, .compact-list time { color: var(--muted); font-size: 11px; }
.format-icon { display: grid; place-items: center; width: 34px; height: 34px; color: var(--green); background: #eff4ef; border-radius: 10px; }

.explainer ol { display: grid; gap: 15px; margin: 0; padding: 0; list-style: none; }
.explainer li { display: flex; gap: 12px; }
.explainer li > span { display: grid; flex: 0 0 27px; place-items: center; height: 27px; color: var(--green-deep); background: var(--lime); border-radius: 50%; font-size: 11px; font-weight: 800; }
.explainer li strong { font-size: 13px; }
.explainer li p { margin: 2px 0 0; color: var(--muted); font-size: 12px; }
.run-status { display: flex; align-items: flex-start; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }
.run-status strong, .run-status small { display: block; font-size: 11px; }
.run-status small { color: var(--muted); }

.add-community { display: grid; grid-template-columns: .8fr 1.2fr; gap: 35px; }
textarea, select, input {
  width: 100%;
  color: var(--ink);
  background: #fbfcf9;
  border: 1px solid #dce2db;
  border-radius: 10px;
  outline: none;
}
textarea { display: block; padding: 12px 13px; resize: vertical; }
select { min-height: 40px; padding: 8px 32px 8px 10px; }
input { min-height: 42px; padding: 9px 12px; }
textarea:focus, select:focus, input:focus { border-color: #70a58b; box-shadow: 0 0 0 3px rgba(31,111,80,.08); }
.form-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-top: 11px; }
.form-row label { min-width: 190px; color: var(--muted); font-size: 11px; font-weight: 700; }
.form-row select { margin-top: 5px; }

.community-list { display: grid; }
.community-row { display: grid; grid-template-columns: 42px minmax(220px, 1fr) auto auto; align-items: center; gap: 13px; padding: 13px 0; border-top: 1px solid #edf0eb; }
.community-row:first-child { border-top: 0; }
.avatar { display: grid; place-items: center; width: 42px; height: 42px; color: #285940; background: linear-gradient(135deg, var(--mint), #f1f4ca); border-radius: 13px; font: 700 18px/1 Georgia, serif; }
.avatar.large { width: 62px; height: 62px; border-radius: 20px; font-size: 28px; }
.community-main > div { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.community-main a:hover { color: var(--green); }
.community-main small { display: block; margin-top: 2px; color: var(--muted); }
.inline-error { margin: 5px 0 0; color: var(--red); font-size: 11px; }
.row-actions { display: flex; gap: 5px; }
.row-actions form { margin: 0; }
.icon-button { display: grid; place-items: center; width: 31px; height: 31px; color: #687168; background: transparent; border: 1px solid var(--line); border-radius: 9px; }
.icon-button:hover { color: var(--green); border-color: #a7b9ac; }
.icon-button.danger:hover { color: var(--red); border-color: #e1afa9; }

.candidate-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.candidate-card { display: flex; flex-direction: column; min-height: 285px; padding: 17px; background: #fafbf8; border: 1px solid var(--line); border-radius: 15px; }
.candidate-title { display: flex; align-items: center; gap: 10px; }
.candidate-title a:hover { color: var(--green); }
.candidate-title strong, .candidate-title small { display: block; }
.candidate-title small { color: var(--muted); }
.candidate-card > p { margin: 14px 0; color: #4f5850; font-size: 12px; }
.candidate-card > small { color: var(--muted); }
.relevance { display: flex; align-items: center; gap: 8px; margin: auto 0 8px; }
.relevance > span { flex: 1; height: 6px; overflow: hidden; background: #e6eae4; border-radius: 999px; }
.relevance i { display: block; height: 100%; background: var(--green); border-radius: inherit; }
.relevance strong { font-size: 11px; }
.candidate-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 13px; }
.candidate-actions form { display: flex; align-items: center; gap: 6px; }
.candidate-actions select { width: 100px; min-height: 34px; font-size: 11px; }

.method-note { margin: 0 0 18px; padding: 14px 17px; color: #4c521c; background: #f4f7d7; border: 1px solid #dde59e; border-radius: 13px; }
.idea-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.idea-card { padding: 21px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.idea-card h2 { min-height: 52px; margin: 16px 0; font: 600 23px/1.12 Georgia, serif; }
.idea-meta { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 11px; }
.idea-card dl { display: grid; gap: 7px; margin: 0 0 15px; }
.idea-card dl div { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 6px; border-bottom: 1px solid #edf0eb; }
.idea-card dt { color: var(--muted); font-size: 11px; }
.idea-card dd { margin: 0; font-size: 12px; font-weight: 700; }
.idea-prompt { padding: 13px; background: #f4f7f2; border-radius: 11px; }
.idea-prompt small { color: var(--green); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.idea-prompt p { margin: 4px 0 0; font-size: 12px; }
.sources { display: flex; flex-wrap: wrap; gap: 6px 10px; margin-top: 14px; }
.sources small { flex: 1 0 100%; color: var(--muted); }
.sources a { color: var(--green); font-size: 11px; font-weight: 750; }

.owner-hero { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; padding: 21px 24px; color: #fff; background: linear-gradient(120deg, #174f3b, #226f50); border-radius: var(--radius); box-shadow: var(--shadow); }
.owner-main { flex: 1; }
.owner-title-row { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 14px; }
.owner-hero h2 { margin: 0 0 4px; font: 600 25px/1.1 Georgia, serif; }
.owner-hero p { margin: 0; color: #bcd5c8; }
.owner-vk-link { color: #d9f0e3; font-size: 12px; font-weight: 800; }
.owner-vk-link:hover { color: #fff; }
.own-panel-head { margin-bottom: 14px; }
.own-filters {
  display: grid;
  grid-template-columns: minmax(150px, .65fr) minmax(150px, .7fr) minmax(210px, 1fr) auto;
  align-items: end;
  gap: 10px;
  margin-bottom: 20px;
  padding: 15px;
  background: #f7f9f5;
  border: 1px solid #e3e8e1;
  border-radius: 13px;
}
.own-filters label > span {
  display: block;
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.filter-actions { display: flex; gap: 7px; }
.own-table .numeric { font-variant-numeric: tabular-nums; white-space: nowrap; }
.pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; }
.page-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  padding: 0 8px;
  color: var(--green-deep);
  background: #f5f8f4;
  border: 1px solid #dce4dc;
  border-radius: 9px;
  font-size: 12px;
  font-weight: 800;
}
.page-button:hover { border-color: #94ad9b; }
.page-button.current { color: #fff; background: var(--green); border-color: var(--green); }
.page-button.disabled { color: #a7afa8; pointer-events: none; }
.page-button.wide { min-width: 92px; }

.settings-grid { display: grid; grid-template-columns: 1.45fr .85fr; gap: 18px; }
.vk-connect-card { border-color: #d5dfd5; }
.vk-connect-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(310px, .8fr); gap: 34px; }
.vk-connect-grid h3 { margin: 0 0 7px; font: 600 18px/1.2 Georgia, serif; }
.inline-secret-form { display: flex; align-items: flex-end; gap: 10px; margin-top: 16px; }
.inline-secret-form label { flex: 1; color: var(--muted); font-size: 12px; font-weight: 700; }
.inline-secret-form input { margin-top: 6px; color: var(--ink); font-weight: 400; }
.vk-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.vk-actions form { margin: 0; }
.vk-button { color: #fff; background: #0077ff; }
.vk-button:hover { background: #0069df; }
.connection-facts { display: grid; align-content: start; gap: 9px; margin: 0; }
.connection-facts div { display: grid; grid-template-columns: 125px minmax(0, 1fr); gap: 12px; padding-bottom: 8px; border-bottom: 1px solid #edf0eb; }
.connection-facts dt { color: var(--muted); font-size: 11px; }
.connection-facts dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: 12px; font-weight: 700; text-align: right; }
.connection-facts code { font-size: 10px; font-weight: 500; }
.replace-secret { margin-top: 18px; color: var(--muted); font-size: 11px; }
.replace-secret summary { cursor: pointer; font-weight: 700; }
.replace-secret .inline-secret-form { margin-top: 10px; }
.vk-last-error { margin-top: 14px; }
.capability-note {
  margin: 18px 0 0;
  padding: 12px 14px;
  color: #565b3a;
  background: #f7f8e9;
  border: 1px solid #e3e6bd;
  border-radius: 11px;
  font-size: 12px;
}
.capability-note code { font-size: 11px; }
.search-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.search-steps article { display: flex; gap: 11px; padding: 15px; background: #fafbf8; border: 1px solid var(--line); border-radius: 13px; }
.search-steps article > span { display: grid; flex: 0 0 28px; place-items: center; height: 28px; color: var(--green-deep); background: var(--lime); border-radius: 50%; font-size: 11px; font-weight: 800; }
.search-steps strong { display: block; font-size: 13px; }
.search-steps p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.search-steps code { font-size: 10px; }
.settings-grid aside .panel { margin-bottom: 18px; }
.stack-form { display: grid; gap: 15px; }
.stack-form label { color: var(--muted); font-size: 12px; font-weight: 700; }
.stack-form textarea { margin-top: 6px; color: var(--ink); font-weight: 400; }
.stack-form .button { justify-self: start; }
.system-card dl { display: grid; gap: 10px; margin: 0; }
.system-card dl div { display: flex; justify-content: space-between; gap: 15px; padding-bottom: 8px; border-bottom: 1px solid #edf0eb; }
.system-card dt { color: var(--muted); font-size: 12px; }
.system-card dd { display: flex; align-items: flex-start; margin: 0; font-size: 12px; font-weight: 750; text-align: right; }
.system-card .status-dot { margin-top: 4px; }
.run-list { display: grid; }
.run-list > div { display: grid; grid-template-columns: 95px 130px minmax(220px, 1fr) auto; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid #edf0eb; font-size: 12px; }
.run-list > div:first-child { border-top: 0; }
.run-list span:nth-child(3), .run-list time { color: var(--muted); }

.knowledge-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(360px, .8fr);
  gap: 30px;
  margin-bottom: 18px;
  padding: 25px 28px;
  color: #fff;
  background: linear-gradient(125deg, #143d2d, #226d4f);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.knowledge-intro h2 { margin: 0 0 8px; font: 600 25px/1.15 Georgia, serif; }
.knowledge-intro p:last-child { max-width: 760px; margin: 0; color: #bdd5c8; }
.knowledge-intro dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 0; }
.knowledge-intro dl div { display: flex; flex-direction: column; justify-content: center; padding: 14px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.1); border-radius: 13px; }
.knowledge-intro dt { color: #a8c7b7; font-size: 10px; text-transform: uppercase; }
.knowledge-intro dd { margin: 5px 0 0; font: 600 18px/1.15 Georgia, serif; }

.knowledge-connectors-section { margin-top: 18px; }
.knowledge-settings-heading { margin: 0 0 12px; }
.knowledge-settings-heading h2 { margin: 3px 0 5px; font: 600 24px/1.15 Georgia, serif; }
.knowledge-settings-heading p:last-child { margin: 0; }
.knowledge-access-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 18px; }
.knowledge-access-card { min-height: 0; }
.knowledge-connector-summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; cursor: pointer; list-style: none; }
.knowledge-connector-summary::-webkit-details-marker { display: none; }
.knowledge-connector-summary::after { content: "⌄"; flex: 0 0 auto; color: var(--muted); font-size: 20px; transition: transform .15s ease; }
.knowledge-access-card[open] .knowledge-connector-summary::after { transform: rotate(180deg); }
.knowledge-connector-summary > span:first-child { min-width: 0; }
.knowledge-connector-summary .eyebrow { display: block; margin-bottom: 4px; }
.knowledge-connector-summary .badge { margin-left: auto; }
.knowledge-connector-title { display: block; font: 600 19px/1.15 Georgia, serif; }
.knowledge-connector-body { margin-top: 18px; padding-top: 17px; border-top: 1px solid var(--line); }
.knowledge-access-card code { font-size: 11px; }
.knowledge-facts { display: grid; gap: 6px; margin: 17px 0; }
.knowledge-facts div { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 7px; border-bottom: 1px solid #edf0eb; }
.knowledge-facts dt { color: var(--muted); font-size: 11px; }
.knowledge-facts dd { margin: 0; font-size: 12px; font-weight: 750; text-align: right; }
.chat-candidate-form { margin: 17px 0; padding: 15px; background: #f6f7fc; border: 1px solid #dfe3f4; border-radius: 13px; }
.chat-candidate-form h3 { margin: 0 0 5px; }
.chat-candidate-list { display: grid; gap: 7px; margin: 12px 0; }
.chat-candidate-list label { display: flex; align-items: flex-start; gap: 9px; padding: 10px; background: #fff; border: 1px solid #e1e4ef; border-radius: 10px; cursor: pointer; }
.chat-candidate-list input { width: auto; margin-top: 3px; }
.chat-candidate-list span, .chat-candidate-list strong, .chat-candidate-list small { display: block; }
.chat-candidate-list small { margin-top: 3px; color: var(--muted); }

.knowledge-source-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.knowledge-source-card { padding: 20px; background: #fff; border: 1px solid var(--line); border-radius: 17px; box-shadow: 0 8px 25px rgba(35,49,38,.045); }
.knowledge-source-card.mailing { border-top: 4px solid var(--green); }
.knowledge-source-card.chat { border-top: 4px solid #5b6fc7; }
.knowledge-source-card.channel { border-top: 4px solid #b46d2c; }
.knowledge-source-card.chat .knowledge-source-icon { color: #34468f; background: #eef0fb; }
.knowledge-source-card.channel .knowledge-source-icon { color: #864b18; background: #fff1e3; }
.knowledge-source-top { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 11px; }
.knowledge-source-top small { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.knowledge-source-top h2 { margin: 2px 0 0; font: 600 18px/1.15 Georgia, serif; }
.knowledge-source-icon { display: grid; place-items: center; width: 42px; height: 42px; color: var(--green-deep); background: var(--mint); border-radius: 13px; font-size: 20px; }
.knowledge-source-id { margin: 15px 0 12px; color: var(--muted); font-size: 11px; }
.knowledge-source-id code { color: var(--ink); }
.knowledge-source-stats { display: grid; grid-template-columns: .75fr .75fr 1.5fr; gap: 7px; }
.knowledge-source-stats div { min-width: 0; padding: 9px; background: #f6f8f4; border-radius: 10px; }
.knowledge-source-stats small, .knowledge-source-stats strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.knowledge-source-stats small { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.knowledge-source-stats strong { margin-top: 3px; font-size: 12px; }
.knowledge-progress { height: 6px; margin-top: 15px; overflow: hidden; background: #e8ece6; border-radius: 999px; }
.knowledge-progress i { display: block; height: 100%; background: var(--green); border-radius: inherit; }
.knowledge-progress-label { margin: 6px 0 0; color: var(--muted); font-size: 10px; }
.knowledge-source-error { min-height: 34px; margin-top: 12px; }
.knowledge-source-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 15px; padding-top: 14px; border-top: 1px solid var(--line); }
.knowledge-source-actions form { margin: 0; }
.knowledge-source-actions .text-link { margin-left: auto; }

.knowledge-search { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(165px, 220px) auto auto; align-items: end; gap: 10px; margin-bottom: 20px; }
.knowledge-search label span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; font-weight: 750; text-transform: uppercase; }
.knowledge-message-list { display: grid; }
.knowledge-message-list article { padding: 16px 4px; border-top: 1px solid #edf0eb; }
.knowledge-message-list article:first-child { border-top: 0; }
.knowledge-message-list article > p { margin: 9px 0 8px; white-space: pre-wrap; overflow-wrap: anywhere; }
.knowledge-message-meta, .knowledge-message-extra { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 12px; color: var(--muted); font-size: 10px; }
.knowledge-message-meta strong { color: var(--ink); font-size: 11px; }
.knowledge-message-meta time { margin-left: auto; }
.knowledge-message-extra span { padding-right: 11px; border-right: 1px solid var(--line); }
.knowledge-message-extra span:last-child { border-right: 0; }
.badge.mailing { color: #175438; background: var(--mint); }
.badge.chat { color: #34468f; background: #eef0fb; }
.badge.channel { color: #864b18; background: #fff1e3; }
.page-summary { align-self: center; color: var(--muted); font-size: 11px; }

.mcp-connect-panel { margin: 18px 0; border-top: 4px solid #3867d6; }
.mcp-connect-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: 28px; align-items: start; }
.mcp-endpoint { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 16px 0; padding: 13px 15px; background: #f4f6fb; border: 1px solid #dfe5f2; border-radius: 12px; }
.mcp-endpoint code { overflow-wrap: anywhere; color: #27457f; font-size: 12px; }
.mcp-steps { margin: 15px 0 0; padding-left: 20px; color: var(--muted); }
.mcp-steps li { margin: 7px 0; padding-left: 4px; }
.mcp-connections { display: grid; gap: 9px; }
.mcp-connection { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; align-items: center; padding: 12px; background: #f7f9f6; border: 1px solid var(--line); border-radius: 12px; }
.mcp-connection strong, .mcp-connection small { display: block; }
.mcp-connection small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.mcp-empty { padding: 16px; color: var(--muted); background: #f7f9f6; border: 1px dashed #ccd4ca; border-radius: 12px; }

.login-body { min-height: 100vh; margin: 0; background: #eef2ec; }
.login-shell { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(390px, .85fr); width: 100%; min-height: 100vh; padding: 0; }
.login-intro { display: flex; flex-direction: column; justify-content: space-between; min-height: 100vh; padding: clamp(32px, 5vw, 74px); color: #f5fbf7; background: radial-gradient(circle at 15% 5%, rgba(217,238,117,.2), transparent 26rem), linear-gradient(145deg, #1d523e, #123528); }
.login-brand { display: inline-flex; align-items: center; align-self: flex-start; gap: 11px; }
.login-brand strong, .login-brand small { display: block; }
.login-brand strong { color: #fff; font-size: 17px; }
.login-brand small { margin-top: 2px; color: #a9c8b8; font-size: 10px; }
.login-intro > div { max-width: 650px; padding: 50px 0; }
.login-intro .eyebrow { color: var(--lime); }
.login-intro h1 { max-width: 620px; margin: 0 0 20px; font: 600 clamp(42px, 6vw, 76px)/.98 Georgia, serif; letter-spacing: -.04em; }
.login-intro > div > p:last-child { max-width: 570px; margin: 0; color: #bcd3c7; font-size: clamp(15px, 1.6vw, 19px); line-height: 1.6; }
.login-security { margin: 0; color: #87a998; font-size: 11px; letter-spacing: .04em; }
.login-panel { display: flex; flex-direction: column; justify-content: center; width: min(480px, 100%); margin: 0 auto; padding: clamp(32px, 6vw, 72px); background: #fff; }
.login-form-head { margin-bottom: 24px; }
.login-form-head h2 { margin: 5px 0 9px; font: 600 34px/1.08 Georgia, serif; letter-spacing: -.02em; }
.login-form-head > p:last-child { margin: 0; color: var(--muted); font-size: 13px; }
.login-notice { margin-bottom: 17px; padding: 12px 13px; border: 1px solid; border-radius: 11px; font-size: 12px; }
.login-notice.success { color: #175438; background: #e8f6ed; border-color: #b9dfc8; }
.login-notice.error { color: #81392f; background: #fff0ed; border-color: #f0c1ba; }
.login-form { display: grid; gap: 15px; }
.login-form label > span { display: block; margin-bottom: 6px; color: #4f5a51; font-size: 11px; font-weight: 750; }
.login-form input { width: 100%; height: 48px; padding: 10px 13px; color: var(--ink); background: #fafbf9; border: 1px solid #d9e0d8; border-radius: 11px; outline: none; }
.login-form input:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(31,111,80,.1); }
.login-form .button { min-height: 48px; margin-top: 3px; }
.login-hint { margin: 17px 0 0; color: #899189; font-size: 10px; text-align: center; }

.oauth-body { min-height: 100vh; margin: 0; background: radial-gradient(circle at top, #e9f4ed 0, #f5f6f1 42%, #eef1ec 100%); }
.oauth-shell { width: min(620px, calc(100% - 28px)); margin: 0 auto; padding: 48px 0; }
.oauth-brand { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 18px; color: var(--ink); text-decoration: none; }
.oauth-brand strong, .oauth-brand small { display: block; }
.oauth-brand small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.oauth-card { padding: 34px; background: #fff; border: 1px solid var(--line); border-radius: 22px; box-shadow: 0 22px 65px rgba(23, 46, 31, .12); }
.oauth-card h1 { margin: 6px 0 10px; font: 600 34px/1.08 Georgia, serif; }
.oauth-lead { margin: 0 0 22px; color: var(--muted); font-size: 15px; }
.oauth-permission { display: grid; grid-template-columns: 34px 1fr; gap: 12px; padding: 17px; color: #174d35; background: var(--mint); border: 1px solid #cae5d6; border-radius: 14px; }
.oauth-permission > span { display: grid; place-items: center; width: 30px; height: 30px; color: #fff; background: var(--green); border-radius: 50%; font-weight: 800; }
.oauth-permission p { margin: 4px 0 0; color: #46705b; font-size: 12px; line-height: 1.5; }
.oauth-facts { margin: 18px 0; }
.oauth-facts div { display: flex; justify-content: space-between; gap: 18px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.oauth-facts dt { color: var(--muted); font-size: 11px; }
.oauth-facts dd { margin: 0; max-width: 65%; overflow-wrap: anywhere; text-align: right; font-size: 11px; font-weight: 700; }
.oauth-actions { display: flex; gap: 9px; margin-top: 22px; }
.oauth-footnote { margin: 15px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.oauth-error { padding: 13px; color: #8c2b21; background: #fff0ed; border: 1px solid #f0c8c1; border-radius: 12px; }

/* Post Radar Lab: all state and workflows below are isolated in lab.db. */
.lab-nav { display: flex; gap: 7px; margin: -8px 0 16px; padding: 7px; overflow-x: auto; background: #e9eee9; border: 1px solid #d7dfd8; border-radius: 13px; }
.lab-nav a { flex: 0 0 auto; padding: 8px 11px; color: #59645c; border-radius: 9px; font-size: 11px; font-weight: 800; }
.lab-nav a:hover, .lab-nav a.active { color: #fff; background: var(--green); }
.lab-draft-notice { margin: 0 0 18px; color: #6a5010; background: #fff7d8; border-color: #e9d58d; }
.lab-nav ~ * .button:not(.secondary):not(.danger):not(.disabled) { color: #fff; background: var(--green); }
.button.danger { color: #842f27; background: #fff; border-color: #e7b7b0; }
.button.disabled, .button:disabled { color: #8a918b; background: #edf0ec; border-color: #dce1dc; cursor: not-allowed; transform: none; }
.badge.early_signal { color: #30558a; background: #e4edf9; }
.badge.confirmed_hit, .badge.approved_draft, .badge.confirmed, .badge.ok { color: #175438; background: var(--mint); }
.badge.watch, .badge.planned, .badge.testing, .badge.review, .badge.draft { color: #6e551a; background: #f8ecc9; }
.badge.review_required, .badge.normalization_queued, .badge.normalizing { color: #6e551a; background: #f8ecc9; }
.badge.blocked, .badge.refuted, .badge.failed { color: #81392f; background: #fae2df; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.section-heading h2, .lab-detail-grid h2, .lab-queue h2 { margin: 3px 0 0; font: 600 23px/1.2 Georgia, serif; }
.lab-meta { color: var(--muted); font-size: 10px; line-height: 1.45; }
.lab-empty { margin: 0; padding: 28px; color: var(--muted); text-align: center; background: #f7f9f6; border: 1px dashed #ccd4ca; border-radius: 13px; }
.lab-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.lab-flow { display: flex; align-items: center; gap: 9px; overflow-x: auto; padding: 14px 0 18px; }
.lab-flow span { flex: 0 0 auto; padding: 8px 11px; color: #174d35; background: var(--mint); border: 1px solid #cce4d5; border-radius: 999px; font-size: 10px; font-weight: 800; }
.lab-flow b { color: #8da097; }
.lab-source-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.lab-source-card { display: flex; flex-direction: column; min-height: 245px; padding: 17px; background: #f9faf7; border: 1px solid var(--line); border-radius: 14px; }
.lab-source-card h3 { margin: 13px 0 5px; font-size: 13px; }
.lab-source-card > p { flex: 1; margin: 4px 0 15px; color: #4f5a52; font-size: 12px; line-height: 1.55; }
.lab-card-head { display: flex; align-items: center; justify-content: space-between; gap: 9px; min-width: 0; flex-wrap: wrap; }
.lab-card-head > strong { font: 600 24px/1 Georgia, serif; }
.lab-card-stats, .lab-provenance, .lab-evidence { display: flex; gap: 7px 13px; flex-wrap: wrap; margin: 10px 0 14px; color: var(--muted); font-size: 10px; }
.lab-filterbar { display: flex; gap: 7px; margin-bottom: 13px; overflow-x: auto; }
.lab-filterbar a { flex: 0 0 auto; padding: 8px 11px; color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 10px; font-size: 11px; font-weight: 750; }
.lab-filterbar a.active { color: #fff; background: var(--green); border-color: var(--green); }
.lab-source-list { display: grid; }
.lab-source-list > article { display: grid; grid-template-columns: 82px minmax(0, 1fr) auto; gap: 17px; padding: 18px 0; border-top: 1px solid #edf0eb; }
.lab-source-list > article:first-child { border-top: 0; }
.lab-source-list p { margin: 9px 0; color: #39443d; font-size: 12px; line-height: 1.55; }
.lab-score { display: grid; align-content: start; justify-items: center; padding: 11px; background: #f1f5ef; border-radius: 12px; }
.lab-score strong { font: 600 26px/1 Georgia, serif; }
.lab-score small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.lab-list-actions { display: flex; align-items: flex-end; flex-direction: column; justify-content: center; gap: 8px; }
.lab-detail-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: 18px; }
.lab-detail-grid > .panel { margin-bottom: 18px; }
.lab-source-text { max-height: 480px; overflow: auto; white-space: pre-line; line-height: 1.65; }
.lab-raw-analysis { max-height: 640px; margin: 12px 0 0; padding: 16px; overflow: auto; color: #344139; background: #f8faf7; border: 1px solid var(--line); border-radius: 11px; font: 12px/1.6 Arial, sans-serif; white-space: pre-wrap; overflow-wrap: anywhere; }
.lab-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 0 17px; margin: 15px 0 0; }
.lab-facts div { padding: 10px 0; border-top: 1px solid var(--line); }
.lab-facts dt { color: var(--muted); font-size: 10px; }
.lab-facts dd { margin: 3px 0 0; font-size: 12px; font-weight: 800; }
.lab-analysis-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.lab-analysis-grid > div { padding: 13px; background: #f6f8f4; border-radius: 11px; }
.lab-analysis-grid > div.wide { grid-column: 1 / -1; }
.lab-analysis-grid strong, .lab-analysis-grid span { display: block; }
.lab-analysis-grid strong { margin-bottom: 5px; font-size: 10px; text-transform: uppercase; }
.lab-analysis-grid span { color: var(--muted); font-size: 11px; line-height: 1.5; }
.lab-trajectory { display: grid; gap: 6px; max-height: 480px; overflow: auto; }
.lab-trajectory > div { display: grid; grid-template-columns: 65px minmax(80px, 1fr) 80px; align-items: center; gap: 9px; color: var(--muted); font-size: 10px; }
.lab-trajectory b { width: var(--bar); min-width: 2px; height: 7px; background: linear-gradient(90deg, var(--green), var(--lime)); border-radius: 9px; }
.lab-trajectory strong { color: var(--ink); text-align: right; }
.lab-form { display: grid; gap: 13px; }
.lab-form label > span { display: block; margin-bottom: 6px; color: #59635b; font-size: 10px; font-weight: 800; }
.lab-form-actions, .lab-approval-actions, .lab-variants { display: flex; gap: 8px; flex-wrap: wrap; }
.lab-rules { display: grid; gap: 11px; padding-left: 20px; color: #4f5a52; font-size: 12px; line-height: 1.55; }
.lab-strategy-steps { display: grid; gap: 11px; margin: 18px 0 0; padding: 0; list-style: none; }
.lab-strategy-steps li { display: grid; grid-template-columns: 38px 1fr; gap: 13px; align-items: start; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.46); }
.lab-strategy-steps li > span { display: grid; width: 38px; height: 38px; place-items: center; color: #fff; background: var(--green); border-radius: 50%; font-weight: 850; }
.lab-strategy-steps p { margin: 4px 0 0; color: var(--muted); }
.lab-run-strip { display: flex; align-items: center; gap: 8px 15px; flex-wrap: wrap; padding: 13px 17px; font-size: 10px; }
.lab-queue { display: grid; min-width: 0; gap: 18px; }
.lab-queue > .panel { min-width: 0; max-width: 100%; margin: 0; }
.lab-queue h2, .lab-draft-context { overflow-wrap: anywhere; }
.lab-queue textarea { font-family: Arial, sans-serif; font-size: 13px; line-height: 1.65; }
.lab-provenance { padding: 9px 11px; background: #f1f5ef; border-radius: 10px; }
.lab-variants { margin: 14px 0; }
.lab-approval-actions { align-items: center; margin-top: 15px; padding-top: 15px; border-top: 1px solid var(--line); }
.lab-experiment-list, .lab-model-list, .lab-community-list { display: grid; }
.lab-experiment-list > article { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .5fr); align-items: center; gap: 18px; padding: 16px 0; border-top: 1px solid var(--line); }
.lab-experiment-list > article:first-child, .lab-community-list > article:first-child { border-top: 0; }
.lab-experiment-list h3 { margin: 7px 0 4px; }
.lab-experiment-list p { margin: 0 0 5px; font-size: 12px; }
.lab-experiment-list small { display: block; color: var(--muted); font-size: 10px; }
.lab-inline-result { display: grid; grid-template-columns: 110px 1fr auto; gap: 7px; }
.lab-experiment-list > article > strong { font: 600 25px/1 Georgia, serif; text-align: right; }
.lab-model-list { gap: 11px; }
.lab-model-list > article { padding: 16px; background: #f8faf7; border: 1px solid var(--line); border-radius: 13px; }
.lab-model-list p { line-height: 1.55; }
.lab-evidence .positive { color: #1f6f50; }
.lab-evidence .negative { color: #9b4439; }
.lab-model-list details { margin-top: 10px; color: var(--muted); font-size: 11px; }
.lab-isolation-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .7fr) auto; align-items: center; gap: 20px; }
.lab-isolation-panel code { overflow-wrap: anywhere; font-size: 10px; }
.lab-readonly-status { padding: 13px; border-radius: 11px; }
.lab-readonly-status.ok { color: #175438; background: var(--mint); }
.lab-readonly-status.error { color: #81392f; background: #fae2df; }
.lab-readonly-status strong, .lab-readonly-status small { display: block; }
.lab-readonly-status small { margin-top: 4px; font-size: 9px; line-height: 1.4; }
.lab-community-list > article { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 15px; padding: 13px 0; border-top: 1px solid var(--line); }
.lab-community-list strong, .lab-community-list small { display: block; }
.lab-community-list small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.lab-community-list article.disabled { opacity: .55; }

@media (max-width: 1100px) {
  .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .own-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .candidate-grid, .idea-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .two-columns, .settings-grid, .vk-connect-grid, .search-steps, .knowledge-intro, .knowledge-access-grid, .mcp-connect-layout { grid-template-columns: 1fr; }
  .knowledge-source-grid { grid-template-columns: 1fr 1fr; }
  .lab-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lab-source-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lab-detail-grid, .lab-isolation-panel { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .login-shell { grid-template-columns: 1fr; }
  .login-intro { min-height: 270px; padding: 30px; }
  .login-intro > div { padding: 42px 0 24px; }
  .login-intro h1 { max-width: 560px; font-size: clamp(38px, 9vw, 58px); }
  .login-security { display: none; }
  .login-panel { width: 100%; min-height: calc(100vh - 270px); padding: 38px 28px 54px; }
}

@media (max-width: 760px) {
  .shell { display: block; }
  .sidebar { position: static; width: 100%; height: auto; padding: 16px; }
  .brand { margin-bottom: 14px; }
  nav { display: flex; overflow-x: auto; }
  nav a { flex: 0 0 auto; padding: 8px 10px; font-size: 12px; }
  nav a span { display: none; }
  .sidebar-status { display: none; }
  .sidebar-logout { display: none; }
  main { padding: 22px 14px 44px; }
  .topbar { align-items: flex-start; }
  .topbar h1 { font-size: 31px; }
  .metrics { grid-template-columns: 1fr 1fr; gap: 9px; }
  .metrics article { min-height: 112px; padding: 16px; }
  .metrics strong { font-size: 28px; }
  .own-filters { grid-template-columns: 1fr; }
  .filter-actions { align-items: stretch; flex-direction: column; }
  .pagination { align-items: stretch; flex-direction: column; }
  .page-numbers { order: -1; }
  .page-button.wide { width: 100%; }
  .panel { padding: 17px; border-radius: 15px; }
  .add-community, .candidate-grid, .idea-grid { grid-template-columns: 1fr; }
  .community-row { grid-template-columns: 42px 1fr auto; }
  .community-row > .badge { grid-column: 2; }
  .row-actions { grid-column: 3; grid-row: 1 / span 2; }
  .form-row { align-items: stretch; flex-direction: column; }
  .inline-secret-form { align-items: stretch; flex-direction: column; }
  .form-row label { min-width: 0; }
  .run-list > div { grid-template-columns: 90px 1fr; }
  .run-list span:nth-child(3), .run-list time { grid-column: 2; }
  .knowledge-intro dl { grid-template-columns: 1fr 1fr 1fr; }
  .knowledge-source-grid, .knowledge-search { grid-template-columns: 1fr; }
  .knowledge-message-meta time { width: 100%; margin-left: 0; }
  .oauth-shell { padding: 24px 0; }
  .oauth-card { padding: 23px; border-radius: 17px; }
  .oauth-card h1 { font-size: 28px; }
  .oauth-actions { align-items: stretch; flex-direction: column; }
  .lab-metrics, .lab-source-grid, .lab-analysis-grid { grid-template-columns: 1fr; }
  .lab-source-list > article, .lab-experiment-list > article { grid-template-columns: 1fr; }
  .lab-score { justify-items: start; }
  .lab-list-actions { align-items: flex-start; flex-direction: row; justify-content: flex-start; }
  .lab-inline-result { grid-template-columns: 1fr; }
  .lab-analysis-grid > div.wide { grid-column: auto; }
  .lab-facts { grid-template-columns: 1fr; }
}

/* Lab UX: guide the user from a signal to one confirmed draft. */
.lab-nav { align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 9px; overflow: visible; }
.lab-nav-primary, .lab-nav-secondary { display: flex; align-items: center; gap: 4px; }
.lab-nav a { display: inline-flex; align-items: center; gap: 6px; }
.lab-nav a > span { display: grid; place-items: center; width: 18px; height: 18px; color: #426454; background: #fff; border: 1px solid #cad7cf; border-radius: 50%; font-size: 9px; }
.lab-nav a.active > span, .lab-nav a:hover > span { color: var(--green); border-color: #fff; }
.lab-nav-secondary { padding-left: 11px; border-left: 1px solid #cbd5cd; }
.lab-nav-secondary a { padding-inline: 9px; font-weight: 700; }
.lab-modebar { display: flex; gap: 7px; margin: 0 0 18px; }
.lab-modebar span, .lab-state-pill, .lab-publish-note { padding: 5px 9px; color: #657068; background: #f0f3ef; border-radius: 999px; font-size: 9px; font-weight: 750; }
.lab-modebar span.ok { color: #216247; background: #e3f3e8; }
.lab-next-step { display: grid; grid-template-columns: minmax(280px, .85fr) minmax(440px, 1.15fr); gap: 34px; align-items: center; padding: 25px 28px; background: linear-gradient(135deg, #f8fbf6 0%, #edf6ed 100%); border-color: #cfe0d2; }
.lab-next-step h2 { margin: 3px 0 8px; font: 600 28px/1.15 Georgia, serif; }
.lab-next-step p:not(.eyebrow) { max-width: 610px; margin: 0 0 17px; color: #526058; font-size: 13px; line-height: 1.6; }
.lab-progress { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; margin: 0; padding: 0; list-style: none; }
.lab-progress li { min-width: 0; padding: 12px 10px; color: #7a847d; background: rgba(255,255,255,.65); border: 1px solid #dbe4dc; border-radius: 12px; }
.lab-progress li > span { display: grid; place-items: center; width: 25px; height: 25px; margin-bottom: 8px; color: #68756d; background: #edf0ed; border-radius: 50%; font-size: 10px; font-weight: 900; }
.lab-progress strong, .lab-progress small { display: block; overflow: hidden; text-overflow: ellipsis; }
.lab-progress strong { color: #4e5a52; font-size: 10px; }
.lab-progress small { margin-top: 3px; font-size: 9px; white-space: nowrap; }
.lab-progress li.done { color: #367158; background: #f1f8f2; border-color: #c8decf; }
.lab-progress li.done > span { color: #fff; background: var(--green); }
.lab-progress li.current { background: #fff; border-color: var(--green); box-shadow: 0 8px 20px rgba(22,75,51,.08); }
.lab-progress li.current > span { color: #fff; background: var(--green); }
.lab-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.lab-disclosure { padding: 0; }
.lab-disclosure > summary, .lab-editor > summary, .lab-advanced-settings > summary { padding: 17px 20px; color: #405048; font-size: 12px; font-weight: 800; cursor: pointer; }
.lab-disclosure[open] > summary, .lab-editor[open] > summary, .lab-advanced-settings[open] > summary { border-bottom: 1px solid var(--line); }
.lab-disclosure > p, .lab-disclosure > .lab-meta, .lab-disclosure > .lab-analysis-grid, .lab-disclosure > .lab-isolation-panel { margin: 16px 20px; }
.lab-page-intro { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 14px; padding: 15px 18px; background: #f6f8f4; border: 1px solid var(--line); border-radius: 13px; }
.lab-page-intro strong, .lab-page-intro span { display: block; }
.lab-page-intro strong { margin-bottom: 4px; color: #33423a; font-size: 12px; }
.lab-page-intro span { color: var(--muted); font-size: 10px; line-height: 1.5; }
.lab-section-copy { max-width: 720px; margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.lab-card-actions { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.text-link.muted { color: #7c867f; }
.lab-source-list .lab-card-stats strong { color: #3c4941; }
.lab-list-actions { min-width: 140px; }
.lab-list-actions .button { width: 100%; }
.lab-empty-state { min-height: 220px; padding: 28px; }
.lab-empty-state .button, .lab-empty-state form { margin-top: 16px; }
.lab-full-button { width: 100%; margin-top: 17px; }
.lab-create-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); gap: 18px; align-items: start; }
.lab-create-card, .lab-help-card { margin: 0; }
.lab-create-form fieldset { display: grid; gap: 13px; margin: 0; padding: 0 0 22px; border: 0; border-bottom: 1px solid var(--line); }
.lab-create-form fieldset + fieldset { padding-top: 20px; }
.lab-create-form legend { display: flex; align-items: center; gap: 10px; margin-bottom: 15px; padding: 0; }
.lab-create-form legend > span { display: grid; place-items: center; width: 29px; height: 29px; color: #fff; background: var(--green); border-radius: 50%; font-size: 11px; font-weight: 900; }
.lab-create-form legend strong, .lab-create-form legend small { display: block; }
.lab-create-form legend strong { font-size: 13px; }
.lab-create-form legend small { margin-top: 3px; color: var(--muted); font-size: 10px; font-weight: 400; }
.lab-form label > small { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.lab-selected-source { display: flex; align-items: center; gap: 9px; padding: 10px 12px; background: #f6f8f4; border-radius: 10px; font-size: 10px; }
.lab-selected-source a { margin-left: auto; color: var(--green); }
.lab-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.lab-choice-card { display: grid; grid-template-columns: auto 1fr; gap: 7px 9px; align-items: start; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; cursor: pointer; }
.lab-choice-card input { grid-row: 1 / span 3; margin-top: 2px; }
.lab-choice-card strong, .lab-choice-card span, .lab-choice-card small { grid-column: 2; }
.lab-choice-card span, .lab-choice-card small { color: var(--muted); line-height: 1.45; }
.lab-choice-card:has(input:checked) { border-color: var(--green); box-shadow: 0 0 0 2px rgba(0, 105, 79, .1); background: #f6fbf7; }
.lab-choice-card.is-disabled { cursor: not-allowed; opacity: .62; background: #f4f1ec; }
.lab-choice-card.lab-topic-card { display: flex; flex-direction: column; align-items: stretch; min-width: 0; cursor: default; }
.lab-topic-card.is-disabled { opacity: 1; }
.lab-topic-card > label { display: flex; align-items: baseline; gap: 9px; cursor: pointer; }
.lab-topic-card > label > input[type="radio"] { flex: 0 0 16px; width: 16px; min-width: 16px; height: 16px; padding: 0; margin: 2px 0 0; }
.lab-topic-card > label > strong { min-width: 0; overflow-wrap: anywhere; }
.lab-topic-card > p { line-height: 1.65; overflow-wrap: anywhere; }
.lab-topic-card > .badge { align-self: flex-start; }
.lab-topic-card .badge.completed { color: #175438; background: var(--mint); }
.lab-topic-card .badge.review { color: #6e551a; }
.lab-topic-card > details { min-width: 0; }
.lab-topic-card blockquote { margin: 8px 0; padding-left: 12px; border-left: 2px solid var(--line); font-size: 13px; }
.lab-inner-panel { margin-top: 24px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fbfcfa; }
.lab-advanced-settings { margin-top: 4px; background: #fafbf9; border: 1px solid var(--line); border-radius: 11px; }
.lab-advanced-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; padding: 14px; }
.lab-submit-row { display: flex; align-items: center; gap: 14px; padding-top: 5px; }
.lab-submit-row small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.lab-help-card { position: sticky; top: 24px; }
.lab-safe-note { padding: 11px; color: #426251; background: #edf6ef; border-radius: 10px; font-size: 10px; line-height: 1.5; }
.lab-run-strip > span { display: inline-flex; align-items: center; gap: 6px; }
.lab-run-dot { display: inline-block; width: 7px; height: 7px; background: #b6beb8; border-radius: 50%; }
.lab-run-dot.queued, .lab-run-dot.generating { background: #e5a72c; box-shadow: 0 0 0 3px #f8ecc9; }
.lab-run-dot.failed { background: #b84b3e; }
.lab-draft-context { margin: 7px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.lab-editor-steps { display: flex; max-width: 100%; min-width: 0; gap: 6px; margin: 15px 0; }
.lab-editor-steps span { padding: 7px 10px; color: #7c857f; background: #f1f3f0; border-radius: 9px; font-size: 9px; font-weight: 800; }
.lab-editor-steps span.current { color: #6d5010; background: #f8ecc9; }
.lab-editor-steps span.done { color: #216247; background: var(--mint); }
.lab-variants { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.lab-variants > article { display: flex; flex-direction: column; justify-content: space-between; min-height: 138px; padding: 13px; background: #fafbf9; border: 1px solid var(--line); border-radius: 11px; }
.lab-variants small, .lab-variants strong { display: block; }
.lab-variants small { color: var(--muted); font-size: 9px; }
.lab-variants strong { min-height: 38px; margin: 5px 0 8px; font-size: 11px; line-height: 1.45; }
.lab-variants p { margin: 0 0 10px; color: #667169; font-size: 10px; line-height: 1.5; }
.lab-variants form { margin-top: 11px; }
.lab-readable-draft { min-width: 0; margin: 12px 0; padding: 20px; background: #fbfcfa; border: 1px solid #dce3dc; border-radius: 15px; }
.lab-readable-draft .section-heading { margin-bottom: 10px; }
.lab-readable-draft .section-heading h3 { margin: 3px 0 0; font: 600 19px/1.2 Georgia, serif; }
.lab-content-preview { margin: 0; padding: 22px clamp(16px, 4vw, 42px); background: #fff; border: 1px solid #dce3dc; border-radius: 13px; box-shadow: 0 5px 18px rgba(34,55,42,.04); }
.lab-post-copy { max-width: 820px; margin: 0 auto; color: #26332c; font: 15px/1.75 Georgia, serif; white-space: pre-wrap; overflow-wrap: anywhere; }
.lab-missing-copy { padding: 18px; color: #6d5010; background: #fff8e7; border: 1px solid #ead9a9; border-radius: 12px; }
.lab-missing-copy strong { display: block; }
.lab-missing-copy p { margin: 5px 0 0; color: #756744; font-size: 12px; }
.lab-content-preview small { display: block; margin-bottom: 5px; color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.lab-preview-cover, .lab-preview-hook, .lab-preview-note, .lab-preview-cta { padding: 12px; background: #f6f8f4; border-radius: 10px; }
.lab-preview-cover + *, .lab-preview-hook + *, .lab-preview-text + *, .lab-preview-section + *, .lab-preview-note + * { margin-top: 11px; }
.lab-preview-text { color: #344139; font-size: 12px; line-height: 1.65; white-space: pre-line; }
.lab-preview-text p { margin: 0 0 8px; }
.lab-preview-section { padding-top: 4px; }
.lab-preview-section ol { margin: 5px 0 0; padding-left: 20px; color: #3f4c44; font-size: 11px; line-height: 1.6; }
.lab-preview-slides { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.lab-preview-slides article { padding: 11px; background: #f7f9f6; border: 1px solid var(--line); border-radius: 9px; }
.lab-preview-slides article > span { color: var(--green); font-size: 9px; font-weight: 900; }
.lab-preview-slides article strong { display: block; margin: 4px 0; font-size: 11px; }
.lab-preview-slides article p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.lab-preview-shots { display: grid; gap: 6px; }
.lab-preview-shots span { padding: 8px 10px; color: #536057; background: #f7f9f6; border-radius: 8px; font-size: 10px; }
.lab-preview-shots b { margin-right: 7px; color: var(--green); }
.lab-preview-note span { color: #4a584f; font-size: 10px; line-height: 1.5; }
.lab-preview-cta { color: #1f5b42; background: var(--mint); }
.lab-editor { margin-top: 12px; border: 1px solid var(--line); border-radius: 11px; }
.lab-editor form { padding: 15px; }
.lab-copy-editor { min-height: 460px; resize: vertical; color: #26332c; background: #fff; }
.lab-variant-picker { margin-top: 12px; border: 1px solid var(--line); border-radius: 11px; }
.lab-variant-picker .lab-variants { padding: 0 15px 15px; }
.lab-grounding-card { margin-top: 12px; border: 1px solid #cfe0d2; border-radius: 11px; background: #f7fbf7; }
.lab-grounding-card > summary { padding: 14px 16px; color: #405048; font-size: 11px; font-weight: 800; cursor: pointer; }
.lab-grounding-card[open] > summary { border-bottom: 1px solid #dbe7dd; }
.lab-grounding-body { padding: 15px 17px; }
.lab-grounding-body > p { margin: 0 0 9px; color: #4b594f; font-size: 11px; line-height: 1.55; }
.lab-fact-list { display: grid; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.lab-fact-list li { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; padding: 10px; background: #fff; border: 1px solid #e0e8e1; border-radius: 9px; }
.lab-fact-list li > span { display: grid; width: 30px; height: 30px; place-items: center; color: #fff; background: var(--green); border-radius: 50%; font-size: 9px; font-weight: 900; }
.lab-fact-list strong, .lab-fact-list small, .lab-fact-list a { display: block; }
.lab-fact-list strong { font-size: 11px; line-height: 1.45; }
.lab-fact-list small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.lab-fact-list a { margin-top: 5px; font-size: 9px; }
.lab-media-brief { margin: 0 0 12px; padding: 10px 12px; background: #fff; border: 1px solid var(--line); border-radius: 9px; }
.lab-media-brief summary { color: #405048; font-size: 10px; font-weight: 800; cursor: pointer; }
.lab-media-brief dl { display: grid; gap: 7px; margin: 10px 0 0; }
.lab-media-brief dl > div { display: grid; grid-template-columns: minmax(110px, .25fr) 1fr; gap: 10px; }
.lab-media-brief dt { color: var(--muted); font-size: 9px; text-transform: capitalize; }
.lab-media-brief dd, .lab-media-brief p { margin: 0; color: #405048; font-size: 10px; line-height: 1.5; }
.lab-technical-panel { margin-top: 15px; border: 1px solid var(--line); border-radius: 11px; background: #fafbf9; }
.lab-technical-panel > .lab-provenance, .lab-technical-panel > h4, .lab-technical-panel > .lab-rules, .lab-technical-panel > .lab-editor-note, .lab-technical-panel > .lab-raw-json { margin: 14px 18px; }
.lab-editor-note { padding: 12px; background: #fff7df; border-radius: 9px; }
.lab-editor-note strong { font-size: 10px; }
.lab-editor-note p { margin: 5px 0 0; color: #645b43; font-size: 10px; line-height: 1.55; white-space: pre-wrap; }
.lab-raw-json summary { color: var(--muted); font-size: 10px; font-weight: 800; cursor: pointer; }
.lab-raw-json pre { max-height: 420px; padding: 13px; overflow: auto; color: #425047; background: #f1f4f0; border-radius: 9px; font: 10px/1.55 Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.lab-publish-note { margin-left: auto; }
.lab-settings-intro { background: #edf6ef; border-color: #cfe2d4; }
.lab-community-list > article { padding: 14px 10px; border-radius: 11px; }
.lab-community-list > article.connected { background: #f4f9f4; }
.lab-community-state, .lab-community-actions { display: flex; align-items: center; gap: 10px; }
.lab-source-toggle { width: 10px; height: 10px; background: #c5ccc7; border-radius: 50%; box-shadow: 0 0 0 4px #f0f2f0; }
.lab-source-toggle.on { background: #2d7c57; box-shadow: 0 0 0 4px #ddf0e3; }
.lab-community-actions { justify-content: flex-end; }
.lab-community-actions form { margin: 0; }
.lab-technical-isolation { margin-top: 18px; }
.lab-technical-isolation .lab-isolation-panel { grid-template-columns: minmax(0, 1fr) minmax(260px, .7fr); }
.lab-destination { border-color: #cfe0d2; }
.lab-oauth-config { margin-bottom: 18px; padding: 16px; border: 1px solid #d9e5db; border-radius: 12px; background: #f8fbf8; }
.lab-oauth-config-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.lab-oauth-config-heading h3 { margin: 2px 0 4px; }
.lab-oauth-config-heading p { margin: 0; color: var(--muted); font-size: 10px; }
.lab-oauth-config-form { grid-template-columns: minmax(150px, .65fr) minmax(240px, 1fr) minmax(300px, 1.4fr); max-width: none; }
.lab-oauth-config-form .lab-form-actions { grid-column: 1 / -1; }
.lab-destination-connected { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 15px; background: #f4f9f4; border-radius: 12px; }
.lab-destination-connected strong, .lab-destination-connected span, .lab-destination-connected small { display: block; }
.lab-destination-connected span { margin-top: 4px; font-size: 11px; }
.lab-destination-connected small { margin-top: 5px; color: var(--muted); font-size: 9px; }
.lab-destination-form { max-width: 760px; }
.lab-inline-help { margin-top: 13px; color: var(--muted); font-size: 10px; }
.lab-inline-help summary { color: var(--green); font-weight: 800; cursor: pointer; }
.lab-publish-scope { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 15px; }
.lab-publish-scope span { padding: 6px 9px; color: #536057; background: #f1f4f0; border-radius: 999px; font-size: 9px; font-weight: 750; }
.lab-publish-box { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; margin-top: 15px; padding: 16px; background: #f6f8f4; border: 1px solid var(--line); border-radius: 12px; }
.lab-publish-box h3 { margin: 3px 0 5px; font-size: 14px; }
.lab-publish-box p:not(.eyebrow) { max-width: 700px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.lab-publish-box.published { background: #edf6ef; border-color: #c6dfce; }
.lab-publish-box.unknown { background: #fff6df; border-color: #ead18d; }
.lab-copy-panel { display: grid; gap: 9px; width: 100%; }
.lab-publish-box > details { flex-basis: 100%; }
.lab-copy-panel > label { font-size: 10px; font-weight: 800; }
.lab-copy-panel textarea { width: 100%; min-height: 240px; }
.lab-copy-status { align-self: center; min-height: 18px; color: var(--green); font-size: 9px; font-weight: 750; }
.lab-confirm-check { display: grid; gap: 8px; min-width: 290px; }
.lab-confirm-check label, .lab-final-publish > label { display: flex; align-items: flex-start; gap: 8px; color: #46534b; font-size: 10px; line-height: 1.45; }
.lab-confirm-check input, .lab-final-publish input[type="checkbox"] { width: auto; margin-top: 2px; }
.lab-publish-confirm { display: grid; gap: 22px; max-width: 900px; margin-inline: auto; }
.lab-confirm-target { padding: 15px; background: #edf6ef; border-radius: 12px; }
.lab-confirm-target h2 { margin: 3px 0 5px; }
.lab-vk-message { max-height: 520px; margin: 10px 0 0; padding: 18px; overflow: auto; color: #2f3b34; background: #f8faf7; border: 1px solid var(--line); border-radius: 12px; font: 12px/1.65 Arial, sans-serif; white-space: pre-wrap; word-break: break-word; }
.lab-media-editor { margin: 14px 0; padding: 15px; background: #f8faf7; border: 1px solid var(--line); border-radius: 12px; }
.lab-media-editor .section-heading { margin-bottom: 10px; }
.lab-media-grid, .lab-confirm-media { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.lab-media-grid article, .lab-confirm-media article { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.lab-media-grid img, .lab-media-grid video, .lab-confirm-media img, .lab-confirm-media video { display: block; width: 100%; height: 160px; object-fit: contain; background: #edf1ed; }
.lab-media-grid article > div, .lab-confirm-media article > span { display: block; padding: 9px; }
.lab-media-grid strong, .lab-media-grid small, .lab-confirm-media strong, .lab-confirm-media small { display: block; overflow-wrap: anywhere; }
.lab-media-grid strong, .lab-confirm-media strong { font-size: 10px; }
.lab-media-grid small, .lab-confirm-media small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.lab-media-grid form { padding: 0 9px 9px; }
.lab-media-upload { display: flex; align-items: end; gap: 12px; margin-top: 11px; }
.lab-media-upload label { flex: 1; }
.lab-confirm-media { margin-top: 12px; }
.lab-final-publish { display: grid; gap: 14px; padding-top: 4px; }
.lab-final-publish small { color: var(--muted); font-size: 9px; }
.lab-job-center { display: grid; gap: 9px; margin: 12px 0 18px; }
.lab-job-center[hidden] { display: none; }
.lab-job-card { padding: 14px 16px; overflow: hidden; background: #f7faf7; border: 1px solid #d7e3da; border-radius: 13px; box-shadow: 0 5px 18px rgba(34,55,42,.04); }
.lab-job-card.success { background: #eef8f1; border-color: #c4dfcc; }
.lab-job-card.attention { background: #fff8e8; border-color: #ead59a; }
.lab-job-card.failed { background: #fff1ee; border-color: #efc1ba; }
.lab-job-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.lab-job-heading strong, .lab-job-heading small { display: block; }
.lab-job-heading strong { color: #27372e; font-size: 12px; }
.lab-job-heading small, .lab-job-honesty { margin-top: 4px; color: var(--muted); font-size: 9px; }
.lab-job-progress { position: relative; height: 8px; margin: 11px 0 7px; overflow: hidden; background: #e2e8e3; border-radius: 999px; }
.lab-job-progress > i { display: block; position: relative; width: var(--lab-job-progress, 8%); height: 100%; overflow: hidden; background: linear-gradient(90deg, #1f7052, #55a177); border-radius: inherit; transition: width .45s ease; }
.lab-job-progress.active > i::after { content: ""; position: absolute; inset: 0; width: 45%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.72), transparent); animation: lab-job-shimmer 1.25s linear infinite; }
.lab-job-progress.terminal > i { width: 100%; }
.lab-job-card.failed .lab-job-progress > i { background: #b84b3e; }
.lab-job-card.attention .lab-job-progress > i { background: #d29b29; }
.lab-job-detail, .lab-job-error { margin: 6px 0 0; font-size: 10px; line-height: 1.45; }
.lab-job-detail { color: #4c5c52; }
.lab-job-error { color: #8a3b31; }
.lab-job-card > .text-link { display: inline-block; margin-top: 8px; }
@keyframes lab-job-shimmer { from { transform: translateX(-140%); } to { transform: translateX(330%); } }

@media (max-width: 1100px) {
  .lab-nav { align-items: flex-start; flex-direction: column; overflow-x: auto; }
  .lab-nav-primary, .lab-nav-secondary { min-width: max-content; }
  .lab-nav-secondary { padding-left: 0; border-left: 0; }
  .lab-next-step, .lab-create-layout, .lab-choice-grid { grid-template-columns: 1fr; }
  .lab-help-card { position: static; }
  .lab-progress { grid-template-columns: repeat(5, minmax(120px, 1fr)); overflow-x: auto; }
  .lab-variants { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  .lab-nav { padding: 6px; }
  .lab-nav-primary, .lab-nav-secondary { overflow-x: auto; width: 100%; }
  .lab-modebar { flex-wrap: wrap; }
  .lab-next-step { padding: 19px; }
  .lab-progress { grid-template-columns: repeat(5, 125px); }
  .lab-metrics { grid-template-columns: 1fr 1fr; }
  .lab-page-intro, .lab-submit-row, .lab-community-list > article, .lab-community-actions { align-items: stretch; flex-direction: column; }
  .lab-page-intro .button, .lab-submit-row .button { width: 100%; }
  .lab-list-actions { width: 100%; }
  .lab-advanced-grid, .lab-variants, .lab-preview-slides, .lab-media-grid, .lab-confirm-media { grid-template-columns: 1fr; }
  .lab-media-upload { align-items: stretch; flex-direction: column; }
  .lab-editor-steps { overflow-x: auto; }
  .lab-editor-steps span { flex: 0 0 auto; }
  .lab-approval-actions { align-items: stretch; flex-direction: column; }
  .lab-approval-actions form, .lab-approval-actions .button { width: 100%; }
  .lab-publish-note { align-self: flex-start; margin-left: 0; }
  .lab-destination-connected, .lab-publish-box, .lab-oauth-config-heading { align-items: stretch; flex-direction: column; }
  .lab-oauth-config-form { grid-template-columns: 1fr; }
  .lab-oauth-config-form .lab-form-actions { grid-column: auto; }
  .lab-confirm-check { min-width: 0; }
}
