:root {
  color-scheme: light;
  --bg: #f3f5f4;
  --surface: #ffffff;
  --surface-strong: #18201d;
  --surface-soft: #e9eeeb;
  --line: #ccd4d0;
  --line-dark: #39443f;
  --text: #19201d;
  --muted: #5d6963;
  --muted-dark: #aebbb4;
  --accent: #0d7a4c;
  --accent-hover: #09613c;
  --positive: #087b49;
  --negative: #c03945;
  --focus: #0b66c3;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .55; }
button, input, select { min-height: 44px; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, .table-wrap:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
}
.eyebrow { margin: 0 0 6px; color: var(--accent); font-size: 12px; font-weight: 800; }
.button {
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 0 16px;
  background: var(--surface);
  color: var(--text);
  font-weight: 650;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}
.button:hover:not(:disabled) { border-color: #87958e; background: var(--surface-soft); }
.button-primary { border-color: var(--accent); background: var(--accent); color: #fff; }
.button-primary:hover:not(:disabled) { border-color: var(--accent-hover); background: var(--accent-hover); }

.login-page { display: grid; place-items: center; padding: 24px; }
.login-panel {
  width: 100%;
  max-width: 420px;
  min-width: 0;
  padding: 34px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: 0 18px 50px rgba(27, 43, 35, .1);
}
.brand-mark {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin-bottom: 24px;
  border-radius: 7px;
  background: var(--surface-strong);
  color: #fff;
  font-size: 19px;
  font-weight: 800;
}
.login-panel h1 { margin: 0 0 28px; font-size: 27px; }
.login-panel label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 700; }
.login-panel input {
  min-width: 0;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 0 13px;
  color: var(--text);
  background: #fbfcfb;
  font-variant-numeric: tabular-nums;
  text-transform: uppercase;
}
.form-error { min-height: 24px; margin: 8px 0; color: var(--negative); font-size: 13px; }
.login-button { width: 100%; }
.login-meta { margin: 22px 0 0; color: var(--muted); font-size: 12px; text-align: center; }

.valuation-shell { width: min(2200px, calc(100% - 24px)); margin: 0 auto; padding: 28px 0 48px; }
.stock-page { width: min(1180px, calc(100% - 32px)); }
.stock-header { align-items: center; }
.stock-header h1 { max-width: 760px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stock-header-actions { display: flex; align-items: center; gap: 8px; }
.stock-query-section { margin-top: 18px; }
.stock-query-form { display: flex; align-items: center; gap: 10px; padding: 14px 18px; background: #f7faf8; }
.stock-query-form .field { display: grid; grid-template-columns: 42px minmax(220px, 420px); flex: 1; }
.stock-query-form input { min-width: 0; width: 100%; border: 1px solid var(--line); border-radius: 4px; padding: 0 10px; background: #fff; color: var(--text); }
.stock-chart-section { margin-top: 12px; }
.stock-chart-section .section-heading h2 { margin: 0; font-size: 18px; }
.stock-kline-wrap { min-height: 456px; height: 456px; padding: 0 18px 16px; }
.stock-kline-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 18px 0; }
.stock-kline-periods, .stock-kline-indicators { display: flex; flex-wrap: wrap; gap: 6px; }
.stock-kline-indicators { margin-left: auto; }
.stock-kline-toolbar .kline-period, .kline-indicator { min-height: 34px; border: 1px solid var(--line); border-radius: 4px; padding: 0 11px; background: var(--surface); color: var(--muted); font-size: 12px; font-weight: 700; }
.stock-kline-toolbar .kline-period:hover, .kline-indicator:hover { border-color: var(--accent); color: var(--accent); }
.stock-kline-toolbar .kline-period.active, .kline-indicator.active { border-color: var(--accent); background: #e9f6ef; color: var(--accent); }
.stock-data-note { margin: 12px 0 0; color: var(--muted); font-size: 12px; }
.stock-overview-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 12px; margin-top: 12px; }
.stock-overview-card { min-width: 0; }
.stock-context-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.stock-context-section { min-width: 0; }
.stock-context-section .section-heading h2 { margin: 0; font-size: 18px; }
.stock-context-list { padding: 3px 18px 12px; }
.stock-context-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; min-height: 64px; padding: 10px 0; border-bottom: 1px solid #e7ece9; color: var(--text); text-decoration: none; }
.stock-context-row:last-child { border-bottom: 0; }
.stock-context-row strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.stock-context-row span { grid-column: 1; overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.stock-context-row small { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--muted); font-size: 10px; white-space: nowrap; }
.stock-context-row:hover strong { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.stock-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; padding: 14px 18px 18px; }
.stock-metrics div { padding: 10px 11px; background: var(--surface-soft); }
.stock-metrics span, .stock-metrics strong { display: block; }
.stock-metrics span { color: var(--muted); font-size: 11px; }
.stock-metrics strong { margin-top: 2px; font-size: 16px; font-variant-numeric: tabular-nums; }
.stock-classification { padding: 14px 18px 18px; }
.stock-classification-line { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 10px; font-size: 13px; }
.stock-classification-line span { color: var(--muted); }
.stock-classification-line strong { font-weight: 700; }
.stock-tag-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.stock-tag-list span { padding: 4px 8px; border: 1px solid #b8d8c7; border-radius: 3px; color: #176c45; font-size: 12px; }
.stock-board-section { margin-top: 12px; }
.stock-auction-section { margin-top: 12px; }
.stock-auction-actions { display: flex; align-items: center; gap: 10px; }
.stock-auction-actions .button { min-height: 32px; padding: 6px 10px; font-size: 12px; }
.stock-auction-metrics { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; padding: 14px 18px 12px; }
.stock-auction-metrics > div { min-width: 0; padding: 10px 11px; background: var(--surface-soft); }
.stock-auction-metrics span, .stock-auction-metrics strong { display: block; }
.stock-auction-metrics span { color: var(--muted); font-size: 11px; }
.stock-auction-metrics strong { margin-top: 2px; font-size: 16px; font-variant-numeric: tabular-nums; }
.stock-auction-note { margin: 0; padding: 0 18px 15px; color: var(--muted); font-size: 12px; }
.data-capability-strip { display: grid; grid-template-columns: minmax(170px, 0.8fr) minmax(0, 2fr) auto; gap: 18px; align-items: center; margin: 12px 0; padding: 16px 18px; border: 1px solid var(--line); background: var(--surface); }
.data-capability-heading h2 { margin: 2px 0 3px; font-size: 18px; }
.data-capability-heading > span { color: var(--muted); font-size: 12px; }
.data-capability-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.data-capability-list > div { min-width: 0; padding: 10px 12px; border-left: 2px solid var(--accent); background: var(--surface-soft); }
.data-capability-list strong, .data-capability-list span { display: block; }
.data-capability-list strong { font-size: 13px; }
.data-capability-list span { margin-top: 4px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.stock-board-summary { display: flex; gap: 22px; padding: 12px 18px 4px; color: var(--muted); font-size: 12px; }
.stock-board-summary b { color: var(--text); font-size: 16px; }
.stock-board-list { padding: 4px 18px 14px; }
.stock-board-row { display: grid; grid-template-columns: 58px 100px 70px 100px minmax(0, 1fr); align-items: center; gap: 10px; min-height: 42px; border-bottom: 1px solid #e7ece9; font-size: 12px; }
.stock-board-row small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.valuation-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}
.valuation-header h1 { margin: 0 0 4px; font-size: 30px; }
.subtitle { margin: 0; color: var(--muted); font-size: 13px; }
.account-actions { display: flex; align-items: center; gap: 14px; }
.view-switch { display: flex; padding: 3px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); }
.view-switch button { min-height: 34px; border: 0; border-radius: 3px; padding: 0 9px; background: transparent; color: var(--muted); font-size: 12px; }
.view-switch button.active { background: var(--surface-strong); color: #fff; }
.account-summary { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.35; }
.account-summary strong { font-size: 14px; }
.account-summary span { color: var(--muted); font-size: 12px; }
.workspace-nav { display: flex; gap: 4px; margin-top: 16px; border-bottom: 1px solid var(--line); }
.workspace-nav { position: sticky; top: 0; z-index: 10; padding: 4px 0 0; background: color-mix(in srgb, var(--bg) 94%, transparent); backdrop-filter: blur(10px); }
.workspace-tab { flex: 1 1 0; min-width: 0; min-height: 46px; border: 0; border-bottom: 2px solid transparent; padding: 0 12px; background: transparent; color: var(--muted); font-size: 14px; font-weight: 700; transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease; }
.workspace-tab:hover { color: var(--text); }
.workspace-tab:focus-visible { position: relative; z-index: 1; }
.workspace-tab.active { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 7%, transparent); color: var(--accent); }
.workspace-tab:disabled { color: #8b9690; background: transparent; opacity: 1; }
.workspace-tab .workspace-free, .workspace-tab .workspace-lock { display: inline-flex; align-items: center; justify-content: center; margin-left: 5px; padding: 2px 5px; border-radius: 3px; font-size: 10px; font-weight: 800; line-height: 1.2; vertical-align: 2px; }
.workspace-free { border: 1px solid #9ccfb2; color: var(--accent); background: #edf8f1; }
.workspace-lock { border: 1px solid #cfd6d2; color: #7b8780; background: #f0f3f1; }
.workspace-tab:not(:disabled) .workspace-lock { display: none; }
.workspace-badge { display: inline-flex; margin-left: 8px; padding: 3px 6px; border: 1px solid #9ccfb2; border-radius: 3px; color: var(--accent); background: #edf8f1; font-size: 10px; font-weight: 800; vertical-align: 3px; }
.research-view { min-width: 0; }
.research-view[hidden] { display: none; }
.research-hero { border-radius: 6px; }
.research-hero h2 { letter-spacing: 0; }
.section-heading { min-width: 0; }
.section-heading h3 { letter-spacing: 0; }
.control-bar { flex-wrap: wrap; }
.control-bar .tabs { flex: 0 0 auto; }
.control-bar .search-box { min-width: min(260px, 100%); }
.table-section, .research-section { border-radius: 6px; }
.news-view .announcement-section, .company-view .company-research-section { margin-top: 0; }
.news-view .research-hero, .company-view .research-hero { margin-bottom: 12px; }
.news-view .announcement-list { max-height: none; }
.news-view .announcement-note { margin-top: 0; }
.company-view .company-card { min-height: 220px; }
.media-news-browser { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 16px; align-items: start; }
.media-source-panel { min-width: 0; border-right: 1px solid var(--line); padding-right: 12px; }
.media-source-panel.collapsed { width: 42px; padding-right: 0; border-right: 0; }
.media-source-panel.collapsed .media-source-list { display: none; }
.media-source-panel.collapsed .media-source-toggle span { display: none; }
.media-source-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 40px; border: 0; border-bottom: 1px solid var(--line); padding: 0 6px; background: transparent; color: var(--text); font-weight: 800; }
.media-source-toggle b { color: var(--muted); font-size: 18px; line-height: 1; transition: transform 160ms ease; }
.media-source-panel.collapsed .media-source-toggle b { transform: rotate(180deg); }
.media-source-list { display: grid; gap: 4px; padding-top: 8px; }
.media-source-item { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 38px; border: 1px solid transparent; border-radius: 4px; padding: 0 9px; background: transparent; color: var(--muted); text-align: left; font-size: 13px; }
.media-source-item:hover { background: var(--surface-soft); color: var(--text); }
.media-source-item.active { border-color: #b9d7c6; background: #edf8f1; color: var(--accent); font-weight: 750; }
.media-source-item b { min-width: 24px; color: inherit; text-align: right; font-variant-numeric: tabular-nums; }
.control-bar {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 18px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface);
}
.tabs { display: flex; gap: 4px; }
.tab {
  border: 1px solid transparent;
  border-radius: 4px;
  padding: 0 17px;
  background: transparent;
  color: var(--muted);
}
.tab.active { border-color: #a8c9b8; background: #e1f1e9; color: #075f39; font-weight: 700; }
.field { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; }
.field input, .field select {
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 0 11px;
  background: #fbfcfb;
  color: var(--text);
}
.search-box { flex: 1; }
.search-box input { width: 100%; }
.classification-level-box select { min-width: 112px; }
.classification-box { flex: 0 1 220px; }
.classification-box select { width: 100%; min-width: 170px; }
.stat-strip {
  display: grid;
  grid-template-columns: 150px 150px 150px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  margin-top: 16px;
  padding: 14px 16px;
  border-left: 3px solid var(--accent);
  background: #e9efec;
}
.stat-strip > div { display: flex; flex-direction: column; gap: 2px; }
.stat-strip span, .stat-strip p { color: var(--muted); font-size: 12px; }
.stat-strip strong { font-size: 18px; }
.stat-strip p { margin: 0; }
.table-section { margin-top: 18px; border: 1px solid var(--line-dark); border-radius: 6px; overflow: hidden; background: var(--surface-strong); color: #f5f7f6; }
.table-headline { display: flex; justify-content: space-between; align-items: center; padding: 15px 17px; border-bottom: 1px solid var(--line-dark); }
.table-headline h2 { margin: 0 0 2px; font-size: 17px; }
.table-headline span { color: var(--muted-dark); font-size: 12px; }
.table-wrap { overflow-x: auto; }
table { width: 100%; min-width: 1120px; border-collapse: collapse; font-size: 13px; }
th, td { padding: 12px 13px; border-bottom: 1px solid #303b36; text-align: right; white-space: nowrap; }
th { background: #121815; color: var(--muted-dark); font-size: 12px; font-weight: 650; }
th button { display: inline-flex; align-items: center; gap: 5px; min-height: 36px; border: 0; padding: 0; background: transparent; color: inherit; }
th button:hover { color: #78deb0; }
th button span { color: #75847c; }
th:first-child, td:first-child, th:nth-child(2), td:nth-child(2), th:nth-child(3), td:nth-child(3), th:nth-child(4), td:nth-child(4) { text-align: left; }
.desktop-ranking tbody tr:hover { background: #222c27; }
tbody tr:last-child td { border-bottom: 0; }
.rank-col { width: 44px; }
.company-name { color: #fff; font-weight: 750; }
.code, .muted { color: var(--muted-dark); font-variant-numeric: tabular-nums; }
.positive { color: #69d9a4; }
.negative { color: #ff8791; }
.empty { padding: 44px 16px; color: var(--muted-dark); text-align: center !important; }
.table-footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 16px; border-top: 1px solid var(--line-dark); }
.table-footer p { margin: 0; color: var(--muted-dark); font-size: 12px; }
.pagination { display: flex; align-items: center; gap: 10px; }
.pagination .button { min-height: 38px; border-color: var(--line-dark); background: #222c27; color: #f5f7f6; }
.pagination .button:hover:not(:disabled) { background: #2d3933; }
.pagination span { min-width: 90px; color: var(--muted-dark); font-size: 12px; text-align: center; }
.mobile-industry-chips, .mobile-ranking { display: none; }

.research-view { margin-top: 18px; }
.research-hero { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; padding: 22px 24px; border: 1px solid var(--line); background: var(--surface); }
.research-hero h2 { margin: 0 0 6px; font-size: 27px; }
.research-hero p:not(.eyebrow) { max-width: 720px; margin: 0; color: var(--muted); font-size: 14px; }
.research-hero-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.cache-badge { display: inline-flex; align-items: center; min-height: 34px; padding: 0 10px; border: 1px solid #b8d8c7; border-radius: 4px; background: #eef8f2; color: #176c45; font-size: 12px; font-weight: 700; }
.cache-badge.is-stale { border-color: #e3b58a; background: #fff4e8; color: #9a4f12; }
.research-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 12px; }
.research-view:not(.board-view) > .research-kpis { grid-template-columns: repeat(6, 1fr); }
.research-kpis > div { min-height: 112px; padding: 16px; border: 1px solid var(--line); background: var(--surface); }
.research-kpis span, .research-kpis small { display: block; color: var(--muted); font-size: 12px; }
.research-kpis strong { display: block; margin: 4px 0 3px; font-size: 27px; font-variant-numeric: tabular-nums; }
.pulse-section { margin-top: 12px; }
.pulse-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; padding: 14px 18px 18px; }
.pulse-item { min-height: 92px; padding: 13px 14px; border: 1px solid var(--line); background: #fbfcfb; }
.pulse-item span, .pulse-item small { display: block; color: var(--muted); font-size: 12px; }
.pulse-item strong { display: block; min-height: 28px; margin: 5px 0 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 17px; }
.pulse-item strong b { font-weight: 800; }
.research-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr); gap: 12px; margin-top: 12px; }
.research-section { border: 1px solid var(--line); background: var(--surface); }
.section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: 16px 18px 12px; border-bottom: 1px solid var(--line); }
.section-heading .eyebrow { margin-bottom: 2px; }
.section-heading h3 { margin: 0; font-size: 18px; }
.section-heading > span { color: var(--muted); font-size: 12px; white-space: nowrap; }
.observation-list, .sector-list { padding: 4px 18px 10px; }
.observation-row { display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; align-items: center; gap: 12px; width: 100%; min-height: 64px; border: 0; border-bottom: 1px solid #e7ece9; padding: 9px 0; background: transparent; color: var(--text); text-align: left; }
.observation-row:last-child { border-bottom: 0; }
.observation-row:hover { background: #f7faf8; }
.observation-rank { color: var(--accent); font-size: 12px; font-weight: 800; }
.observation-main, .observation-value { min-width: 0; }
.observation-main strong, .observation-main small, .observation-value strong, .observation-value small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.observation-main strong { font-size: 14px; }
.observation-main small, .observation-value small { color: var(--muted); font-size: 12px; }
.observation-value { text-align: right; }
.observation-value strong { font-size: 12px; font-variant-numeric: tabular-nums; }
.sector-row { display: grid; grid-template-columns: minmax(100px, 1fr) minmax(100px, 1.4fr) 40px; align-items: center; gap: 10px; min-height: 39px; border-bottom: 1px solid #e7ece9; font-size: 13px; }
.sector-row:last-child { border-bottom: 0; }
.sector-row > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sector-row > strong { text-align: right; font-variant-numeric: tabular-nums; }
.sector-bar { height: 7px; border-radius: 2px; background: #e8efeb; overflow: hidden; }
.sector-bar i { display: block; height: 100%; border-radius: inherit; background: var(--accent); }
.review-date-field { display: grid; grid-template-columns: auto 132px; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; font-weight: 700; }
.review-date-field select { width: 132px; min-height: 38px; border: 1px solid var(--line); border-radius: 4px; padding: 0 9px; background: #fff; color: var(--text); font: inherit; }
.review-trend-section { margin-top: 12px; }
.review-trend { display: grid; grid-template-columns: repeat(auto-fit, minmax(86px, 1fr)); gap: 8px; min-height: 180px; padding: 14px 18px 18px; }
.review-trend-day { display: grid; grid-template-rows: 18px 86px 20px 18px; align-items: end; min-width: 0; border: 1px solid var(--line); border-radius: 4px; padding: 9px 8px; background: #fbfcfb; color: var(--text); text-align: center; }
.review-trend-day:hover, .review-trend-day.active { border-color: #7ab899; background: #f1f8f4; }
.review-trend-value { color: var(--muted); font-size: 10px; font-variant-numeric: tabular-nums; }
.review-trend-bars { display: flex; align-items: flex-end; justify-content: center; gap: 5px; height: 80px; }
.review-trend-bars i { display: block; width: 14px; min-height: 2px; border-radius: 2px 2px 0 0; }
.review-trend-bars .sealed { background: var(--positive); }
.review-trend-bars .broken { background: #d9a441; }
.review-trend-day strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.review-trend-day small { color: var(--muted); font-size: 10px; }
.review-primary-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr); gap: 12px; margin-top: 12px; align-items: start; }
.review-secondary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 12px; align-items: stretch; }
.review-theme-list, .review-ladder, .review-promotion, .review-quality, .review-timeline { min-width: 0; padding: 4px 18px 12px; }
.review-theme-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) 66px; gap: 10px; align-items: start; min-height: 84px; padding: 11px 0; border-bottom: 1px solid #e7ece9; }
.review-theme-row:last-child { border-bottom: 0; }
.review-rank { color: var(--muted); font-size: 12px; font-weight: 800; }
.review-theme-main { min-width: 0; }
.review-theme-main > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.review-theme-main strong { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.review-theme-main span, .review-theme-row time { color: var(--muted); font-size: 11px; white-space: nowrap; }
.review-theme-row time { padding-top: 2px; text-align: right; }
.review-theme-bar { height: 5px; margin: 7px 0; border-radius: 2px; background: #e8efeb; overflow: hidden; }
.review-theme-bar i { display: block; height: 100%; background: var(--accent); }
.review-stock-links { display: flex; flex-wrap: wrap; gap: 4px 10px; min-height: 20px; }
.review-stock-links button, .review-ladder-stocks button { border: 0; padding: 0; background: transparent; color: var(--text); text-align: left; }
.review-stock-links button { font-size: 11px; }
.review-stock-links button:hover, .review-ladder-stocks button:hover strong { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.review-ladder-tier { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 12px; padding: 11px 0; border-bottom: 1px solid #e7ece9; }
.review-ladder-tier:last-child { border-bottom: 0; }
.review-ladder-tier > div:first-child b, .review-ladder-tier > div:first-child span { display: block; }
.review-ladder-tier > div:first-child b { color: var(--accent); font-size: 17px; }
.review-ladder-tier > div:first-child span { margin-top: 2px; color: var(--muted); font-size: 11px; }
.review-ladder-stocks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 12px; }
.review-ladder-stocks button { min-width: 0; }
.review-ladder-stocks strong, .review-ladder-stocks small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.review-ladder-stocks strong { font-size: 12px; }
.review-ladder-stocks small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.review-promotion, .review-quality { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding-top: 12px; }
.review-quality { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.review-promotion > div, .review-quality > div { min-width: 0; padding: 11px; background: var(--surface-soft); }
.review-promotion span, .review-promotion strong, .review-promotion small, .review-quality span, .review-quality strong, .review-quality small { display: block; }
.review-promotion span, .review-promotion small, .review-quality span, .review-quality small { color: var(--muted); font-size: 10px; }
.review-promotion strong, .review-quality strong { margin: 4px 0 2px; font-size: 19px; font-variant-numeric: tabular-nums; }
.review-timeline { padding-top: 10px; }
.review-timeline > div { display: grid; grid-template-columns: 42px minmax(0, 1fr) 28px; align-items: center; gap: 8px; min-height: 31px; }
.review-timeline span, .review-timeline strong { font-size: 11px; }
.review-timeline strong { text-align: right; font-variant-numeric: tabular-nums; }
.review-timeline i { height: 7px; border-radius: 2px; background: #e8efeb; overflow: hidden; }
.review-timeline i b { display: block; height: 100%; background: #d9a441; }
.review-market-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; align-items: start; }
.review-breadth-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 12px 18px 8px; }
.review-breadth-summary > div, .review-loss-grid > div, .review-history-grid > div { min-width: 0; padding: 10px 11px; background: var(--surface-soft); }
.review-breadth-summary span, .review-breadth-summary strong, .review-loss-grid span, .review-loss-grid strong, .review-loss-grid small, .review-history-grid span, .review-history-grid strong, .review-history-grid small { display: block; }
.review-breadth-summary span, .review-loss-grid span, .review-loss-grid small, .review-history-grid span, .review-history-grid small { color: var(--muted); font-size: 10px; }
.review-breadth-summary strong, .review-loss-grid strong, .review-history-grid strong { margin-top: 4px; font-size: 18px; font-variant-numeric: tabular-nums; }
.review-distribution { padding: 6px 18px 14px; }
.review-distribution > div { display: grid; grid-template-columns: 58px minmax(0, 1fr) 42px; align-items: center; gap: 8px; min-height: 28px; }
.review-distribution span, .review-distribution strong { font-size: 10px; }
.review-distribution strong { text-align: right; font-variant-numeric: tabular-nums; }
.review-distribution i { height: 7px; overflow: hidden; border-radius: 2px; background: #e8efeb; }
.review-distribution i b { display: block; height: 100%; background: #8a9690; }
.review-distribution i b.strong-up { background: #087b49; }
.review-distribution i b.up { background: #3f9d70; }
.review-distribution i b.soft-up { background: #8bc9a7; }
.review-distribution i b.soft-down { background: #e99a8e; }
.review-distribution i b.down { background: #dc5a4a; }
.review-distribution i b.strong-down { background: #b42318; }
.review-loss-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 12px 18px 16px; }
.review-loss-grid strong { margin-bottom: 2px; }
.review-loss-grid .warning { color: #9a5c09; }
.review-sector-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; padding: 12px 18px 16px; }
.review-sector-columns h4 { margin: 0 0 6px; color: var(--muted); font-size: 11px; }
.review-sector-list article { display: grid; grid-template-columns: 22px minmax(0, 1fr) 58px 30px; align-items: center; gap: 8px; min-height: 48px; border-bottom: 1px solid #e7ece9; }
.review-sector-list article:last-child { border-bottom: 0; }
.review-sector-rank { color: var(--muted); font-size: 10px; font-weight: 800; }
.review-sector-list article > div { min-width: 0; }
.review-sector-list strong, .review-sector-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.review-sector-list strong { font-size: 12px; }
.review-sector-list small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.review-sector-list article > b { font-size: 11px; text-align: right; font-variant-numeric: tabular-nums; }
.review-sector-list article > i { color: var(--muted); font-size: 10px; font-style: normal; text-align: right; }
.review-sector-list article > i.up { color: var(--positive); }
.review-sector-list article > i.down { color: var(--negative); }
.review-core-list { padding: 4px 18px 12px; }
.review-core-list article { display: grid; grid-template-columns: 22px minmax(120px, .7fr) minmax(150px, 1fr) 34px; align-items: center; gap: 10px; min-height: 61px; border-bottom: 1px solid #e7ece9; }
.review-core-list article:last-child { border-bottom: 0; }
.review-core-list article > span { color: var(--muted); font-size: 10px; font-weight: 800; }
.review-core-list button { min-width: 0; border: 0; padding: 0; background: transparent; color: var(--text); text-align: left; }
.review-core-list button:hover strong { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.review-core-list button strong, .review-core-list button small, .review-core-list article > div b, .review-core-list article > div small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.review-core-list button strong { font-size: 12px; }
.review-core-list button small, .review-core-list article > div small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.review-core-list article > div b { color: var(--accent); font-size: 10px; }
.review-core-list em { color: var(--accent); font-size: 14px; font-style: normal; font-weight: 800; text-align: right; font-variant-numeric: tabular-nums; }
.review-events-section { margin-top: 12px; }
.review-event-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 22px; padding: 4px 18px 12px; }
.review-event-list article { display: grid; grid-template-columns: 58px 66px minmax(0, 1fr) 30px; align-items: center; gap: 8px; min-height: 50px; border-bottom: 1px solid #e7ece9; }
.review-event-list time, .review-event-list article > b { color: var(--muted); font-size: 10px; font-variant-numeric: tabular-nums; }
.review-event-list article > b { text-align: right; }
.review-event-status { display: inline-flex; min-height: 22px; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 3px; padding: 0 5px; color: var(--muted); font-size: 10px; }
.review-event-status.sealed { border-color: #a8c9b8; background: #e9f6ef; color: var(--positive); }
.review-event-status.broken { border-color: #e5b7bc; background: #fff0f1; color: var(--negative); }
.review-event-status.resealed { border-color: #d9c08e; background: #fff8e8; color: #8a5b08; }
.review-event-list button { min-width: 0; border: 0; padding: 0; background: transparent; color: var(--text); text-align: left; }
.review-event-list button:hover strong { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.review-event-list button strong, .review-event-list button small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.review-event-list button strong { font-size: 12px; }
.review-event-list button small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.review-history-section { margin-top: 12px; }
.review-history-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; padding: 12px 18px 16px; }
.review-history-grid strong { margin-bottom: 2px; }
.company-research-section, .integration-section { margin-top: 12px; }
.research-company-tools { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--line); background: #f7faf8; }
.research-company-tools .field { display: grid; grid-template-columns: 42px minmax(0, 1fr); }
.research-company-tools input, .research-company-tools select { min-width: 0; width: 100%; border: 1px solid var(--line); border-radius: 4px; padding: 0 10px; background: #fff; color: var(--text); }
.company-card { padding: 20px 18px; }
.company-card-header { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; }
.company-card-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.company-card h4 { margin: 0 0 4px; font-size: 23px; }
.company-card h4 small { margin-left: 8px; color: var(--muted); font-size: 13px; font-weight: 500; }
.company-card-header p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 13px; }
.company-change { font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; }
.company-metrics { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-top: 20px; }
.company-metrics div { padding: 11px 12px; background: var(--surface-soft); }
.company-metrics span { display: block; color: var(--muted); font-size: 11px; }
.company-metrics strong { display: block; margin-top: 2px; font-size: 17px; font-variant-numeric: tabular-nums; }
.company-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.company-tags span { padding: 4px 8px; border: 1px solid #b8d8c7; border-radius: 3px; color: #176c45; font-size: 12px; }
.company-note { margin: 18px 0 0; color: var(--muted); font-size: 12px; }
.company-workspace-grid { display: grid; grid-template-columns: minmax(260px, 320px) minmax(0, 1fr); gap: 12px; margin-top: 12px; align-items: start; }
.company-watchlist-section { min-width: 0; }
.company-research-main { display: grid; min-width: 0; gap: 12px; }
.company-stock-jump { display: flex; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--line); background: #f7faf8; }
.company-stock-jump .field { display: grid; grid-template-columns: 38px minmax(0, 1fr); flex: 1; align-items: center; }
.company-stock-jump input, .company-analysis-form select, .company-analysis-form textarea { min-width: 0; width: 100%; border: 1px solid var(--line); border-radius: 4px; padding: 0 10px; background: #fff; color: var(--text); }
.company-watchlist { padding: 3px 14px 10px; }
.watchlist-row { display: grid; grid-template-columns: minmax(0, 1fr) auto 44px; gap: 8px; align-items: center; min-height: 66px; border-bottom: 1px solid #e7ece9; }
.watchlist-row:last-child { border-bottom: 0; }
.watchlist-stock { min-width: 0; border: 0; padding: 8px 0; background: transparent; color: var(--text); text-align: left; }
.watchlist-stock strong, .watchlist-stock small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.watchlist-stock small { margin-top: 2px; color: var(--muted); font-size: 11px; }
.watchlist-stock:hover strong { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.watchlist-value { min-width: 62px; text-align: right; font-variant-numeric: tabular-nums; }
.watchlist-value strong, .watchlist-value small { display: block; }
.watchlist-value small { font-size: 11px; }
.watchlist-remove { width: 44px; min-height: 44px; border: 0; background: transparent; color: var(--muted); font-size: 21px; }
.watchlist-remove:hover { color: var(--negative); }
.company-analysis-form { display: grid; gap: 10px; padding: 14px 18px 16px; border-bottom: 1px solid var(--line); background: #f7faf8; }
.company-analysis-form .field { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 8px; align-items: center; color: var(--muted); font-size: 12px; font-weight: 700; }
.company-analysis-form select { max-width: 240px; }
.company-analysis-form textarea { min-height: 142px; padding: 10px 12px; resize: vertical; line-height: 1.6; }
.company-message-field { align-items: start !important; }
.company-message-field > span { padding-top: 10px; }
.company-analysis-actions { display: flex; justify-content: flex-end; align-items: center; gap: 12px; padding-left: 66px; }
.company-analysis-actions p { flex: 1; min-height: 21px; margin: 0; color: var(--muted); font-size: 12px; }
.company-analysis-result { min-height: 148px; padding: 16px 18px 18px; }
.research-result-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.research-result-head h4 { margin: 0; font-size: 19px; }
.research-result-head span { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.research-result-copy { margin-top: 12px; padding: 11px 12px; border-left: 3px solid var(--accent); background: #f1f8f4; }
.research-result-copy p { margin: 0; font-size: 13px; line-height: 1.65; }
.research-result-copy p + p { margin-top: 6px; color: var(--muted); }
.research-candidate-list { margin-top: 12px; border-top: 1px solid var(--line); }
.research-candidate-row { display: grid; grid-template-columns: minmax(130px, .45fr) minmax(220px, 1.2fr) auto; gap: 12px; align-items: center; min-height: 82px; padding: 10px 0; border-bottom: 1px solid #e7ece9; }
.candidate-stock { min-width: 0; border: 0; padding: 6px 0; background: transparent; color: var(--text); text-align: left; }
.candidate-stock strong, .candidate-stock small { display: block; }
.candidate-stock strong { font-size: 15px; }
.candidate-stock small { margin-top: 2px; color: var(--muted); font-size: 11px; }
.candidate-stock:hover strong { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.research-candidate-row > p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.candidate-actions { display: flex; gap: 6px; justify-content: flex-end; }
.candidate-actions .button { min-height: 38px; padding: 0 11px; font-size: 12px; }
.company-history-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; padding: 3px 18px 12px; }
.company-history-row { display: grid; grid-template-columns: 66px minmax(0, 1fr) auto; gap: 8px; align-items: center; min-height: 52px; border: 0; border-bottom: 1px solid #e7ece9; padding: 5px 0; background: transparent; color: var(--text); text-align: left; }
.company-history-row span { color: var(--muted); font-size: 11px; }
.company-history-row strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.company-history-row small { color: var(--muted); font-size: 10px; white-space: nowrap; }
.company-history-row:hover strong, .company-history-row.active strong { color: var(--accent); }
.research-empty { padding: 24px 0; margin: 0; color: var(--muted); font-size: 13px; }
.announcement-section { margin-top: 12px; }
.section-heading-actions { display: flex; align-items: center; gap: 10px; }
.section-heading-actions > span { color: var(--muted); font-size: 12px; white-space: nowrap; }
.announcement-tools { display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--line); background: #f7faf8; }
.announcement-tools .field { display: grid; grid-template-columns: 42px minmax(0, 1fr); }
.announcement-tools input, .announcement-tools select { min-width: 0; width: 100%; border: 1px solid var(--line); border-radius: 4px; padding: 0 10px; background: #fff; color: var(--text); }
.announcement-list { padding: 4px 18px 10px; }
.announcement-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; min-height: 80px; padding: 12px 0; border-bottom: 1px solid #e7ece9; }
.announcement-row:last-child { border-bottom: 0; }
.announcement-pagination { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 12px 18px 16px; border-top: 1px solid var(--line); }
.announcement-pagination span { min-width: 90px; color: var(--muted); font-size: 12px; text-align: center; }
.announcement-main { min-width: 0; }
.announcement-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 6px; color: var(--muted); font-size: 11px; }
.announcement-tag { display: inline-flex; align-items: center; min-height: 22px; padding: 0 7px; border-radius: 3px; font-weight: 800; }
.announcement-tag.positive { background: #e6f5ed; color: #087b49; }
.announcement-tag.negative { background: #fff0f1; color: #ae3b49; }
.announcement-tag.neutral { background: #eef1f0; color: #65716b; }
.announcement-title { display: block; margin-top: 1px; overflow: hidden; color: var(--text); font-size: 14px; font-weight: 700; line-height: 1.5; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.announcement-title:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.announcement-summary { display: block; margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 12px; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }
.announcement-score { color: var(--muted); font-size: 11px; }
.announcement-analysis { margin: 0 18px 12px; padding: 14px 15px; border-left: 3px solid var(--accent); background: #f1f8f4; }
.announcement-analysis-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.announcement-analysis-head h4 { margin: 0; font-size: 15px; }
.announcement-analysis-head > span { color: var(--muted); font-size: 11px; white-space: nowrap; }
.announcement-analysis > p { margin: 8px 0 0; color: var(--text); font-size: 13px; line-height: 1.6; }
.announcement-stocks { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.announcement-stocks span { padding: 4px 7px; border: 1px solid #b8d8c7; border-radius: 3px; color: #176c45; font-size: 11px; }
.announcement-note { margin: 0; padding: 12px 18px 15px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; line-height: 1.5; }
.integration-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; padding: 14px 18px 18px; }
.integration-grid article { min-height: 150px; padding: 15px; border: 1px solid var(--line); background: #fbfcfb; }
.integration-grid strong { font-size: 15px; }
.integration-grid p { min-height: 60px; margin: 8px 0; color: var(--muted); font-size: 12px; }
.integration-status { font-size: 12px; font-weight: 800; }
.integration-status.planned { color: #8b6b12; }
.integration-status.ready { color: var(--positive); }
.board-review-layout { display: grid; grid-template-columns: minmax(250px, 300px) minmax(0, 1fr) minmax(220px, 260px); gap: 12px; margin-top: 12px; align-items: start; }
.board-taxonomy-section, .board-table-section, .kline-section { margin-top: 0; min-width: 0; }
.board-taxonomy-section { position: sticky; top: 66px; }
.board-alert-section { position: sticky; top: 66px; }
.board-alert-meta { display: grid; flex: 0 0 auto; justify-items: end; gap: 3px; color: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.board-alert-meta time { white-space: nowrap; }
.board-alert-list { padding: 4px 14px 10px; }
.board-alert-row { display: flex; width: 100%; min-height: 52px; align-items: flex-start; gap: 9px; border: 0; border-bottom: 1px solid var(--line); padding: 10px 4px; background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.board-alert-row:hover { background: #eef8f2; }
.board-alert-row strong, .board-alert-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.board-alert-row strong { color: var(--accent); font-size: 13px; }
.board-alert-row small { margin-top: 4px; color: var(--muted); font-size: 11px; }
.board-alert-dot { width: 7px; height: 7px; flex: 0 0 7px; margin-top: 5px; border-radius: 50%; background: #d95b42; box-shadow: 0 0 0 3px #fbe9e4; }
.board-alert-clear { width: calc(100% - 28px); min-height: 32px; margin: 0 14px 14px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); color: var(--muted); font-size: 12px; cursor: pointer; }
.board-alert-clear:hover { border-color: var(--accent); color: var(--accent); }
.board-taxonomy-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; padding: 12px 18px 0; }
.board-taxonomy-tab { min-height: 36px; border: 1px solid var(--line); border-radius: 4px; padding: 0 7px; background: var(--surface); color: var(--muted); font-size: 12px; font-weight: 700; }
.board-taxonomy-tab.active { border-color: var(--accent); background: #e9f6ef; color: var(--accent); }
.board-taxonomy-note { margin: 10px 18px 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.board-filters { display: flex; gap: 6px; padding: 12px 18px 0; }
.board-date-filter { display: inline-grid; grid-template-columns: auto 128px; align-items: center; gap: 7px; color: var(--muted); font-size: 12px; }
.board-date-filter select { min-width: 0; min-height: 34px; border: 1px solid var(--line); border-radius: 4px; padding: 0 8px; background: var(--surface); color: var(--text); font-size: 12px; }
.board-sort { display: inline-grid; grid-template-columns: auto 150px; align-items: center; gap: 7px; margin-left: auto; color: var(--muted); font-size: 12px; }
.board-sort select { min-width: 0; min-height: 34px; border: 1px solid var(--line); border-radius: 4px; padding: 0 8px; background: var(--surface); color: var(--text); font-size: 12px; }
.board-reason-note { margin: 12px 18px 0; padding: 10px 12px; border-left: 3px solid #c99524; background: #fff9ed; color: #735514; font-size: 12px; line-height: 1.6; }
.board-filter, .kline-period { min-height: 34px; border: 1px solid var(--line); border-radius: 4px; padding: 0 12px; background: var(--surface); color: var(--muted); font-size: 12px; font-weight: 700; }
.board-filter.active, .kline-period.active { border-color: var(--accent); background: #e9f6ef; color: var(--accent); }
.board-table-wrap { overflow-x: auto; padding: 8px 18px 16px; }
.board-table { min-width: 1120px; border-collapse: collapse; width: 100%; font-size: 13px; }
.board-table th, .board-table td { padding: 11px 10px; border-bottom: 1px solid #e7ece9; text-align: right; white-space: nowrap; }
.board-table th:first-child, .board-table td:first-child, .board-table th:nth-child(2), .board-table td:nth-child(2), .board-table th:nth-child(3), .board-table td:nth-child(3), .board-table th:nth-child(4), .board-table td:nth-child(4), .board-table th:nth-child(5), .board-table td:nth-child(5) { text-align: left; }
.board-table th { color: var(--muted); font-size: 12px; font-weight: 700; }
.board-table th button { min-height: 28px; color: inherit; font-size: inherit; font-weight: inherit; }
.board-table tbody tr { color: var(--text); }
.board-table tbody tr:hover { background: #eef8f2; color: var(--text); }
.board-table tbody tr:hover td { color: var(--text); }
.board-table .code, .board-table .muted { color: var(--muted); }
.board-table .positive { color: var(--positive); }
.board-table .negative { color: var(--negative); }
.board-table td strong { font-weight: 750; }
.board-reason { max-width: 240px; text-align: left; white-space: normal; }
.board-reason strong, .board-reason small { display: block; overflow: hidden; text-overflow: ellipsis; }
.board-reason strong { max-width: 240px; font-size: 12px; font-weight: 700; }
.board-reason small { margin-top: 2px; color: var(--muted); font-size: 11px; }
.company-link { min-height: 32px; border: 0; padding: 0; background: transparent; color: var(--accent); font-weight: 800; text-decoration: underline; text-decoration-color: #b8d8c7; text-underline-offset: 3px; }
.company-link:hover { color: var(--accent-hover); text-decoration-color: var(--accent-hover); }
.company-detail-link { border: 0; padding: 0; background: transparent; color: var(--accent); font: inherit; font-weight: 800; text-align: left; }
.company-detail-link:hover { color: var(--accent-hover); text-decoration: underline; text-underline-offset: 3px; }
.mobile-stock-main .company-detail-link { color: inherit; font-size: inherit; font-weight: inherit; }
.board-status { display: inline-flex; align-items: center; min-height: 24px; padding: 0 7px; border-radius: 3px; font-size: 12px; font-weight: 800; }
.board-status.sealed { background: #e6f5ed; color: #087b49; }
.board-status.broken { background: #fff1e5; color: #a85a17; }
.board-heat-section { margin-top: 12px; }
.board-sector-list { display: grid; grid-template-columns: minmax(0, 1fr); padding: 6px 18px 16px; }
.board-sector-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; grid-template-areas: "name limit broken" "bar bar bar"; align-items: center; gap: 6px 10px; min-width: 0; min-height: 54px; border: 0; border-bottom: 1px solid #e7ece9; padding: 7px 0 8px; background: transparent; color: var(--text); text-align: left; }
.board-sector-row:hover, .board-sector-row.active { color: var(--accent); }
.board-sector-row > span { grid-area: name; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 700; }
.board-sector-row > i { grid-area: bar; height: 5px; overflow: hidden; border-radius: 2px; background: #e8efeb; }
.board-sector-row > i b { display: block; height: 100%; border-radius: inherit; background: var(--accent); }
.board-sector-row strong, .board-sector-row small { white-space: nowrap; font-size: 11px; font-weight: 700; }
.board-sector-row strong { grid-area: limit; }
.board-sector-row small { color: #a85a17; }
.board-sector-row small { grid-area: broken; }
.kline-tools { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 12px 18px; border-bottom: 1px solid var(--line); background: #f7faf8; }
.kline-search { display: flex; align-items: center; gap: 8px; min-width: 0; }
.kline-search .field { display: grid; grid-template-columns: 42px minmax(180px, 260px); }
.kline-search input { min-width: 0; width: 100%; border: 1px solid var(--line); border-radius: 4px; padding: 0 10px; background: #fff; color: var(--text); }
.kline-tools .field { display: grid; grid-template-columns: 42px 220px; }
.kline-tools select { min-width: 0; border: 1px solid var(--line); border-radius: 4px; padding: 0 10px; background: #fff; color: var(--text); }
.kline-periods { display: flex; gap: 5px; }
.kline-summary { display: flex; flex-wrap: wrap; gap: 18px; padding: 12px 18px 0; color: var(--muted); font-size: 12px; }
.kline-summary b { color: var(--text); font-weight: 800; font-variant-numeric: tabular-nums; }
.kline-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; padding: 8px 18px 0; color: var(--muted); font-size: 11px; }
.kline-legend > span { display: inline-flex; align-items: center; gap: 5px; }
.legend-ma { display: inline-block; width: 18px; height: 2px; }
.legend-ma.ma5 { background: #0d7a4c; }
.legend-ma.ma10 { background: #c47c16; }
.legend-ma.ma20 { background: #8d4bb3; }
.kline-hover { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kline-chart-wrap { position: relative; min-height: 360px; padding: 12px 18px 16px; }
#klineCanvas { display: block; width: 100%; height: 360px; }
#stockKlineChart { width: 100%; height: 100%; min-height: 420px; }
.kline-empty { position: absolute; inset: 0; display: grid; place-items: center; padding: 24px; color: var(--muted); font-size: 13px; text-align: center; pointer-events: none; }

.admin-dialog, .code-dialog { width: min(1320px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 1px solid var(--line); border-radius: 7px; background: var(--bg); color: var(--text); }
.admin-dialog::backdrop, .code-dialog::backdrop { background: rgba(8, 12, 10, .72); }
.admin-shell { min-height: min(760px, calc(100vh - 34px)); padding: 22px; overflow: auto; }
.admin-header { position: sticky; top: -22px; z-index: 4; display: flex; justify-content: space-between; align-items: center; gap: 18px; margin: -22px -22px 18px; padding: 18px 22px; border-bottom: 1px solid var(--line); background: rgba(243, 245, 244, .97); }
.admin-header h2, .code-dialog h2 { margin: 0; font-size: 22px; }
.admin-unlock { width: min(520px, 100%); margin: 80px auto; padding: 24px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
.admin-unlock label { display: block; margin-bottom: 9px; font-weight: 700; }
.admin-unlock > div { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.admin-unlock input, .member-form input { min-width: 0; border: 1px solid var(--line); border-radius: 4px; padding: 0 11px; }
.admin-unlock p { min-height: 22px; margin: 8px 0 0; color: var(--negative); }
.admin-message { min-height: 24px; margin: 0; color: var(--positive); font-size: 13px; }
.admin-section > .admin-message { padding: 12px 15px; }
.admin-message.error { color: var(--negative); }
.admin-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.admin-stats div { padding: 15px; border-left: 3px solid var(--accent); background: var(--surface); }
.admin-stats span { display: block; color: var(--muted); font-size: 12px; }
.admin-stats strong { font-size: 23px; }
.admin-section { margin-top: 18px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); overflow: hidden; }
.admin-section-title { display: flex; justify-content: space-between; align-items: center; padding: 13px 15px; border-bottom: 1px solid var(--line); }
.admin-username { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; padding: 0; }
.admin-section-title h3 { margin: 0; font-size: 16px; }
.admin-export { display: inline-flex; align-items: center; text-decoration: none; }
.member-form { display: grid; grid-template-columns: 1fr 180px 1.4fr auto; align-items: end; gap: 10px; padding: 13px 15px; border-bottom: 1px solid var(--line); background: var(--surface-soft); }
.member-form label { display: grid; gap: 5px; color: var(--muted); font-size: 12px; }
.form-actions { display: flex; gap: 6px; }
.admin-table-wrap { overflow-x: auto; }
.admin-table { min-width: 1000px; background: var(--surface); color: var(--text); }
.admin-table th, .admin-table td { border-color: #e0e5e2; text-align: left; }
.admin-table th { background: #eef2f0; color: var(--muted); }
.admin-table th button { min-height: 28px; border: 0; padding: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.admin-table th button:hover { color: var(--accent); }
.admin-table th button span { margin-left: 4px; color: var(--muted); }
.admin-table td strong, .admin-table td small { display: block; }
.admin-table td small { max-width: 220px; overflow: hidden; color: var(--muted); text-overflow: ellipsis; }
.collector-table-wrap .admin-table { min-width: 920px; }
.collector-table-wrap td small { display: block; max-width: 230px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.collector-source-stack { display: grid; gap: 3px; min-width: 220px; }
.collector-source-state { display: block; width: fit-content; max-width: 300px; overflow: hidden; border: 1px solid #cfe0d6; border-radius: 3px; padding: 2px 6px; color: var(--muted); background: #f5f9f6; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.collector-source-state.enabled { border-color: #b9d7c6; color: var(--positive); background: #edf8f1; }
.collector-source-state.disabled { border-color: #e7c1c5; color: var(--negative); background: #fff4f4; }
.collector-source-state.neutral { color: var(--muted); background: #f5f6f5; }
.collector-error, .collector-card-error { color: var(--negative) !important; }
.admin-collector-cards { display: none; }
.admin-collector-card { padding: 13px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); }
.admin-collector-card header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.admin-collector-card h4 { margin: 0; font-size: 15px; }
.admin-collector-card header small, .admin-collector-card p { color: var(--muted); font-size: 12px; }
.admin-collector-card header small { display: block; margin-top: 3px; }
.collector-card-sources { display: grid; gap: 5px; margin: 12px 0; }
.admin-collector-card dl { display: grid; gap: 7px; margin: 0 0 12px; }
.admin-collector-card dl div { display: flex; justify-content: space-between; gap: 10px; }
.admin-collector-card dt { color: var(--muted); font-size: 12px; }
.admin-collector-card dd { margin: 0; font-size: 12px; text-align: right; }
.admin-collector-card p { margin: 7px 0; }
.admin-collector-card .collector-card-error { max-height: 88px; overflow: auto; overflow-wrap: anywhere; }
.admin-collector-card .collector-run-button { width: 100%; margin-top: 7px; }
.collector-run-button { min-height: 32px; padding: 0 9px; }
.admin-table tbody tr:hover { background: #f3f6f4; }
.access-table { table-layout: fixed; width: 100%; min-width: 1080px; }
.access-table th, .access-table td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.access-table th:nth-child(1), .access-table td:nth-child(1) { width: 155px; }
.access-table th:nth-child(2), .access-table td:nth-child(2) { width: 105px; }
.access-table th:nth-child(3), .access-table td:nth-child(3) { width: 125px; }
.access-table th:nth-child(4), .access-table td:nth-child(4) { width: 33%; }
.access-table th:nth-child(5), .access-table td:nth-child(5) { width: 145px; }
.access-table th:nth-child(6), .access-table td:nth-child(6) { width: 22%; }
.access-detail-cell, .device-cell { cursor: help; }
.status-text { font-size: 12px; font-weight: 700; }
.status-text.enabled { color: var(--positive); }
.status-text.disabled { color: var(--negative); }
.status-text.warning { color: #9a5c09; }
.row-actions { display: flex; flex-wrap: wrap; gap: 5px; }
.row-actions button { min-height: 32px; border: 1px solid var(--line); border-radius: 3px; padding: 0 7px; background: #fff; color: var(--text); font-size: 12px; }
.row-actions button:hover { border-color: var(--accent); color: var(--accent); }
.row-actions button.danger { color: var(--negative); }
.device-cell { max-width: 420px; overflow: hidden; text-overflow: ellipsis; }
.admin-empty { padding: 28px !important; color: var(--muted); text-align: center !important; }
.admin-member-cards { display: none; }
.code-dialog { width: min(520px, calc(100vw - 32px)); }
.code-dialog > div { padding: 26px; }
.code-dialog output { display: block; margin: 18px 0 8px; padding: 15px; border: 1px dashed var(--accent); border-radius: 5px; background: var(--surface-soft); font-size: 20px; font-weight: 800; text-align: center; }
.code-dialog p { color: var(--muted); }
.code-dialog > div > div { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; }
.administrator-page { width: min(1500px, calc(100% - 32px)); margin: 0 auto; padding: 28px 0 56px; }
.administrator-page .admin-shell { min-height: auto; padding: 0; overflow: visible; }
.administrator-page .admin-header { position: static; margin: 0 0 18px; padding: 0 0 18px; background: transparent; }
.admin-tabs { display: flex; gap: 4px; margin: 0 0 16px; border-bottom: 1px solid var(--line); overflow-x: auto; }
.admin-tab { min-height: 44px; border: 0; border-bottom: 2px solid transparent; padding: 0 14px; background: transparent; color: var(--muted); font-weight: 750; white-space: nowrap; }
.admin-tab.active { border-color: var(--accent); color: var(--accent); background: #edf8f1; }
.admin-tab-panel[hidden] { display: none; }
.admin-tab-panel .admin-section { margin-top: 0; }
.collab-form { display: grid; grid-template-columns: 1fr 1fr 1.4fr auto; gap: 10px; align-items: end; padding: 14px 15px; border-bottom: 1px solid var(--line); background: var(--surface-soft); }
.collab-form label { display: grid; gap: 5px; color: var(--muted); font-size: 12px; font-weight: 700; }
.collab-form input { min-width: 0; border: 1px solid var(--line); border-radius: 4px; padding: 0 10px; background: var(--surface); color: var(--text); }
.permission-checks { display: flex; flex-wrap: wrap; gap: 6px 10px; min-height: 44px; align-items: center; }
.permission-checks label { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; }
.permission-checks input { min-height: auto; }
.collab-form .form-actions { grid-column: 1 / -1; }
.collab-permission-list { display: flex; flex-wrap: wrap; gap: 4px; }
.permission-chip { padding: 2px 6px; border: 1px solid #b9d7c6; border-radius: 3px; color: var(--accent); background: #edf8f1; font-size: 11px; }

body.mobile-layout { background: #070b08; color: #f2f5f3; }
body.mobile-layout .valuation-shell {
  width: min(390px, 100%);
  max-width: 390px;
  padding: 0 12px max(34px, env(safe-area-inset-bottom));
}
body.mobile-layout .valuation-header { align-items: flex-start; padding: 18px 2px 14px; border-color: #283129; }
body.mobile-layout .valuation-header .eyebrow { color: #c7ff38; }
body.mobile-layout .valuation-header h1 { font-size: 23px; }
body.mobile-layout .subtitle { color: #778179; }
body.mobile-layout .account-actions { flex-wrap: wrap; justify-content: flex-end; }
body.mobile-layout .account-summary { display: none; }
.workspace-nav { overflow-x: auto; }
body.mobile-layout .workspace-nav { margin-top: 10px; border-color: #283129; }
body.mobile-layout .workspace-tab { color: #89938b; }
body.mobile-layout .workspace-tab.active { border-color: #c7ff38; color: #c7ff38; }
body.mobile-layout .view-switch { order: 3; width: 100%; justify-content: flex-end; border-color: #283129; background: #111712; }
body.mobile-layout .view-switch button { color: #89938b; }
body.mobile-layout .view-switch button.active { background: #c7ff38; color: #11150f; }
body.mobile-layout .button { border-color: #39433b; background: #131914; color: #edf2ee; }
body.mobile-layout .button-primary { border-color: #c7ff38; background: #c7ff38; color: #11150f; }
body.mobile-layout .control-bar { display: block; margin-top: 8px; padding: 8px; border-color: #303a32; background: #101611; }
body.mobile-layout .tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
body.mobile-layout .tab { min-height: 54px; color: #7e8980; font-size: 17px; font-weight: 750; }
body.mobile-layout .tab.active { border-color: #1d281f; background: #0a110b; color: #fff; }
body.mobile-layout .search-box { display: grid; grid-template-columns: 42px 1fr; margin-top: 8px; }
body.mobile-layout .field input { border-color: #303a32; background: #080d09; color: #fff; }
body.mobile-layout .classification-level-box, body.mobile-layout .classification-box, body.mobile-layout .control-bar > .button-primary { display: none; }
body.mobile-layout .mobile-industry-chips { display: flex; gap: 8px; margin-top: 10px; padding: 8px 2px; overflow-x: auto; scrollbar-width: none; }
body.mobile-layout .industry-chip { flex: 0 0 auto; min-height: 40px; border: 1px solid #354037; border-radius: 20px; padding: 0 14px; background: #0e140f; color: #949d96; }
body.mobile-layout .industry-chip.active { border-color: #c7ff38; color: #c7ff38; }
body.mobile-layout .industry-chip span { font-variant-numeric: tabular-nums; }
body.mobile-layout .stat-strip, body.mobile-layout .desktop-ranking { display: none; }
body.mobile-layout .mobile-ranking { display: block; margin-top: 8px; border: 1px solid #303a32; border-radius: 5px; background: #0b110c; overflow: hidden; }
body.mobile-layout .mobile-list-head { display: flex; justify-content: space-between; align-items: center; padding: 14px; border-bottom: 1px solid #303a32; }
body.mobile-layout .mobile-list-head h2 { margin: 0; font-size: 18px; }
body.mobile-layout .mobile-list-head span { color: #7e8880; font-size: 12px; }
body.mobile-layout .mobile-list-tools { display: grid; justify-items: end; gap: 5px; }
body.mobile-layout .mobile-list-tools select { min-height: 34px; max-width: 130px; border: 1px solid #354037; border-radius: 4px; padding: 0 7px; background: #101611; color: #aab3ac; font-size: 11px; }
body.mobile-layout .mobile-stock-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) minmax(118px, .8fr); gap: 8px; align-items: center; min-height: 112px; padding: 14px 10px; border-bottom: 1px solid #29322b; }
body.mobile-layout .mobile-rank { color: #858e87; font-size: 18px; text-align: center; }
body.mobile-layout .mobile-stock-row:nth-child(-n+3) .mobile-rank { color: #f4c84b; }
body.mobile-layout .mobile-stock-main { min-width: 0; }
body.mobile-layout .mobile-stock-main h3 { margin: 0 0 6px; overflow: hidden; color: #f8faf8; font-size: 17px; text-overflow: ellipsis; white-space: nowrap; }
body.mobile-layout .mobile-stock-main p, body.mobile-layout .mobile-stock-value p { margin: 0; color: #747f76; font-size: 11px; white-space: nowrap; }
body.mobile-layout .score-track { height: 7px; margin-top: 11px; border-radius: 3px; background: #151d17; overflow: hidden; }
body.mobile-layout .score-track span { display: block; height: 100%; border-radius: inherit; background: #21b3ad; }
body.mobile-layout .mobile-stock-value { min-width: 0; text-align: right; }
body.mobile-layout .mobile-stock-value strong { display: block; margin-bottom: 5px; color: #f8faf8; font-size: 18px; }
body.mobile-layout .mobile-stock-value span { display: block; margin-top: 3px; font-size: 12px; }
body.mobile-layout .mobile-pagination { display: flex; justify-content: space-between; align-items: center; padding: 12px; }
body.mobile-layout .mobile-pagination span { color: #909a92; font-size: 12px; }
body.mobile-layout .mobile-empty { padding: 34px 16px; color: #8b958d; text-align: center; }
body.mobile-layout .research-view { margin-top: 10px; }
body.mobile-layout .research-hero { display: block; padding: 17px 14px; border-color: #303a32; background: #101611; }
body.mobile-layout .stock-page { width: min(390px, 100%); }
body.mobile-layout .stock-header { display: block; }
body.mobile-layout .stock-header h1 { max-width: 100%; font-size: 23px; }
body.mobile-layout .stock-header-actions { justify-content: space-between; margin-top: 14px; }
body.mobile-layout .stock-query-section { margin-top: 8px; }
body.mobile-layout .stock-query-form { display: block; padding: 10px 14px; border-color: #303a32; background: #101611; }
body.mobile-layout .stock-query-form .field { display: grid; grid-template-columns: 42px minmax(0, 1fr); margin-bottom: 8px; }
body.mobile-layout .stock-query-form input { border-color: #354037; background: #080d09; color: #edf2ee; }
body.mobile-layout .stock-query-form .button { width: 100%; }
body.mobile-layout .stock-data-note { color: #89938b; }
body.mobile-layout .stock-overview-grid { display: block; margin-top: 8px; }
body.mobile-layout .stock-context-grid { display: block; margin-top: 8px; }
body.mobile-layout .stock-context-section { margin-top: 8px; border-color: #303a32; background: #0f150f; }
body.mobile-layout .stock-context-row { border-color: #29322b; color: #edf2ee; }
body.mobile-layout .stock-context-row span, body.mobile-layout .stock-context-row small { color: #89938b; }
body.mobile-layout .stock-overview-card { margin-top: 8px; border-color: #303a32; background: #0f150f; }
body.mobile-layout .stock-metrics { grid-template-columns: repeat(2, 1fr); padding: 10px 14px 14px; }
body.mobile-layout .stock-metrics div { background: #162019; }
body.mobile-layout .stock-classification { padding: 10px 14px 14px; }
body.mobile-layout .stock-tag-list span { border-color: #3a563d; color: #b9d7bf; }
body.mobile-layout .stock-board-section { margin-top: 8px; }
body.mobile-layout .stock-auction-section { margin-top: 8px; }
body.mobile-layout .stock-auction-actions { align-items: flex-end; flex-direction: column; gap: 5px; }
body.mobile-layout .stock-auction-metrics { grid-template-columns: repeat(2, 1fr); padding: 10px 14px 12px; }
body.mobile-layout .stock-auction-metrics > div { background: #162019; }
body.mobile-layout .stock-auction-note { padding: 0 14px 13px; }
body.mobile-layout .data-capability-strip { grid-template-columns: 1fr; gap: 12px; margin: 8px 0; padding: 14px; }
body.mobile-layout .data-capability-list { grid-template-columns: 1fr; }
body.mobile-layout .stock-board-summary { padding: 10px 14px 4px; gap: 14px; }
body.mobile-layout .stock-board-list { padding: 4px 14px 12px; }
body.mobile-layout .stock-board-row { grid-template-columns: 52px 72px 56px 78px minmax(0, 1fr); gap: 6px; border-color: #29322b; }
body.mobile-layout .research-hero h2 { font-size: 22px; }
body.mobile-layout .research-hero p:not(.eyebrow) { color: #89938b; font-size: 12px; }
body.mobile-layout .research-hero-actions { justify-content: space-between; margin-top: 14px; }
body.mobile-layout .cache-badge { border-color: #3a563d; background: #152018; color: #b9d7bf; }
body.mobile-layout .cache-badge.is-stale { border-color: #8b6238; background: #2a2118; color: #f0c38e; }
body.mobile-layout .research-kpis { grid-template-columns: repeat(2, 1fr); gap: 7px; }
body.mobile-layout .research-view:not(.board-view) > .research-kpis { grid-template-columns: repeat(2, 1fr); }
body.mobile-layout .research-kpis > div { min-height: 95px; padding: 12px; border-color: #303a32; background: #101611; }
body.mobile-layout .research-kpis strong { font-size: 23px; }
body.mobile-layout .review-date-field { grid-template-columns: auto minmax(0, 1fr); flex: 1 1 190px; }
body.mobile-layout .review-date-field select { width: 100%; min-height: 44px; border-color: #354037; background: #080d09; color: #edf2ee; }
body.mobile-layout .review-trend-section { margin-top: 8px; }
body.mobile-layout .review-trend { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; min-height: 0; padding: 10px 14px 14px; }
body.mobile-layout .review-trend-day { grid-template-rows: 18px 66px 20px 18px; min-height: 140px; border-color: #303a32; background: #101611; color: #edf2ee; touch-action: manipulation; }
body.mobile-layout .review-trend-day:hover, body.mobile-layout .review-trend-day.active { border-color: #c7ff38; background: #172218; }
body.mobile-layout .review-trend-value, body.mobile-layout .review-trend-day small { color: #89938b; }
body.mobile-layout .review-trend-bars { height: 60px; }
body.mobile-layout .review-primary-grid, body.mobile-layout .review-secondary-grid, body.mobile-layout .review-market-grid { display: block; margin-top: 0; }
body.mobile-layout .review-primary-grid > .research-section, body.mobile-layout .review-secondary-grid > .research-section, body.mobile-layout .review-market-grid > .research-section { margin-top: 8px; }
body.mobile-layout .review-theme-list, body.mobile-layout .review-ladder, body.mobile-layout .review-promotion, body.mobile-layout .review-quality, body.mobile-layout .review-timeline { padding-right: 14px; padding-left: 14px; }
body.mobile-layout .review-theme-row { grid-template-columns: 22px minmax(0, 1fr); gap: 8px; border-color: #29322b; }
body.mobile-layout .review-theme-main > div:first-child { display: block; }
body.mobile-layout .review-theme-main > div:first-child span { display: block; margin-top: 3px; white-space: normal; }
body.mobile-layout .review-theme-row time { grid-column: 2; padding: 0; text-align: left; }
body.mobile-layout .review-theme-bar, body.mobile-layout .review-timeline i { background: #1a241c; }
body.mobile-layout .review-stock-links { gap: 4px 8px; }
body.mobile-layout .review-stock-links button { min-height: 36px; color: #edf2ee; touch-action: manipulation; }
body.mobile-layout .review-ladder-tier { grid-template-columns: 54px minmax(0, 1fr); border-color: #29322b; }
body.mobile-layout .review-ladder-stocks { grid-template-columns: 1fr; gap: 2px; }
body.mobile-layout .review-ladder-stocks button { min-height: 44px; color: #edf2ee; touch-action: manipulation; }
body.mobile-layout .review-promotion > div, body.mobile-layout .review-quality > div { background: #162019; }
body.mobile-layout .review-promotion span, body.mobile-layout .review-promotion small, body.mobile-layout .review-quality span, body.mobile-layout .review-quality small { color: #89938b; }
body.mobile-layout .review-breadth-summary, body.mobile-layout .review-loss-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-right: 14px; padding-left: 14px; }
body.mobile-layout .review-breadth-summary > div, body.mobile-layout .review-loss-grid > div, body.mobile-layout .review-history-grid > div { background: #162019; }
body.mobile-layout .review-breadth-summary span, body.mobile-layout .review-loss-grid span, body.mobile-layout .review-loss-grid small, body.mobile-layout .review-history-grid span, body.mobile-layout .review-history-grid small { color: #89938b; }
body.mobile-layout .review-distribution { padding-right: 14px; padding-left: 14px; }
body.mobile-layout .review-distribution i { background: #1a241c; }
body.mobile-layout .review-sector-columns { display: block; padding-right: 14px; padding-left: 14px; }
body.mobile-layout .review-sector-columns > div + div { margin-top: 14px; }
body.mobile-layout .review-sector-list article, body.mobile-layout .review-core-list article { border-color: #29322b; }
body.mobile-layout .review-core-list { padding-right: 14px; padding-left: 14px; }
body.mobile-layout .review-core-list article { grid-template-columns: 20px minmax(100px, .8fr) minmax(120px, 1fr) 28px; }
body.mobile-layout .review-core-list button { min-height: 44px; color: #edf2ee; touch-action: manipulation; }
body.mobile-layout .review-events-section { margin-top: 8px; }
body.mobile-layout .review-event-list { grid-template-columns: 1fr; padding-right: 14px; padding-left: 14px; }
body.mobile-layout .review-event-list article { grid-template-columns: 52px 62px minmax(0, 1fr) 28px; border-color: #29322b; }
body.mobile-layout .review-event-list button { min-height: 44px; color: #edf2ee; touch-action: manipulation; }
body.mobile-layout .review-event-status { border-color: #354037; background: #162019; }
body.mobile-layout .review-event-status.sealed { border-color: #3a563d; background: #152018; color: #69d9a4; }
body.mobile-layout .review-event-status.broken { border-color: #733b42; background: #271719; color: #ff8791; }
body.mobile-layout .review-event-status.resealed { border-color: #7a6338; background: #2a2118; color: #f0c38e; }
body.mobile-layout .review-history-section { margin-top: 8px; }
body.mobile-layout .review-history-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-right: 14px; padding-left: 14px; }
body.mobile-layout .pulse-section { margin-top: 8px; }
body.mobile-layout .pulse-grid { grid-template-columns: repeat(2, 1fr); gap: 7px; padding: 10px 14px 14px; }
body.mobile-layout .pulse-item { min-height: 82px; padding: 11px; border-color: #303a32; background: #101611; }
body.mobile-layout .pulse-item strong { font-size: 15px; }
body.mobile-layout .research-grid { display: block; margin-top: 8px; }
body.mobile-layout .research-section { margin-top: 8px; border-color: #303a32; background: #0f150f; }
body.mobile-layout .section-heading { padding: 13px 14px 10px; border-color: #303a32; }
body.mobile-layout .section-heading h3 { font-size: 17px; }
body.mobile-layout .section-heading > span { color: #7e8980; font-size: 11px; }
body.mobile-layout .observation-list, body.mobile-layout .sector-list { padding: 4px 14px 9px; }
body.mobile-layout .observation-row { grid-template-columns: 58px minmax(0, 1fr) auto; border-color: #29322b; }
body.mobile-layout .observation-row:hover { background: transparent; }
body.mobile-layout .research-company-tools { display: block; padding: 10px 14px; border-color: #303a32; background: #101611; }
body.mobile-layout .research-company-tools .field { margin-bottom: 8px; }
body.mobile-layout .research-company-tools select { width: 100%; }
body.mobile-layout .company-card { padding: 16px 14px; }
body.mobile-layout .company-card h4 { font-size: 20px; }
body.mobile-layout .company-card-header { gap: 8px; }
body.mobile-layout .company-card-actions { align-items: flex-end; flex-direction: column; gap: 6px; }
body.mobile-layout .company-metrics { grid-template-columns: repeat(3, 1fr); gap: 5px; margin-top: 15px; }
body.mobile-layout .company-metrics div { padding: 9px 8px; background: #162019; }
body.mobile-layout .company-metrics strong { font-size: 15px; }
body.mobile-layout .company-tags span { border-color: #3a563d; color: #b9d7bf; }
body.mobile-layout .company-note { color: #7e8980; }
body.mobile-layout .company-workspace-grid { display: block; margin-top: 8px; }
body.mobile-layout .company-research-main { display: block; }
body.mobile-layout .company-stock-jump, body.mobile-layout .company-analysis-form { border-color: #303a32; background: #101611; }
body.mobile-layout .company-stock-jump input, body.mobile-layout .company-analysis-form select, body.mobile-layout .company-analysis-form textarea { border-color: #354037; background: #080d09; color: #edf2ee; }
body.mobile-layout .watchlist-row, body.mobile-layout .research-candidate-row, body.mobile-layout .company-history-row { border-color: #29322b; }
body.mobile-layout .watchlist-stock, body.mobile-layout .candidate-stock, body.mobile-layout .company-history-row { color: #edf2ee; }
body.mobile-layout .watchlist-stock small, body.mobile-layout .candidate-stock small, body.mobile-layout .research-candidate-row > p, body.mobile-layout .company-history-row span, body.mobile-layout .company-history-row small { color: #89938b; }
body.mobile-layout .research-result-copy { border-color: #c7ff38; background: #142017; }
body.mobile-layout .research-result-copy p { color: #edf2ee; }
body.mobile-layout .research-result-copy p + p { color: #aebbb4; }
body.mobile-layout .company-analysis-actions { padding-left: 0; }
body.mobile-layout .research-candidate-row { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 13px 0; }
body.mobile-layout .candidate-actions { justify-content: stretch; }
body.mobile-layout .candidate-actions .button { flex: 1; min-height: 44px; }
body.mobile-layout .company-history-list { grid-template-columns: 1fr; padding: 3px 14px 10px; }
body.mobile-layout .company-history-row { grid-template-columns: 64px minmax(0, 1fr); }
body.mobile-layout .company-history-row small { grid-column: 2; }
body.mobile-layout .announcement-section { margin-top: 8px; }
body.mobile-layout .section-heading-actions { align-items: flex-end; flex-direction: column; gap: 6px; }
body.mobile-layout .announcement-tools { display: block; padding: 10px 14px; border-color: #303a32; background: #101611; }
body.mobile-layout .announcement-tools .field { display: grid; grid-template-columns: 42px minmax(0, 1fr); margin-bottom: 8px; }
body.mobile-layout .announcement-tools .field:last-child { margin-bottom: 0; }
body.mobile-layout .announcement-tools input, body.mobile-layout .announcement-tools select { border-color: #354037; background: #080d09; color: #edf2ee; }
body.mobile-layout .announcement-list { padding: 4px 14px 8px; }
body.mobile-layout .announcement-row { display: block; min-height: 0; padding: 12px 0; border-color: #29322b; }
body.mobile-layout .announcement-title { white-space: normal; }
body.mobile-layout .announcement-summary { white-space: normal; }
body.mobile-layout .announcement-analysis { margin: 0 14px 10px; padding: 12px; border-color: #c7ff38; background: #142017; }
body.mobile-layout .announcement-analysis-head > span { color: #7e8980; }
body.mobile-layout .announcement-analysis > p { color: #edf2ee; }
body.mobile-layout .announcement-stocks span { border-color: #3a563d; color: #b9d7bf; }
body.mobile-layout .announcement-note { padding: 11px 14px 14px; border-color: #303a32; color: #7e8980; }
body.mobile-layout .integration-grid { display: block; padding: 10px 14px 14px; }
body.mobile-layout .integration-grid article { min-height: auto; margin-top: 7px; padding: 12px; border-color: #303a32; background: #101611; }
body.mobile-layout .integration-grid p { min-height: 0; }
  body.mobile-layout .board-filters { padding: 10px 14px 0; }
  body.mobile-layout .board-review-layout { display: block; margin-top: 8px; }
  body.mobile-layout .board-taxonomy-section { position: static; margin-top: 0; }
  body.mobile-layout .board-alert-section { position: static; margin-top: 8px; }
  body.mobile-layout .board-taxonomy-tabs { padding: 10px 14px 0; }
  body.mobile-layout .board-taxonomy-note { margin: 8px 14px 0; color: #89938b; }
  body.mobile-layout .board-sort { grid-template-columns: auto minmax(0, 1fr); width: 100%; margin: 8px 0 0; }
  body.mobile-layout .board-date-filter { grid-template-columns: auto minmax(0, 1fr); width: 100%; margin: 8px 0 0; }
body.mobile-layout .board-filters { flex-wrap: wrap; }
body.mobile-layout .board-sort select { width: 100%; border-color: #354037; background: #101611; color: #edf2ee; }
body.mobile-layout .board-date-filter select { width: 100%; border-color: #354037; background: #101611; color: #edf2ee; }
body.mobile-layout .board-reason-note { margin: 10px 14px 0; border-color: #9e7b31; background: #211b0f; color: #d8bd7d; }
body.mobile-layout .board-filter, body.mobile-layout .kline-period { border-color: #354037; background: #101611; color: #89938b; }
body.mobile-layout .board-filter.active, body.mobile-layout .kline-period.active { border-color: #c7ff38; background: #172218; color: #c7ff38; }
body.mobile-layout .board-alert-row { border-color: #29322b; color: #edf2ee; }
body.mobile-layout .board-alert-row:hover { background: #172218; }
body.mobile-layout .board-alert-row strong { color: #c7ff38; }
body.mobile-layout .board-alert-row small { color: #aebbb4; }
body.mobile-layout .board-alert-clear { border-color: #354037; background: #101611; color: #aebbb4; }
body.mobile-layout .board-table-wrap { padding: 8px 14px 12px; }
  body.mobile-layout .board-table th, body.mobile-layout .board-table td { border-color: #29322b; }
  body.mobile-layout .board-table tbody tr:hover { background: #172218; color: #edf2ee; }
  body.mobile-layout .board-table tbody tr:hover td { color: #edf2ee; }
  body.mobile-layout .board-table .code, body.mobile-layout .board-table .muted { color: #aebbb4; }
  body.mobile-layout .board-table .positive { color: #69d9a4; }
  body.mobile-layout .board-table .negative { color: #ff8791; }
  body.mobile-layout .board-reason { max-width: 210px; }
  body.mobile-layout .board-reason strong { max-width: 210px; }
body.mobile-layout .company-link { color: #c7ff38; text-decoration-color: #64785d; }
body.mobile-layout .board-status.sealed { background: #143022; color: #8bd6aa; }
body.mobile-layout .board-status.broken { background: #382718; color: #f1b36e; }
body.mobile-layout .board-heat-section { margin-top: 8px; }
body.mobile-layout .board-sector-list { display: block; padding: 5px 14px 12px; }
body.mobile-layout .board-sector-row { grid-template-columns: minmax(70px, 1fr) minmax(80px, 1.1fr) auto auto; border-color: #29322b; }
body.mobile-layout .board-sector-row > i { background: #1a241c; }
body.mobile-layout .board-sector-row small { color: #f1b36e; }
body.mobile-layout .kline-tools { display: block; padding: 10px 14px; border-color: #303a32; background: #101611; }
body.mobile-layout .kline-search { display: flex; gap: 6px; margin-bottom: 8px; }
body.mobile-layout .kline-search .field { display: grid; grid-template-columns: 42px minmax(0, 1fr); flex: 1; }
body.mobile-layout .kline-search input { border-color: #354037; background: #080d09; color: #edf2ee; }
body.mobile-layout .kline-tools .field { display: grid; grid-template-columns: 42px minmax(0, 1fr); margin-bottom: 8px; }
body.mobile-layout .kline-tools select { width: 100%; border-color: #354037; background: #080d09; color: #edf2ee; }
body.mobile-layout .kline-summary { gap: 8px 14px; padding: 10px 14px 0; color: #89938b; }
body.mobile-layout .kline-summary b { color: #edf2ee; }
body.mobile-layout .kline-legend { gap: 8px 12px; padding: 7px 14px 0; color: #89938b; }
body.mobile-layout .kline-hover { flex: 1 1 100%; }
body.mobile-layout .kline-chart-wrap { padding: 8px 10px 12px; }
body.mobile-layout .stock-kline-wrap { min-height: 392px; height: 392px; padding: 0 10px 12px; }
body.mobile-layout .stock-kline-toolbar { align-items: stretch; flex-direction: column; padding: 10px 14px 0; }
body.mobile-layout .stock-kline-periods, body.mobile-layout .stock-kline-indicators { margin-left: 0; }
body.mobile-layout .stock-kline-toolbar .kline-period, body.mobile-layout .kline-indicator { flex: 1 1 0; min-width: 0; padding: 0 7px; }
body.mobile-layout #stockKlineChart { min-height: 360px; }

body[data-view-mode="desktop"] { min-width: 1040px; }

@media (max-width: 760px) {
  .login-page { padding: 16px; }
  .login-panel { padding: 26px 22px; }
  .valuation-shell { width: min(100% - 20px, 2200px); padding-top: 16px; }
  .valuation-header, .control-bar { align-items: stretch; flex-direction: column; gap: 12px; }
  .workspace-nav { position: static; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px; margin-top: 12px; padding: 3px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
  .workspace-tab { min-height: 44px; border: 0; border-radius: 4px; padding: 0 6px; font-size: 13px; }
  .workspace-tab.active { border: 0; background: var(--surface-strong); color: #fff; }
  .workspace-tab .workspace-free { color: #c7ff38; border-color: #4a6747; background: transparent; }
  .workspace-tab .workspace-lock { color: #89938b; border-color: #39443f; background: transparent; }
  .media-news-browser { display: block; }
  .media-source-panel { margin-bottom: 10px; padding: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .media-source-panel.collapsed { width: auto; }
  .media-source-list { display: flex; overflow-x: auto; padding: 7px 0; }
  .media-source-item { width: auto; min-width: max-content; }
  .collab-form { grid-template-columns: 1fr; }
  .collab-form .form-actions { grid-column: auto; }
  .administrator-page { width: min(100% - 20px, 680px); padding-top: 14px; }
  .research-view[hidden] { display: none !important; }
  .valuation-header h1 { font-size: 25px; }
  .section-heading > span { max-width: 42%; white-space: normal; text-align: right; }
  .account-actions { justify-content: space-between; }
  .account-summary { align-items: flex-start; }
  .research-hero { align-items: stretch; flex-direction: column; }
  .research-kpis { grid-template-columns: repeat(2, 1fr); }
  .review-primary-grid, .review-secondary-grid, .review-market-grid { grid-template-columns: 1fr; }
  .review-history-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .review-trend { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .research-grid { grid-template-columns: 1fr; }
  .stock-overview-grid { grid-template-columns: 1fr; }
  .stock-context-grid { grid-template-columns: 1fr; }
  .stock-overview-card { margin-top: 8px; }
  .stock-metrics { grid-template-columns: repeat(2, 1fr); }
  .stock-auction-metrics { grid-template-columns: repeat(2, 1fr); }
  .stock-kline-toolbar { align-items: stretch; flex-direction: column; }
  .stock-kline-indicators { margin-left: 0; }
  .research-company-tools { grid-template-columns: 1fr; }
  .company-workspace-grid { grid-template-columns: 1fr; }
  .company-analysis-form .field { grid-template-columns: 54px minmax(0, 1fr); }
  .company-analysis-actions { padding-left: 62px; }
  .research-candidate-row { grid-template-columns: minmax(120px, .45fr) minmax(180px, 1fr); }
  .candidate-actions { grid-column: 1 / -1; }
  .company-history-list { grid-template-columns: 1fr; }
  .company-metrics { grid-template-columns: repeat(3, 1fr); }
  .integration-grid { grid-template-columns: 1fr; }
  .kline-tools { align-items: stretch; flex-direction: column; }
  .kline-search { width: 100%; }
  .kline-search .field { grid-template-columns: 42px minmax(0, 1fr); flex: 1; }
  .kline-select-field { display: none; }
  .field { display: grid; grid-template-columns: 42px minmax(0, 1fr); }
  .classification-box select { width: 100%; min-width: 0; }
  .stat-strip { grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 12px; }
  .stat-strip p { grid-column: 1 / -1; }
  .table-footer { align-items: stretch; flex-direction: column; }
  .pagination { justify-content: space-between; }
  body:not(.mobile-layout) .valuation-shell { min-width: 1000px; }
  body:not(.mobile-layout) .stock-page { min-width: 0; }
  .admin-dialog { width: 100vw; max-height: 100vh; height: 100vh; border: 0; border-radius: 0; }
  .admin-shell { min-height: 100vh; padding: 14px; }
  .admin-header { top: -14px; margin: -14px -14px 14px; padding: 13px 14px; }
  .admin-stats { grid-template-columns: repeat(2, 1fr); }
  .collector-table-wrap { display: none; }
  .admin-collector-cards { display: grid; gap: 8px; padding: 10px; }
  .admin-collector-card .collector-run-button { min-height: 44px; }
  .member-form { grid-template-columns: 1fr; }
  .form-actions .button { flex: 1; }
  .members-table-wrap { display: none; }
  .admin-member-cards { display: grid; gap: 8px; padding: 10px; }
  .admin-member-card { padding: 13px; border: 1px solid var(--line); border-radius: 5px; }
  .admin-member-card header { display: flex; justify-content: space-between; gap: 12px; }
  .admin-member-card h4 { margin: 0; }
  .admin-member-card header p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
  .admin-member-card dl { display: grid; gap: 8px; margin: 12px 0; }
  .admin-member-card dl div { display: flex; justify-content: space-between; gap: 12px; }
  .admin-member-card dt { color: var(--muted); font-size: 12px; }
  .admin-member-card dd { margin: 0; font-size: 12px; text-align: right; }
  .member-card-actions .row-actions button { flex: 1; }
  .admin-unlock { margin: 36px auto; }
}

@media (max-width: 390px) {
  body.mobile-layout .valuation-shell { width: 100%; }
  body.mobile-layout .mobile-stock-row {
    grid-template-columns: 30px minmax(0, 1fr) minmax(108px, .8fr);
    gap: 6px;
    padding-right: 8px;
    padding-left: 8px;
  }
}

@media (max-width: 340px) {
  body.mobile-layout .mobile-stock-row { grid-template-columns: 26px minmax(0, 1fr) minmax(98px, .8fr); }
  body.mobile-layout .mobile-stock-main h3 { font-size: 16px; }
  body.mobile-layout .mobile-stock-value strong { font-size: 16px; }
  body.mobile-layout .mobile-stock-main p, body.mobile-layout .mobile-stock-value p { font-size: 10px; }
}

.content-tools { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 18px; border-bottom: 1px solid var(--line); background: #fbfcfb; }
.content-tools .field:first-child { flex: 1 1 280px; }
.content-tools .field input, .content-tools .field select { min-height: 40px; }
.content-list { padding: 4px 18px 10px; }
.content-post-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; min-height: 126px; padding: 17px 0; border-bottom: 1px solid #e7ece9; cursor: pointer; }
.content-post-row:last-child { border-bottom: 0; }
.content-post-row:hover { background: #f7faf8; }
.content-post-row:focus-visible { background: #f7faf8; outline: 3px solid var(--focus); outline-offset: -3px; }
.content-post-main { min-width: 0; }
.content-post-meta { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; color: var(--muted); font-size: 12px; }
.content-post-main h4 { margin: 9px 0 6px; font-size: 17px; }
.content-post-main > p { display: -webkit-box; max-width: 860px; margin: 0; overflow: hidden; color: var(--muted); font-size: 13px; line-height: 1.7; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.content-post-tags, .content-detail-tags { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.content-post-tags span, .content-detail-tags > span:not(.announcement-tag) { display: inline-flex; min-height: 24px; align-items: center; padding: 0 7px; border: 1px solid #d5e2da; border-radius: 3px; color: #39745b; font-size: 11px; }
.content-post-side { display: grid; gap: 8px; min-width: 74px; color: var(--accent); font-size: 12px; text-align: right; }
.content-post-side span:first-child { color: var(--muted); }
.content-pin { color: #a06a16; font-weight: 700; }
.content-pagination { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 12px 18px 16px; }
.content-pagination span { min-width: 90px; color: var(--muted); font-size: 12px; text-align: center; }
.content-note { margin: 0; padding: 12px 18px 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; line-height: 1.6; }
.content-detail-dialog { width: min(860px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); color: var(--text); }
.content-detail-dialog::backdrop { background: rgba(8, 12, 10, .72); }
.content-detail-shell { max-height: calc(100vh - 32px); overflow: auto; }
.content-detail-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 22px 24px 16px; border-bottom: 1px solid var(--line); }
.content-detail-header h2 { margin: 0 0 7px; font-size: 22px; }
.content-detail-header p:last-child { margin: 0; color: var(--muted); font-size: 12px; }
.content-detail-tags { padding: 0 24px; }
.content-detail-body { padding: 18px 24px 10px; white-space: pre-wrap; word-break: break-word; font-size: 14px; line-height: 1.85; }
.content-detail-media { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 12px 24px 24px; }
.content-detail-media:empty { display: none; }
.content-detail-media a { display: block; overflow: hidden; border: 1px solid var(--line); background: var(--surface-soft); }
.content-detail-media img { display: block; width: 100%; max-height: 520px; object-fit: contain; }
.admin-content-section small { color: var(--muted); font-weight: 400; }
.content-admin-form { display: grid; gap: 12px; padding: 16px; border-bottom: 1px solid var(--line); background: #fbfcfb; }
.content-admin-form > label, .content-form-grid label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
.content-admin-form input, .content-admin-form textarea, .content-admin-form select { min-width: 0; border: 1px solid var(--line); border-radius: 4px; padding: 10px 11px; background: #fff; color: var(--text); font: inherit; }
.content-admin-form textarea { resize: vertical; line-height: 1.6; }
.content-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.content-form-grid small { font-weight: 400; }
.content-checkbox { display: flex !important; grid-template-columns: none !important; align-items: center; gap: 8px !important; color: var(--text) !important; font-weight: 600 !important; }
.content-checkbox input { width: 16px; height: 16px; }
.content-form-message { min-height: 20px; margin: 0; color: var(--positive); font-size: 12px; }
.content-form-message.error { color: var(--negative); }
.content-admin-table-wrap .admin-table { min-width: 860px; }
.admin-content-cards { display: none; }
.content-status { font-size: 12px; }

.blogger-filter { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; }
.blogger-filter select { min-height: 36px; border: 1px solid var(--line); border-radius: 4px; padding: 0 9px; background: var(--surface); color: var(--text); }
.blogger-browser { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 12px; margin-top: 12px; align-items: start; }
.blogger-sidebar, .blogger-section { min-width: 0; overflow: hidden; }
.blogger-source-list { padding: 4px 10px 12px; }
.blogger-platform-group + .blogger-platform-group { margin-top: 12px; }
.blogger-platform-group h4 { display: flex; justify-content: space-between; margin: 7px 7px 4px; color: var(--muted); font-size: 12px; }
.blogger-platform-group h4 span { font-variant-numeric: tabular-nums; }
.blogger-source-item { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 54px; border: 1px solid transparent; border-radius: 4px; padding: 7px 9px; background: transparent; color: var(--text); text-align: left; }
.blogger-source-item:hover { background: var(--surface-soft); }
.blogger-source-item.active { border-color: #a8c9b8; background: #e9f6ef; color: var(--accent); }
.blogger-source-item span { min-width: 0; }
.blogger-source-item strong, .blogger-source-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.blogger-source-item strong { font-size: 13px; }
.blogger-source-item small { margin-top: 2px; color: var(--muted); font-size: 11px; }
.blogger-source-item b { color: var(--muted); font-size: 20px; font-weight: 400; }
.blogger-detail-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 100px; padding: 18px; border-bottom: 1px solid var(--line); background: #fbfcfb; }
.blogger-detail-header h3 { margin: 0 0 5px; font-size: 21px; }
.blogger-check-time { margin: 0; color: var(--muted); font-size: 12px; }
.blogger-fetch-status { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.blogger-fetch-status.error { color: var(--negative); }
.blogger-list { padding: 4px 18px 10px; }
.blogger-post-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 86px; padding: 14px 0; border-bottom: 1px solid #e7ece9; }
.blogger-post-row:last-child { border-bottom: 0; }
.blogger-post-main { min-width: 0; }
.blogger-post-meta { display: flex; flex-wrap: wrap; gap: 9px; color: var(--muted); font-size: 12px; }
.blogger-post-main h4 { margin: 7px 0 0; overflow: hidden; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; }
.blogger-open { min-height: 36px; flex-shrink: 0; }
.blogger-empty-note { margin: 12px 0 0; color: var(--muted); font-size: 12px; }
.blogger-admin-form { display: grid; grid-template-columns: 140px 180px minmax(260px, 1fr) 180px auto; align-items: end; gap: 10px; padding: 16px; border-bottom: 1px solid var(--line); background: #fbfcfb; }
.blogger-admin-form label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
.blogger-admin-form input, .blogger-admin-form select { min-width: 0; border: 1px solid var(--line); border-radius: 4px; padding: 0 10px; background: #fff; color: var(--text); }
.blogger-admin-form .content-checkbox { align-self: center; }
.blogger-admin-form .form-actions { grid-column: 1 / -1; }
.blogger-admin-table-wrap .admin-table { min-width: 980px; }
.blogger-admin-table-wrap td small { display: block; max-width: 300px; overflow: hidden; color: var(--muted); text-overflow: ellipsis; }
.blogger-admin-cards { display: none; }
.blogger-admin-card { padding: 12px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); }
.blogger-admin-card header { display: flex; justify-content: space-between; gap: 10px; }
.blogger-admin-card h4 { margin: 0; }
.blogger-admin-card p { margin: 7px 0; color: var(--muted); font-size: 12px; word-break: break-word; }

@media (max-width: 760px) {
  .content-tools { display: block; padding: 10px 14px; }
  .content-tools .field { display: grid; grid-template-columns: 42px minmax(0, 1fr); margin-bottom: 8px; }
  .content-tools .field input, .content-tools .field select { width: 100%; border-color: #354037; background: #080d09; color: #edf2ee; }
  .content-tools .button { width: 100%; }
  .content-list { padding: 4px 14px 8px; }
  .content-post-row { display: block; min-height: 0; padding: 14px 0; }
  .content-post-main h4 { font-size: 16px; }
  .content-post-main > p { -webkit-line-clamp: 3; }
  .content-post-side { display: flex; justify-content: space-between; margin-top: 11px; text-align: left; }
  .content-pagination { justify-content: space-between; padding: 10px 14px 14px; }
  .content-note { padding: 11px 14px 14px; }
  .content-detail-dialog { width: 100vw; max-width: 100vw; height: 100vh; max-height: 100vh; border: 0; border-radius: 0; }
  .content-detail-shell { max-height: 100vh; }
  .content-detail-header { padding: 15px 14px 13px; }
  .content-detail-header h2 { font-size: 19px; }
  .content-detail-tags { padding: 0 14px; }
  .content-detail-body { padding: 15px 14px 8px; font-size: 14px; }
  .content-detail-media { grid-template-columns: 1fr; padding: 10px 14px 20px; }
  .content-admin-form { padding: 12px; }
  .content-form-grid { grid-template-columns: 1fr; }
  .content-admin-table-wrap { display: none; }
  .admin-content-cards { display: grid; gap: 8px; padding: 10px; }
  .content-admin-card { padding: 12px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); }
  .content-admin-card header { display: flex; justify-content: space-between; gap: 10px; }
  .content-admin-card h4 { margin: 0; font-size: 15px; }
  .content-admin-card p { margin: 7px 0; color: var(--muted); font-size: 12px; }
  .content-admin-card .row-actions { flex-wrap: wrap; }
  .blogger-browser { display: block; margin-top: 8px; }
  .blogger-sidebar { margin-bottom: 8px; }
  .blogger-source-list { display: flex; gap: 6px; overflow-x: auto; padding: 7px 10px 10px; }
  .blogger-platform-group { display: flex; gap: 5px; align-items: center; }
  .blogger-platform-group + .blogger-platform-group { margin-top: 0; }
  .blogger-platform-group h4 { display: none; }
  .blogger-source-item { width: auto; min-width: 120px; min-height: 48px; border-color: var(--line); background: var(--surface); }
  .blogger-detail-header { align-items: flex-start; padding: 14px; }
  .blogger-list { padding: 4px 14px 8px; }
  .blogger-post-row { display: block; min-height: 0; padding: 14px 0; }
  .blogger-post-main h4 { font-size: 15px; white-space: normal; }
  .blogger-open { display: inline-flex; margin-top: 10px; }
  .blogger-admin-form { display: grid; grid-template-columns: 1fr; padding: 12px; }
  .blogger-admin-form .form-actions { grid-column: auto; }
  .blogger-admin-table-wrap { display: none; }
  .blogger-admin-cards { display: grid; gap: 8px; padding: 10px; }
}

body.mobile-layout .content-tools { border-color: #303a32; background: #101611; }
body.mobile-layout .content-post-row { border-color: #29322b; }
body.mobile-layout .content-post-row:hover, body.mobile-layout .content-post-row:focus-visible { background: transparent; }
body.mobile-layout .content-post-main > p { color: #89938b; }
body.mobile-layout .content-post-tags span, body.mobile-layout .content-detail-tags > span:not(.announcement-tag) { border-color: #3a563d; color: #b9d7bf; }
body.mobile-layout .content-post-side { color: #c7ff38; }
body.mobile-layout .content-note { border-color: #303a32; color: #7e8980; }
body.mobile-layout .content-detail-dialog { background: #0f150f; color: #edf2ee; }
body.mobile-layout .content-detail-header { border-color: #303a32; }
body.mobile-layout .content-detail-header p:last-child { color: #89938b; }
body.mobile-layout .content-detail-body { color: #edf2ee; }
body.mobile-layout .content-detail-media a { border-color: #303a32; background: #101611; }
body.mobile-layout .content-admin-form { border-color: #303a32; background: #101611; }
body.mobile-layout .content-admin-form input, body.mobile-layout .content-admin-form textarea, body.mobile-layout .content-admin-form select { border-color: #354037; background: #080d09; color: #edf2ee; }
body.mobile-layout .content-admin-card { border-color: #303a32; background: #101611; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
