/* Glimmer shares the client's inventory-gated, server-selected Lumen skin.
   Keep these overrides after Glimmer's base/identity/portrait styles. No local
   theme state: removing data-lumen-skin restores the original Glimmer instantly. */
body.lumen-os[data-lumen-skin] #glimmer-root {
  --glm-bg: var(--sk-bg);
  --glm-panel: var(--sk-panel);
  --glm-raised: var(--sk-raised);
  --glm-edge: color-mix(in srgb, var(--sk-line) 48%, var(--sk-panel));
  --glm-text: var(--sk-ink);
  --glm-muted: color-mix(in srgb, var(--sk-ink) 76%, var(--sk-panel));
  --glm-accent: var(--sk-accent);
  --glm-cyan: var(--sk-accent);
  --glm-gold: var(--sk-line);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-window {
  border-color: var(--sk-line);
  border-radius: var(--sk-radius);
  box-shadow: 0 28px 120px #0009, 0 0 35px var(--sk-halo);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-topbar {
  background: var(--sk-corner) left top / 62px 62px no-repeat,
    linear-gradient(110deg, var(--glm-raised), var(--glm-bg));
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-rail { background: var(--glm-panel); }
body.lumen-os[data-lumen-skin] #glimmer-root .glm-main {
  background: radial-gradient(ellipse at 95% 0, var(--sk-halo), transparent 60%);
}
body.lumen-os[data-lumen-skin] #glimmer-root :is(.glm-backdrop, .glm-sheet-shade) {
  background: color-mix(in srgb, var(--glm-bg) 80%, transparent);
}
body.lumen-os[data-lumen-skin] #glimmer-root :is(.glm-rail, .glm-main, .glm-sheet-body, .glm-portrait-traits) {
  scrollbar-color: var(--glm-edge) transparent;
}
/* Surfaces and separators, including views opened after the skin changes. */
body.lumen-os[data-lumen-skin] #glimmer-root :is(
  .glm-post, .glm-sheet, .glm-profile-hero, .glm-relationship,
  .glm-event-card, .glm-message-row, .glm-settings-form, .glm-report-card,
  .glm-draft-capture, .glm-portfolio-tile, .glm-skeleton) {
  background: var(--glm-panel);
  border-color: var(--glm-edge);
}
body.lumen-os[data-lumen-skin] #glimmer-root :is(
  .glm-community-card, .glm-request-card, .glm-memory, .glm-event-detail) {
  background: radial-gradient(ellipse at 100% 0, var(--sk-halo), transparent 65%), var(--glm-panel);
  border-color: var(--glm-edge);
}
body.lumen-os[data-lumen-skin] #glimmer-root :is(.glm-sheet, .glm-profile-hero) {
  border-radius: var(--sk-radius);
}
body.lumen-os[data-lumen-skin] #glimmer-root :is(
  .glm-media, .glm-comments, .glm-reshare, .glm-search,
  .glm-portrait-character, .glm-profile-portrait-edit, .glm-portrait-stage) {
  background: var(--glm-bg);
  border-color: var(--glm-edge);
}
body.lumen-os[data-lumen-skin] #glimmer-root :is(
  .glm-post-actions, .glm-form-actions, .glm-sheet-head, .glm-profile-counts,
  .glm-person-result, .glm-member-row, .glm-profile-cover-preview, .glm-commissions,
  .glm-event-rsvp, .glm-check, .glm-audit, .glm-unavailable,
  .glm-portrait-details[open], .glm-portrait-controls) { border-color: var(--glm-edge); }
body.lumen-os[data-lumen-skin] #glimmer-root :is(.glm-sheet-head, .glm-portrait-sheet .glm-sheet-head) {
  background: linear-gradient(110deg, var(--glm-raised), var(--glm-panel));
}
body.lumen-os[data-lumen-skin] #glimmer-root :is(.glm-link-card, .glm-privacy-note) {
  background: var(--glm-raised);
  border-color: var(--glm-edge);
  color: var(--glm-text);
}
/* Text retains contrast on each palette; errors and connection status keep
   their semantic colors. Portrait canvases and art swatches are not recolored. */
body.lumen-os[data-lumen-skin] #glimmer-root :is(
  .glm-brand strong, .glm-account strong, .glm-author-name, .glm-post-body,
  .glm-label, .glm-posting-as, .glm-bio, .glm-relationship strong,
  .glm-member-row > strong, .glm-message-row strong, .glm-message-subject,
  .glm-empty h3, .glm-media-text, .glm-portrait-character strong,
  .glm-portrait-traits dd, .glm-portrait-traits ul, .glm-portrait-choice-group legend,
  .glm-profile-portrait-edit strong) { color: var(--glm-text); }
body.lumen-os[data-lumen-skin] #glimmer-root :is(
  .glm-rail-note, .glm-thread-endorsement, .glm-post-meta, .glm-media-caption,
  .glm-post-tally, .glm-caught-up, .glm-empty p, .glm-search > .glm-icon,
  .glm-profile-counts, .glm-message-preview, .glm-event-description,
  .glm-time-note, .glm-event-location, .glm-unavailable, .glm-audit,
  .glm-portrait-placeholder, .glm-portrait-caption, .glm-portrait-note,
  .glm-portrait-details, .glm-portrait-traits dt, .glm-portrait-character .glm-muted,
  .glm-profile-portrait-edit p, .glm-welcome > p) { color: var(--glm-muted); }
body.lumen-os[data-lumen-skin] #glimmer-root :is(
  .glm-brand > .lt-mark, .glm-thread-endorsement .lt-mark, .glm-eyebrow,
  .glm-composer-prompt > .glm-icon, .glm-media-caption .glm-badge,
  .glm-item-stage strong, .glm-link-card > .glm-icon, .glm-empty > .glm-icon,
  .glm-reaction-symbol, .glm-profile-title, .glm-message-meta > small,
  .glm-request-card > strong, .glm-event-emblem, .glm-event-time,
  .glm-notification > .glm-icon, .glm-memory > .glm-icon) { color: var(--glm-accent); }
body.lumen-os[data-lumen-skin] #glimmer-root .glm-dot { color: var(--glm-edge); }
/* Controls keep their existing targets, dimensions and keyboard behavior. */
body.lumen-os[data-lumen-skin] #glimmer-root .glm-button {
  background: var(--glm-panel);
  border-color: var(--glm-edge);
  color: var(--glm-text);
}
body.lumen-os[data-lumen-skin] #glimmer-root :is(
  .glm-icon-button, .glm-nav-item, .glm-tab, .glm-text-button, .glm-author-name,
  .glm-feed-shortcuts .glm-button, .glm-post-actions > .glm-button, .glm-compose-tools > .glm-button) {
  background: transparent;
  border-color: transparent;
  color: var(--glm-muted);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-author-name { color: var(--glm-text); }
body.lumen-os[data-lumen-skin] #glimmer-root :is(.glm-button.glm-soft, .glm-home-button) {
  border-color: var(--glm-edge);
  color: var(--glm-accent);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-button:hover:not(:disabled) {
  background: var(--glm-raised);
  border-color: var(--glm-accent);
  color: var(--glm-accent);
}
body.lumen-os[data-lumen-skin] #glimmer-root :is(
  .glm-button.glm-selected, .glm-nav-item[aria-current=page], .glm-tab[aria-pressed=true],
  .glm-portrait-backdrop-choice[aria-pressed=true], .glm-portrait-frame-choice[aria-pressed=true]) {
  background: var(--glm-raised);
  border-color: var(--sk-gem);
  color: var(--glm-accent);
  box-shadow: inset 0 -2px var(--sk-gem), 0 0 12px var(--sk-halo);
}
body.lumen-os[data-lumen-skin] #glimmer-root :is(.glm-button.glm-primary, .glm-count) {
  background: var(--glm-accent);
  border-color: var(--glm-accent);
  color: var(--glm-bg);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-button.glm-primary:hover:not(:disabled) {
  background: var(--glm-text);
  border-color: var(--glm-text);
  color: var(--glm-bg);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-button.glm-danger {
  background: #582d3a; border-color: #a95f73; color: #ffe6eb;
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-button.glm-danger-text { color: #f5b0bc; }
body.lumen-os[data-lumen-skin] #glimmer-root .glm-input {
  background: var(--glm-bg); border-color: var(--glm-edge); color: var(--glm-text);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-input::placeholder { color: var(--glm-muted); }
body.lumen-os[data-lumen-skin] #glimmer-root .glm-search-field .glm-input { background: transparent; }
body.lumen-os[data-lumen-skin] #glimmer-root .glm-check input { accent-color: var(--glm-accent); }
body.lumen-os[data-lumen-skin] #glimmer-root .glm-composer-prompt {
  background: linear-gradient(115deg, var(--glm-raised), var(--glm-panel));
  border-color: var(--glm-edge); color: var(--glm-text);
}
body.lumen-os[data-lumen-skin] #glimmer-root :is(.glm-badge, .glm-community-symbol, .glm-date-stamp) {
  background: var(--glm-raised); border-color: var(--glm-edge); color: var(--glm-accent);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-unread {
  background: var(--glm-raised); border-color: var(--sk-line);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-poll-option:before { background: var(--sk-halo); }
body.lumen-os[data-lumen-skin] #glimmer-root .glm-poll-option[aria-pressed=true] { border-color: var(--glm-accent); }
body.lumen-os[data-lumen-skin] #glimmer-root .glm-toast:not(.glm-toast-error) {
  background: var(--glm-raised); border-color: var(--sk-line); color: var(--glm-text);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-portrait-status:not(.glm-error) {
  background: var(--glm-bg); border-color: var(--glm-edge); color: var(--glm-muted);
}
/* Decorative surfaces reuse each skin's tracery, without adding skin names. */
body.lumen-os[data-lumen-skin] #glimmer-root .glm-profile-cover {
  background: var(--sk-corner) left top / 110px 110px no-repeat,
    radial-gradient(ellipse at 70% 100%, var(--sk-halo), transparent 65%),
    linear-gradient(110deg, var(--glm-raised), var(--glm-bg));
  border-color: var(--glm-edge);
}
body.lumen-os[data-lumen-skin] #glimmer-root :is(.glm-profile-cover > .glm-icon, .glm-cover-word) {
  color: color-mix(in srgb, var(--glm-accent) 35%, transparent);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-avatar {
  background: radial-gradient(ellipse at 50% 70%, var(--glm-raised), var(--glm-bg));
  border-color: var(--glm-edge); color: var(--glm-accent);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-avatar-large {
  border-color: var(--glm-panel); box-shadow: 0 0 0 1px var(--sk-line);
}
body.lumen-os[data-lumen-skin] #glimmer-root :is(.glm-capture-stage, .glm-item-stage) {
  background: radial-gradient(ellipse at 50% 80%, var(--sk-halo), transparent 65%), var(--glm-bg);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-capture-stage:after { border-color: var(--glm-edge); }
body.lumen-os[data-lumen-skin] #glimmer-root .glm-empty {
  background: var(--glm-panel); border-color: var(--glm-edge);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-welcome {
  background: var(--sk-corner) left top / 100px 100px no-repeat,
    radial-gradient(ellipse at 90% 0, var(--sk-halo), transparent 65%), var(--glm-panel);
  border-color: var(--glm-edge);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-welcome:before { background: none; }
body.lumen-os[data-lumen-skin] #glimmer-root .glm-welcome-art {
  color: var(--glm-accent); background: radial-gradient(circle, var(--sk-halo), transparent 65%);
}
body.lumen-os[data-lumen-skin] #glimmer-root .glm-skeleton-avatar { background: var(--glm-raised); }
body.lumen-os[data-lumen-skin] #glimmer-root .glm-skeleton-lines {
  background: linear-gradient(var(--glm-raised) 0 14px, transparent 14px 26px,
    var(--glm-raised) 26px 38px, transparent 38px 62px, var(--glm-raised) 62px 73px, transparent 73px);
}
/* The account dialog is mounted beside #glimmer-root. */
body.lumen-os[data-lumen-skin] .glimmer-auth {
  background: var(--sk-panel); border-color: var(--sk-line); color: var(--sk-ink);
  border-radius: var(--sk-radius);
}
body.lumen-os[data-lumen-skin] .glimmer-auth::backdrop { background: color-mix(in srgb, var(--sk-bg) 80%, transparent); }
body.lumen-os[data-lumen-skin] .glimmer-auth :is(h2, .glimmer-auth-eyebrow, .glimmer-auth-status) { color: var(--sk-accent); }
body.lumen-os[data-lumen-skin] .glimmer-auth-intro { color: var(--sk-ink); }
body.lumen-os[data-lumen-skin] .glimmer-auth input {
  background: var(--sk-bg); border-color: var(--sk-line); color: var(--sk-ink);
}
body.lumen-os[data-lumen-skin] :is(.glimmer-auth button, #open-glimmer) {
  background: var(--sk-raised); border-color: var(--sk-line); color: var(--sk-ink);
}
body.lumen-os[data-lumen-skin] .glimmer-auth button.glimmer-auth-primary {
  background: var(--sk-accent); border-color: var(--sk-accent); color: var(--sk-bg);
}
body.lumen-os[data-lumen-skin] .glimmer-auth :is(button, input):focus-visible { outline-color: var(--sk-accent); }
@media (max-width:700px) {
  body.lumen-os[data-lumen-skin] #glimmer-root :is(.glm-window, .glm-window.glm-expanded) { border-radius: 0; }
}
