/* Theme surfaces are separate from layout. Evidence images keep their original colors. */
:root { color-scheme: light; }

.theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--surface);
  color: #64516e;
  font-size: 12px;
  font-weight: 550;
  white-space: nowrap;
  flex-shrink: 0;
}
.theme-toggle:hover { background: var(--plum-soft); }
.theme-toggle:focus-visible { outline: 3px solid var(--cyan); outline-offset: 3px; }
.theme-toggle--standalone { position: fixed; top: 20px; right: 24px; z-index: 30; }

:root[data-theme="night"] {
  color-scheme: dark;
  color: #eee8f0;
  background: #2b2934;
  --page: #2b2934;
  --surface: #35323f;
  --surface-raised: #3e3948;
  --surface-inset: #302d39;
  --text: #eee8f0;
  --muted: #bfb5c9;
  --border: #544d60;
  --input-border: #84758f;
  --plum: #d4b9e2;
  --plum-dark: #eee0f5;
  --plum-soft: #483d51;
  --cyan: #8dcfd2;
  --cyan-soft: #30484c;
  --success: #acd9bc;
  --success-bg: #30483d;
  --warning: #e9cb93;
  --warning-bg: #4a4030;
  --danger: #f1b5c4;
  --danger-bg: #4c3541;
  --shadow: 0 4px 18px #17131e18;
  scrollbar-color: #80728d var(--page);
}

html[data-theme="night"] :is(.sidebar,.topbar,.workspace-footer) { background: var(--surface-inset); border-color: var(--border); }
html[data-theme="night"] .brand img { background: #c2d6d9; border-radius: 11px; padding: 4px; }
html[data-theme="night"] .mode-label { border-color: #796b85; }
html[data-theme="night"] :is(.panel,.metric-card,.agent-card,.report-summary__metric,.modal,.auth-card) { background: var(--surface); border-color: var(--border); }
html[data-theme="night"] :is(.modal__heading,th,.agent-card__footer,.step-editor__item,.check-card,.mission-facts) { background: var(--surface-raised); border-color: var(--border); }
html[data-theme="night"] :is(.event-technical p,.search-field,.selected-resource,.token-box,.observation,.draft-preview,.capture-view,.upload-files>span) { background: var(--surface-inset); border-color: var(--border); }
html[data-theme="night"] :is(.environment-card,.connection-card,.legacy-card,.scenario-row,.quiet-empty,td,.settings-tabs,.agent-budget,.card-footer,.modal__footer,fieldset,.step-editor,.usage-line,.auth-note,.migration-trace details,.smr-preview__scenario,.smr-preview__scenario details) { border-color: var(--border); }
html[data-theme="night"] :is(tbody tr:hover,.main-nav>button:hover,.icon-button:hover:not(:disabled),.report-list__item:hover,.report-list__item.is-selected) { background: var(--surface-raised); border-color: var(--border); }

/* Body copy uses a small, consistent set of readable tones across every module. */
html[data-theme="night"] :is(
  .brand>span>span,.workspace-select select,.topbar__breadcrumb>strong,.metric-card>strong,
  td>strong,.table-title,.scenario-name,.agent-card h2,.agent-budget strong,
  .environment-card h3,.connection-card h3,.detail-pairs strong,.connection-identity,
  .modal__heading h2,.field__label,.checkbox-grid label,.checkbox-fieldset>label,
  .check-card strong,legend,.mission-facts strong,.event-timeline__title strong,
  .empty-state h3,.legacy-card strong,.auth-card h1,.auth-card h2
) { color: var(--text); }
html[data-theme="night"] :is(
  .muted,.brand small,.sidebar__workspace>span,.sidebar-label,.sidebar__legacy>button,.main-nav>button,
  .service-status strong,.service-status small,.app-version,.topbar__breadcrumb,.mode-label,.user-badge small,
  .page-heading p,.workspace-footer,.metric-card__top,.metric-card>p,.panel__heading p,
  .count-label,.scenario-row__main>p,.scenario-row__meta,.table-subtitle,td,th,.verdict,
  .quiet-empty,.empty-state p,.agent-card__model,.agent-card__prompt,.agent-card__scope,
  .agent-card__footer>span,.agent-budget span,.environment-card>p,.connection-card>p,
  .detail-pairs>span,.field__hint,.modal__heading p,.checkbox-fieldset p,.check-card small,
  .plain-list,.mission-detail__toolbar>.muted,.mission-facts span,.event-timeline__title time,
  .event-timeline__body>p,.usage-line,.legacy-card p,.settings-tabs button,.report-list__item small,
  .report-summary__metric span,.section-label>span,.upload-zone small,.upload-files small,
  .migration-trace dt,.migration-trace__list span,.migration-trace__list code,.auth-card p,
  .auth-note,.auth-illustration p,.event-technical
) { color: var(--muted); }
html[data-theme="night"] .workspace-create { color: var(--muted)!important; }
html[data-theme="night"] :is(.eyebrow,.section-label,.selected-resource strong,.report-list__item strong,.report-summary__metric,.upload-zone strong,.upload-files>span,.token-box,.observation,.draft-preview,.migration-trace summary,.smr-targets summary,.smr-preview details summary,.auth-illustration h1) { color: var(--plum); }
html[data-theme="night"] :is(.main-nav>button.is-active,.settings-tabs button.is-active) { color: var(--plum); }
html[data-theme="night"] :is(.avatar,.tag,.scenario-row__symbol,.tile-icon,.empty-state__icon,.step-number,.upload-zone__icon) { color: var(--plum); background: var(--plum-soft); border-color: var(--border); }
html[data-theme="night"] :is(.scenario-row:nth-child(2n) .scenario-row__symbol,.tile-icon--provider) { color: var(--cyan); background: var(--cyan-soft); border-color: #506b70; }
html[data-theme="night"] .empty-state__icon:after { border-color: var(--border); }
html[data-theme="night"] .scenario-row__meta>span+span:not(.tag):before { color: var(--muted); }

html[data-theme="night"] .button--primary { background: #bea4ce; color: #302638; box-shadow: 0 3px 9px #20172820; }
html[data-theme="night"] .button--primary:hover:not(:disabled) { background: #ceb6dd; }
html[data-theme="night"] .button--secondary { background: var(--surface-raised); color: var(--text); border-color: #796b85; }
html[data-theme="night"] .button--secondary:hover:not(:disabled) { background: #4c4357; border-color: #a18caf; }
html[data-theme="night"] .button--danger { background: var(--danger-bg); color: var(--danger); border-color: #916577; }
html[data-theme="night"] .button--danger:hover:not(:disabled) { background: #5c3e4c; }
html[data-theme="night"] .icon-button { color: var(--muted); }
html[data-theme="night"] .text-button:hover:not(:disabled) { color: #e5c9ef; }
html[data-theme="night"] .theme-toggle { background: var(--plum-soft); color: #eadcf2; border-color: #80708c; }
html[data-theme="night"] .theme-toggle:hover { background: #55465f; }
html[data-theme="night"] :is(button,a,input,select,textarea,summary):focus-visible { outline: 3px solid var(--cyan); outline-offset: 3px; }

html[data-theme="night"] :is(.field input,.field select,.field textarea,.compact-select) { color: var(--text); background: var(--surface-inset); border-color: var(--input-border); }
html[data-theme="night"] :is(.field input,.field select,.field textarea):hover { border-color: #a090ac; }
html[data-theme="night"] :is(.field input,.field select,.field textarea):focus { border-color: var(--cyan); outline: 2px solid #8dcfd244; }
html[data-theme="night"] :is(.field input:disabled,.field select:disabled) { background: var(--surface-raised); color: var(--muted); border-color: var(--border); }
html[data-theme="night"] :is(.field input,.field textarea,.search-field input)::placeholder { color: #b6aabe; }
html[data-theme="night"] .search-field { border-color: var(--input-border); color: var(--muted); }
html[data-theme="night"] .search-field input { color: var(--text); }
html[data-theme="night"] select option { background: var(--surface-inset); color: var(--text); }
html[data-theme="night"] input[type="checkbox"] { accent-color: #c6a8d7; }

/* Muted status surfaces retain distinct colors and their existing text labels. */
html[data-theme="night"] .status { background: var(--plum-soft); color: var(--muted); }
html[data-theme="night"] :is(.status--success,.notice--success,.mission-summary--conforme,.event-timeline__dot) { background: var(--success-bg); border-color: #5a7b68; color: var(--success); }
html[data-theme="night"] :is(.status--warning,.tag--warning,.notice--warning,.attention-strip,.question-card) { background: var(--warning-bg); border-color: #7c6a4b; color: var(--warning); }
html[data-theme="night"] :is(.status--danger,.notice--error,.mission-summary--anomalie,.event-timeline__dot.is-error) { background: var(--danger-bg); border-color: #856171; color: var(--danger); }
html[data-theme="night"] :is(.notice,.status--cyan,.mini-card,.security-banner--cyan) { background: var(--cyan-soft); border-color: #516f73; color: var(--cyan); }
/* These tone classes override the general notice surface above. */
html[data-theme="night"] .notice.notice--success { background: var(--success-bg); color: var(--success); border-color: #5a7b68; }
html[data-theme="night"] .notice.notice--warning { background: var(--warning-bg); color: var(--warning); border-color: #7c6a4b; }
html[data-theme="night"] .notice.notice--error { background: var(--danger-bg); color: var(--danger); border-color: #856171; }
html[data-theme="night"] :is(.verdict--conforme,.success-label,.report-summary__metric.is-success strong,.mission-summary--conforme p,.mission-summary--conforme .section-label) { color: var(--success); }
html[data-theme="night"] :is(.verdict--anomalie,.report-summary__metric.is-danger strong,.mission-summary--anomalie p,.mission-summary--anomalie .section-label) { color: var(--danger); }
html[data-theme="night"] :is(.verdict--bloque,.report-summary__metric.is-warning strong,.attention-strip strong,.attention-strip p,.attention-strip .button,.question-card__title,.question-card p,.question-card .field__label) { color: var(--warning); }
html[data-theme="night"] .attention-strip__icon { background: #5b4d37; }
html[data-theme="night"] .attention-strip .button { border-color: #8b7652; }
html[data-theme="night"] .question-card>.button { background: #dfc38d; color: #352f24; }
html[data-theme="night"] :is(.mini-card h3,.mini-card .text-button,.security-banner--cyan strong) { color: #b2e0e1; }
html[data-theme="night"] :is(.mini-card p,.security-banner--cyan p) { color: #b4d2d4; }
html[data-theme="night"] :is(.security-banner,.info-tile,.mission-summary) { background: var(--plum-soft); color: var(--plum); border-color: #6d597b; }
html[data-theme="night"] :is(.security-banner strong,.info-tile h3,.mission-summary p) { color: #dcc9e7; }
html[data-theme="night"] :is(.security-banner p,.info-tile p) { color: #cdbbd7; }
html[data-theme="night"] .security-banner.security-banner--cyan { background: var(--cyan-soft); border-color: #516f73; }
html[data-theme="night"] .security-banner.security-banner--cyan :is(strong,p) { color: #b4d2d4; }
html[data-theme="night"] .mission-summary.mission-summary--conforme { background: var(--success-bg); border-color: #5a7b68; }
html[data-theme="night"] .mission-summary.mission-summary--conforme :is(p,.section-label) { color: var(--success); }
html[data-theme="night"] .mission-summary.mission-summary--anomalie { background: var(--danger-bg); border-color: #856171; }
html[data-theme="night"] .mission-summary.mission-summary--anomalie :is(p,.section-label) { color: var(--danger); }

html[data-theme="night"] .callout-card { background: linear-gradient(140deg,#59475f,#493e53); color: #f1e9f4; }
html[data-theme="night"] .callout-card :is(.eyebrow,p) { color: #ddcde3; }
html[data-theme="night"] .callout-card .button { background: #ffffff0b; color: #f1e9f4; border-color: #a38aad; }
html[data-theme="night"] .callout-card .button:hover { background: #ffffff18; }
html[data-theme="night"] .agent-avatar { background: var(--plum-soft); color: var(--plum); border-color: #796586; }
html[data-theme="night"] .upload-zone { background: var(--surface-inset); border-color: #8d769e; color: var(--muted); }
html[data-theme="night"] .upload-zone:hover { background: var(--plum-soft); border-color: var(--plum); }
html[data-theme="night"] .upload-zone>span:not(.upload-zone__icon) { color: var(--muted); }
html[data-theme="night"] .metric-card:after { background: #735f80; }
html[data-theme="night"] .metric-card:nth-child(even):after { background: #50767a; }
html[data-theme="night"] .metric-card__top svg { color: var(--plum); }
html[data-theme="night"] .metric-card:nth-child(even) .metric-card__top svg { color: var(--cyan); }
html[data-theme="night"] .event-timeline>li:not(:last-child):before { background: var(--border); }
html[data-theme="night"] .service-status__dot { background: #8bc7a6; box-shadow: 0 0 0 4px #344b40; }
html[data-theme="night"] .service-status__dot.is-warning { background: var(--warning); box-shadow: 0 0 0 4px var(--warning-bg); }

html[data-theme="night"] .modal-backdrop { background: #19151f88; backdrop-filter: blur(5px); }
html[data-theme="night"] .modal { box-shadow: 0 24px 80px #17131e55; }
html[data-theme="night"] .sidebar-scrim { background: #19151f88; }
html[data-theme="night"] :is(.app-loading,.page-loading,.initial-loading) { background: var(--page); color: var(--muted); }
html[data-theme="night"] .loading-ring { border-color: var(--border); border-top-color: var(--cyan); }
html[data-theme="night"] .auth-page { background: radial-gradient(ellipse at 20% 20%,#494052,transparent 60%),var(--page); }
html[data-theme="night"] .auth-orbit { color: var(--plum); border-color: var(--border); box-shadow: 0 0 0 23px #483d513d,0 0 0 48px #483d5120; }
html[data-theme="night"] .auth-orbit>svg { background: var(--surface); border-color: #806b8e; }
html[data-theme="night"] .auth-orbit :is(span,i) { border-color: var(--surface); }

@media(max-width:600px) {
  .theme-toggle { min-width: 34px; padding: 7px; }
  .theme-toggle__label { display: none; }
  .theme-toggle--standalone .theme-toggle__label { display: inline; }
}
