/* Flexible Catalyst foundations. Preserve the approved home and floating shell. */
:root {
  --catalyst-primary: #008194;
  --catalyst-hover: #017384;
  --catalyst-active: #026371;
  --catalyst-ink: #1b1f26;
  --catalyst-muted: #515c6c;
  --catalyst-canvas: #f2f4f7;
  --catalyst-line: #d7dbe0;
  --catalyst-subtle-line: #ebecf0;
  --catalyst-success: #008458;
  --catalyst-warning: #9f6100;
  --catalyst-danger: #c22e0b;
  --catalyst-focus: #0071ff;
}
body { background: var(--catalyst-canvas); }
body[data-scene]:not([data-scene="1"]):not([data-scene="13"]) { background: var(--catalyst-canvas); }
body:not([data-scene="1"]) #main,
#overlay .modal {
  --blue: var(--catalyst-primary);
  --navy: var(--catalyst-ink);
  --border: var(--catalyst-line);
  --muted: var(--catalyst-muted);
  --green: var(--catalyst-success);
  --orange: var(--catalyst-warning);
  --live-ink: var(--catalyst-ink);
  --live-ink-soft: var(--catalyst-ink);
  --live-muted: var(--catalyst-muted);
  --live-line: var(--catalyst-line);
  color: var(--catalyst-ink);
  font-size: 15px;
  line-height: 1.5;
}
body:not([data-scene="1"]) #main .page-heading { margin-bottom: 24px; }
body:not([data-scene="1"]) #main .page-heading :is(h1, .title) {
  color: var(--catalyst-ink);
  font-size: 28px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -.45px;
}
body:not([data-scene="1"]) #main .page-heading .lead {
  color: var(--catalyst-muted);
  font-size: 15px;
  line-height: 1.55;
}
body:not([data-scene="1"]) #main .small,
#overlay .modal .small { font-size: 14px; }
body:not([data-scene="1"]) #main .muted,
#overlay .modal .muted { color: var(--catalyst-muted); }
body:not([data-scene="1"]) #main :is(.card,.metric,.source-card,.widget-preview),
#overlay .modal {
  border-color: var(--catalyst-line);
  border-radius: 12px;
  box-shadow: 0 1px 3px rgb(27 31 38 / 6%);
}
body:not([data-scene="1"]) #main .card { padding: 24px; }
body:not([data-scene="1"]) #main .card-header { margin-bottom: 16px; }
body:not([data-scene="1"]) #main :is(.card,.source-card) :is(h2,h3) { font-weight: 600; }
body:not([data-scene="1"]) #main :is(.btn,button,input,select,textarea),
#overlay .modal :is(.btn,button,input,select,textarea) { font-family: inherit; }
body:not([data-scene="1"]) #main .btn,
#overlay .modal .btn {
  min-height: 40px;
  padding: 9px 14px;
  border: 1px solid var(--catalyst-line);
  border-radius: 8px;
  background: #fff;
  color: var(--catalyst-ink);
  box-shadow: none;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.35;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}
body:not([data-scene="1"]) #main .btn.primary,
#overlay .modal .btn.primary {
  border-color: var(--catalyst-primary);
  background: var(--catalyst-primary);
  color: #fff;
  font-weight: 600;
}
body:not([data-scene="1"]) #main .btn.primary:hover:not(:disabled),
#overlay .modal .btn.primary:hover:not(:disabled) {
  border-color: var(--catalyst-hover);
  background: var(--catalyst-hover);
}
body:not([data-scene="1"]) #main .btn.primary:active:not(:disabled),
#overlay .modal .btn.primary:active:not(:disabled) { background: var(--catalyst-active); }
body:not([data-scene="1"]) #main .btn:not(.primary):not(.link):hover:not(:disabled),
#overlay .modal .btn:not(.primary):not(.link):hover:not(:disabled) {
  border-color: var(--catalyst-primary);
  background: var(--catalyst-canvas);
}
body:not([data-scene="1"]) #main .btn.link,
#overlay .modal .btn.link {
  min-height: 36px;
  padding: 7px 2px;
  border-color: transparent;
  background: transparent;
  color: var(--catalyst-primary);
  font-weight: 600;
  text-decoration: none;
}
body:not([data-scene="1"]) #main .btn.link:hover:not(:disabled),
#overlay .modal .btn.link:hover:not(:disabled) {
  color: var(--catalyst-hover);
  text-decoration: underline;
  text-underline-offset: 3px;
}
body:not([data-scene="1"]) #main .btn.danger,
#overlay .modal .btn.danger {
  border-color: var(--catalyst-danger);
  background: #fff;
  color: var(--catalyst-danger);
}
body:not([data-scene="1"]) #main .btn:disabled,
#overlay .modal .btn:disabled { opacity: .55; cursor: not-allowed; }
body:not([data-scene="1"]) #main :is(button,a,input,select,textarea,summary):focus-visible,
#overlay .modal :is(button,a,input,select,textarea,summary):focus-visible {
  outline: 2px solid var(--catalyst-focus);
  outline-offset: 3px;
}
body:not([data-scene="1"]) #main :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea),
#overlay .modal :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  border-color: var(--catalyst-line);
  border-radius: 8px;
  background: #fff;
  color: var(--catalyst-ink);
  font-size: 14px;
  line-height: 1.5;
}
body:not([data-scene="1"]) #main :is(input,textarea)::placeholder,
#overlay .modal :is(input,textarea)::placeholder { color: var(--catalyst-muted); opacity: 1; }
body:not([data-scene="1"]) #main :is(input[type="checkbox"],input[type="radio"]),
#overlay .modal :is(input[type="checkbox"],input[type="radio"]) { accent-color: var(--catalyst-primary); }
body:not([data-scene="1"]) #main .badge,
#overlay .modal .badge { border-radius: 4px; font-size: 12px; font-weight: 600; }
body:not([data-scene="1"]) #main .badge.blue,
#overlay .modal .badge.blue { background: var(--catalyst-subtle-line); color: var(--catalyst-muted); }
body:not([data-scene="1"]) #main .badge.green,
#overlay .modal .badge.green { background: #d4ede4; color: #005f40; }
body:not([data-scene="1"]) #main .badge.orange,
#overlay .modal .badge.orange { background: #ffdea8; color: #9f6100; }
body:not([data-scene="1"]) #main .badge.red,
#overlay .modal .badge.red { background: #fbc7bb; color: #9e2609; }
body:not([data-scene="1"]) #main .callout,
#overlay .modal .callout { border-radius: 8px; background: var(--catalyst-canvas); border-color: var(--catalyst-line); }
body:not([data-scene="1"]) #main .callout.blue,
#overlay .modal .callout.blue { background: #eef7f8; border-color: #c9e5e8; }
body:not([data-scene="1"]) #main .callout.green,
#overlay .modal .callout.green { background: #edf8f3; border-color: #d4ede4; }
body:not([data-scene="1"]) #main .callout.orange,
#overlay .modal .callout.orange { background: #fff7e8; border-color: #ffdea8; }
body:not([data-scene="1"]) #main .callout.red,
#overlay .modal .callout.red { background: #fff1ed; border-color: #fbc7bb; }
body:not([data-scene="1"]) #main :is(.icon-tile,.source-icon) {
  border-radius: 8px;
  background: var(--catalyst-canvas);
  color: var(--catalyst-primary);
}
#overlay .modal { background: #fff; }
#overlay .modal > header { gap: 16px; padding: 20px 24px; border-bottom: 1px solid var(--catalyst-subtle-line); }
#overlay .modal > header h2 { color: var(--catalyst-ink); font-size: 24px; font-weight: 600; }
#overlay .modal-body { padding: 24px; }
#toast { border-radius: 8px; background: #1b1f26; color: #fff; }
/* Sign-in is part of the site, retaining Microsoft's existing auth flow. */
.auth-gate {
  background: radial-gradient(ellipse at 80% 15%, #175b63 0%, #073d48 55%, #053039 100%);
  animation: none;
}
.auth-panel { border-color: var(--catalyst-line); border-radius: 16px; box-shadow: 0 8px 24px rgb(0 0 0 / 12%); }
.auth-brand { background: #073d48; border-radius: 8px; }
.auth-eyebrow { color: var(--catalyst-primary); letter-spacing: .04em; }
.auth-panel h1 { color: var(--catalyst-ink); font-size: 28px; font-weight: 600; }
.auth-submit { min-height: 44px; border-radius: 8px; background: var(--catalyst-primary); font-size: 15px; font-weight: 600; }
.auth-submit:hover { background: var(--catalyst-hover); }
.auth-submit:active { background: var(--catalyst-active); }
.auth-submit:focus-visible { outline: 2px solid var(--catalyst-focus); outline-offset: 3px; }
.auth-error { color: var(--catalyst-danger); }
@media (max-width:700px) {
  body:not([data-scene="1"]) #main .card { padding: 16px; }
  #overlay .modal > header, #overlay .modal-body { padding: 16px; }
  #overlay .modal > header h2 { font-size: 20px; }
}
@media (prefers-reduced-motion:reduce) {
  body:not([data-scene="1"]) #main :is(button,a,input,select,textarea),
  #overlay .modal :is(button,a,input,select,textarea) { transition: none; animation: none; }
}
