:root {
  color-scheme: light;
  --bg: #f5f2eb;
  --surface: #fffdf7;
  --surface-strong: #fdf6e7;
  --ink: #20211d;
  --muted: #67665f;
  --line: #d9d2c3;
  --green: #28745a;
  --teal: #1e6f7a;
  --amber: #b46a18;
  --red: #a64234;
  --black: #151613;
  --shadow: 0 14px 34px rgba(44, 42, 35, 0.1);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background:
    linear-gradient(180deg, rgba(255, 253, 247, 0.9), rgba(245, 242, 235, 0.95)),
    radial-gradient(circle at 18% 0%, rgba(40, 116, 90, 0.12), transparent 30%),
    radial-gradient(circle at 88% 12%, rgba(180, 106, 24, 0.12), transparent 25%);
  color: var(--ink);
  font-family:
    Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
    "Microsoft YaHei", sans-serif;
  min-height: 100vh;
}

button,
input,
select {
  font: inherit;
}

a {
  color: inherit;
  text-decoration: none;
}

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

.sidebar {
  background: rgba(255, 253, 247, 0.92);
  border-right: 1px solid var(--line);
  padding: 24px 18px;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: auto;
}

.brand-block {
  align-items: center;
  display: flex;
  gap: 12px;
  margin-bottom: 24px;
}

.brand-mark {
  align-items: center;
  background: var(--black);
  border-radius: 8px;
  color: #fff8ea;
  display: flex;
  font-weight: 800;
  height: 42px;
  justify-content: center;
  letter-spacing: 0;
  width: 42px;
}

.brand-block h1 {
  font-size: 18px;
  line-height: 1.2;
  margin: 0;
}

.brand-block p,
.eyebrow {
  color: var(--muted);
  font-size: 12px;
  margin: 4px 0 0;
}

.channel-list {
  display: grid;
  gap: 6px;
}

.channel-button {
  align-items: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--ink);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  padding: 10px 10px;
  text-align: left;
  width: 100%;
}

.channel-button:hover,
.channel-button.active {
  background: #f0eadb;
  border-color: #e3d8c0;
}

.channel-button span:first-child {
  font-size: 14px;
  font-weight: 650;
}

.channel-button span:last-child {
  color: var(--muted);
  font-size: 12px;
}

.source-cap {
  background: var(--surface-strong);
  border: 1px solid var(--line);
  border-radius: 8px;
  margin-top: 22px;
  padding: 14px;
}

.source-cap__top,
.table-title {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.source-cap__top span,
.source-cap__top strong {
  font-size: 13px;
}

.table-title > div:first-child {
  min-width: 0;
}

.table-title > div:first-child span {
  color: var(--muted);
  font-size: 13px;
}

.channel-tools {
  align-items: center;
  display: flex;
  flex: 1 1 auto;
  gap: 8px;
  justify-content: flex-end;
  min-width: 320px;
}

.channel-tools input {
  max-width: 220px;
  min-height: 36px;
}

.channel-tools .button {
  min-height: 36px;
  padding: 0 10px;
  white-space: nowrap;
}

.meter {
  background: #e5dece;
  border-radius: 999px;
  height: 8px;
  margin-top: 10px;
  overflow: hidden;
}

.meter span {
  background: linear-gradient(90deg, var(--green), var(--amber));
  display: block;
  height: 100%;
  width: 0;
}

.main-view {
  padding: 24px;
}

.topbar {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.topbar h2 {
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1;
  margin: 4px 0 0;
}

.actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.button {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  cursor: pointer;
  display: inline-flex;
  font-weight: 700;
  min-height: 38px;
  padding: 0 14px;
}

.button-primary {
  background: var(--green);
  border-color: var(--green);
  color: white;
}

.button-secondary {
  background: var(--surface);
}

.metrics-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 18px;
}

.metric {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
  padding: 16px;
}

.metric span {
  color: var(--muted);
  display: block;
  font-size: 12px;
}

.metric strong {
  display: block;
  font-size: 28px;
  line-height: 1.1;
  margin-top: 8px;
}

.workspace-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1fr);
}

.content-column {
  min-width: 0;
}

.control-strip {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(220px, 1fr) 170px 150px 180px;
  margin-bottom: 14px;
  padding: 12px;
}

.control-strip input,
.control-strip select {
  background: #fffaf0;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--ink);
  min-height: 38px;
  padding: 0 10px;
}

.article-list {
  display: grid;
  gap: 12px;
}

.article-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
  padding: 18px;
}

.article-card__head {
  align-items: flex-start;
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.article-card h3 {
  font-size: 18px;
  line-height: 1.35;
  margin: 0;
}

.article-card h3 a:hover {
  color: var(--teal);
}

.article-meta {
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 12px;
  margin-top: 8px;
}

.score {
  align-items: center;
  background: #172018;
  border-radius: 8px;
  color: white;
  display: flex;
  flex-direction: column;
  height: 54px;
  justify-content: center;
  min-width: 58px;
}

.score strong {
  font-size: 18px;
  line-height: 1;
}

.score span {
  color: #cdd7ca;
  font-size: 10px;
  margin-top: 4px;
}

.summary {
  color: #3c3c36;
  font-size: 14px;
  line-height: 1.65;
  margin: 14px 0;
}

.tag-row,
.entity-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.tag {
  background: #eee5d2;
  border-radius: 999px;
  color: #4f4736;
  font-size: 12px;
  padding: 4px 8px;
}

.tag.tag-personal {
  background: #dcefe8;
  color: #1f6f55;
}

.tag.tag-empty {
  background: #f5efe2;
  color: #827767;
}

.tag.tag-system {
  opacity: 0.72;
}

.personal-tag-panel {
  align-items: flex-start;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin-top: 12px;
}

.personal-tag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}

.tag-edit-button {
  background: #fffaf0;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--ink);
  cursor: pointer;
  min-height: 30px;
  padding: 0 10px;
  white-space: nowrap;
}

.tag-edit-button:hover {
  border-color: var(--teal);
  color: var(--teal);
}

.personal-summary {
  background: #f7f4ea;
  border-left: 3px solid var(--teal);
  color: #34342e;
  font-size: 13px;
  line-height: 1.6;
  margin: 12px 0 0;
  padding: 8px 10px;
}

.personal-summary strong {
  color: var(--teal);
  margin-right: 8px;
}

.article-enrichment-form {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding-top: 12px;
}

.article-enrichment-form label {
  display: grid;
  gap: 6px;
}

.article-enrichment-form label span {
  color: var(--muted);
  font-size: 12px;
}

.article-enrichment-form input,
.article-enrichment-form textarea {
  background: #fffaf0;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--ink);
  font: inherit;
  padding: 9px 10px;
  resize: vertical;
}

.article-enrichment-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.tag.event-policy {
  background: #e6eee7;
  color: #235f48;
}

.tag.event-investment,
.tag.event-market {
  background: #f5e1c6;
  color: #855019;
}

.tag.event-automation,
.tag.event-industrial_software,
.tag.event-semiconductor {
  background: #dfecee;
  color: #175b64;
}

.tag.event-quality_ehs {
  background: #f2dbd6;
  color: #893529;
}

.empty-state {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--muted);
  padding: 22px;
}

.insight-rail {
  display: grid;
  gap: 14px;
  align-content: start;
}

.source-table-wrap {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
  padding: 16px;
}

.network-panel img {
  display: block;
  height: auto;
  width: 100%;
}

.briefing-panel h3,
.quota-panel h3,
.status-panel h3,
.source-table-wrap h3 {
  font-size: 15px;
  margin: 0 0 12px;
}

.brief-item {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 4px;
  padding: 10px 0;
}

.brief-item:first-child {
  border-top: 0;
  padding-top: 0;
}

.brief-item a {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}

.brief-item span,
.status-panel,
.quota-line {
  color: var(--muted);
  font-size: 12px;
}

.quota-line {
  align-items: center;
  display: grid;
  gap: 8px;
  grid-template-columns: 1fr auto;
  padding: 6px 0;
}

.source-table-wrap {
  margin-top: 14px;
}

.source-table {
  display: grid;
  gap: 8px;
}

.source-row {
  align-items: center;
  border-top: 1px solid var(--line);
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(180px, 1.2fr) 110px 80px 80px minmax(120px, 1fr);
  padding: 10px 0;
}

.source-row:first-child {
  border-top: 0;
}

.source-row strong {
  font-size: 13px;
}

.source-row span,
.source-row a {
  color: var(--muted);
  font-size: 12px;
}

.hidden {
  display: none;
}

@media (max-width: 1100px) {
  .app-shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    height: auto;
    position: static;
  }

  .channel-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .workspace-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .main-view {
    padding: 16px;
  }

  .topbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .actions {
    justify-content: flex-start;
    width: 100%;
  }

  .button {
    justify-content: center;
    flex: 1 1 auto;
  }

  .metrics-grid,
  .control-strip,
  .channel-list {
    grid-template-columns: 1fr;
  }

  .article-card__head,
  .source-row {
    grid-template-columns: 1fr;
  }

  .score {
    flex-direction: row;
    gap: 6px;
    height: 38px;
    min-width: 0;
    width: 86px;
  }
}

.auto-refresh-control {
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: inline-flex;
  gap: 8px;
  min-height: 38px;
  padding: 0 10px;
}

.auto-refresh-control span {
  color: var(--muted);
  font-size: 12px;
  white-space: nowrap;
}

.auto-refresh-control select {
  background: transparent;
  border: 0;
  color: var(--ink);
  min-height: 32px;
  outline: 0;
}

.source-editor {
  border-bottom: 1px solid var(--line);
  border-top: 1px solid var(--line);
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin: 8px 0 12px;
  padding: 14px 0;
}

.source-editor input,
.source-editor select {
  background: #fffaf0;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--ink);
  min-height: 38px;
  min-width: 0;
  padding: 0 10px;
}

#sourceNameInput,
#sourceUrlInput,
#sourceFeedInput,
#sourceTagsInput {
  grid-column: span 2;
}

.check-row {
  align-items: center;
  color: var(--muted);
  display: inline-flex;
  font-size: 13px;
  gap: 6px;
  min-height: 38px;
}

.check-row input {
  min-height: auto;
  width: auto;
}

.source-editor__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  grid-column: span 3;
}

.source-editor__message {
  align-items: center;
  color: var(--muted);
  display: flex;
  font-size: 12px;
  grid-column: span 3;
  min-height: 38px;
}

.entity-row {
  margin-top: 10px;
}

.source-row {
  grid-template-columns: minmax(180px, 1.2fr) 120px 90px 92px minmax(110px, 0.7fr) auto;
}

.source-row > div:first-child {
  display: grid;
  gap: 3px;
}

.source-row--off {
  opacity: 0.58;
}

.row-actions {
  display: flex;
  gap: 6px;
  justify-content: flex-end;
}

.row-actions button {
  background: #fffaf0;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--ink);
  cursor: pointer;
  font-size: 12px;
  min-height: 30px;
  padding: 0 8px;
}

.row-actions button:hover {
  border-color: var(--green);
  color: var(--green);
}

.source-move-select {
  background: #fffaf0;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--ink);
  font-size: 12px;
  min-height: 30px;
  max-width: 150px;
  padding: 0 8px;
}

@media (max-width: 920px) {
  .source-editor {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #sourceNameInput,
  #sourceUrlInput,
  #sourceFeedInput,
  #sourceTagsInput,
  .source-editor__actions,
  .source-editor__message {
    grid-column: span 2;
  }
}

@media (max-width: 720px) {
  .auto-refresh-control,
  .auto-refresh-control select {
    width: 100%;
  }

  .source-editor,
  .source-row {
    grid-template-columns: 1fr;
  }

  #sourceNameInput,
  #sourceUrlInput,
  #sourceFeedInput,
  #sourceTagsInput,
  .source-editor__actions,
  .source-editor__message {
    grid-column: span 1;
  }

  .row-actions {
    justify-content: flex-start;
  }
}
.source-board {
  display: grid;
  gap: 12px;
  grid-template-columns: 170px minmax(260px, 0.9fr) minmax(320px, 1.1fr);
  min-height: 520px;
}

.source-groups {
  border-right: 1px solid var(--line);
  display: grid;
  gap: 6px;
  align-content: start;
  padding-right: 10px;
}

.source-group-item {
  align-items: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--ink);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  min-height: 38px;
  padding: 0 10px;
  text-align: left;
}

.source-group-item:hover,
.source-group-item.active,
.source-group-item.drop-target {
  background: #eef4ef;
  border-color: #c8d9ce;
  color: var(--green);
}

.channel-group.drop-target .channel-button {
  background: #eef4ef;
  border-color: #9bbca5;
  color: var(--green);
}

.source-group-item span {
  font-size: 13px;
  font-weight: 700;
}

.source-group-item strong {
  background: #eee5d2;
  border-radius: 999px;
  color: var(--muted);
  font-size: 11px;
  min-width: 24px;
  padding: 2px 7px;
  text-align: center;
}

.source-cards {
  display: grid;
  gap: 10px;
  align-content: start;
  max-height: 680px;
  overflow: auto;
  padding-right: 4px;
}

.source-card {
  align-items: flex-start;
  background: #fffdf7;
  border: 1px solid var(--line);
  border-radius: 8px;
  cursor: pointer;
  display: grid;
  gap: 10px;
  grid-template-columns: 42px minmax(0, 1fr);
  padding: 12px;
  transition: border-color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}

.source-card:hover,
.source-card.active {
  background: #f7f2e6;
  border-color: var(--green);
}

.source-card.dragging {
  opacity: 0.48;
  transform: scale(0.99);
}

.source-card--off {
  opacity: 0.58;
}

.source-card__avatar {
  align-items: center;
  background: #dfecee;
  border: 1px solid #c6dadd;
  border-radius: 999px;
  color: #175b64;
  display: flex;
  font-weight: 800;
  height: 42px;
  justify-content: center;
  width: 42px;
}

.source-card__body {
  min-width: 0;
}

.source-card__title {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: space-between;
}

.source-card__title strong {
  font-size: 14px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.source-card__title span {
  background: #eee5d2;
  border-radius: 999px;
  color: var(--muted);
  font-size: 11px;
  min-width: 24px;
  padding: 2px 7px;
  text-align: center;
}

.source-card p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
  margin: 5px 0 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.source-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 8px;
}

.source-card__meta span {
  background: #f1eadb;
  border-radius: 999px;
  color: #655b45;
  font-size: 11px;
  padding: 3px 7px;
}

.source-preview {
  border-left: 1px solid var(--line);
  min-width: 0;
  padding-left: 12px;
}

.source-preview__head {
  border-bottom: 1px solid var(--line);
  margin-bottom: 10px;
  padding-bottom: 10px;
}

.source-preview__head h4 {
  font-size: 16px;
  margin: 0 0 4px;
}

.source-preview__head p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
  margin: 0;
}

.source-preview__list {
  display: grid;
  gap: 0;
  max-height: 650px;
  overflow: auto;
}

.source-preview-item {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 5px;
  padding: 11px 0;
}

.source-preview-item:hover strong {
  color: var(--teal);
}

.source-preview-item span {
  color: var(--green);
  font-size: 12px;
  font-weight: 700;
}

.source-preview-item strong {
  font-size: 14px;
  line-height: 1.45;
}

.source-preview-item em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

@media (max-width: 1180px) {
  .source-board {
    grid-template-columns: 150px minmax(260px, 1fr);
  }

  .source-preview {
    border-left: 0;
    border-top: 1px solid var(--line);
    grid-column: 1 / -1;
    padding-left: 0;
    padding-top: 12px;
  }
}

@media (max-width: 760px) {
  .table-title {
    align-items: stretch;
    flex-direction: column;
  }

  .channel-tools {
    justify-content: stretch;
    min-width: 0;
  }

  .channel-tools input,
  .channel-tools .button {
    flex: 1 1 0;
    min-width: 0;
  }

  .source-board {
    grid-template-columns: 1fr;
  }

  .source-groups {
    border-right: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-right: 0;
  }

  .source-cards,
  .source-preview__list {
    max-height: none;
  }
}
.channel-group {
  display: grid;
  gap: 4px;
}

.channel-button {
  gap: 6px;
  padding: 0;
}

.channel-select {
  align-items: center;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  display: flex;
  flex: 1;
  justify-content: space-between;
  min-height: 42px;
  min-width: 0;
  padding: 0 10px 0 0;
  text-align: left;
}

.channel-select span:first-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.channel-toggle,
.channel-toggle-placeholder {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--muted);
  cursor: pointer;
  display: inline-flex;
  flex: 0 0 28px;
  font-size: 18px;
  height: 42px;
  justify-content: center;
  padding: 0;
}

.channel-toggle:hover {
  color: var(--green);
}

.channel-sublist {
  border-left: 1px solid #e2d9c8;
  display: grid;
  gap: 4px;
  margin: 0 0 4px 14px;
  padding-left: 8px;
}

.channel-source-item {
  align-items: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--ink);
  cursor: pointer;
  display: grid;
  gap: 8px;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  min-height: 34px;
  padding: 4px 7px;
  text-align: left;
}

.channel-source-item:hover,
.channel-source-item.active {
  background: #f0eadb;
  border-color: #e3d8c0;
}

.channel-source-avatar {
  align-items: center;
  background: #dfecee;
  border-radius: 999px;
  color: #175b64;
  display: inline-flex;
  font-size: 11px;
  font-weight: 800;
  height: 24px;
  justify-content: center;
  width: 24px;
}

.channel-source-name {
  font-size: 12px;
  font-weight: 650;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.channel-source-count {
  color: var(--muted);
  font-size: 11px;
}

@media (max-width: 1100px) {
  .channel-list {
    grid-template-columns: 1fr;
  }
}
.channel-add-rss {
  background: var(--green);
  border: 1px solid var(--green);
  border-radius: 7px;
  color: #fff;
  cursor: pointer;
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 800;
  min-height: 30px;
  padding: 0 9px;
  white-space: nowrap;
}

.channel-add-rss:hover {
  background: #1f654d;
  border-color: #1f654d;
}

.source-dialog.hidden {
  display: none;
}

.source-dialog {
  inset: 0;
  position: fixed;
  z-index: 1000;
}

.source-dialog__backdrop {
  background: rgba(25, 24, 20, 0.38);
  inset: 0;
  position: absolute;
}

.source-dialog__panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 28px 70px rgba(23, 24, 20, 0.24);
  left: 50%;
  max-height: min(760px, calc(100vh - 48px));
  max-width: 860px;
  overflow: auto;
  padding: 20px;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(860px, calc(100vw - 32px));
}

.source-dialog__head {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  margin-bottom: 14px;
  padding-bottom: 12px;
}

.source-dialog__head h3 {
  font-size: 20px;
  margin: 2px 0 0;
}

.icon-button {
  align-items: center;
  background: #fffaf0;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  cursor: pointer;
  display: inline-flex;
  font-size: 22px;
  height: 36px;
  justify-content: center;
  line-height: 1;
  width: 36px;
}

.icon-button:hover {
  border-color: var(--green);
  color: var(--green);
}

.source-dialog .source-editor {
  border: 0;
  margin: 0;
  padding: 0;
}

body.dialog-open {
  overflow: hidden;
}

@media (max-width: 720px) {
  .channel-add-rss {
    min-height: 34px;
  }

  .source-dialog__panel {
    border-radius: 8px 8px 0 0;
    bottom: 0;
    left: 0;
    max-height: calc(100vh - 20px);
    top: auto;
    transform: none;
    width: 100%;
  }
}
/* Simple directory RSS flow */
.channel-actions {
  display: flex;
  flex: 0 0 auto;
  gap: 6px;
}

.channel-add-rss,
.channel-add-directory {
  border-radius: 7px;
  cursor: pointer;
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 800;
  min-height: 30px;
  padding: 0 9px;
  white-space: nowrap;
}

.channel-add-directory {
  background: #fffaf0;
  border: 1px solid var(--line);
  color: var(--ink);
}

.channel-add-directory:hover {
  border-color: var(--green);
  color: var(--green);
}

.source-editor__field {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.source-editor__field span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
}

.source-editor__field input,
.source-editor__field select {
  width: 100%;
}

.source-dialog .source-editor--simple {
  grid-template-columns: minmax(0, 1fr) 220px;
}

.source-dialog .source-editor--simple .source-editor__actions,
.source-dialog .source-editor--simple .source-editor__message {
  grid-column: 1 / -1;
}

@media (max-width: 720px) {
  .channel-actions {
    width: 100%;
  }

  .channel-add-rss,
  .channel-add-directory {
    flex: 1 1 0;
  }

  .source-dialog .source-editor--simple {
    grid-template-columns: 1fr;
  }
}


.wechat-card {
  background: var(--surface-strong);
  border: 1px solid var(--line);
  border-radius: 8px;
  margin-top: 12px;
  padding: 14px;
}

.wechat-card__top {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.wechat-card__top span,
.wechat-card__top strong {
  font-size: 13px;
}

.wechat-card__top strong.wechat-ok {
  color: var(--green);
}

.wechat-card__top strong.wechat-missing {
  color: var(--amber);
}

.wechat-card__top strong.wechat-bad {
  color: var(--red);
}

.wechat-card p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
  margin: 8px 0 10px;
}

.wechat-card__test {
  border-top: 1px solid rgba(217, 210, 195, 0.75);
  padding-top: 8px;
}

.wechat-card__actions {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.wechat-card__actions button {
  background: #fffaf0;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--ink);
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  min-height: 30px;
}

.wechat-card__actions button:hover {
  border-color: var(--green);
  color: var(--green);
}

.lingowhale-card__actions {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lingowhale-editor {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lingowhale-editor .source-editor__actions,
.lingowhale-editor .wechat-test-result {
  grid-column: 1 / -1;
}

.source-editor__field--check {
  align-content: end;
  grid-template-columns: minmax(0, 1fr) auto;
}

.source-editor__field--check input {
  min-height: auto;
  width: 18px;
}

@media (max-width: 720px) {
  .lingowhale-editor {
    grid-template-columns: 1fr;
  }
}

.source-dialog__panel--narrow {
  max-width: 900px;
  width: min(900px, calc(100vw - 32px));
}

.wechat-session-form {
  display: grid;
  gap: 12px;
}

.wechat-session-form textarea {
  background: #fffaf0;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--ink);
  min-height: 120px;
  padding: 10px;
  resize: vertical;
  width: 100%;
}


.wechat-test-result {
  background: #fffaf0;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
  min-height: 38px;
  padding: 10px;
}

.wechat-test-result.ok {
  background: #eef4ef;
  border-color: #c8d9ce;
  color: var(--green);
}

.wechat-test-result.bad {
  background: #fff4ea;
  border-color: #e4c9aa;
  color: var(--amber);
}


.wechat-import-hint {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  line-height: 1.45;
}


.wewe-rss-box {
  background: #f6f1e6;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  padding: 12px;
}

.wewe-rss-box__head {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.wewe-rss-box__head strong {
  font-size: 14px;
}

.wewe-rss-box__head span {
  color: var(--muted);
  font-size: 12px;
}

.wewe-rss-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.wewe-rss-message {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
  margin: 0;
}

.wewe-rss-message.ok {
  color: #116149;
}

.wewe-rss-message.bad {
  color: #b13a2f;
}

@media (max-width: 900px) {
  .wewe-rss-grid {
    grid-template-columns: 1fr;
  }
}

.wechat-history-helper {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 10px;
  margin-top: 4px;
  padding-top: 12px;
}

.wechat-history-helper__head,
.wechat-bridge-row,


.wechat-capture-box {
  background: #f6f1e6;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 6px;
  padding: 10px;
}

.wechat-capture-box strong {
  font-size: 13px;
}

.wechat-capture-box code {
  background: #fffaf0;
  border: 1px solid var(--line);
  border-radius: 6px;
  display: block;
  font-size: 12px;
  line-height: 1.5;
  overflow-x: auto;
  padding: 8px;
  white-space: nowrap;
}

.wechat-capture-box p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
  margin: 0;
}

.wechat-history-link-row {
  display: grid;
  gap: 8px;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
}

.wechat-history-helper__head strong {
  font-size: 13px;
}

.wechat-history-helper select,
.wechat-bridge-row input,
.wechat-history-link-row input {
  background: #fffaf0;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--ink);
  min-height: 38px;
  min-width: 0;
  padding: 0 10px;
}

.wechat-bridge-row {
  grid-template-columns: minmax(260px, 1fr) auto auto;
}

.wechat-history-link-row {
  grid-template-columns: auto minmax(0, 1fr) auto;
}

@media (max-width: 720px) {
  .wechat-history-helper__head,
  .wechat-bridge-row,
  .wechat-history-link-row {
    grid-template-columns: 1fr;
  }
}


.source-dialog__panel--narrow .wechat-session-form {
  grid-template-columns: minmax(0, 1fr);
}

.source-dialog__panel--narrow .source-editor__field,
.source-dialog__panel--narrow .source-editor__actions,
.source-dialog__panel--narrow .source-editor__message,
.source-dialog__panel--narrow .wechat-test-result,
.source-dialog__panel--narrow .wechat-history-helper {
  grid-column: 1 / -1;
}

.source-dialog__panel--narrow .source-editor__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.source-dialog__panel--narrow .source-editor__actions .button {
  flex: 0 0 auto;
}

.wechat-history-helper .source-editor__field {
  display: grid;
  gap: 6px;
}

.wechat-history-helper textarea {
  background: #fffaf0;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--ink);
  min-height: 140px;
  padding: 10px;
  resize: vertical;
  width: 100%;
}

.wechat-history-helper__head {
  grid-template-columns: 92px minmax(0, 1fr);
}

.wechat-bridge-row {
  grid-template-columns: minmax(280px, 1fr) auto auto;
}

.wechat-history-link-row {
  grid-template-columns: auto minmax(280px, 1fr) auto;
}

@media (max-width: 720px) {
  .wechat-history-helper__head,
  .wechat-bridge-row,
  .wechat-history-link-row {
    grid-template-columns: 1fr;
  }
}


.case-dashboard{background:#171b18;border-radius:12px;color:#f5f1e7;margin-bottom:18px;overflow:hidden;padding:22px}.case-dashboard>header,.case-dashboard>header aside,.case-body article>header{align-items:center;display:flex;justify-content:space-between;gap:12px}.case-dashboard>header p{color:#75ae96;font-size:10px;letter-spacing:.08em;margin:0}.case-dashboard>header p b{border:1px solid #426b5a;border-radius:99px;margin-left:8px;padding:3px 8px}.case-dashboard h3{font-size:25px;margin:5px 0}.case-dashboard>header small,.case-dashboard>header aside{color:#9ca69e;font-size:11px}.case-dashboard>header button{background:#e8b96f;border:0;border-radius:7px;font-weight:700;padding:9px 12px}.case-kpis{border-bottom:1px solid #363c37;border-top:1px solid #363c37;display:grid;grid-template-columns:repeat(5,1fr);margin:19px -22px 0}.case-kpis>div{border-right:1px solid #363c37;padding:16px 22px}.case-kpis span,.case-kpis small{color:#aeb6ae;display:block;font-size:11px}.case-kpis strong{display:block;font-size:28px;margin:7px 0}.case-kpis>div:first-child strong{color:#e8b96f}.case-body{display:grid;gap:12px;grid-template-columns:.8fr .7fr 1.5fr;padding-top:18px}.case-body article{background:#202521;border:1px solid #363c37;border-radius:9px;min-height:210px;padding:16px}.case-body h4{font-size:14px;margin:3px 0}.case-body article>header small{color:#7f8b82;font-size:9px;letter-spacing:.08em}#caseFunnel,#caseScenarios{display:grid;gap:12px;margin-top:18px}#caseFunnel p,#caseScenarios p{align-items:center;display:grid;gap:9px;grid-template-columns:85px 1fr 24px;margin:0}#caseFunnel span,#caseScenarios span,#caseScenarios strong{font-size:10px}#caseFunnel i{background:#303630;border-radius:9px;height:5px;overflow:hidden}#caseFunnel b{background:#65a88d;display:block;height:100%}#caseFunnel strong,#caseScenarios em{font-size:10px;font-style:normal;text-align:right}#caseLatest{margin-top:10px}#caseLatest>a{align-items:center;border-top:1px solid #343a35;display:grid;gap:9px;grid-template-columns:1fr auto 1.3fr 90px;padding:10px 0}#caseLatest>a>strong{font-size:10px}#caseLatest>a>span{background:#293a32;border-radius:99px;color:#9ed0bd;font-size:9px;padding:4px 7px}#caseLatest p{color:#abb3ac;font-size:9px;margin:0}#caseLatest time{color:#879189;font-size:9px}.case-empty{align-content:center;display:grid;min-height:130px;text-align:center}.case-empty strong{font-size:12px}.case-empty span{color:#7f8b82;font-size:10px;margin-top:6px}@media(max-width:1250px){.case-body{grid-template-columns:1fr 1fr}.case-latest{grid-column:1/-1}}@media(max-width:820px){.case-dashboard>header,.case-dashboard>header aside{align-items:flex-start;flex-direction:column}.case-kpis{grid-template-columns:repeat(2,1fr)}.case-body{grid-template-columns:1fr}.case-latest{grid-column:auto}}
\n.case-page{background:#eeebe3}.case-page__main{margin:0 auto;max-width:1600px;padding:24px}.case-page__nav{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.case-page__nav a{font-size:13px;font-weight:700}.case-page__nav span{color:var(--muted);font-size:12px}.case-page .case-dashboard{min-height:calc(100vh - 88px);margin:0}.case-page .case-dashboard>header{padding-bottom:10px}@media(max-width:720px){.case-page__main{padding:12px}.case-page__nav{align-items:flex-start;flex-direction:column;gap:6px}}\n
/* Case page: same visual language as the news homepage */
.case-shell{grid-template-columns:280px minmax(0,1fr)}.case-sidebar{display:flex;flex-direction:column}.case-nav{display:grid;gap:7px}.case-nav a{align-items:center;border:1px solid transparent;border-radius:8px;display:flex;font-size:14px;font-weight:650;justify-content:space-between;padding:12px}.case-nav a:hover,.case-nav a.active{background:#f0eadb;border-color:#e3d8c0}.case-nav b{color:var(--muted);font-weight:500}.case-sidebar__note{border-top:1px solid var(--line);margin-top:auto;padding-top:18px}.case-sidebar__note span{color:var(--green);font-size:10px;letter-spacing:.1em}.case-sidebar__note p{color:var(--muted);font-size:12px;line-height:1.65;margin:8px 0}.case-topbar{margin-bottom:18px}.case-topbar__desc{color:var(--muted);font-size:13px;margin:9px 0 0}.case-main .case-dashboard{background:transparent;border:0;border-radius:0;box-shadow:none;color:var(--ink);margin:0;overflow:visible;padding:0}.case-main .case-dashboard>header{background:var(--surface);border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);padding:17px}.case-main .case-dashboard>header>div:first-child>p{color:var(--green)}.case-main .case-dashboard>header h3{display:none}.case-main .case-dashboard>header>div:first-child>small{color:var(--muted)}.case-main .case-dashboard>header aside{color:var(--muted)}.case-main .case-dashboard>header aside button{display:none}.case-main .case-rule-badge,.case-main .case-dashboard>header p b{background:#edf5f0;border-color:#b8d3c7;color:var(--green)}.case-main .case-kpis{border:0;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr));margin:12px 0 0}.case-main .case-kpis>div{background:var(--surface);border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);padding:16px}.case-main .case-kpis span,.case-main .case-kpis small{color:var(--muted)}.case-main .case-kpis strong{color:var(--ink)}.case-main .case-kpis>div:first-child strong{color:var(--green)}.case-main .case-body{grid-template-columns:minmax(300px,.8fr) minmax(280px,.7fr) minmax(460px,1.5fr);padding-top:12px}.case-main .case-body article{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);color:var(--ink)}.case-main .case-body article>header small{color:var(--muted)}.case-main #caseFunnel span,.case-main #caseScenarios span{color:var(--muted)}.case-main #caseFunnel i{background:#e8e3d8}.case-main #caseFunnel b{background:linear-gradient(90deg,var(--green),#62a78d)}.case-main #caseLatest>a{border-color:var(--line)}.case-main #caseLatest>a>span{background:#edf5f0;color:var(--green)}.case-main #caseLatest p,.case-main #caseLatest time,.case-main .case-empty span{color:var(--muted)}.case-main .case-empty strong{color:var(--ink)}
@media(max-width:1250px){.case-main .case-body{grid-template-columns:1fr 1fr}.case-main .case-latest{grid-column:1/-1}}@media(max-width:900px){.case-shell{grid-template-columns:1fr}.case-sidebar{height:auto;position:static}.case-sidebar__note{display:none}.case-main .case-kpis{grid-template-columns:repeat(2,1fr)}.case-main .case-body{grid-template-columns:1fr}.case-main .case-latest{grid-column:auto}}@media(max-width:620px){.case-main{padding:14px}.case-topbar{align-items:flex-start;flex-direction:column}.case-main .case-kpis{grid-template-columns:1fr}}


/* Case dashboard v4: today strip, searchable full-width case bank */
.case-today{background:linear-gradient(110deg,#173b30,#245a48);border-radius:10px;color:#fff;margin:12px 0;padding:17px 20px}.case-today>header{align-items:center;display:flex;justify-content:space-between}.case-today>header span{color:#91c7b2;font-size:9px;letter-spacing:.12em}.case-today>header h3{font-size:18px;margin:4px 0}.case-today>header small{color:#b7d5c8;font-size:11px}.case-today__metrics{display:grid;gap:1px;grid-template-columns:repeat(4,1fr);margin:12px -20px 0;background:rgba(255,255,255,.15)}.case-today__metrics>div{background:#1e493b;padding:13px 20px}.case-today__metrics span{color:#b7d5c8;display:block;font-size:10px}.case-today__metrics strong{display:block;font-size:23px;margin-top:5px}.case-today__list{display:grid;gap:1px;background:rgba(255,255,255,.12);margin:0 -20px -17px}.case-today__list>a{align-items:center;background:#1b4135;display:grid;gap:12px;grid-template-columns:1fr 1fr 90px;padding:10px 20px}.case-today__list>a:hover{background:#245344}.case-today__list strong,.case-today__list span,.case-today__list time{font-size:10px}.case-today__list strong em{color:#a6d5c3;font-style:normal}.case-today__list span{color:#b9d6ca}.case-today__list time{text-align:right}.case-today__empty{background:#1b4135;color:#b9d6ca;font-size:11px;padding:12px 20px}
.case-searchbar{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:9px;display:grid;gap:10px;grid-template-columns:auto minmax(260px,1fr) 150px 150px auto;margin-bottom:12px;padding:12px}.case-searchbar__title{display:grid;min-width:100px}.case-searchbar__title strong{font-size:12px}.case-searchbar__title span{color:var(--muted);font-size:10px;margin-top:3px}.case-searchbar input,.case-searchbar select,.case-searchbar button{background:#fffdf8;border:1px solid var(--line);border-radius:7px;color:var(--ink);height:38px;padding:0 11px}.case-searchbar button{cursor:pointer;font-weight:650}.case-searchbar button:hover{background:#f0eadb}
.case-main .case-latest{grid-column:1/-1;min-height:320px}.case-main .case-body{grid-template-columns:minmax(320px,.8fr) minmax(320px,.8fr)}.case-main .case-body>.case-panel:not(.case-latest){min-height:235px}.case-record{border-top:1px solid var(--line)}.case-record summary{align-items:center;cursor:pointer;display:grid;gap:14px;grid-template-columns:minmax(170px,.85fr) minmax(160px,.75fr) minmax(250px,1.8fr) 105px 105px;list-style:none;padding:14px 2px}.case-record summary::-webkit-details-marker{display:none}.case-record summary:hover{background:#faf6ec}.case-record[open] summary{background:#f5f0e5}.case-record__relation{min-width:0}.case-record__relation>strong{display:block;font-size:11px;line-height:1.45}.case-record__relation b{color:var(--amber)}.case-record__relation em{background:#edf5f0;border-radius:99px;color:var(--green);font-size:9px;font-style:normal;padding:3px 6px}.case-record__relation small{color:var(--muted);display:block;font-size:9px;margin-top:4px}.case-record__labels span{background:#edf5f0;border-radius:99px;color:var(--green);display:inline-block;font-size:9px;line-height:1.3;padding:5px 8px}.case-record__labels em{color:var(--muted);display:block;font-size:9px;font-style:normal;margin-top:6px}.case-record summary>p{color:#535650;display:-webkit-box;font-size:10px;line-height:1.55;margin:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.case-record summary>time{border-left:1px solid #e6dfd1;padding-left:10px}.case-record summary>time span{color:var(--muted);display:block;font-size:8px;margin-bottom:5px}.case-record summary>time strong{display:block;font-size:10px}.case-record summary>time em{color:var(--amber);font-size:8px;font-style:normal}.case-record__detail{background:#f5f0e5;border-top:1px dashed var(--line);padding:15px}.case-record__source{align-items:flex-start;display:flex;justify-content:space-between;gap:20px}.case-record__source span,.case-record__evidence span{color:var(--green);display:block;font-size:9px;font-weight:700;letter-spacing:.06em;margin-bottom:5px}.case-record__source a{font-size:11px;font-weight:700}.case-record__source small{color:var(--muted);display:block;font-size:9px;margin-top:4px}.case-record__evidence{display:grid;gap:10px;grid-template-columns:repeat(2,1fr);margin-top:13px}.case-record__evidence>div{background:#fffdf8;border:1px solid #e1dacb;border-radius:7px;padding:10px}.case-record__evidence p{color:#555851;font-size:10px;line-height:1.55;margin:0}
@media(max-width:1100px){.case-searchbar{grid-template-columns:1fr 1fr}.case-searchbar__title,.case-searchbar input{grid-column:1/-1}.case-main .case-body{grid-template-columns:1fr 1fr}.case-record summary{grid-template-columns:1fr 1fr}.case-record summary>p{grid-column:1/-1}.case-record summary>time{border-left:0;padding-left:0}}@media(max-width:720px){.case-today__metrics{grid-template-columns:repeat(2,1fr)}.case-today__list>a{grid-template-columns:1fr}.case-today__list time{text-align:left}.case-searchbar{grid-template-columns:1fr}.case-searchbar__title,.case-searchbar input{grid-column:auto}.case-main .case-body{grid-template-columns:1fr}.case-record summary{grid-template-columns:1fr}.case-record summary>p{grid-column:auto}.case-record__evidence{grid-template-columns:1fr}}

/* Case dashboard v5: unified summary row */
.case-topbar__desc#caseUpdateTime{color:var(--green);font-size:13px;font-weight:650;letter-spacing:.01em}
.case-main .case-kpis{display:grid;grid-template-columns:repeat(9,minmax(112px,1fr));gap:0;margin:0 0 12px;overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}
.case-main .case-kpis>div{min-width:112px;border:0;border-right:1px solid var(--line);border-radius:0;box-shadow:none;padding:15px 16px}
.case-main .case-kpis>div:last-child{border-right:0}
.case-main .case-kpis .case-kpi-today{background:#f2f7f3}
.case-main .case-kpis .case-kpi-today span{color:var(--green);font-weight:700}
.case-main .case-kpis .case-kpi-today strong{color:var(--green);font-size:25px}
.case-main .case-searchbar{margin-top:0}
@media(max-width:1100px){.case-main .case-kpis{grid-template-columns:repeat(9,minmax(126px,1fr))}}
@media(max-width:620px){.case-main .case-kpis{grid-template-columns:repeat(9,minmax(132px,1fr))}}

/* Case dashboard v6: compact analysis cards */
.case-main .case-body article>header>small{display:none}
.case-main .case-body h4{margin:0}
.case-main .case-record summary>p{display:none}
.case-main .case-record summary{grid-template-columns:minmax(190px,1.05fr) minmax(180px,.9fr) 125px 125px}
@media(max-width:1100px){.case-main .case-record summary{grid-template-columns:1fr 1fr}.case-main .case-record summary>time{border-left:0;padding-left:0}}
@media(max-width:720px){.case-main .case-record summary{grid-template-columns:1fr}}

/* Case dashboard v8: explicit industry column */
.case-column-head{display:grid;grid-template-columns:minmax(190px,1.05fr) minmax(130px,.62fr) minmax(180px,.9fr) 125px 125px;gap:14px;border-bottom:1px solid var(--line);color:var(--muted);font-size:10px;font-weight:650;padding:10px 14px 9px}
.case-main .case-record summary{grid-template-columns:minmax(190px,1.05fr) minmax(130px,.62fr) minmax(180px,.9fr) 125px 125px}
.case-record__industry{align-items:center;display:flex}
.case-record__industry span{background:#f2efe7;border:1px solid #e5ded0;border-radius:99px;color:#655f55;font-size:10px;line-height:1.35;padding:5px 9px}
@media(max-width:1100px){.case-column-head{display:none}.case-main .case-record summary{grid-template-columns:1fr 1fr}.case-record__industry{justify-content:flex-start}}
@media(max-width:720px){.case-main .case-record summary{grid-template-columns:1fr}}

/* Case dashboard v9: atomic party, scenario and stage columns */
.case-column-head{grid-template-columns:minmax(130px,.9fr) minmax(150px,1fr) minmax(125px,.72fr) minmax(160px,1fr) 105px 120px 120px}
.case-main .case-record summary{grid-template-columns:minmax(130px,.9fr) minmax(150px,1fr) minmax(125px,.72fr) minmax(160px,1fr) 105px 120px 120px}
.case-record__party-a,.case-record__party-b,.case-record__scenario,.case-record__stage{align-content:center;display:grid;min-width:0}
.case-record__party-a strong,.case-record__party-b strong{font-size:11px;line-height:1.45}
.case-record__party-b small{color:var(--muted);font-size:9px;margin-top:4px}
.case-record__scenario span{background:#edf5f0;border-radius:99px;color:var(--green);font-size:10px;line-height:1.35;padding:5px 9px;width:fit-content}
.case-record__stage em{color:#59554d;font-size:10px;font-style:normal}
@media(max-width:1100px){.case-main .case-record summary{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.case-main .case-record summary{grid-template-columns:1fr}}

/* Read-only snapshot published to Cloudflare Pages. */
.static-mode-notice{background:#edf5f0;border:1px solid #b8d3c7;border-radius:8px;color:var(--green);font-size:12px;margin:0 0 14px;padding:10px 13px}
.static-mode #refreshBtn,.static-mode #autoRefreshSelect{cursor:not-allowed;opacity:.65}
.static-mode #wechatCard,.static-mode #lingowhaleCard,.static-mode #createChannelBtn,.static-mode #renameChannelBtn,.static-mode #deleteChannelBtn,.static-mode .row-actions,.static-mode [data-action="edit-article-tags"],.static-mode .article-tag-editor{display:none!important}

/* Static 100k article archive */
.archive-page{background:#f5f1e8;color:var(--ink);min-height:100vh}.archive-shell{margin:0 auto;max-width:1180px;padding:32px 22px}.archive-header{align-items:flex-start;display:flex;justify-content:space-between;gap:20px}.archive-header h1{font-size:36px;margin:6px 0}.archive-header p{color:var(--muted)}.archive-toolbar{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:10px;display:grid;gap:10px;grid-template-columns:minmax(260px,1fr) auto auto auto;margin:20px 0;padding:12px}.archive-toolbar input{border:1px solid var(--line);border-radius:7px;height:40px;padding:0 12px}.archive-toolbar span{color:var(--muted);font-size:12px;min-width:190px;text-align:center}.archive-list{display:grid;gap:10px}.archive-card{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:16px}.archive-card>div{display:flex;justify-content:space-between;gap:12px}.archive-card span,.archive-card time{color:var(--muted);font-size:11px}.archive-card h2{font-size:16px;line-height:1.45;margin:8px 0}.archive-card p{color:#5b5b55;font-size:12px;line-height:1.65;margin:0}@media(max-width:720px){.archive-header{flex-direction:column}.archive-toolbar{grid-template-columns:1fr 1fr}.archive-toolbar input,.archive-toolbar span{grid-column:1/-1}.archive-shell{padding:18px 12px}}
