/* luneBrief PWA — single-page notification-center shell.
   Brand-token mirror of internal/admin/static/styles.css :root +
   landing/src/assets/styles.css :root, locked 2026-04-19 (Nordic
   coastal editorial register). When docs/brand/tokens.md changes,
   every consumer must move in lock-step — see that file's
   "Surfaces consuming these tokens" table.

   This file is loaded under the production CSP
   `default-src 'self'; script-src 'self'`, so no inline styles or
   external font imports are permitted. Typography uses a system
   stack; the brand's editorial typography (humanist serif) lives
   on the marketing landing only. */

:root {
  --bg-deep:      #070b14;
  --bg:           #0c1220;
  --bg-mid:       #131c2e;
  --text-primary: #e6eaf2;
  --text-body:    #b8bfc9;
  --text-muted:   #7c8494;
  --accent:       #d4b88a;
  --divider:      rgba(229, 234, 242, 0.08);

  --status-ok-bg:    rgba(133, 191, 142, 0.12);
  --status-ok-text:  #a4d4ad;
  --status-err-bg:   rgba(214, 92, 92, 0.12);
  --status-err-text: #d68f8f;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--text-body);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
               "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

.page {
  max-width: 28rem;
  margin: 0 auto;
  padding: 3rem 1.5rem 2rem;
}

.brand-eyebrow {
  margin: 0 0 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.75rem;
  color: var(--text-muted);
}

.wordmark {
  margin: 0 0 0.5rem;
  font-size: 2.25rem;
  font-weight: 600;
  color: var(--text-primary);
  letter-spacing: -0.01em;
}

.tagline {
  margin: 0 0 2rem;
  color: var(--text-body);
}

.status {
  border-radius: 0.5rem;
  padding: 1rem 1.25rem;
  margin: 0 0 1.5rem;
  border: 1px solid var(--divider);
  background: var(--bg-mid);
}

.status--ok {
  background: var(--status-ok-bg);
  border-color: transparent;
}

.status--ok .status__title { color: var(--status-ok-text); }

.status--err {
  background: var(--status-err-bg);
  border-color: transparent;
}

.status--err .status__title { color: var(--status-err-text); }

.status__title {
  margin: 0;
  font-weight: 600;
  color: var(--text-primary);
}

.status__detail {
  margin: 0.25rem 0 0;
  color: var(--text-muted);
  font-size: 0.9rem;
}

.status__detail:empty { display: none; }

.cta {
  display: block;
  width: 100%;
  padding: 0.85rem 1rem;
  border: 1px solid var(--accent);
  background: var(--accent);
  color: var(--bg-deep);
  font-size: 1rem;
  font-weight: 600;
  border-radius: 0.5rem;
  cursor: pointer;
  margin: 0 0 1.5rem;
  font-family: inherit;
}

.cta:hover { background: transparent; color: var(--accent); }
.cta:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.cta[disabled] { opacity: 0.6; cursor: not-allowed; }

.banner {
  border: 1px solid var(--divider);
  border-radius: 0.5rem;
  padding: 1rem 1.25rem;
  margin: 0 0 1.5rem;
  background: var(--bg-mid);
}

.banner__title {
  margin: 0 0 0.25rem;
  font-weight: 600;
  color: var(--text-primary);
}

.banner__detail {
  margin: 0;
  color: var(--text-body);
  font-size: 0.9rem;
}

.footnote {
  border-top: 1px solid var(--divider);
  padding-top: 1.5rem;
  margin-top: 2rem;
  color: var(--text-muted);
  font-size: 0.85rem;
}

.footnote a {
  color: var(--accent);
  text-decoration: none;
}

.footnote a:hover { text-decoration: underline; }
