/* Shared colours for the four platform destinations linked from suite.html.
   Layout, typography and business actions remain owned by each page. */
:root {
  color-scheme: dark;
  --bg: #17181a;
  --ink: #f0f0f3;
  --muted: #b5b9c4;
  --line: #36383f;
  --card: #202124;
  --brass: #b4a0ff;
  --good: #77d6aa;
  --shadow: 0 10px 28px #0003;
  --platform-raised: #292b30;
}
html, body { background: var(--bg); color: var(--ink); }
body :is(.rail, .ag-side) { background: #141517; border-color: var(--line); }
body :is(.search, .add, .vault, .ov article, .place-hand, .card, .skill, .job,
  .panel, .drawer, .artifact-panel, .artifact-head, .ag-pv-text) {
  background: var(--card); color: var(--ink); border-color: var(--line);
}
body :is(.right, .ask, .num, .wait, .next li, .switch, .act, .back, .ghost,
  .chip, .chips button, .roles button, .name, .composer, .file, .sent-files,
  .turn.me, .n, .blank, .grade, .picks button, .artifact-head button,
  .artifact-head a, .artifact-controls select) {
  background: var(--platform-raised); color: var(--ink); border-color: var(--line);
}
body :is(input:not([type=checkbox]):not([type=radio]), textarea, select) {
  background: #191a1d; color: var(--ink); border-color: #484a54;
  color-scheme: dark;
}
body .search input { background: transparent; }
body :is(input, textarea)::placeholder { color: var(--muted); opacity: 1; }
body :is(.mark, .ico, .count, .who, .line, .desc, .meta, .skill p, .skill-foot,
  .ov p, .vault .lead, .vault .crypto, .file button, .hint, .note,
  .tabs button, .filters button, .switch button, .artifact-head small) {
  color: var(--muted);
}
body :is(.ico:hover, .ico.active, .chip.on, .chips button.on, .roles button.on,
  .switch button.active, .go, .primary, .start:not(:disabled), .drawer .start,
  .vault-actions button, .vault-head button, .toast) {
  background: #403550; color: var(--ink); border-color: #706083;
}
body :is(.tabs button.active, .filters button.active) { color: var(--ink); }
body .portrait { background: var(--platform-raised) !important; }
body :is(.vault li, .rows div, .job li, .place-hand .card) { border-color: var(--line); }
body .drawer-wrap { background: #0009; }
body .chat.handoff { background: #211e2a; }
body :is(.tag, .act.on, .g-輕) { background: #203b30; color: #8be2b7; }
body :is(.tag-link, .g-標準) { background: #28334a; color: #b4ccff; }
body :is(.g-重, .pill.off) { background: #3b3022; color: #f1c67e; }
body :is(.pill.on, .vault-msg.ok) { color: #77d6aa; }
body :is(.vault .warn, .drop-hint) { color: #f1c67e; }
body .vault-msg:not(.ok) { color: #ffb5b5; }
body :is(.logo, .face, .me) { border-color: var(--line); }
body :is(button, a):focus-visible { outline: 2px solid #b4a0ff; outline-offset: 3px; }
body button:not(:disabled):hover { box-shadow: 0 0 12px #b4a0ff22; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
body :is(.grades, .artifact-card, .artifact-content table) {
  background: var(--card); color: var(--ink); border-color: var(--line);
}
body :is(.grades button.on, .grades button:hover, .sent-files > span,
  .artifact-content th, .artifact-content td:first-child) {
  background: var(--platform-raised); color: var(--ink); border-color: var(--line);
}
body :is(.artifact-note, .artifact-message, .artifact-card small,
  .artifact-content .sheet-warning) { color: var(--muted); }
body :is(.artifact-content td, .artifact-content th) { border-color: var(--line); }
