/* The same living room after dusk: subdued surfaces, readable warm text. */
.topbar-actions { justify-self: end; display: flex; align-items: center; gap: 10px; min-width: 0; }
.theme-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 8px 13px; border: 1px solid var(--companion-line); border-radius: 999px; color: var(--ink); background: var(--paper-card); font: inherit; font-size: 15px; white-space: nowrap; cursor: pointer; }
.theme-toggle:hover { background: var(--green-mist); }
.theme-toggle [data-theme-icon] { font-size: 21px; line-height: 1; }
.login-theme-row { display: flex; justify-content: flex-end; margin: -4px 0 14px; }

:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #151d1f;
  --paper-card: #202a2c;
  --paper-mist: #2c3738;
  --ink: #e2e5dc;
  --ink-soft: #acb9b2;
  --green: #99bba9;
  --green-deep: #b3cfbd;
  --green-mist: #2c3e37;
  --gold: #d0b68b;
  --gold-soft: #403a2d;
  --wood: #bda380;
  --warn: #e6a899;
  --companion-line: rgba(192,212,201,.20);
  --companion-red: #854940;
  --shadow-paper: 0 18px 48px rgba(0,0,0,.20);
  --companion-shadow: 0 18px 48px rgba(0,0,0,.22);
  --night-action: #3e6354;
}

:root[data-theme="dark"] .background-container { filter: saturate(.35) brightness(.65); }
:root[data-theme="dark"] .background-overlay { background: rgba(14,23,26,.94); }
:root[data-theme="dark"] .companion-stage-surface { background-image: linear-gradient(rgba(15,23,26,.70), rgba(15,23,26,.78)), url('../images/everbuddy-living-room.png'); }
:root[data-theme="dark"] .halo-inner { border-color: rgba(187,200,180,.30); }
:root[data-theme="dark"] .halo-outer { border-color: rgba(173,150,109,.48); box-shadow: 0 0 35px rgba(173,150,109,.10); }

:root[data-theme="dark"] :is(.companion-topbar, .top-companion-status, .companion-welcome, .chat-container, .immersive-entry, .control-bar, .space-dock-nav, .pipeline-panel, .familiarity-chip, .live2d-fallback-card, .status-indicator, .immersive-status, .login-dialog, .modal-content, .memory-dialog, .me-popover, .activity-dialog, .paper-card) {
  color: var(--ink); background: var(--paper-card); border-color: var(--companion-line);
}
:root[data-theme="dark"] :is(#space-today, #space-family) { background: var(--paper); }
:root[data-theme="dark"] #space-today .paper-card { background: var(--paper-card); }
:root[data-theme="dark"] :is(.model-loading, .activity-pause-cover) { background: rgba(21,29,31,.94); }
:root[data-theme="dark"] :is(.login-dialog, .memory-dialog)::backdrop { background: rgba(6,12,14,.78); }
:root[data-theme="dark"] :is(.modal, .activity-layer) { background: rgba(6,12,14,.72); }
:root[data-theme="dark"] #settingsModal { background: rgba(6,12,14,.72); }

:root[data-theme="dark"] :is(input:not([type="checkbox"]), select, textarea, .model-select option, .prompt-preview-btn, .background-btn, .memory-card, .memory-dialog button, .games-picker-item, .morning-card .activity-actions button, .mcp-tool-item) {
  color: var(--ink); background-color: var(--paper); border-color: var(--companion-line);
}
:root[data-theme="dark"] .chat-ipt input:focus { color: var(--ink); background: var(--paper); }
:root[data-theme="dark"] :is(input, textarea)::placeholder { color: var(--ink-soft); opacity: 1; }
:root[data-theme="dark"] .model-select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='%23acb9b2'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E"); }
:root[data-theme="dark"] :is(.login-preview-bubble, .terms-checkbox, .memory-history-snapshot, .memory-evidence blockquote, .config-panel, .mcp-tools-container, .mcp-tool-card, .connection-info, .activity-pause-cover, .topic-btn, .song-row) { background-color: var(--paper-mist); border-color: var(--companion-line); }
:root[data-theme="dark"] :is(.login-preview-bubble p, .login-dialog .login-help, .login-dialog.is-registering .login-mode-button, .terms-checkbox, .memory-evidence, .memory-provenance, .memory-layer-description, .memory-event-info, .memory-history-entry, .memory-sync, .memory-meta, .memory-evidence footer, .memory-heading p, .memory-toolbar p) { color: var(--ink-soft); }
:root[data-theme="dark"] .memory-kind { color: var(--green-deep); background: var(--green-mist); }
:root[data-theme="dark"] :is(.login-brand, .login-dialog.is-registering .login-brand, .login-dialog.is-registering .login-mode-button.active, .memory-history-heading, .memory-sync-ready, .terms-checkbox a, .memory-dialog a) { color: var(--green-deep); }
:root[data-theme="dark"] .login-dialog.is-registering .email-code-row .login-retry { color: var(--green-deep); background: var(--paper-mist); border-color: var(--companion-line); }
:root[data-theme="dark"] .login-dialog.is-registering .email-code-row .login-retry:disabled { color: var(--ink-soft); background: var(--paper); }
:root[data-theme="dark"] .login-dialog.is-registering .login-help { color: var(--ink-soft); }
:root[data-theme="dark"] :is(.memory-error, .memory-sync-error, .memory-dialog .memory-delete) { color: var(--warn); }
:root[data-theme="dark"] :is(.memory-important, .memory-dialog .memory-pin[aria-pressed="true"]) { color: var(--gold); background: var(--gold-soft); border-color: var(--gold); }
:root[data-theme="dark"] :is(.profile-initial, .familiarity-heart, .settings-modal .modal-header .eyebrow, .greeting-copy .eyebrow, .demo-badge) { color: var(--gold); }
:root[data-theme="dark"] #space-today .today-date { color: var(--gold) !important; }
:root[data-theme="dark"] .switch-setting input { border-color: var(--companion-line); background: var(--paper-mist); }
:root[data-theme="dark"] .switch-setting input:checked { background: var(--night-action); }

:root[data-theme="dark"] .chat-message.ai .message-bubble { color: var(--ink); background: #2e393a; border-color: var(--companion-line); box-shadow: none; }
:root[data-theme="dark"] .chat-message.user .message-bubble { color: #edf2e9; background: #3c594c; box-shadow: none; }
:root[data-theme="dark"] .account-memory-controls { border-color: var(--companion-line); }
:root[data-theme="dark"] :is(.account-memory-setting p, .account-memory-controls .memory-impact, .account-memory-controls .memory-confirm p) { color: var(--ink-soft); }
:root[data-theme="dark"] .memory-dialog #accountMemoryToggle[aria-checked="true"] { color: var(--green-deep); background: var(--green-mist); border-color: var(--green); }
:root[data-theme="dark"] .pipeline-stages > li { color: var(--ink); background: var(--paper-mist); border-color: var(--companion-line); }
:root[data-theme="dark"] .pipeline-stages :is(.started, .active) { background: #403a2b; border-color: #897652; }
:root[data-theme="dark"] .pipeline-stages .failed { background: #442f2c; border-color: #a36556; }
:root[data-theme="dark"] .pipeline-stages :is(.succeeded, .complete) { background: #2c3e36; border-color: #698675; }
:root[data-theme="dark"] :is(.pipeline-heading > span, .pipeline-details, .status-symbol) { color: var(--green-deep); background: var(--green-mist); border-color: var(--companion-line); }

/* Accent text and filled actions use different shades for readable contrast. */
:root[data-theme="dark"] :is(.companion-welcome-cta, .save-friendly-settings, .login-submit, .btn-primary, .control-btn.recording, .immersive-cta, .match-back, .chain-input-row button, .activity-pause-cover button, .song-row.is-playing) { color: #edf2e9; background: var(--night-action); }
:root[data-theme="dark"] .login-dialog.is-registering .login-submit { color: #edf2e9; background: var(--night-action); }
:root[data-theme="dark"] body[data-call-active="true"] .companion-welcome-cta { background: var(--companion-red); }
:root[data-theme="dark"] .chain-input-row .voice-chain { color: var(--green-deep); background: var(--green-mist); }
:root[data-theme="dark"] .immersive-caption.is-user { color: var(--gold); }
:root[data-theme="dark"] .control-btn:disabled { opacity: .65; }

@media (max-width: 600px) {
  .topbar-actions { gap: 6px; }
  .theme-toggle { gap: 5px; padding-inline: 10px; font-size: 14px; }
}
