@font-face { font-family: Inter; font-style: normal; font-weight: 400 800; font-display: swap; src: url('/dictionary-static/fonts/inter-latin.woff2') format('woff2'); }
@font-face { font-family: Inter; font-style: normal; font-weight: 400 800; font-display: swap; src: url('/dictionary-static/fonts/inter-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: Inter; font-style: normal; font-weight: 400 800; font-display: swap; src: url('/dictionary-static/fonts/inter-vietnamese.woff2') format('woff2'); unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB; }

/* Fixed light theme, independent of OS preference and Dictionary's saved theme. */
:root {
  color-scheme: light; font-family: Inter, sans-serif;
  --bg: #fff; --bg-2: #f5f6ff; --panel: #fff; --panel-2: #f5f6ff;
  --text: #1c2033; --muted: #4a5068; --line: #dcdfff;
  --accent: #b91c1c; --accent-2: #166534; --danger: #b91c1c;
  --navy-50: #f5f6ff; --navy-100: #ebedff; --navy-600: #4c4eff; --navy-900: #16164f; --navy-950: #0d1257;
  --hdr: 69px; --surface: #fff; --border: #e3e5f3; --border-strong: #c9cde6;
  --ink: #0d1257; --row-hover: #f5f6ff;
  --shadow: 0 1px 2px rgba(13,18,87,.06), 0 8px 24px -12px rgba(13,18,87,.18);
}
body { background: var(--bg); }
h1, .kpi-value, .section-header h2, .dist-value, .bucket-count, .stat-value, .cell-strong, .motion-round-group-title, .round-speak-label { color: var(--ink); }
.hero h1 { font-size: clamp(32px, 3vw, 40px); font-weight: 700; line-height: 1.2; text-wrap: balance; }
.hero .product-title-accent { color: var(--accent); }
.hero { grid-template-columns: 1fr; }
.hero-card { border-inline-start: 3px solid var(--accent); }
.app-shell .tournament-tools h2 { font-size: 24px; }
.app-shell .tournament-tools p { max-width: 65ch; margin-bottom: 16px; }
.app-shell .tournament-tools .recap-cta { gap: 12px; padding: 12px 24px; border-radius: 12px; background: var(--navy-950); color: white; text-decoration: none; }
.app-shell .tournament-tools .recap-cta:hover { background: var(--navy-900); color: white; }
.app-shell .tournament-tools nav { margin-top: 16px; }
.app-shell .tournament-tools { font-size: 16px; }
.app-shell .tournament-tools svg, .results-recap svg { flex-shrink: 0; }
.app-shell .tournament-tools .url-error { margin-top: 12px; color: var(--danger); }
.results-recap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; margin-bottom: 20px; padding-block: 12px; border-bottom: 1px solid var(--line); }
.results-recap p { margin: 0; color: var(--muted); }
.results-recap a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--ink); font-weight: 600; text-underline-offset: 4px; }
.results-recap a:hover { color: var(--accent); }
.results-recap a:focus-visible { outline: 2px solid var(--navy-600); outline-offset: 4px; border-radius: 4px; }
@media (max-width: 600px) { .app-shell .tournament-tools .recap-cta { display: flex; justify-content: space-between; } }
.section-header h2 { font-size: clamp(28px, 2.4vw, 36px); font-weight: 700; line-height: 1.25; text-wrap: balance; }
.section-heading { font-weight: 700; }
.hero-copy, .lede { max-width: 70ch; }
.hero .lede { max-width: none; }
.panel-card { border-color: var(--line); border-radius: 16px; box-shadow: 0 2px 8px rgba(13,18,87,.06); }
.app-shell, .panel-card, .header-text, .motion-card, .motion-round-group, .motion-round-motions { min-width: 0; }
.motions-grid, .motion-round-motions { grid-template-columns: minmax(0, 1fr); }
.motion-header { flex-wrap: wrap; }
.motion-text { color: var(--text); min-width: 0; overflow-wrap: anywhere; }
.motion-round, .balance-badge { max-width: 100%; overflow-wrap: anywhere; }
.collapse-toggle { flex: 0 0 44px; width: 44px; height: 44px; border-radius: 12px; }
.url-error { margin: 10px 0 0; color: var(--danger); font-size: .9rem; line-height: 1.5; }
input[aria-invalid=true] { border-color: var(--danger); }
.app-shell ::selection { background: var(--navy-100); color: var(--ink); }
.app-shell input, .app-shell textarea { caret-color: var(--ink); }
.cell-num, .kpi-value, .dist-value { font-variant-numeric: tabular-nums; }
.form-field-main > label { margin-bottom: 8px; }
.url-hint { margin: 10px 0 0; color: var(--muted); font-size: .85rem; line-height: 1.5; }
.hero-card, .flow-placeholder { background: var(--panel-2); }
.data-source-toggle { background: var(--panel-2); border-color: var(--line); box-shadow: none; }
.toggle-option span { color: var(--muted); }
.toggle-option:has(input:checked) { background: var(--navy-950); box-shadow: none; }
.toggle-option:has(input:checked) span { color: white; text-shadow: none; }
.toggle-option:hover:not(:has(input:checked)) { background: var(--navy-100); }
.toggle-option:hover:not(:has(input:checked)) span { color: var(--ink); }
.toggle-option:focus-within { outline: 2px solid var(--navy-600); outline-offset: 2px; }
input[type=url], select, textarea { background-color: white; color: var(--text); }
input[type=url]::placeholder, input[type=search]::placeholder { color: var(--muted); }
input[type=url]:focus, select:focus, textarea:focus { border-color: var(--navy-600); box-shadow: 0 0 0 3px #dcdfff; }
button { background: var(--navy-950); box-shadow: none; }
button:hover:not(:disabled) { background: var(--navy-900); box-shadow: none; transform: none; }
button:focus-visible, .btn-secondary:focus-visible { outline: 2px solid var(--navy-600); outline-offset: 3px; box-shadow: none; }
.btn-secondary { color: var(--ink); background: white; }
.btn-secondary:hover:not(:disabled) { background: var(--panel-2); border-color: var(--border-strong); }
.collapse-toggle { background: var(--panel-2); color: var(--ink); }
.collapse-toggle:hover { background: var(--navy-100) !important; color: var(--ink) !important; }
.status { color: var(--text); }
.status.error { background: #fef2f2; border-color: #fecaca; color: #b91c1c; }
.status.warning { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.flow-step-num { color: #b91c1c; background: #fef2f2; border-color: #fecaca; }
.motion-round-group, .outround-stage, .motion-card, .dist-stat-card, .stat-card, .workload-insight-card, .round-speak-row, .speaks-chart-container { background: white; }
.motion-round, .data-table th, .outround-stage-header, .outround-team, .institution-unmatched, .round-speak-badge, .speaks-overall-badge, .badge-subtle { background: var(--panel-2); color: var(--text); }
.outround-summary > span { background: var(--panel-2); }
.outround-guide span, .outround-stage-step { color: #166534; }
.outround-team-advanced { background: #f0fdf4; border-color: #bbf7d0; }
.outround-team-advanced .outround-status { color: #166534; }
.outround-team-eliminated { background: #fef2f2; border-color: #fecaca; }
.outround-team-eliminated .outround-status { color: #b91c1c; }
.outround-team-champion { background: #fffbeb; border-color: #fde68a; }
.outround-team-champion .outround-status { color: #92400e; }
.outround-team-runner-up, .outround-team-finalist { background: var(--panel-2); border-color: var(--line); }
.balance-badge.balanced, .badge-outround, .scale-badge { background: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.balance-badge.biased { background: #fef2f2; color: #b91c1c; border-color: #fecaca; }
.balance-badge.outround, .balance-badge.inconclusive, .motion-no-data-note { background: var(--panel-2); color: var(--muted); border-color: var(--border-strong); }
.stat-bars, .bucket-bar-wrapper { background: var(--navy-100); }
.bucket-bar-fill { background: var(--navy-950); }
.seg-og, .seg-gov { background: #1d4ed8; }
.seg-oo { background: #15803d; }
.seg-cg, .seg-opp { background: #c2410c; }
.seg-co { background: #a21caf; }
.data-table tbody tr:hover { background: var(--panel-2); }
.cell-highlight { color: #1d4ed8; }
.badge-subtle { border-color: var(--line); }
.insight-success { background: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.insight-success .insight-icon { color: #166534; }
.insight-warning { background: #fffbeb; color: #92400e; border-color: #fde68a; }
.insight-warning .insight-icon { color: #92400e; }
.insight-info { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }
.insight-info .insight-icon { color: #1d4ed8; }
#institutionDataNotice[data-status=estimated] { color: #92400e; }
#institutionDataNotice[data-status=unavailable] { color: #b91c1c; }
.speaks-chart-header { border-bottom-color: var(--line); }
.chart-point-group:hover circle { fill: var(--navy-950); }
#toast { background: white; color: var(--text); box-shadow: var(--shadow); }

/* Neutralize the analytics button defaults before Dictionary's header styles. */
.hdr button { width: auto; height: auto; min-height: 0; line-height: inherit; justify-content: normal; box-shadow: none; }
.hdr button:hover:not(:disabled), .hdr button:active:not(:disabled), .hdr button:focus-visible { box-shadow: none; transform: none; }
.hdr .nl:hover:not(:disabled) { background: var(--h-hover); color: var(--h-fg); }
.hdr .btn:hover:not(:disabled) { background: var(--h-hover); border-color: var(--h-fg); }
.hdr :focus-visible { outline: 2px solid var(--h-focus); outline-offset: 2px; }
[hidden] { display: none !important; }
@media (max-width: 1000px) {
  .institution-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .institution-unmatched-toggle { grid-column: 1 / -1; white-space: normal; }
}
@media (max-width: 600px) {
  .hero h1 { overflow-wrap: anywhere; }
  .motion-header { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: start; }
  .motion-text { width: 100%; }
  .motion-round-group-header, .dist-header, .stage-card-header { flex-wrap: wrap; }
  .section-header { align-items: flex-start; }
  .app-shell .collapse-toggle { margin-top: 0; }
  .institution-controls { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
