/* Hallmark · Seoul Metro · Midnight and light */
.topbar-actions { position: relative; }
#theme-toggle {
  position: absolute; inset-inline-end: calc(100% + 8px); top: 50%; transform: translateY(-50%);
  display: flex; border: 1px solid var(--line); border-radius: var(--control-radius);
  background: var(--surface); color: var(--text);
}
#theme-toggle button {
  min-width: 44px; min-height: 44px; padding: 0 5px; border: 0; border-radius: 5px;
  background: transparent; color: inherit; font-size: 12px; font-weight: 600; cursor: pointer;
  touch-action: manipulation;
}
#theme-toggle button[aria-pressed=true] { background: var(--theme-active); color: var(--theme-active-ink); }
#theme-toggle button:focus-visible { outline: 2px solid var(--control-accent); outline-offset: 1px; z-index: 1; }
:root { --theme-active: #23578f; --theme-active-ink: #fff; }
:root[data-mode=light] { --theme-active: #174c9f; }

:root[data-mode=light] {
  color-scheme:light;
  --bg:#f3f5f8;
  --surface:#fff;
  --surface-raised:#f8fafc;
  --sidebar:#fff;
  --surface-hover:#eaf1f9;
  --line:#cbd7e5;
  --line-soft:#e0e7ef;
  --field-edge:#7487a0;
  --text:#172a42;
  --body-text:#293d56;
  --muted:#4f647e;
  --subtle:var(--muted);
  --disabled:#61768d;
  --text-primary:var(--text);
  --text-secondary:var(--muted);
  --border:var(--line);
  --brand:#174c9f;
  --brand-hover:#123b7d;
  --on-brand:#fff;
  --blue:var(--brand);
  --cyan:#1b6382;
  --mint:#215b4b;
  --red:#922c36;
  --violet:#5c4682;
  --amber:#765013;
  --positive-bg:#e7f3ee;
  --negative-bg:#faecee;
  --neutral-bg:#fcf1df;
  --response-bg:#9a352c;
  --selected:#e4edfb;
  --selected-row:#e9f2ff;
  --selected-border:var(--brand);
  --ai-review-color:var(--amber);
  --light-scrim:rgb(17 34 56 / .45);
}

[data-mode=light] body {background:var(--bg);color:var(--body-text)}
[data-mode=light] .sidebar {background:var(--sidebar);border-color:var(--line)}
[data-mode=light] .topbar {background:var(--bg);border-color:var(--line)}
[data-mode=light] :is(.workspace-label,.system-health,.system-health span,.breadcrumb,.breadcrumb-divider,.profile-button small,.hero-copy p,.live-status small,.metric-title,.metric-change,.metric-change span,.metric-value small,.page-footer,.dashboard-data-note,.dashboard-issue-row small,.section-toolbar #section-caption,.section-toolbar small) {color:var(--muted)}
[data-mode=light] :is(.breadcrumb strong,.nav-item,.profile-button,.hero h1,.metric-value,.dashboard-summary-head h2,.dashboard-issue-row strong,.section-toolbar #section-label) {color:var(--text)}
[data-mode=light] .nav-item:hover,[data-mode=light] .nav-item.active {color:var(--brand);background:var(--selected)}
[data-mode=light] .nav-item.active {border-color:var(--brand)}
[data-mode=light] :is(.nav-item .nav-count,.profile-button .avatar,.global-search kbd,.workspace-label span) {color:var(--brand);background:var(--surface-hover);border-color:var(--line)}
[data-mode=light] :is(.icon-button,.quiet-button,.text-button,.copy-small) {color:var(--brand)}
[data-mode=light] :is(.icon-button,.profile-button):hover {background-color:var(--surface-hover)}
[data-mode=light] :is(.metric-card,.metrics-grid,.dashboard-issue-row,.detail-panel,.overview-card,.draft-dialog,.notification-popover) {background-color:var(--surface);border-color:var(--line);color:var(--body-text)}
[data-mode=light] .dashboard-issue-row:hover {background-color:var(--surface-hover)}
[data-mode=light] :is(.global-search,.news-panel .feed-search,.news-panel .feed-mode-switch,.news-panel .bookmark-toggle,.news-panel .article-tabs,.news-panel .advanced-filter-menu,.filter-options,.library-tools input,.library-tools select,.library-card select,.analytics-period select,.draft-dialog textarea) {background:var(--surface);color:var(--text);border-color:var(--field-edge)}
[data-mode=light] :is(.global-search input,.news-panel .feed-search input,.filter-trigger,.news-panel .advanced-filters>summary) {color:var(--text)}
[data-mode=light] :is(.global-search input,.news-panel .feed-search input,.draft-dialog textarea)::placeholder {color:var(--muted);opacity:1}
[data-mode=light] .news-panel :is(.filter-trigger,.advanced-filters>summary) {background:var(--surface);border-color:var(--field-edge)}
[data-mode=light] .news-panel :is(.filter-trigger,.advanced-filters>summary):hover {background:var(--surface-hover)}
[data-mode=light] :is(.filter-options [role=option],.advanced-filter-heading span,.feed-meta,#feed-mode-hint,.article-row-meta,.article-title-line time,.coverage-kind) {color:var(--muted)}
[data-mode=light] .filter-options [role=option]:hover,[data-mode=light] .filter-options [role=option][aria-selected=true] {color:var(--brand);background:var(--selected)}
[data-mode=light] .news-panel :is(.feed-mode-switch button,.article-tab) {color:var(--muted)}
[data-mode=light] .news-panel :is(.feed-mode-switch button[aria-pressed=true],.article-tab[aria-selected=true],.bookmark-toggle[aria-pressed=true]) {color:var(--brand);background:var(--selected);border-color:var(--brand)}
[data-mode=light] .news-panel .article-tab:hover:not([aria-selected=true]) {background:var(--surface-hover);color:var(--text)}
[data-mode=light] .news-panel :is(.article-tab .tab-count,.article-tab[data-tab=response] .tab-count) {color:var(--muted);background:var(--surface-hover)}
[data-mode=light] .news-panel .article-tab[aria-selected=true] .tab-count {color:var(--brand);background:var(--surface)}
[data-mode=light] .news-panel .article-card {border-color:var(--line-soft);background:var(--surface)}
[data-mode=light] .news-panel .article-card:hover:not(.selected) {background:var(--surface-hover)}
[data-mode=light] .news-panel .article-card.selected {background:var(--selected-row);box-shadow:inset 2px 0 var(--brand)}
[data-mode=light] .news-panel .article-title-line strong,
[data-mode=light] .news-panel .article-card.selected .article-title-line strong {color:var(--text)}
[data-mode=light] :is(.badge.category,.article-row-meta .badge.category,.badge.unknown,.badge.mixed,.badge.importance) {background:var(--surface-hover);color:var(--muted);border-color:var(--line)}
[data-mode=light] :is(.badge.positive,.article-row-meta .badge.positive) {background:var(--positive-bg);color:var(--mint);border-color:var(--line)}
[data-mode=light] :is(.badge.negative,.article-row-meta .badge.negative) {background:var(--negative-bg);color:var(--red);border-color:var(--line)}
[data-mode=light] :is(.badge.neutral,.article-row-meta .badge.neutral) {background:var(--neutral-bg);color:var(--amber);border-color:var(--line)}
[data-mode=light] :is(.badge.response,.article-row-meta .badge.response) {background:var(--response-bg);color:var(--on-brand);border-color:var(--response-bg)}
[data-mode=light] :is(.badge.ai-review,.draft-note) {background:var(--neutral-bg);color:var(--amber);border-color:var(--line)}
[data-mode=light] :is(.detail-panel .detail-topline strong,.detail-panel .detail-heading h2,.detail-panel .detail-section-heading h3,.overview-card h2,.overview-card h3,.draft-dialog h2,.draft-label,.settings-row strong,.notification-popover h3,.notification-row strong,.library-card strong) {color:var(--text)}
[data-mode=light] :is(.detail-panel .detail-analysis summary,.monitoring-detail .monitoring-input-note,.monitoring-metadata dt,.detail-topline time,.detail-footnote,.overview-card p,.overview-card small,.analytics-heading span,.analytics-empty,.draft-label span,.settings-row small,.notification-popover>p,.notification-row small,.library-card small) {color:var(--muted)}
[data-mode=light] :is(.monitoring-detail .provided-description,.monitoring-metadata dd,.detail-panel .score-card strong,.detail-panel .score-card.category strong,.related-report-row strong,.draft-context,.draft-dialog textarea) {color:var(--text)}
[data-mode=light] :is(.detail-panel .score-card,.analysis-block,.related-report-row button,.detail-tags button,.relevance-evidence,.draft-context,.library-card,.filter-chip) {background:var(--surface-raised);color:var(--body-text);border-color:var(--line)}
[data-mode=light] :is(.related-report-row small,.detail-panel .score-card>span,.detail-facts,.chart-labels,.sentiment-legend) {color:var(--muted)}
[data-mode=light] :is(.primary-button,.primary-button:hover) {background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
[data-mode=light] .primary-button:hover {background:var(--brand-hover)}
[data-mode=light] :is(.secondary-button,.detail-panel .source-button,.detail-panel .detail-bookmark,.detail-panel .copy-small,.table-action,.library-card button,.news-panel .clear-all-filters) {background:var(--surface);border-color:var(--field-edge);color:var(--brand)}
[data-mode=light] :is(.secondary-button,.detail-panel .source-button,.detail-panel .detail-bookmark,.table-action,.news-panel .clear-all-filters):hover {background:var(--surface-hover);color:var(--brand)}
[data-mode=light] :is(.pagination button,.pagination small) {color:var(--muted)}
[data-mode=light] :is(.pagination button.active,.pagination button[aria-current=page]) {background:var(--brand);color:var(--on-brand)}
[data-mode=light] :is(.analytics-table th,.analytics-table td,.overview-card table :is(th,td),.settings-row,.notification-row) {border-color:var(--line);color:var(--body-text)}
[data-mode=light] :is(.analytics-table th,.overview-card table th,.bar-track,.notification-row:hover) {background:var(--surface-raised);color:var(--muted)}
[data-mode=light] .sidebar.open+.sidebar-scrim,[data-mode=light] .draft-dialog::backdrop {background:var(--light-scrim)}
[data-mode=light] .toast {background:var(--text);color:var(--on-brand);border-color:var(--text)}
[data-mode=light] :is(button,a,input,textarea,select,summary,[role=option]):focus-visible {outline-color:var(--brand)}

[data-mode=light] .official-spa {--official-line:var(--line);--official-text:var(--text);--official-muted:var(--muted);--official-accent:var(--brand)}
[data-mode=light] .official-spa :is(.materials,.detail,button,.pagination button) {background:var(--surface);color:var(--text);border-color:var(--line)}
[data-mode=light] .official-spa button:hover:not(:disabled) {background:var(--surface-hover)}
[data-mode=light] .official-spa :is(a,.row-state,.analysis-state,.mobile-back,.evidence summary,.summary h3) {color:var(--brand)}
[data-mode=light] .official-spa :is(.page-meta,.row-review,footer,.attribution) {color:var(--muted)}
[data-mode=light] .official-spa .material-row {background:transparent;border-color:transparent}
[data-mode=light] .official-spa .material-row[aria-pressed=true] {background:var(--selected-row);border-color:var(--line);border-left-color:var(--brand);box-shadow:inset 2px 0 var(--brand)}
[data-mode=light] .official-spa .pagination button.active {background:var(--brand);color:var(--on-brand)}
[data-mode=light] .official-spa .tag {background:var(--surface-hover);color:var(--muted);border-color:var(--line)}
[data-mode=light] .official-spa .tag.positive {background:var(--positive-bg);color:var(--mint)}
[data-mode=light] .official-spa .tag.negative {background:var(--negative-bg);color:var(--red)}
[data-mode=light] .official-spa :is(h3,.publicity-notes h3,li,dd,.review-items,.evidence-content dt) {color:var(--body-text)}
[data-mode=light] .official-spa .summary {background:var(--selected-row);border-color:var(--brand)}
[data-mode=light] .official-spa .summary li {color:var(--text)}
[data-mode=light] .official-spa .notice {background:var(--neutral-bg);color:var(--amber);border-color:var(--amber)}
[data-mode=light] .official-spa .evidence-content blockquote {background:var(--surface-raised);color:var(--muted);border-color:var(--line)}

:root[data-mode=dark][data-theme=midnight] {
  --bg: oklch(13% 0.021 264);
  --sidebar: oklch(12% 0.020 264);
  --surface: oklch(18.5% 0.025 264);
  --surface-raised: oklch(23% 0.027 264);
  --surface-hover: oklch(24.5% 0.030 264);
  --text: oklch(95% 0.016 250);
  --body-text: oklch(88% 0.036 245);
  --muted: oklch(81% 0.020 256);
  --line: oklch(30% 0.035 264);
  --line-soft: oklch(26% 0.028 264);
  --blue: #82a8d8;
  --selected-border: #719acf;
  --selected-row: oklch(25% 0.036 258);
  --selected: oklch(28% 0.041 258);
  --study-action: #2c507c;
  --study-action-hover: #375e8c;
}

:root[data-mode=dark][data-theme] {
  --subtle: var(--muted);
  --text-primary: var(--text);
  --text-secondary: var(--muted);
  --border: var(--line);
  --study-action-ink: #f6f8fc;
}

[data-mode=dark][data-theme] .topbar {background-color: var(--bg);border-color: var(--line)}
[data-mode=dark][data-theme] :is(.sidebar,.page-footer) {border-color: var(--line)}
[data-mode=dark][data-theme] :is(.metric-card,.dashboard-issue-row,.detail-panel,.draft-dialog,.notification-popover) {background: var(--surface);border-color: var(--line)}
[data-mode=dark][data-theme] :is(.metric-card,.dashboard-issue-row):hover {background: var(--surface-hover)}
[data-mode=dark][data-theme] :is(.global-search,.news-panel .feed-search,.news-panel .article-tabs,.news-panel .advanced-filter-menu,.filter-options,.draft-dialog textarea) {background: var(--surface-raised);border-color: var(--line)}
[data-mode=dark][data-theme] .news-panel .article-card {background: var(--bg);border-bottom-color: var(--line-soft)}
[data-mode=dark][data-theme] .news-panel .article-card:hover:not(.selected) {background: var(--surface-hover)}
[data-mode=dark][data-theme] .news-panel .article-card.selected {background: var(--selected-row);border-left-color: var(--selected-border)}
[data-mode=dark][data-theme] :is(.news-panel .article-title-line strong,.news-panel .article-card.selected .article-title-line strong,.detail-panel .detail-heading h2) {color: var(--text)}
[data-mode=dark][data-theme] :is(.news-panel .article-title-line time,.news-panel .article-row-meta,.news-panel .coverage-kind,.feed-meta,#feed-mode-hint,.detail-panel .detail-topline time) {color: var(--muted)}
[data-mode=dark][data-theme] .news-panel :is(.tab-count,.article-tab[data-tab=response] .tab-count) {background: var(--surface-raised);color: var(--body-text)}
[data-mode=dark][data-theme] .news-panel .article-tab[aria-selected=true] .tab-count {background: var(--selected-row);color: var(--text)}
[data-mode=dark][data-theme] :is(.primary-button,.pagination button.active) {background: var(--study-action);border-color: var(--selected-border);color: var(--study-action-ink)}
[data-mode=dark][data-theme] .primary-button:hover {background: var(--study-action-hover)}
[data-mode=dark][data-theme] .primary-button:active {background: var(--study-action)}
[data-mode=dark][data-theme] :is(a,button,input,textarea,select,summary):focus-visible {outline-color: var(--selected-border)}

[data-mode=dark][data-theme] :is(.news-panel .article-row-meta .badge.category,.detail-panel .detail-topline strong) { color: var(--body-text); }

/* Monitoring controls retain their existing layout and interaction states. */
:root[data-mode=dark] {
  --feed-active-ink: var(--selected-border);
  --feed-input-edge: var(--line);
}

:root[data-mode=light] {
  --feed-active-ink: var(--brand);
  --feed-input-edge: var(--field-edge);
}

[data-mode] .news-panel .feed-mode-switch {
  background: var(--surface-raised);
  border-color: transparent;
  border-radius: 9px;
}

[data-mode] .news-panel .feed-mode-switch button[aria-pressed=false] {
  color: var(--muted);
}

[data-mode] .news-panel .feed-mode-switch button[aria-pressed=true] {
  background: var(--theme-active);
  color: var(--theme-active-ink);
  border-color: transparent;
}

[data-mode] .news-panel .bookmark-toggle {
  padding-inline: 8px;
  background: transparent;
  border-color: transparent;
  color: var(--muted);
  font-size: 13px;
}

[data-mode] .news-panel .bookmark-toggle strong {
  color: inherit;
  font-variant-numeric: tabular-nums;
}

[data-mode] .news-panel .bookmark-toggle:hover {
  background: var(--surface-hover);
  color: var(--text);
}

[data-mode] .news-panel .bookmark-toggle[aria-pressed=true] {
  background: var(--selected);
  color: var(--feed-active-ink);
}

:root[data-mode] .news-panel .article-tabs {
  background: transparent;
  border-color: transparent;
}

[data-mode] .news-panel .article-tab {
  background: transparent;
  border-color: transparent;
  border-radius: 999px;
  color: var(--muted);
}

[data-mode] .news-panel .article-tab[aria-selected=true] {
  background: var(--selected);
  border-color: transparent;
  color: var(--feed-active-ink);
}

[data-mode] .news-panel .article-tab:hover:not([aria-selected=true]) {
  background: var(--surface-hover);
  color: var(--text);
}

:root[data-mode] .news-panel .article-tab .tab-count {
  background: transparent;
  color: inherit;
  border-radius: 999px;
  font-variant-numeric: tabular-nums;
}

[data-mode] .news-panel .feed-filters :is(.feed-search,.filter-trigger,.advanced-filters > summary) {
  border-color: var(--feed-input-edge);
}

[data-mode] .news-panel .feed-filters .advanced-filters:is([open],.filter-active) > summary {
  background: var(--selected);
  border-color: var(--control-accent);
  color: var(--feed-active-ink);
}

[data-mode] .news-panel :is(.article-tab,.bookmark-toggle):focus-visible {
  outline-color: var(--control-accent);
}
