:root {
  --bg: #F3F3F3;
  --card-bg: #FCFCFC;
  --text: #141414;
  --text-secondary: #3d3d3d;
  --muted: #6b6b6b;
  --border: #e0e0e0;
  --green: #2a9d6a;
  --red: #dc4a4a;
  --blue: #3b82c4;
  --nav-bg: #F3F3F3;
  --input-bg: #FCFCFC;
  --font: 'IBM Plex Sans', 'Noto Sans TC', sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, monospace;
  --rule: #e0e0e0;
}
[data-theme="dark"] {
  --bg: #141414;
  --card-bg: #181818;
  --text: #F0F0F0;
  --text-secondary: #c4c4c4;
  --muted: #8a8a8a;
  --border: #2a2a2a;
  --nav-bg: #141414;
  --input-bg: #1c1c1c;
  --green: #34d399;
  --red: #f87171;
  --blue: #6eb5ff;
  --rule: #2a2a2a;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  padding: 20px;
  min-height: 100vh;
}
.container { max-width: 1200px; margin: 0 auto; }
.navbar {
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; padding: 10px 14px; border: 1px solid var(--border);
  background: var(--nav-bg); margin-bottom: 20px; flex-wrap: wrap;
}
.logo { text-decoration: none; color: inherit; font-weight: 700; }
.nav-menu { display: flex; gap: 12px; flex-wrap: wrap; }
.nav-link { text-decoration: none; color: var(--text-secondary); font-size: 14px; }
.nav-link.active { color: var(--text); font-weight: 600; }
#themeToggle, .hamburger {
  border: 1px solid var(--border); background: var(--input-bg); color: var(--text);
  padding: 6px 10px; cursor: pointer;
}
.hamburger { display: none; flex-direction: column; gap: 4px; }
.hamburger span { width: 16px; height: 2px; background: var(--text); display: block; }
.page-masthead { margin-bottom: 18px; }
.masthead-kicker { color: var(--muted); font-size: 12px; margin-bottom: 6px; }
.page-main-title { font-size: 28px; margin-bottom: 6px; }
.page-subtitle { color: var(--text-secondary); font-size: 14px; max-width: 44rem; }
.card { background: var(--card-bg); border: 1px solid var(--border); padding: 16px; }
.screener-form {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.screener-form label {
  display: flex; flex-direction: column; gap: 4px;
  font-size: 12px; color: var(--muted);
}
.screener-form input, .screener-form select, .screener-form button {
  font: inherit; padding: 8px 10px; border: 1px solid var(--border);
  background: var(--input-bg); color: var(--text);
}
.screener-form button {
  align-self: end; background: var(--text); color: var(--bg); cursor: pointer; font-weight: 600;
}
.screener-status { font-size: 13px; color: var(--muted); margin-bottom: 10px; }
.screener-table-wrap { overflow-x: auto; }
.screener-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.screener-table th, .screener-table td {
  border-bottom: 1px solid var(--rule); padding: 10px 8px; text-align: left; vertical-align: top;
}
.screener-table .num { text-align: right; font-family: var(--font-mono); }
.screener-table a { color: inherit; text-decoration: none; }
.screener-table .sym { font-size: 11px; color: var(--blue); font-family: var(--font-mono); margin-top: 2px; }
footer { margin-top: 28px; color: var(--muted); font-size: 12px; }
@media (max-width: 720px) {
  .hamburger { display: inline-flex; }
  .nav-menu { display: none; width: 100%; flex-direction: column; }
  .nav-menu.open { display: flex; }
}
