:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
    "Segoe UI", sans-serif;
  color: #182230;
  background: var(--surface-soft);
  font-synthesis: none;
  --ink: #182230;
  --muted: #475569;
  --line: #d9e1eb;
  --surface: #ffffff;
  --surface-soft: #f6f8f9;
  --primary: #176b69;
  --primary-dark: #125653;
  --watchlist: #edf1f5;
  --positive: #2f6b53;
  --positive-bg: #edf5f0;
  --neutral: #49586b;
  --neutral-bg: #edf1f5;
  --negative: #9b493c;
  --negative-bg: #faf0ed;
  --navy: #182a3a;
  --on-dark: #ffffff;
  --nav-hover: #304354;
  --focus-on-dark: #a5ded8;
  --control-border: #7b8a9b;
  --warning: #8a5a16;
  --warning-bg: #fff4df;
  --success-border: #739883;
  --error-border: #bc8277;
  --nav-border: rgb(255 255 255 / 32%);
  --nav-badge-bg: rgb(255 255 255 / 12%);
  --nav-divider: rgb(255 255 255 / 10%);
  --shadow-soft: 0 0.5rem 1.5rem rgb(24 42 58 / 8%);
  --shadow: 0 1rem 3rem rgb(24 42 58 / 9%);
}

* {
  box-sizing: border-box;
}

html {
  min-width: 0;
  scroll-behavior: smooth;
}

body {
  min-width: 0;
  margin: 0;
  color: var(--ink);
  background: var(--surface-soft);
  font-size: 1rem;
  line-height: 1.65;
}

/* Low specificity preserves component-specific navigation and control styles. */
:where(a[href]) {
  color: var(--primary);
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

:where(a[href]:visited) {
  color: var(--muted);
}

:where(a[href]:hover) {
  color: var(--primary-dark);
}

a,
button,
input {
  -webkit-tap-highlight-color: transparent;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--primary);
  outline-offset: 3px;
}

.container {
  width: min(calc(100% - 2rem), 74rem);
  margin-inline: auto;
}

.page-shell {
  padding-bottom: clamp(3rem, 8vw, 6rem);
}

.login-panel {
  width: min(100%, 30rem);
  margin: clamp(2rem, 8vw, 6rem) auto;
  padding: clamp(1.25rem, 4vw, 2rem);
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.login-panel form {
  display: grid;
  gap: 0.75rem;
}

.logout-form {
  display: inline;
  margin: 0;
}

.nav-button {
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.navigation-status {
  position: fixed;
  z-index: 20;
  top: 1rem;
  left: 50%;
  width: min(calc(100% - 2rem), 28rem);
  padding: 0.75rem 1rem;
  border: 1px solid var(--line);
  border-radius: 0.75rem;
  background: var(--surface);
  box-shadow: var(--shadow-soft);
  pointer-events: none;
  transform: translateX(-50%);
}

.navigation-status[hidden] {
  display: none;
}

.navigation-status p {
  margin: 0;
  color: var(--ink);
  font-weight: 700;
  text-align: center;
}

.site-header {
  position: sticky;
  z-index: 10;
  top: 0;
  padding: 0.9rem 0;
  color: var(--surface);
  background: var(--navy);
  box-shadow: 0 1px 0 var(--nav-divider);
  backdrop-filter: blur(12px);
}

.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.site-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: inherit;
  font-weight: 700;
}

.site-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.brand {
  display: inline-block;
  color: inherit;
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  text-decoration: none;
}

.brand-lockup {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.beta-badge,
.ai-disclosure span {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--nav-border);
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.beta-badge {
  padding: 0.32rem 0.48rem;
  color: var(--on-dark);
  background: var(--nav-badge-bg);
}

.site-footer {
  padding-block: 1.5rem 2rem;
  border-top: 1px solid var(--line);
  color: var(--muted);
  background: var(--surface);
  font-size: 0.86rem;
}

.site-footer .container {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
}

.site-footer p {
  max-width: 50rem;
  margin: 0;
}

.site-footer nav {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
}

.site-footer a {
  font-weight: 700;
}

.beta-info-hero {
  margin-bottom: 1.5rem;
}

.beta-info-sections {
  display: grid;
  gap: 1rem;
}

.beta-info-sections > section {
  padding: clamp(1.15rem, 3vw, 1.75rem);
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--surface);
}

.beta-info-sections h2,
.beta-info-sections p:first-of-type {
  margin-top: 0;
}

.beta-info-sections p:last-child {
  margin-bottom: 0;
}

.ai-disclosure {
  margin-block: 0.45rem 1rem;
  color: var(--muted);
  font-size: 0.86rem;
}

.ai-disclosure span {
  margin-right: 0.35rem;
  padding: 0.28rem 0.42rem;
  border-color: var(--line);
  color: var(--primary-dark);
  background: var(--surface);
}

@media (max-width: 44rem) {
  .site-footer .container {
    flex-direction: column;
    gap: 1rem;
  }

  .site-footer nav {
    flex-direction: column;
  }
}

h1,
h2,
h3,
h4,
p {
  overflow-wrap: anywhere;
}

h1,
h2,
h3,
h4 {
  line-height: 1.2;
  text-wrap: balance;
}

h1 {
  margin-block: 0.35rem 0.75rem;
  font-size: clamp(2.25rem, 7vw, 4rem);
  letter-spacing: -0.045em;
}

.eyebrow {
  margin: 0;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.page-hero {
  margin-block: clamp(2rem, 7vw, 5rem) clamp(1.5rem, 4vw, 3rem);
  padding: clamp(1.5rem, 5vw, 3.5rem);
  border: 0;
  border-radius: 0;
  background: transparent;
}

.page-hero--dashboard {
  position: relative;
  margin-block: 0.65rem;
  padding: 1rem 0;
}

.page-hero--dashboard h1 {
  margin-block: 0.2rem 0.35rem;
  font-size: clamp(1.85rem, 3.5vw, 2.6rem);
}

.page-hero--dashboard > p:last-child {
  font-size: 0.9rem;
}

.page-hero > p:last-child {
  max-width: 44rem;
  margin-bottom: 0;
  color: var(--muted);
  font-size: clamp(1rem, 2vw, 1.15rem);
}

.watchlist-form {
  display: grid;
  grid-template-columns: minmax(12rem, 0.7fr) minmax(18rem, 1.3fr);
  align-items: end;
  gap: clamp(1rem, 4vw, 2.5rem);
  margin-block: 2rem 3rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--watchlist);
}

.watchlist-form h2 {
  margin: 0.25rem 0 0;
  font-size: clamp(1.35rem, 3vw, 1.75rem);
}

.watchlist-members {
  margin-block: 1rem 2rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 0.8rem;
  background: var(--surface);
}

.watchlist-members > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.watchlist-members h2,
.watchlist-members p {
  margin: 0;
}

.watchlist-members > header p,
.watchlist-member > p,
.watchlist-member > div {
  color: var(--muted);
  font-size: 0.84rem;
}

.watchlist-members ul {
  display: grid;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.watchlist-member {
  display: grid;
  grid-template-columns: minmax(10rem, 1fr) minmax(12rem, 1.5fr) auto;
  align-items: center;
  gap: 0.75rem;
  padding: 0.55rem 0.7rem;
  border-radius: 0.55rem;
  background: var(--surface-soft);
}

.watchlist-member > a {
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
  min-width: 0;
  color: var(--ink);
}

.watchlist-member > a span {
  color: var(--muted);
  font-size: 0.78rem;
}

.watchlist-member form {
  margin: 0;
}

.watchlist-member button {
  padding: 0.4rem 0.65rem;
}

.watchlist-form form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.65rem;
}

input,
button {
  min-height: 2.9rem;
  border-radius: 0.55rem;
  font: inherit;
}

input {
  min-width: 0;
  padding: 0.6rem 0.85rem;
  border: 1px solid var(--control-border);
  color: var(--ink);
  background: var(--surface);
}

button {
  padding: 0.6rem 1.1rem;
  border: 1px solid var(--primary);
  color: var(--surface);
  background: var(--primary);
  font-weight: 750;
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease,
    transform 150ms ease;
}

button:hover {
  border-color: var(--primary-dark);
  background: var(--primary-dark);
}

button:active {
  transform: translateY(1px);
}

.button-secondary {
  border-color: var(--control-border);
  color: var(--ink);
  background: transparent;
}

.button-secondary:hover {
  border-color: var(--muted);
  color: var(--ink);
  background: var(--neutral-bg);
}

.brief-section {
  margin-block: clamp(2.5rem, 6vw, 4.5rem);
}

.brief-section > h2 {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 1.25rem;
  font-size: clamp(1.55rem, 4vw, 2.15rem);
  letter-spacing: -0.025em;
}

.brief-section > h2::before {
  width: 0.35rem;
  height: 1.4em;
  border-radius: 999px;
  background: var(--muted);
  content: "";
}

.brief-section--watchlist > h2::before {
  background: var(--muted);
}

.brief-section--unmatched > h2::before {
  background: var(--muted);
}

.company-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.company-card {
  min-width: 0;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--surface);
  box-shadow: none;
}

.brief-section--watchlist .company-card {
  border-color: var(--line);
  box-shadow: none;
}

.company-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.company-card h3,
.company-card h4 {
  margin-top: 0;
}

.company-card h3 {
  margin-bottom: 0;
  font-size: 1.35rem;
  letter-spacing: -0.02em;
}

.company-card h3 a {
  color: var(--ink);
  text-decoration-color: var(--line);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.2em;
}

.company-card h3 a:hover {
  color: var(--primary);
}

.article-count {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 0.88rem;
  white-space: nowrap;
}

.sentiment-badge {
  display: inline-flex;
  width: fit-content;
  margin-block: 1rem 0;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  color: var(--neutral);
  background: var(--neutral-bg);
  font-size: 0.84rem;
  font-weight: 800;
}

.sentiment-badge--positive {
  color: var(--neutral);
  background: var(--neutral-bg);
}

.sentiment-badge--negative {
  color: var(--neutral);
  background: var(--neutral-bg);
}

.summary,
.history {
  margin-top: 1.2rem;
  padding-top: 1.2rem;
  border-top: 1px solid var(--line);
}

.summary h4,
.history h4 {
  margin-bottom: 0.45rem;
  font-size: 0.95rem;
}

.summary p,
.history p {
  margin: 0;
  color: var(--muted);
}

.article-list {
  min-width: 0;
  margin-block: 1.15rem 0;
  padding-left: 1.2rem;
}

.article-list li {
  min-width: 0;
  overflow-wrap: anywhere;
}

.article-list li + li {
  margin-top: 0.55rem;
}

.article-list a,
.history-articles a {
  color: var(--primary);
  font-weight: 620;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  overflow-wrap: anywhere;
}

.article-list a:visited,
.history-articles a:visited,
.article-list a.article-source-link--visited,
.history-articles a.article-source-link--visited,
.article-source-link--visited {
  color: var(--muted);
}

.article-list a:hover,
.history-articles a:hover {
  color: var(--primary-dark);
}

.article-visited-status {
  display: inline-block;
  margin-left: 0.35rem;
  color: var(--muted);
  font-size: 0.78em;
  font-weight: 600;
  white-space: nowrap;
}

.article-visited-status[hidden] {
  display: none;
}

.company-visit-status {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 0.12rem 0.42rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: var(--surface);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.35;
  white-space: nowrap;
}

.company-visit-status--stale {
  color: var(--primary-dark);
  background: var(--surface);
}

.company-visit-status[hidden] {
  display: none;
}

.remove-form {
  margin-top: 1.35rem;
}

.unmatched-list {
  margin-top: 0;
  padding: clamp(1.2rem, 3vw, 1.75rem) clamp(1.2rem, 3vw, 1.75rem)
    clamp(1.2rem, 3vw, 1.75rem) 2.75rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--surface);
}

.empty-state {
  padding: 1rem 1.2rem;
  border: 1px dashed var(--line);
  border-radius: 0.75rem;
  color: var(--muted);
  background: var(--surface);
}

.flash-list {
  display: grid;
  gap: 0.65rem;
  margin-top: 1.25rem;
}

.flash {
  margin: 0;
  padding: 0.85rem 1rem;
  border: 1px solid var(--line);
  border-left-width: 0.3rem;
  border-radius: 0.65rem;
  background: var(--surface);
  font-weight: 650;
}

.flash--success {
  border-color: var(--success-border);
  color: var(--positive);
  background: var(--positive-bg);
}

.flash--error {
  border-color: var(--error-border);
  color: var(--negative);
  background: var(--negative-bg);
}

.back-link {
  margin-top: clamp(1.5rem, 4vw, 2.5rem);
}

.back-link a {
  font-weight: 700;
  text-underline-offset: 0.2em;
}

.company-hero {
  margin-bottom: 1.5rem;
}

.company-hero h1 {
  margin-bottom: 0.15rem;
}

.company-name {
  margin-top: 0;
  color: var(--muted);
  font-size: clamp(1.1rem, 3vw, 1.3rem);
}

.watchlist-status {
  display: inline-flex;
  margin-top: 0.5rem;
  padding: 0.32rem 0.7rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--neutral) !important;
  background: var(--watchlist);
  font-size: 0.88rem !important;
  font-weight: 750;
}

.company-watchlist-action {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
  margin-top: 0.5rem;
}

.company-watchlist-action .watchlist-status {
  margin: 0;
}

.company-watchlist-action form {
  margin: 0;
}

.watchlist-status--inactive {
  border-color: var(--border);
  color: var(--muted) !important;
  background: var(--surface-soft);
}

.company-card__name,
.company-card__ticker {
  display: block;
}

.dashboard-company-card {
  gap: 0.75rem;
}

.dashboard-change-summary {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.company-analysis-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  width: fit-content;
  color: var(--primary);
  font-weight: 750;
  text-underline-offset: 0.2em;
}

.company-card__ticker {
  margin-top: 0.15rem;
  color: var(--muted);
  font-size: 0.78em;
  font-weight: 700;
}

.period-selector {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  padding: 0.3rem 0;
}

.period-selector a {
  padding: 0.55rem 0.95rem;
  border: 1px solid var(--control-border);
  border-radius: 999px;
  color: var(--ink);
  background: var(--surface);
  font-weight: 700;
  text-decoration: none;
}

.period-selector a:hover {
  border-color: var(--primary);
  color: var(--primary);
}

.period-selector a[aria-current="page"] {
  border-color: var(--primary);
  color: var(--surface);
  background: var(--primary);
}

.history-summary {
  margin-block: 1.5rem 3rem;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--surface);
  box-shadow: none;
}

.history-summary > h2 {
  margin-top: 0;
  font-size: clamp(1.4rem, 4vw, 1.9rem);
}

.historical-summary-content {
  max-width: 48rem;
}

.historical-summary-content h3 {
  margin-block: 1.5rem 0.45rem;
  color: var(--ink);
  font-size: 1rem;
}

.historical-summary-content h3:first-child {
  margin-top: 0.75rem;
}

.historical-summary-content p {
  max-width: 68ch;
  margin-block: 0 0.8rem;
  color: var(--muted);
}

.historical-summary-content ul {
  display: grid;
  gap: 0.45rem;
  max-width: 68ch;
  margin-block: 0 1rem;
  padding-left: 1.3rem;
}

.historical-summary-content li {
  padding-left: 0.15rem;
  color: var(--muted);
}

.history-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 1.5rem 0 0;
}

.history-facts div {
  min-width: 0;
  padding: 0.8rem;
  border-radius: 0.65rem;
  background: var(--surface);
}

.history-facts dt {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
}

.history-facts dd {
  margin: 0.15rem 0 0;
  font-weight: 800;
}

.history-facts .sentiment-badge {
  margin: 0;
}

.history-articles {
  display: grid;
  gap: 0.75rem;
  min-width: 0;
  padding-left: 1.5rem;
}

.history-articles li {
  min-width: 0;
  padding: 1rem 1.1rem;
  border: 1px solid var(--line);
  border-radius: 0.75rem;
  background: var(--surface);
  overflow-wrap: anywhere;
}

.history-articles time {
  display: block;
  margin-bottom: 0.3rem;
  color: var(--muted);
  font-size: 0.82rem;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.dashboard-filters {
  display: grid;
  gap: 1rem;
  margin-block: 1.5rem 2.5rem;
  padding: clamp(1rem, 3vw, 1.5rem);
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--surface);
}

.company-discovery {
  display: grid;
  gap: 1rem;
  margin-block: 1.5rem;
  padding: clamp(1rem, 3vw, 1.5rem);
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--surface);
}

.company-discovery h2,
.company-discovery header p {
  margin: 0;
}

.company-discovery header > p:last-child {
  margin-top: 0.25rem;
  color: var(--muted);
}

.company-discovery form,
.company-search-controls {
  display: grid;
  gap: 0.5rem;
}

.company-search-controls {
  grid-template-columns: minmax(0, 1fr) auto;
}

.company-discovery label {
  color: var(--muted);
  font-size: 0.85rem;
  font-weight: 700;
}

.company-discovery input[type="search"] {
  width: 100%;
  min-width: 0;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--control-border);
  border-radius: 0.55rem;
  background: var(--surface);
  color: var(--ink);
}

.company-search-results {
  display: grid;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.company-search-results li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.55rem;
  background: var(--surface-soft);
}

.company-search-results a {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem;
  min-width: 0;
  color: var(--ink);
}

.company-search-results a span,
.company-search-results a small {
  color: var(--muted);
}

.company-search-results form {
  margin: 0;
}

.dashboard-filters h2 {
  margin: 0;
}

.dashboard-filters form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem 1rem;
}

.dashboard-filters label {
  color: var(--muted);
  font-size: 0.85rem;
  font-weight: 700;
}

.dashboard-filters select {
  width: 100%;
  min-width: 0;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--control-border);
  border-radius: 0.55rem;
  background: var(--surface);
  color: var(--ink);
}

.dashboard-filters input[type="search"] {
  width: 100%;
  min-width: 0;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--control-border);
  border-radius: 0.55rem;
  background: var(--surface);
  color: var(--ink);
}

.filter-search {
  display: grid;
  grid-column: 1 / -1;
  gap: 0.5rem;
}

.active-search {
  margin: 0;
  color: var(--muted);
}

.filter-actions {
  display: flex;
  flex-wrap: wrap;
  grid-column: 1 / -1;
  gap: 0.65rem;
  margin-top: 0.65rem;
}

.filter-actions .button-secondary {
  display: inline-flex;
  align-items: center;
  padding: 0.65rem 1rem;
  text-decoration: none;
}

.filter-results {
  margin: 0;
  font-weight: 700;
}

.category-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.45rem;
}

.category-badge {
  display: inline-flex;
  padding: 0.15rem 0.5rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--neutral);
  font-size: 0.72rem;
  font-weight: 750;
}

.ai-insights {
  display: grid;
  gap: 1rem;
}

.ai-insights h4,
.ai-insights h5,
.ai-insights p {
  margin-block: 0;
}

.ai-insights h5 {
  margin-bottom: 0.35rem;
  font-size: 0.9rem;
}

.insight-list {
  display: grid;
  gap: 0.35rem;
  margin: 0;
  padding-left: 1.35rem;
}

.insight-list--positive li::marker {
  content: "✓  ";
  color: var(--neutral);
}

.insight-list--risk li::marker {
  content: "⚠  ";
  color: var(--neutral);
}

.filter-empty {
  margin-block: 2rem;
}

.settings-form {
  display: grid;
  gap: 0.65rem;
  max-width: 34rem;
  margin-block: 1.5rem 3rem;
  padding: clamp(1rem, 4vw, 2rem);
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--surface);
}

.settings-form label {
  margin-top: 0.5rem;
  font-weight: 700;
}

.settings-form select,
.settings-form input[type="number"] {
  width: 100%;
  padding: 0.7rem;
  border: 1px solid var(--control-border);
  border-radius: 0.55rem;
  background: var(--surface);
}

.checkbox-field {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.settings-form button {
  justify-self: start;
  margin-top: 1rem;
}

.status-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-block: 1.5rem 3rem;
}

.status-card {
  min-width: 0;
  padding: clamp(1rem, 3vw, 1.5rem);
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--surface);
}

.status-card h2 {
  margin-top: 0;
}

.status-card dl {
  display: grid;
  gap: 0.55rem;
  margin: 0;
}

.status-card dl div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.status-card dd {
  margin: 0;
  font-weight: 800;
}

.status-value {
  font-size: 1.15rem;
  font-weight: 800;
}

.status-note {
  color: var(--muted);
  font-size: 0.85rem;
}

.morning-overview {
  display: grid;
  gap: 1.25rem;
  margin-block: 1.5rem 2.5rem;
  padding: clamp(1rem, 4vw, 2rem);
  border: 1px solid var(--line);
  border-radius: 1.15rem;
  background: linear-gradient(145deg, var(--surface), var(--surface));
  box-shadow: var(--shadow-soft);
}

.overview-header h2,
.overview-header p {
  margin-block: 0.25rem;
}

.overview-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}

.overview-stat {
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 0.8rem;
  background: var(--surface);
}

.overview-stat h3 {
  margin: 0 0 0.35rem;
  color: var(--muted);
  font-size: 0.82rem;
}

.overview-stat strong {
  overflow-wrap: anywhere;
  font-size: clamp(1.05rem, 3vw, 1.45rem);
}

.overview-stat--positive > span { color: var(--neutral); }
.overview-stat--neutral > span { color: var(--muted); }
.overview-stat--negative > span { color: var(--neutral); }

.overview-top {
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.overview-signals {
  padding-block: 1rem;
  border-block: 1px solid var(--line);
}

.overview-signals > h3 {
  margin-top: 0;
}

.signal-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.daily-signal {
  min-width: 0;
  padding: 0.9rem 1rem;
  border-left: 0.3rem solid var(--line);
  border-radius: 0.65rem;
  background: var(--surface);
}

.daily-signal header {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
}

.daily-signal header span,
.daily-signal-descriptions,
.signal-empty {
  color: var(--muted);
}

.daily-signal h4 {
  margin-block: 0.55rem 0.2rem;
}

.signal-badges {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.daily-signal-descriptions {
  display: grid;
  gap: 0.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.daily-signal-descriptions li {
  overflow-wrap: anywhere;
}

.watchlist-priority {
  margin-block: -1rem 2.5rem;
}

.watchlist-priority > header {
  margin-bottom: 1rem;
}

.watchlist-priority h2 {
  margin-block: 0.25rem;
}

.priority-list {
  display: grid;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style-position: inside;
}

.priority-card {
  padding: 1rem 1.15rem;
  border: 1px solid var(--line);
  border-left: 0.35rem solid var(--neutral);
  border-radius: 0.8rem;
  background: var(--surface);
}

.priority-card--high { border-left-color: var(--neutral); }
.priority-card--medium { border-left-color: var(--neutral); }

.priority-card__heading,
.priority-card__heading > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1rem;
}

.priority-card__heading > div {
  justify-content: flex-start;
}

.priority-card__heading span,
.priority-card ul,
.priority-empty {
  color: var(--muted);
}

.priority-level {
  font-weight: 800;
  white-space: nowrap;
}

.priority-card ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.5rem;
  margin: 0.75rem 0 0;
  padding-left: 1.2rem;
}

.company-timeline {
  margin-top: 2rem;
}

.morning-snapshot {
  display: grid;
  gap: 1rem;
  margin-block: 1.5rem;
  padding: clamp(1.1rem, 4vw, 2rem);
  border: 1px solid var(--line);
  border-radius: 1.15rem;
  background: linear-gradient(135deg, var(--surface), var(--surface));
  box-shadow: var(--shadow-soft);
}

.morning-snapshot header h2,
.morning-snapshot header p {
  margin-block: 0.3rem;
}

.snapshot-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.snapshot-grid > div {
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 0.8rem;
  background: var(--surface);
}

.snapshot-grid h3 {
  margin-top: 0;
}

.snapshot-grid ul,
.snapshot-grid ol {
  display: grid;
  gap: 0.35rem;
  margin-bottom: 0;
  padding-left: 1.25rem;
}

.snapshot-mood {
  margin: 0;
  color: var(--muted);
}

/* Dashboardens översta delar delar samma visuella rytm och färgsystem. */
.morning-dashboard {
  display: grid;
  gap: 0.85rem;
  margin-block: 1.25rem 1.5rem;
  padding: clamp(0.65rem, 2vw, 1rem);
  border: 1px solid var(--line);
  border-radius: 1.35rem;
  background: var(--surface);
}

.morning-dashboard .morning-snapshot,
.morning-dashboard .morning-overview,
.morning-dashboard .overview-signals,
.morning-dashboard .watchlist-priority,
.morning-dashboard .priority-empty {
  margin: 0;
}

.morning-dashboard .morning-overview,
.morning-dashboard .overview-signals,
.morning-dashboard .watchlist-priority {
  padding: clamp(0.9rem, 2.5vw, 1.25rem);
  border: 1px solid var(--line);
  border-radius: 0.95rem;
  background: var(--surface);
  box-shadow: none;
}

.morning-dashboard .morning-snapshot {
  grid-template-columns: minmax(0, 1.65fr) minmax(16rem, 0.85fr);
  gap: 0.65rem;
  padding: clamp(1rem, 2.5vw, 1.3rem);
  border-color: var(--line);
  background: linear-gradient(135deg, var(--surface), var(--surface) 68%);
  box-shadow: var(--shadow-soft);
}

.snapshot-header {
  grid-column: 1 / -1;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.snapshot-header h2 {
  max-width: 28ch;
  font-size: clamp(1.45rem, 3.5vw, 2rem);
  line-height: 1.12;
}

.snapshot-header time {
  flex: none;
  color: var(--muted);
  font-size: 0.78rem;
}

.morning-dashboard .snapshot-grid {
  display: contents;
}

.morning-dashboard .snapshot-grid > div {
  padding: 0;
  border: 0;
  background: transparent;
}

.snapshot-highlights ul {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem 1.5rem;
}

.snapshot-priorities ol {
  padding: 0;
  list-style: none;
}

.snapshot-priorities li {
  border-bottom: 1px solid var(--line);
  font-weight: 750;
}

.dashboard-company-link {
  min-width: 0;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

.snapshot-priority-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 0.35rem;
  border-radius: 0.35rem;
}

.overview-company-link {
  display: inline-flex;
  align-items: baseline;
  gap: 0.3rem;
  padding: 0.1rem 0.25rem;
  border-radius: 0.35rem;
}

.dashboard-company-link:hover {
  color: var(--primary-dark);
  background: var(--surface);
}

.daily-signal.dashboard-company-link:hover,
.priority-card.dashboard-company-link:hover {
  border-color: var(--line);
  box-shadow: var(--shadow-soft);
}

.snapshot-mood {
  gap: 0.25rem;
  grid-column: 1 / -1;
  justify-self: start;
}

.section-description {
  margin: 0.2rem 0 0;
  color: var(--muted);
  font-size: 0.82rem;
}

.morning-dashboard .morning-overview {
  gap: 0.8rem;
  background: var(--surface);
}

.morning-dashboard .overview-stats {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.5rem;
}

.morning-dashboard .overview-stat {
  padding: 0.7rem;
  border: 0;
  border-left: 0.2rem solid var(--line);
  border-radius: 0.4rem;
  background: var(--surface);
}

.morning-dashboard .overview-stat--positive { border-left-color: var(--neutral); }
.morning-dashboard .overview-stat--neutral { border-left-color: var(--muted); }
.morning-dashboard .overview-stat--negative { border-left-color: var(--neutral); }

.morning-dashboard .overview-stat > span {
  display: none;
}

.morning-dashboard .overview-stat strong {
  font-size: clamp(1rem, 2vw, 1.25rem);
}

.morning-dashboard .overview-top {
  display: flex;
  align-items: baseline;
  gap: 1.25rem;
  padding-top: 0.65rem;
}

.morning-dashboard .overview-top ol {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.5rem;
  padding-left: 1.2rem;
}

.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.section-heading h2 {
  margin-block: 0.15rem 0;
}

.morning-dashboard .overview-signals {
  padding-block: 0.9rem;
}

.morning-dashboard .signal-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
}

.morning-dashboard .signal-list > article {
  min-width: 0;
}

.morning-dashboard .daily-signal {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.7fr);
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 0.8rem;
  border-left-width: 0.25rem;
  height: 100%;
}

.morning-dashboard .daily-signal header {
  align-items: center;
}

.signal-badge,
.priority-badge {
  display: inline-flex;
  width: fit-content;
  padding: 0.16rem 0.5rem;
  border-radius: 999px;
  background: var(--neutral-bg);
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1.3;
}

.priority-badge--high {
  background: var(--neutral-bg);
  color: var(--neutral);
}

.priority-badge--medium {
  background: var(--neutral-bg);
  color: var(--neutral);
}

.priority-badge--low {
  background: var(--neutral-bg);
  color: var(--neutral);
}

.morning-dashboard .watchlist-priority > header {
  margin-bottom: 0.7rem;
}

.morning-dashboard .priority-list {
  gap: 0.35rem;
}

.morning-dashboard .priority-card {
  display: grid;
  grid-template-columns: minmax(14rem, 0.9fr) minmax(0, 1.4fr);
  align-items: center;
  gap: 1rem;
  padding: 0.6rem 0.8rem;
  border-radius: 0.55rem;
}

.morning-dashboard .priority-reasons {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
  overflow-wrap: anywhere;
}

.dashboard-filters form {
  grid-template-columns: minmax(16rem, 2fr) repeat(3, minmax(8rem, 1fr)) auto;
  align-items: end;
}

.filter-search,
.filter-field {
  display: grid;
  grid-column: auto;
  gap: 0.5rem;
}

.filter-actions {
  grid-column: auto;
  margin-top: 0;
}

@media (min-width: 64.01rem) {
  .page-hero--dashboard {
    padding-block: 0.65rem;
  }

  .page-hero--dashboard h1 {
    font-size: 2.1rem;
  }

  .morning-dashboard .morning-snapshot {
    padding-block: 1rem;
  }

  .snapshot-header h2 {
    font-size: 1.7rem;
  }

  .snapshot-grid h3 {
    margin-bottom: 0.45rem;
  }

  .snapshot-grid ul,
  .snapshot-grid ol {
    font-size: 0.9rem;
  }

  .snapshot-priorities li {
    padding-block: 0.2rem;
  }

  .morning-dashboard .morning-overview {
    gap: 0.5rem;
    padding-block: 0.8rem;
  }
}

@media (max-width: 64rem) {
  .dashboard-filters form {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .filter-search,
  .filter-actions {
    grid-column: 1 / -1;
  }

  .morning-dashboard .overview-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.timeline-days {
  margin: 0;
  padding: 0;
  list-style: none;
}

.timeline-date {
  padding-block: 1.2rem 0.45rem;
}

.timeline-date h3 {
  margin: 0;
  color: var(--text);
  font-size: 1rem;
  text-transform: capitalize;
}

.timeline-event {
  position: relative;
  display: grid;
  grid-template-columns: 1.25rem minmax(0, 1fr);
  gap: 0.65rem;
  padding-bottom: 1rem;
}

.timeline-event::before {
  position: absolute;
  top: 0.9rem;
  bottom: -0.2rem;
  left: 0.35rem;
  width: 2px;
  background: var(--line);
  content: "";
}

.timeline-event:last-child::before {
  display: none;
}

.timeline-marker {
  z-index: 1;
  width: 0.8rem;
  height: 0.8rem;
  margin-top: 0.45rem;
  border: 2px solid var(--surface);
  border-radius: 50%;
  background: var(--muted);
  box-shadow: 0 0 0 2px var(--muted);
}

.timeline-event article {
  min-width: 0;
  padding: 0.85rem 1rem;
  border: 1px solid var(--line);
  border-radius: 0.75rem;
  background: var(--surface);
}

.timeline-event time {
  color: var(--muted);
  font-size: 0.82rem;
}

.timeline-event h4 {
  margin-block: 0.25rem 0.65rem;
  overflow-wrap: anywhere;
}

.timeline-labels {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.timeline-labels .category-badge,
.timeline-labels .sentiment-badge {
  font-size: 0.76rem;
}

.overview-top h3 {
  margin-top: 0;
}

.snapshot-highlight-link {
  color: inherit;
  font-weight: 650;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

.snapshot-highlight-link:hover {
  color: var(--accent);
}

.current-insights {
  display: grid;
  gap: 1rem;
}

.current-insights section > :first-child {
  margin-top: 0;
}

.current-insights section > :last-child {
  margin-bottom: 0;
}

.overview-top ol {
  display: grid;
  gap: 0.5rem;
  margin-bottom: 0;
  padding-left: 1.5rem;
}

@media (max-width: 48rem) {
  .company-search-controls,
  .company-search-results li {
    grid-template-columns: minmax(0, 1fr);
  }

  .company-search-results form,
  .company-search-results button {
    width: 100%;
  }

  .watchlist-members > header {
    display: block;
  }

  .watchlist-members > header p {
    margin-top: 0.25rem;
  }

  .watchlist-member {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .watchlist-member > p,
.watchlist-member > div {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .watchlist-member form {
    grid-column: 2;
    grid-row: 1;
  }

  .company-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .watchlist-form {
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
  }

  .history-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-filters form {
    grid-template-columns: minmax(0, 1fr);
  }

  .status-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .overview-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .signal-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .priority-card__heading,
  .priority-card__heading > div {
    align-items: flex-start;
    flex-direction: column;
  }

  .priority-level {
    white-space: normal;
  }

  .snapshot-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .morning-dashboard .morning-snapshot {
    grid-template-columns: minmax(0, 1fr);
  }

  .snapshot-header,
  .section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .morning-dashboard .snapshot-grid {
    display: grid;
  }

  .snapshot-highlights ul {
    grid-template-columns: minmax(0, 1fr);
  }

  .morning-dashboard .overview-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .morning-dashboard .overview-top {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.35rem;
  }

  .morning-dashboard .signal-list,
  .morning-dashboard .daily-signal,
  .morning-dashboard .priority-card {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 34rem) {
  .container {
    width: min(calc(100% - 1.25rem), 74rem);
  }

  .site-header {
    padding-block: 0.75rem;
  }

  .page-hero {
    border-radius: 0.9rem;
  }

  .watchlist-form form {
    grid-template-columns: minmax(0, 1fr);
  }

  .watchlist-form button,
  .remove-form button {
    width: 100%;
  }

  .company-card__header {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.35rem;
  }

  .article-count {
    white-space: normal;
  }

  .history-facts {
    grid-template-columns: minmax(0, 1fr);
  }

  .period-selector a {
    flex: 1 1 5.5rem;
    text-align: center;
  }

  .overview-stat {
    padding: 0.8rem;
  }

  .morning-dashboard {
    padding: 0.45rem;
  }

  .morning-dashboard .overview-stats {
    grid-template-columns: minmax(0, 1fr);
  }
}

.freshness-notice {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  align-items: baseline;
  margin: 0.8rem 0;
  padding: 0.7rem 0.9rem;
  border: 0;
  border-left: 0.2rem solid var(--muted);
  border-radius: 0;
  background: var(--surface);
  font-size: 0.9rem;
}

.freshness-notice--fresh {
  border-left-color: var(--line);
}

.freshness-notice details {
  flex-basis: 100%;
}

.freshness-notice summary {
  cursor: pointer;
}

.freshness-notice--degraded {
  border-left-color: var(--warning);
}

.freshness-notice--stale {
  border-left-color: var(--warning);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

.admin-panel {
  margin: 1rem 0;
  padding: 1.25rem;
  border: 1px solid var(--line);
  border-radius: 0.7rem;
  background: var(--surface);
  overflow-wrap: anywhere;
}
.admin-form { display: grid; gap: 0.7rem; max-width: 36rem; }
.admin-form input:not([type="hidden"]):not([type="checkbox"]) { width: 100%; min-width: 0; }
.admin-form button { justify-self: start; }
.admin-panel h3 { margin-top: 0; }
.admin-panel summary { cursor: pointer; }
.admin-panel li { margin: 0.6rem 0; }

.site-nav a.admin-nav { color: inherit; }


.dashboard-summary {
  padding: 1.25rem;
  border: 0;
  border-radius: 0.5rem;
  background: var(--surface);
  margin-bottom: 1rem;
}
.dashboard-summary h2 { margin-top: 0; }
.summary-coverage { color: var(--muted); font-size: 0.9rem; }
.dashboard-summary .freshness-notice { margin-bottom: 0; }
.dashboard-disclosure {
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  padding: 0.25rem 0;
  margin: 0.75rem 0;
}
.dashboard-disclosure > summary { cursor: pointer; font-weight: 600; }
.dashboard-disclosure[open] > summary { margin-bottom: 1rem; }
.dashboard-tools .company-discovery { margin-top: 0; border: 0; padding: 0; background: transparent; }
.quiet-watchlist .watchlist-members { border: 0; padding: 0; }

.dashboard-changes .signal-list { grid-template-columns: minmax(0, 1fr); }
.dashboard-changes .signal-list > article {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 0.7rem;
  background: var(--surface);
}
.dashboard-changes .daily-signal { display: block; border: 0; background: transparent; }
.dashboard-changes .daily-signal header { margin-bottom: 0.5rem; align-items: center; }
.change-read-link { display: block; margin-top: 0.6rem; color: var(--primary); }
.dashboard-company-link:hover .change-read-link { color: var(--primary-dark); }
.dashboard-changes .remove-form { margin: 0 1rem 0.75rem; }
.dashboard-changes .remove-form button { font-size: 0.8rem; padding: 0.3rem 0.5rem; }

.assessment-controls { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.assessment-controls select { font: inherit; padding: .65rem; border: 1px solid var(--control-border); border-radius: .5rem; }
.dashboard-changes details { overflow-wrap: anywhere; }

.page-hero--dashboard .dashboard-summary { margin-top: 1.25rem; }
.dashboard-watchlist { margin-block: 1.25rem; }

/* Shared reading hierarchy and keyboard/touch targets. */
summary {
  min-height: 44px;
  padding-block: 0.5rem;
  cursor: pointer;
  overflow-wrap: anywhere;
}
.site-header a:focus-visible,
.site-header button:focus-visible { outline-color: var(--focus-on-dark); }
.site-header .brand { min-height: 44px; display: inline-flex; align-items: center; }
.site-nav .nav-button { min-height: 44px; padding-inline: 0.5rem; }
.site-nav .nav-button:hover { color: var(--on-dark); background: var(--nav-hover); }
.site-footer a,
.back-link a,
.company-analysis-link,
.company-search-results li > a,
.dashboard-changes details li > a { display: inline-flex; align-items: center; min-height: 44px; }
.company-search-results li > a { flex-wrap: wrap; gap: 0.25rem; }
.article-list a,
.history-articles a { display: inline-block; min-height: 24px; }
input::placeholder { color: var(--muted); opacity: 1; }
select { min-height: 44px; color: var(--ink); background: var(--surface); }
.watchlist-members > header p,
.watchlist-member > p,
.watchlist-member > div { font-size: 0.9rem; }
.watchlist-member { border-radius: 0; border-bottom: 1px solid var(--line); background: transparent; padding-block: 1rem; }
.watchlist-member > a { min-height: 44px; flex-wrap: wrap; align-content: center; }
.watchlist-member .dashboard-disclosure { border-top: 0; margin-block: 0.25rem 0; }
.dashboard-changes .dashboard-disclosure { margin: 0 1rem 0.5rem; }
.dashboard-changes:has(#watchlist-signals-heading) .signal-list > article { border-left: 3px solid var(--line); }
.dashboard-explore .dashboard-filters { border: 0; padding-inline: 0; background: transparent; }
.dashboard-summary .summary-coverage { margin-block: 0.65rem; }
.dashboard-summary .freshness-notice { padding-block: 0.35rem; background: transparent; }

@media (max-width: 48rem) {
  .site-header { position: static; }
  .site-header .container { flex-wrap: wrap; gap: 0.35rem 1rem; }
  .site-nav { align-items: center; gap: 0.25rem 1rem; }
  .watchlist-member { grid-template-columns: minmax(0, 1fr); }
  .watchlist-member > div,
  .watchlist-member > p,
  .watchlist-member form { grid-column: 1; grid-row: auto; }
  .watchlist-member button { width: 100%; }
  .assessment-controls { display: grid; grid-template-columns: minmax(0, 1fr); }
  .assessment-controls input,
  .assessment-controls select,
  .assessment-controls button { width: 100%; }
  .dashboard-summary { padding: 1rem; }
  .company-hero { padding-inline: 0; }
  .period-selector a { padding-inline: 0.5rem; white-space: nowrap; min-height: 44px; }
}

.assessment-controls [hidden] { display: none; }
#company-search-results { scroll-margin-top: 6rem; }

/* Keep suggestions adjacent to the field, including on narrow screens. */
#company-search-form { margin-bottom: 0; }
#company-search-form .company-search-controls { grid-template-columns: minmax(0, 1fr); }
#company-search-matches .company-search-results { margin-top: 0.35rem; gap: 0; }
#company-search-matches .company-search-results li {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.5rem;
  padding: 0.35rem 0.5rem;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
}
#company-search-matches .company-search-results a { overflow-wrap: anywhere; }
#company-search-matches .company-search-results form,
#company-search-matches .company-search-results button { width: auto; }
#company-search-matches .watchlist-status { max-width: 7rem; }
#company-search-status { margin: 0.35rem 0; font-size: 0.85rem; color: var(--muted); }
#company-search-status:empty { margin: 0; }
#company-search-results > button { margin-top: 0.5rem; }

.overview-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.overview-heading h1 { margin: 0; }
.overview-heading .assessment-controls { margin: 0; }
#assessment-period-help { font-size: 0.85rem; color: var(--muted); }
.summary-details > summary { display: list-item; padding: 0.65rem 0; min-height: 44px; box-sizing: border-box; cursor: pointer; }
.summary-details > summary:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
.dashboard-summary .summary-limitation,
.dashboard-summary .summary-warning { margin: 0.65rem 0; }
.summary-warning { border-left: 3px solid var(--warning); padding-left: 0.65rem; }
@media (max-width: 48rem) {
  .overview-heading { display: block; }
  .overview-heading .assessment-controls { margin-top: 0.75rem; }
}

#article-selection { scroll-margin-top: 6rem; }

.filter-results { margin-top: 1rem; }
.filter-results p { margin: 0.35rem 0; }
.active-filters { display: flex; flex-wrap: wrap; gap: 0.35rem 0.75rem; overflow-wrap: anywhere; }


.navigation-status {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.navigation-status p {
  flex: 1;
  overflow-wrap: anywhere;
}

.navigation-spinner {
  flex: 0 0 auto;
  width: 1.1rem;
  height: 1.1rem;
  border: 2px solid var(--line);
  border-top-color: var(--ink);
  border-radius: 50%;
  animation: navigation-spin 1s linear infinite;
}

.analysis-wait-status {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.analysis-wait-status p {
  min-width: 0;
  overflow-wrap: anywhere;
}

.analysis-wait-status [data-analysis-spinner][hidden] {
  display: none;
}

@keyframes navigation-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .navigation-spinner { animation: none; }
}

/* Optional source reading, using the existing page shell and typography. */
.fi-reader { max-width: 48rem; margin-inline: auto; }
.fi-reader-nav { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; }
.fi-reader h1 { overflow-wrap: anywhere; line-height: 1.25; }
.fi-reader-label { font-weight: 600; }
.fi-reader-note { color: var(--muted); font-size: .9rem; }
.fi-reader-text { margin-top: 2rem; }
.fi-reader-page { white-space: pre-wrap; overflow-wrap: anywhere; font-family: inherit; font-size: 1rem; line-height: 1.75; }
.fi-reader-page + .fi-reader-page { border-top: 1px solid var(--line); margin-top: 2rem; padding-top: 2rem; }
.fi-reader { padding-top: 1.25rem; }
.fi-reader h1 { font-size: clamp(1.5rem, 4vw, 2.2rem); }

/* Startsida v1: visible navigation and optional depth, using existing data. */
.page-hero--dashboard .start-eyebrow { font-size: .8rem; color: var(--muted); margin: 0 0 .4rem; }
.page-hero--dashboard .overview-heading h1 { font-size: clamp(1.6rem, 3.5vw, 2.25rem); line-height: 1.25; }
.start-tools { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; align-items: start; margin-top: 1.5rem; }
.start-tools .start-company-search { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.start-tools .start-company-search { grid-template-columns: minmax(0, 1fr) auto; gap: 0 .75rem; }
.start-tools .start-company-search > form { margin: 0; grid-column: 1; grid-row: 1; }
.start-tools .start-company-search > button { grid-column: 2; grid-row: 1; align-self: end; margin: 0; min-height: 49px; }
.start-tools #company-search-matches, .start-tools #company-search-status { grid-column: 1 / -1; }
.start-tools .assessment-controls { margin: 0; align-items: start; }
.start-tools .assessment-controls label { padding-top: .65rem; }
.start-tools #assessment-period-help { flex-basis: 100%; }
.start-tools .start-company-search label { display: block; margin-bottom: .4rem; font-weight: 600; }
.start-tools .start-company-search input { width: 100%; }
.start-period { margin: 0 0 .5rem; color: var(--muted); font-size: .8rem; }
.dashboard-summary .start-guidance { font-size: 1rem; line-height: 1.65; color: var(--muted); max-width: 65ch; }
.start-primary, .start-primary:visited { display: inline-flex; align-items: center; min-height: 44px; padding: .6rem 1rem; margin: .65rem 0 .5rem; border: 1px solid var(--primary); border-radius: .55rem; color: var(--on-dark); background: var(--primary); text-decoration: none; font-weight: 650; }
.start-primary:hover { color: var(--on-dark); background: var(--primary-dark); border-color: var(--primary-dark); }
.dashboard-summary .summary-limitation { padding-top: .85rem; margin-top: 1rem; border-top: 1px solid var(--line); }
.start-recent { margin-block: 2rem; }
.start-recent h2 { font-size: 1.3rem; margin-bottom: .35rem; }
.start-recent-description { color: var(--muted); font-size: .85rem; margin-top: 0; }
.start-recent ul { padding: 0; margin: .5rem 0 0; list-style: none; }
.start-recent-row { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(0, 2fr) auto; align-items: center; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.start-recent-row p { margin: 0; font-size: .9rem; color: var(--muted); }
.start-recent-row .start-recent-date { font-size: .8rem; margin-top: .3rem; }
.start-ticker { display: block; color: var(--muted); font-size: .8rem; }
.start-recent-row > a { min-height: 44px; display: inline-flex; gap: .35rem; align-items: center; flex-wrap: wrap; }
.start-recent-row > a:hover { color: var(--primary-dark); }
@media (max-width: 48rem) {
  .start-tools { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .start-tools .assessment-controls { display: flex; align-items: center; }
  .start-tools .assessment-controls label { padding-top: 0; }
  .start-tools .assessment-controls select { width: auto; }
  .start-tools #assessment-period-help { flex-basis: auto; }
  .start-recent-row { grid-template-columns: minmax(0, 1fr) auto; gap: .4rem .75rem; }
  .start-recent-row > div { grid-column: 1; }
  .start-recent-row > a { grid-column: 2; grid-row: 1 / span 2; }
}


/* company-history-tabs-v1 */
.analysis-tabs { display: flex; gap: .4rem; border-bottom: 1px solid var(--line); margin-bottom: 1rem; }
.analysis-tabs button { border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: transparent; color: var(--muted); padding: .65rem .85rem; }
.analysis-tabs button[aria-selected="true"] { border-bottom-color: var(--accent); color: var(--ink); }
.analysis-tabs button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
[role="tabpanel"][hidden] { display: none; }


/* Personal dashboard: shared reading surface, existing assessment and controls. */
.dashboard-page .page-hero--dashboard { padding-bottom: 0; }
.dashboard-page .start-tools { grid-template-columns: minmax(0, 1fr) 13rem; }
.dashboard-page .start-tools .assessment-controls { display: flex; flex-direction: column; gap: .4rem; }
.dashboard-page .start-tools .assessment-controls label { padding: 0; font-weight: 600; }
.dashboard-page .start-tools .assessment-controls select { width: 100%; }
.dashboard-page .start-tools .start-company-search > button { color: var(--primary); border-color: var(--primary); }
.dashboard-page .dashboard-summary { border: 1px solid var(--line); padding: 1.25rem 1.5rem; margin-bottom: 1.5rem; }
.dashboard-page .dashboard-summary h2 { font-size: clamp(1.2rem, 2.2vw, 1.6rem); line-height: 1.4; margin-bottom: .35rem; }
.dashboard-page .dashboard-summary .summary-limitation { border: 0; padding: 0; margin: .35rem 0; color: var(--muted); }
.dashboard-page .summary-disclosures { display: flex; flex-wrap: wrap; gap: 0 1.75rem; margin-top: .5rem; }
.dashboard-page .summary-details { min-width: 0; }
.dashboard-page .summary-details > summary { color: var(--primary); font-weight: 600; }
.dashboard-page .summary-details[open] { flex-basis: 100%; }
.dashboard-personal-signals .section-heading { display: block; margin-bottom: 1rem; }
.dashboard-personal-signals .signal-list { gap: 0; padding: 0 1.5rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--surface); }
.dashboard-personal-signals:has(#watchlist-signals-heading) .signal-list > article { border: 0; border-radius: 0; padding: 1rem 0 .75rem; }
.dashboard-personal-signals:has(#watchlist-signals-heading) .signal-list > article + article { border-top: 1px solid var(--line); }
.dashboard-personal-signals .daily-signal { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .25rem 1.5rem; padding: 0; border-radius: .25rem; }
.dashboard-personal-signals .daily-signal:hover { box-shadow: none; }
.dashboard-personal-signals .daily-signal header { grid-column: 1; margin: 0; overflow-wrap: anywhere; }
.dashboard-personal-signals .company-visit-status { color: var(--neutral); background: var(--neutral-bg); }
.dashboard-personal-signals .daily-signal header strong { font-size: 1.2rem; }
.dashboard-personal-signals .daily-signal-descriptions { grid-column: 1 / -1; font-size: .95rem; }
.dashboard-personal-signals .signal-article-tone { color: var(--ink); font-weight: 600; }
.dashboard-personal-signals .change-read-link { grid-column: 2; grid-row: 1; align-self: center; margin: 0; font-weight: 600; white-space: nowrap; }
.dashboard-personal-signals .dashboard-disclosure { border: 0; margin: .25rem 0 0; padding: 0; }
.dashboard-personal-signals .dashboard-disclosure > summary { color: var(--primary); font-weight: 500; }
.dashboard-personal-signals .signal-reading-note { font-size: .85rem; color: var(--muted); margin: .65rem 0 1.5rem; }
.dashboard-page .dashboard-watchlist,
.dashboard-page > .dashboard-explore { padding: 1rem 1.5rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--surface); }
.dashboard-page .dashboard-watchlist h2 { margin: 0; font-size: 1.3rem; }
.dashboard-page .quiet-watchlist { margin: .25rem 0 0; border: 0; }
.dashboard-page > .dashboard-explore > summary { font-size: 1.15rem; }
@media (max-width: 48rem) {
  .dashboard-page .start-tools { grid-template-columns: minmax(0, 1fr); }
  .dashboard-page .start-tools .assessment-controls { flex-direction: row; align-items: center; flex-wrap: wrap; }
  .dashboard-page .start-tools .assessment-controls select { width: auto; }
  .dashboard-page .start-tools #assessment-period-help { flex-basis: auto; }
  .dashboard-personal-signals .daily-signal { grid-template-columns: minmax(0, 1fr); }
  .dashboard-personal-signals .change-read-link { grid-column: 1; grid-row: auto; min-height: 44px; display: flex; align-items: center; }
  .dashboard-personal-signals .daily-signal-descriptions { grid-row: 2; }
  .dashboard-page .dashboard-summary,
  .dashboard-page .dashboard-watchlist,
  .dashboard-page > .dashboard-explore { padding: 1rem; }
  .dashboard-personal-signals .signal-list { padding-inline: 1rem; }
}


/* Company reading view: retain analysis behavior and scope changes to this page. */
.company-reading-page { max-width: 66rem; margin-inline: auto; }
.company-reading-page .company-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; align-items: start; padding: 1rem 0; margin-block: .5rem 1rem; }
.company-reading-page .company-identity { min-width: 0; }
.company-reading-page .company-hero h1 { font-size: clamp(1.8rem, 3.5vw, 2.5rem); line-height: 1.25; overflow-wrap: anywhere; margin-top: 0; }
.company-reading-page .company-hero .company-name { font-size: 1rem; margin: .4rem 0; }
.company-reading-page .company-watchlist-action { align-items: start; }
.company-reading-page .company-watchlist-action .watchlist-status { margin-block: .3rem; }
.company-reading-page .company-watchlist-management { min-width: 0; }
.company-reading-page .company-watchlist-management > summary { color: var(--primary); font-weight: 600; }
.company-reading-page .company-watchlist-management form { margin-top: .4rem; }
.company-reading-page .company-period-label { margin: 0 0 .4rem; font-weight: 600; }
.company-reading-page .period-selector { margin: 0; }
.company-reading-page .company-period-controls .summary-coverage { margin: .35rem 0 0; }
.company-reading-page .company-coverage-notice { margin: .5rem 0 1rem; }
.company-reading-page .history-summary { margin: 1rem 0 2rem; padding: clamp(1rem, 3vw, 2rem); border-radius: .7rem; }
.company-reading-page .current-insights,
.company-reading-page .historical-summary-content { max-width: 68ch; font-size: 1.05rem; line-height: 1.75; }
.company-reading-page .current-insights { gap: 1.3rem; }
.company-reading-page .current-insights h3 { font-size: 1.1rem; margin-bottom: .4rem; }
.company-reading-page .current-insights p,
.company-reading-page .current-insights ul { margin-top: 0; }
.company-reading-page .analysis-tabs { flex-wrap: wrap; gap: .35rem; margin-bottom: 1.25rem; }
.company-reading-page .analysis-tabs button { min-height: 44px; }
.company-reading-page .analysis-tabs button[aria-selected="true"] { color: var(--primary); border-bottom-color: var(--primary); }
.company-reading-page .analysis-tabs button:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
.company-reading-page .company-underlay-summary { border-top: 1px solid var(--line); padding-top: 1rem; margin: 1.5rem 0 .5rem; font-weight: 600; }
.company-reading-page .sentiment-evidence > summary { color: var(--primary); }
.company-reading-page .timeline-days { padding: 0 1.25rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--surface); }
.company-reading-page .timeline-date { padding: 1rem 0 .2rem; }
.company-reading-page .timeline-date:not(:first-child) { border-top: 1px solid var(--line); }
.company-reading-page .timeline-event { display: block; padding: 0; }
.company-reading-page .timeline-event::before,
.company-reading-page .timeline-marker { display: none; }
.company-reading-page .timeline-event + .timeline-event { border-top: 1px solid var(--line); }
.company-reading-page .timeline-event article { padding: .6rem 0 1rem; border: 0; border-radius: 0; }
.company-reading-page .timeline-event h4 { font-size: 1rem; margin: .2rem 0 .5rem; }
.company-reading-page .timeline-event h4 a { display: inline-block; min-height: 24px; }
.company-reading-page .company-source-status { margin-top: 1.5rem; padding: 1rem 1.25rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--surface); }
.company-reading-page .company-source-status h2 { margin: 0 0 .5rem; font-size: 1.05rem; }
.company-reading-page .company-source-status .freshness-notice { border: 0; padding: 0; background: transparent; }
.company-reading-page .company-source-status .dashboard-disclosure { margin-bottom: 0; }
@media (max-width: 48rem) {
  .company-reading-page .company-hero { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .company-reading-page .analysis-tabs button { white-space: normal; text-align: left; }
  .company-reading-page .timeline-days { padding-inline: 1rem; }
  .company-reading-page .company-source-status { padding: 1rem; }
}

/* Quiet dashboard: shared evidence and readable recent-company rows. */
.dashboard-page .start-recent ul { padding: 0 1.25rem; background: var(--surface); border: 1px solid var(--line); border-radius: .7rem; }
.dashboard-page .start-recent-row { grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; }
.dashboard-page .start-recent-row:last-child { border-bottom: 0; }
.dashboard-page .start-recent-company { min-width: 0; }
.dashboard-page .start-recent-company strong { font-size: 1.1rem; }
.dashboard-page .start-recent .start-ticker { display: inline; margin-left: .6rem; }
.dashboard-page .start-recent-row .start-recent-date { font-size: .9rem; }
.dashboard-page .start-recent-evidence { font-size: .9rem; color: var(--muted); margin: .4rem 0 .75rem; }
.dashboard-page .start-recent-row > a { font-weight: 600; }
@media (max-width: 48rem) {
  .dashboard-page .start-recent ul { padding-inline: 1rem; }
  .dashboard-page .start-recent-row { grid-template-columns: minmax(0, 1fr); gap: .35rem; }
  .dashboard-page .start-recent-row > a { grid-column: 1; grid-row: auto; justify-self: start; }
}
