/* Create, library and shared study sets · Signal skin.
   Loaded last. Keep the library's editorial rows and all functional hooks. */
body.signal-public,
[data-dark] body.signal-public {
  --font-display: var(--ds-font-display);
  --violet: var(--ds-violet-600);
  --ink: var(--ds-ink);
  --mut: var(--ds-ink-2);
  --line: var(--ds-line);
  --card: var(--ds-surface);
  --public-ink: var(--ds-ink);
  --public-muted: var(--ds-ink-2);
  --public-line: var(--ds-line);
  --public-ground: var(--ds-bg);
  --public-soft: var(--ds-surface);
  --public-accent: var(--ds-accent-ink);
  font-family: var(--ds-font-text);
  color: var(--ds-ink);
  background-color: var(--ds-bg);
  background-image: linear-gradient(180deg, var(--ds-bg-2), transparent);
  background-repeat: no-repeat;
  background-size: 100% 420px;
}

html:has(> body.signal-public) { background-color: var(--ds-bg); }

body.signal-public :is(h1, h2, h3, .brand-name, .foot-brand) {
  font-family: var(--ds-font-display);
  overflow-wrap: anywhere;
}

body.signal-public :is(.eyebrow, .empty-label) {
  font-family: var(--ds-font-mono);
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ds-accent-ink);
}

body.signal-public :is(.topbar, .site-foot) {
  background: var(--ds-bg);
  border-color: var(--ds-line);
}

body.signal-public :is(.topbar-app, .note a, .state a, .vote-msg a, .ed-msg a, .trust-item svg),
body.signal-public .opt .go {
  color: var(--ds-accent-ink);
}

body.signal-public :is(.opt, .tip, .edit-details),
body.signal-public #mainContent {
  background: var(--ds-surface);
  border-color: var(--ds-line);
  box-shadow: none;
}

body.signal-public :is(.opt, .tip):hover {
  border-color: var(--ds-line-2);
  box-shadow: none;
  transform: none;
}

body.signal-public :is(.ic-violet, .ic-cyan) {
  background: var(--ds-accent-soft);
  color: var(--ds-accent-ink);
}

body.signal-public :is(.sub, .byline, .rating, .ed-label, .ed-msg, .ed-cancel, .vote-msg, .report-msg, .report-hint, .report-link, .trust) {
  color: var(--ds-ink-2);
}

body.signal-public .trust { border-color: var(--ds-line); }
body.signal-public .share-msg { color: var(--ds-coral); }

body.signal-public :is(.cta, .create-btn, .btn-cta, .ed-save) {
  background: var(--ds-violet-600);
  color: var(--ds-on-accent);
}

/* These base styles stay below selected votes and successful sharing. */
body.signal-public :is(.home, .lib, .btn-outline, .edit-details-btn, .vote-btn, .share-btn) {
  background: var(--ds-surface);
  color: var(--ds-accent-ink);
  border-color: var(--ds-line-2);
}

body.signal-public :is(.cta, .create-btn, .btn-cta, .ed-save, .home, .lib, .btn-outline, .edit-details-btn, .vote-btn, .share-btn) {
  border-radius: 10px;
  font-family: var(--ds-font-text);
  font-weight: 650;
  box-shadow: none;
}

body.signal-public :is(.cta, .create-btn, .btn-cta, .ed-save, .home, .lib, .btn-outline, .edit-details-btn, .vote-btn, .share-btn):is(:hover, :active) {
  transform: none;
  box-shadow: none;
}

body.signal-public :is(.search input, .ed-input) {
  color: var(--ds-ink);
  background: var(--ds-bg-2);
  border-color: var(--ds-line-2);
}

body.signal-public :is(.search input, .ed-input):focus {
  border-color: var(--ds-accent-ink);
  box-shadow: 0 0 0 3px var(--ds-accent-soft);
}

body.signal-public .ed-cancel { border-color: var(--ds-line-2); }
body.signal-public :is(.ed-cancel, .report-link) { border-radius: 10px; }
body.signal-public .brand-mark { box-shadow: none; }

body.signal-public:not(.public-library) .chip {
  background: var(--ds-accent-soft);
  color: var(--ds-accent-ink);
  border-color: var(--ds-line);
}

body.signal-public .chip { font-family: var(--ds-font-mono); font-weight: 500; }

body.signal-public .bot { animation: none; filter: none; }
body.signal-public .cta::before { content: none; }

/* Author controls use flex layouts; respect their JavaScript hidden state. */
body.signal-public :is(.edit-details, .edit-details-btn)[hidden] { display: none; }

/* Preserve the existing reveal / hidden-state rules; only quiet decoration. */
body.signal-public .opt:hover .go .arr { transform: none; }
