:root {
  color-scheme: dark;
  --primary: #8ab4f8;
  --primary-dark: #aecbfa;
  --primary-soft: #1d3856;
  --primary-soft-text: #aecbfa;
  --mint: #81c995;
  --mint-soft: #153824;
  --mint-text: #9bd8ac;
  --warm: #3a3018;
  --warm-border: #8a7538;
  --warm-text: #f9dd8f;
  --warn-bg: #332b17;
  --warn-text: #f6c968;
  --green: #81c995;
  --green-soft: #153824;
  --green-text: #9bd8ac;
  --error: #ffb4ab;
  --danger: #ffb4ab;
  --text: #e8eaed;
  --text-secondary: #c6cad1;
  --text-muted: #aeb7c4;
  --bg: #101419;
  --surface: #1b2028;
  --border: #4a5565;
  --border-light: #303946;
  --ring-track: #3b4553;
  --shadow-1: 0 1px 3px rgba(0, 0, 0, .38);
  --shadow-2: 0 12px 34px rgba(0, 0, 0, .46);
}

html,
body,
.legal-page { background: var(--bg); color: var(--text); }

body { background-image: none; }
::selection { background: #315d8d; color: #fff; }

a { color: var(--primary); }
a:visited { color: #c6a8ff; }
.learning-examples { border-color: #35577d; background: #172536; }
.learning-examples-preview-badge { border-color: #936c2d; background: #3b2d16; color: #ffd58c; }
.learning-example-open-btn { border-color: #35577d; background: #1b2b3d; color: #b9d7ff; }
.learning-example-preview-stage { background: #101820; }
.brand-link,
.brand-link:visited,
.result-open,
.result-open:visited { color: inherit; }

.logo { background: #1a73e8; color: #fff; }
.subtitle,
.action-hint,
.legal-updated,
.legal-note,
.site-footer,
.site-footer p { color: var(--text-muted); }

.icon-btn,
.account-chip,
.drawer-icon-btn,
.history-delete-btn,
.history-share-btn,
.secondary-btn,
.account-secondary-btn,
.image-preview-nav,
.corpus-change-btn,
.results-share-btn,
.back-btn,
.text-btn,
.pick-btn,
.dropzone-select,
.image-order-btn { border-color: var(--border); background: var(--surface); color: var(--text-secondary); }

.icon-btn:focus-visible,
.account-chip:focus-visible,
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible { outline-color: var(--primary); }

.icon-btn:hover,
.drawer-icon-btn:hover,
.history-delete-btn:hover,
.history-share-btn:hover,
.secondary-btn:hover:not(:disabled),
.account-secondary-btn:hover:not(:disabled),
.image-preview-nav:hover:not(:disabled),
.mode-btn:hover,
.corpus-option:hover,
.corpus-scope-option:hover,
.result-open:hover,
.result-profile-summary:hover,
.history-item:hover,
.history-open:hover,
.dropzone:hover,
.dropzone.dragover,
.dropzone-select:hover:not(:disabled),
.image-order-btn:hover:not(:disabled),
.corpus-change-btn:hover,
.results-share-btn:hover,
.back-btn:hover { background: #252c35; border-color: #6a788c; color: var(--text); }

.account-menu,
.history-drawer,
.recent-history,
.search-card,
.results-hero,
.result-card,
.card,
.detail-card,
.legal-document,
.referral-dialog,
.referral-card,
.image-preview-dialog,
.image-preview-dialog-card,
.input-analysis-card,
.dropzone-preview-card { border-color: var(--border); background: var(--surface); color: var(--text); }
.image-field-block { border-color: var(--border); background: #171c23; box-shadow: none; }
.dropzone:not(.has-image) .dropzone-select,
.dropzone-add-card { border-color: #4f78a9; background: linear-gradient(145deg, #1b2028 0%, #172c43 100%); color: var(--primary); }
.dropzone:not(.has-image):hover .dropzone-select,
.dropzone:not(.has-image).dragover .dropzone-select,
.dropzone-add-card:hover { border-color: #6c91c7; background: #1d3856; box-shadow: 0 0 0 3px rgba(138,180,248,.08); }
.dropzone-preview { background: #11161d; }
.pick-btn { background: #1b2028; }
.corpus-chart-flow { border-color: var(--border); background: var(--surface); }
.corpus-chart-step .corpus-scope-no { background: #2b6fc3; color: #fff; box-shadow: 0 0 0 4px var(--surface); }
.corpus-chart-step:not(:last-child)::before { background: #4f78a9; }
.corpus-chart-purpose-label { background: #252c35; color: var(--text-secondary); }
.corpus-chart-match { border-color: #35577d; background: #172536; }
.corpus-chart-step .corpus-chart-example { border-color: #4f78a9; background: #1b2b3d; color: #b9d7ff; }
.corpus-chart-match.unavailable { border-color: var(--border); background: #171c23; }

.search-card { background: rgba(27, 32, 40, .98); }
.search-card .search-action-bar { background: rgba(27, 32, 40, .99); }

dialog::backdrop,
.referral-dialog::backdrop,
.image-preview-dialog::backdrop { background: rgba(0, 0, 0, .70); }
.history-backdrop { background: rgba(0, 0, 0, .64); }
.history-drawer::before { background: #6c7684; }

input,
textarea,
select,
.referral-url,
.dialog-field input,
.search-input-wrap input,
.corpus-year-field select { border-color: var(--border); background: #151a21; color: var(--text); caret-color: var(--primary); }
input::placeholder,
textarea::placeholder { color: #9aa5b5; opacity: 1; }
input:disabled,
textarea:disabled,
select:disabled { background: #252c35; color: var(--text-muted); opacity: 1; }
select option { background: #1b2028; color: var(--text); }
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--text);
  -webkit-box-shadow: 0 0 0 1000px #151a21 inset;
  caret-color: var(--text);
}

.mode-toggle,
.panel-intro,
.advanced-options,
.advanced-body,
.corpus-empty,
.history-empty,
.history-loading,
.tag.gray,
.summary-chip,
.result-rank,
.sim-ring,
.similarity-badge,
.dropzone-preview-placeholder,
.dropzone-icon.muted,
.optional,
.optional-note,
.trial-note,
.result-reason,
.image-preview-stage img,
.mode-icon,
.account-badge { background: #252c35; color: var(--text-secondary); }
.skeleton .bar { background: linear-gradient(100deg, #252c35 40%, #303946 50%, #252c35 60%); }
.result-skeleton-badge,
.result-skeleton-title,
.result-skeleton-tags span { background: rgba(174, 183, 196, .18); }
.chip-group { background: rgba(48, 57, 70, .88); }
.chip,
.chip-group .chip { border-color: var(--border); background: var(--surface); color: var(--text-secondary); }
.chip.on { border-color: #6c91c7; background: var(--primary-soft); color: var(--primary-soft-text); }

/* Description search: input helpers */
.description-example-chip { border-color: var(--border); background: var(--surface); color: var(--text-secondary); }
.description-example-chip:hover { border-color: #6c91c7; background: var(--primary-soft); color: var(--primary-soft-text); }
.description-clear-btn { border-color: var(--border); background: rgba(37, 44, 53, .96); color: var(--text-secondary); }
.description-clear-btn:hover { border-color: #6a788c; background: #303946; color: var(--text); }
.description-counter { color: var(--text-muted); }
.description-counter.is-over-limit { color: var(--danger); }
.results-guidance { background: #172536; color: var(--text-secondary); }
.learning-example-source small,
.corpus-chart-example-copy small { color: var(--text-muted); }

/* Interpretation: explicit dark surfaces and selected state */
.interpret-hero { color: var(--text); }
.interpret-base { border-color: var(--border); border-left-color: var(--primary); background: var(--surface); }
.interpret-base-label,
.interpret-clues-label { color: var(--text-muted); }
.interpret-base-text { color: var(--text); }
.interpret-clue { border-color: var(--border); background: #252c35; color: var(--text-secondary); }
.interpret-options { border-color: var(--border); background: var(--surface); }
.interpret-option,
.interpret-card { border-color: var(--border-light); background: transparent; }
.interpret-option.selected { background: #1d3856; box-shadow: inset 4px 0 0 var(--primary); }
.interpret-option:hover { background: rgba(43, 74, 109, .48); }
.interpret-option.selected:hover { background: #24466a; }
.interpret-option-choice { color: var(--text); }
.interpret-option:hover .interpret-option-choice { background: transparent; }
.interpret-option-indicator { border-color: #6a788c; background: var(--surface); }
.interpret-option.selected .interpret-option-indicator { border-color: var(--primary); box-shadow: inset 0 0 0 4px var(--primary); }
.interpret-option-label { color: var(--text); }
.interpret-option-desc { color: var(--text-secondary); }
.interpret-card-drill { border-color: #6c91c7; background: #1d3856; color: var(--primary-soft-text); }
.interpret-card-drill:hover { border-color: var(--primary); background: #2b4a6d; color: var(--text); }
.interpret-step-dot { border-color: #6a788c; }
.interpret-step-dot.is-complete,
.interpret-step-dot.is-active { border-color: var(--primary); background: var(--primary); }
.interpret-step-dot.is-active { box-shadow: 0 0 0 3px #2b4a6d; }
.interpret-stepper-label { color: var(--primary-soft-text); }
.interpret-stepper-count,
.interpret-keyboard-hint { color: var(--text-muted); }
.interpret-keyboard-hint kbd { border-color: var(--border); background: #252c35; color: var(--text-secondary); }
.interpret-other { border-color: var(--border); background: #151a21; }
.interpret-confirm-bar { background: rgba(16, 20, 25, .90); }
.interpret-loading-skeleton-indicator { border-color: rgba(174, 183, 196, .28); background: rgba(174, 183, 196, .16); }
.interpret-loading-skeleton-line { background: rgba(174, 183, 196, .18); }

/* Description result summary */
.summary-chip { background: #252c35; color: var(--text-secondary); }
.results-query-label.is-description { border-color: var(--border); border-left-color: var(--primary); background: #151a21; }
.results-query-key { color: var(--text-muted); }
.results-query-value { color: var(--text); }
.results-query-condition { background: #252c35; color: var(--primary-soft-text); }
.results-interpret-action { border-color: var(--border-light); background: var(--surface); }
.results-interpret-copy strong { color: var(--text); }
.results-interpret-copy small { color: var(--text-muted); }
.results-interpret-btn { border-color: #6c91c7; background: #1d3856; color: var(--primary-soft-text); }
.results-interpret-btn:hover { border-color: var(--primary); background: #2b4a6d; color: var(--text); }
.dropzone-label,
.pick-btn,
.field-label { color: var(--text); }

.mode-btn,
.corpus-option,
.corpus-scope-option { border-color: var(--border); background: var(--surface); color: var(--text-secondary); }
.mode-btn.active,
.corpus-option.selected,
.corpus-scope-option.selected { border-color: #6c91c7; background: #1d3856; color: var(--primary-soft-text); box-shadow: inset 0 0 0 1px #6c91c7; }
.mode-btn.active .mode-icon { background: #2b4a6d; color: var(--primary); }
.mode-copy small,
.mode-btn.active .mode-copy small { color: var(--text-muted); }
.corpus-scope-no { background: #252c35; color: var(--text-secondary); }
.corpus-scope-option.selected .corpus-scope-no { background: #2b4a6d; color: var(--primary); }

.panel-intro.trial,
.corpus-analysis,
.results-source-analysis > details { border-color: #4f78a9; background: #172c43; color: var(--text); }
.auth-gate-icon { background: #4a3d1d; }
.panel-auth-gate small { color: var(--warm-text); }

.primary-btn,
.primary-btn.search-trial,
.account-primary-btn,
.panel-login-btn,
.quota-upgrade-btn,
.billing-recheck { border-color: #2b6fc3; background: #2b6fc3; color: #fff; }
.primary-btn:hover:not(:disabled),
.primary-btn.search-trial:hover:not(:disabled),
.account-primary-btn:hover:not(:disabled),
.panel-login-btn:hover:not(:disabled),
.quota-upgrade-btn:hover:not(:disabled),
.billing-recheck:hover:not(:disabled) { background: #367acc; color: #fff; }
.primary-btn.search-locked { background: #3a414b; color: #c0c6d0; }
#detailSimilarBtn { background: #2b6fc3; color: #fff; }
#detailSimilarBtn:hover { background: #367acc; color: #fff; }

.result-card:active,
.result-open:active { background: #202731; }
.dropzone-preview-card,
.result-flow-step,
.input-analysis-field,
.legal-document,
.step { background: var(--surface); }
.result-profile,
.result-profile-summary,
.advanced-body,
.detail-footer,
.legal-document section + section { border-color: var(--border-light); }

.result-match-step,
.result-flow-step.matched,
.step.matched { border-color: #3f765b; background: var(--green-soft); color: var(--text-secondary); }
.result-match-step strong,
.result-flow-step.matched strong,
.step.matched strong { color: var(--green-text); }
.result-flow-timeline > .result-flow-timeline-step { background: transparent; }
.result-flow-timeline > .result-flow-timeline-step.matched { background: var(--green-soft); }
.result-flow-timeline > .result-flow-timeline-step.matched .result-flow-action { color: var(--text); }

.quota-notice,
.account-chip.quota-low,
.card.warn,
.input-analysis-field.bottleneck,
.result-profile-section.bottleneck,
.panel-auth-gate,
.analysis-inference-badge { border-color: var(--warm-border); background: var(--warm); color: var(--warm-text); }
.quota-notice.exhausted,
.account-chip.quota-empty,
.history-error,
.dropzone-preview-card.is-error,
.publication-blocker,
.error { border-color: #a95048; background: #482420; color: #ffb4ab; }

.history-delete-confirm { border-color: #8a4744; background: #3b2020; }
.history-delete-confirm > span,
.history-delete-btn:hover,
.image-preview-delete-btn { color: #ffb4ab; }
.history-confirm-delete-btn { border-color: #c6534b; background: #9d3d38; color: #fff; }

.feedback-btn { border-color: var(--border); background: rgba(27, 32, 40, .88); color: var(--text-muted); }
.feedback-btn:hover { border-color: #617086; background: #252c35; color: var(--text); }
.feedback-btn[aria-pressed="true"] { border-color: #6c91c7; background: var(--primary-soft); color: var(--primary-soft-text); }
#feedbackUnhelpful[aria-pressed="true"] { border-color: #a95048; background: #482420; color: #ffb4ab; }

.billing-notice { border-color: #4f78a9; background: #172c43; color: var(--text); }
.toast { border: 1px solid #4a5565; background: rgba(232, 234, 237, .96); color: #202124; }

.legal-document table,
.legal-document th,
.legal-document td,
.commerce-table th,
.commerce-table td { border-color: var(--border); }
.legal-document thead th,
.commerce-table th { background: #252c35; color: var(--text-secondary); }
.legal-document tbody tr:nth-child(even) { background: rgba(255, 255, 255, .018); }
.legal-note { border-color: #4f78a9; background: #172c43; color: var(--text-secondary); }

.site-footer { border-color: var(--border-light); }
.site-footer a { color: var(--text-secondary); }
.site-footer a:hover { color: var(--primary); }

::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { border: 3px solid var(--bg); border-radius: 999px; background: #536174; }
::-webkit-scrollbar-thumb:hover { background: #6a788c; }

/* Keep busy states visibly active without introducing a bright flash in dark mode. */
.search-progress {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(138, 180, 248, .28);
  background: linear-gradient(105deg, #172c43 0%, #1d3856 48%, #172c43 100%);
  background-size: 200% 100%;
  animation: progressEnter .22s ease-out, darkLoadingShimmer 2.8s ease-in-out infinite;
}
.search-progress.progress-enter { animation: progressEnter .22s ease-out, darkLoadingShimmer 2.8s ease-in-out infinite; }
.search-progress::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(105deg, transparent 24%, rgba(174, 203, 250, .18) 50%, transparent 76%);
  transform: translateX(-100%);
  animation: darkLoadingSweep 2s ease-in-out infinite;
}
.search-progress > * { position: relative; z-index: 1; }
.search-progress i { color: #d2e3fc; filter: drop-shadow(0 0 5px rgba(138, 180, 248, .55)); }

.interpret-loading-icon {
  background: #2b4a6d;
  box-shadow: 0 0 0 6px rgba(43, 74, 109, .28);
  animation: darkLoadingPulse 1.8s ease-in-out infinite;
}
.interpret-loading-skeleton {
  border-color: #405067;
  background: linear-gradient(90deg, #252c35 12%, #303946 46%, #3b4a5e 50%, #303946 54%, #252c35 88%);
  background-size: 220% 100%;
  animation: darkLoadingSkeleton 1.4s linear infinite;
}

@keyframes darkLoadingShimmer {
  0%, 100% { background-position: 100% 0; }
  50% { background-position: 0 0; }
}
@keyframes darkLoadingSweep {
  0% { transform: translateX(-100%); }
  58%, 100% { transform: translateX(100%); }
}
@keyframes darkLoadingPulse {
  0%, 100% { box-shadow: 0 0 0 6px rgba(43, 74, 109, .24); }
  50% { box-shadow: 0 0 0 10px rgba(43, 74, 109, .08); }
}
@keyframes darkLoadingSkeleton {
  from { background-position: 100% 0; }
  to { background-position: -100% 0; }
}

@media (prefers-reduced-motion: reduce) {
  .search-progress,
  .search-progress.progress-enter,
  .search-progress::after,
  .interpret-loading-icon,
  .interpret-loading-skeleton { animation: none; }
}
