:root {
  color-scheme: light;
  --tc-bg: #ffffff;
  --tc-bg-soft: #f7fafc;
  --tc-surface: #ffffff;
  --tc-surface-raised: #fbfcfd;
  --tc-surface-muted: #f8fafc;
  --tc-text: #273449;
  --tc-heading: #111827;
  --tc-muted: #5f6b7a;
  --tc-faint: #6b7280;
  --tc-border: #dfe5eb;
  --tc-border-strong: #cfd8e3;
  --tc-accent: #1177bb;
  --tc-accent-hover: #0e5fa1;
  --tc-accent-soft: #e8f4fc;
  --tc-navbar-bg: #f8f9fa;
  --tc-navbar-text: #495057;
  --tc-nav-active-bg: #363636;
  --tc-footer-muted: #a6adb5;
  --tc-input-bg: #ffffff;
  --tc-code-bg: #f8fafc;
  --tc-focus: rgba(17, 119, 187, .25);
  --tc-shadow: 0 8px 24px rgba(17, 24, 39, .07);
  --tc-chart-grid: #d7dee7;
  --tc-chart-label: #6b7280;
  --tc-chart-axis: #111827;
  --tc-chart-guide: #9ca3af;
  --tc-chart-note: #4b5563;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --tc-bg: #0e141b;
  --tc-bg-soft: #111a23;
  --tc-surface: #17212b;
  --tc-surface-raised: #1d2935;
  --tc-surface-muted: #121b24;
  --tc-text: #e5edf5;
  --tc-heading: #f7fafc;
  --tc-muted: #a8b6c4;
  --tc-faint: #8795a3;
  --tc-border: #334454;
  --tc-border-strong: #4b6072;
  --tc-accent: #55b4f0;
  --tc-accent-hover: #8cccf5;
  --tc-accent-soft: #153c56;
  --tc-navbar-bg: #111a23;
  --tc-navbar-text: #d7e2ec;
  --tc-nav-active-bg: #2b455b;
  --tc-footer-muted: #9aa9b8;
  --tc-input-bg: #101922;
  --tc-code-bg: #0d151d;
  --tc-focus: rgba(85, 180, 240, .35);
  --tc-shadow: 0 14px 34px rgba(0, 0, 0, .28);
  --tc-chart-grid: #334454;
  --tc-chart-label: #a8b6c4;
  --tc-chart-axis: #dce8f3;
  --tc-chart-guide: #8795a3;
  --tc-chart-note: #b7c5d2;
}

html,
body {
  background-color: var(--tc-bg);
  color: var(--tc-text);
}

body,
.navbar,
footer,
main.content,
main.content-sub {
  transition: background-color .2s ease, color .2s ease;
}

body {
  background-color: var(--tc-bg) !important;
  color: var(--tc-text);
}

main.content,
main.content-sub {
  background-color: var(--tc-bg);
  color: var(--tc-text);
}

.navbar.bg-light,
footer.bg-light {
  background-color: var(--tc-navbar-bg) !important;
}

.navbar-light .navbar-brand,
.navbar-light .navbar-nav .nav-link {
  color: var(--tc-navbar-text);
}

.navbar-light .navbar-toggler {
  border-color: var(--tc-border-strong);
}

.navbar-light .navbar-toggler-icon {
  filter: none;
}

.dropdown-menu {
  background-color: var(--tc-surface);
  border-color: var(--tc-border);
}

.dropdown-item {
  color: var(--tc-text);
}

.dropdown-divider {
  border-top-color: var(--tc-border);
}

.theme-toggle,
.contact-link {
  align-items: center;
  background-color: var(--tc-surface-raised) !important;
  border: 1px solid var(--tc-border) !important;
  border-radius: 6px;
  box-sizing: border-box;
  cursor: pointer;
  display: inline-flex !important;
  font: inherit;
  gap: .4rem;
  height: 36px;
  line-height: 1;
  min-height: 36px;
  padding: 0 12px !important;
  white-space: nowrap;
}

.theme-toggle:hover,
.contact-link:hover,
.theme-toggle:focus,
.contact-link:focus,
.theme-toggle:active,
.contact-link:active {
  background-color: var(--tc-nav-active-bg) !important;
  border-color: var(--tc-nav-active-bg) !important;
  color: #fff !important;
}

.theme-toggle:focus,
.contact-link:focus {
  outline: none;
  box-shadow: none;
}

.theme-toggle:focus-visible,
.contact-link:focus-visible {
  outline: 2px solid var(--tc-accent) !important;
  outline-offset: 2px;
  box-shadow: 0 0 0 3px var(--tc-focus) !important;
}

.navbar-nav .nav-link.contact-link.active {
  background-color: var(--tc-nav-active-bg) !important;
  border-color: var(--tc-nav-active-bg) !important;
  color: #fff !important;
}

.theme-toggle-icon {
  min-width: 1rem;
  text-align: center;
}

.theme-toggle-label {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

html[data-theme="dark"] .navbar-light .navbar-toggler-icon {
  filter: invert(1) grayscale(1) brightness(2);
}

html[data-theme="dark"] .navbar-brand img {
  filter: invert(1) grayscale(1) brightness(1.8);
}

html[data-theme="dark"] .navbar-nav .nav-link.active,
html[data-theme="dark"] .navbar-nav .nav-link:hover,
html[data-theme="dark"] .navbar-nav .nav-link:focus,
html[data-theme="dark"] .navbar-nav .nav-link:active,
html[data-theme="dark"] .navbar-nav .nav-link.show,
html[data-theme="dark"] .dropdown-item:hover,
html[data-theme="dark"] .dropdown-item:focus,
html[data-theme="dark"] .dropdown-item.active {
  background-color: var(--tc-nav-active-bg) !important;
  color: #fff !important;
}

html[data-theme="dark"] .bg-white,
html[data-theme="dark"] .bg-light {
  background-color: var(--tc-surface) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .text-dark {
  color: var(--tc-heading) !important;
}

html[data-theme="dark"] .text-muted {
  color: var(--tc-muted) !important;
}

html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4,
html[data-theme="dark"] h5,
html[data-theme="dark"] h6 {
  color: var(--tc-heading) !important;
}

html[data-theme="dark"] p,
html[data-theme="dark"] li,
html[data-theme="dark"] label,
html[data-theme="dark"] legend,
html[data-theme="dark"] dt,
html[data-theme="dark"] dd {
  color: var(--tc-text);
}

html[data-theme="dark"] a:not(.btn) {
  color: var(--tc-accent-hover);
}

html[data-theme="dark"] a:not(.btn):hover,
html[data-theme="dark"] a:not(.btn):focus {
  color: var(--tc-accent);
}

html[data-theme="dark"] hr,
html[data-theme="dark"] .border,
html[data-theme="dark"] .border-top,
html[data-theme="dark"] .border-bottom {
  border-color: var(--tc-border) !important;
}

html[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
html[data-theme="dark"] textarea,
html[data-theme="dark"] select,
html[data-theme="dark"] .form-control:not(.form-control-color),
html[data-theme="dark"] .form-select {
  background-color: var(--tc-input-bg) !important;
  border-color: var(--tc-border-strong) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder {
  color: var(--tc-faint);
}

html[data-theme="dark"] input:focus,
html[data-theme="dark"] textarea:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] .form-control:focus,
html[data-theme="dark"] .form-select:focus {
  border-color: var(--tc-accent) !important;
  box-shadow: 0 0 0 .2rem var(--tc-focus) !important;
}

html[data-theme="dark"] input[type="checkbox"],
html[data-theme="dark"] input[type="radio"] {
  accent-color: var(--tc-accent);
}

html[data-theme="dark"] option {
  background-color: var(--tc-input-bg);
  color: var(--tc-text);
}

html[data-theme="dark"] .btn-custom {
  background-color: var(--tc-accent) !important;
  border-color: var(--tc-accent) !important;
  color: #06131c !important;
}

html[data-theme="dark"] .btn-custom:hover,
html[data-theme="dark"] .btn-custom:focus {
  background-color: var(--tc-accent-hover) !important;
  border-color: var(--tc-accent-hover) !important;
}

html[data-theme="dark"] .btn-outline-secondary {
  border-color: var(--tc-border-strong) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .btn-outline-secondary:hover,
html[data-theme="dark"] .btn-outline-secondary:focus {
  background-color: var(--tc-surface-raised) !important;
  border-color: var(--tc-accent) !important;
  color: var(--tc-heading) !important;
}

html[data-theme="dark"] .btn-dark {
  background-color: var(--tc-surface-raised) !important;
  border-color: var(--tc-border-strong) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .btn-light {
  background-color: var(--tc-surface-raised) !important;
  border-color: var(--tc-border-strong) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--tc-text);
  --bs-table-border-color: var(--tc-border);
  --bs-table-hover-bg: rgba(85, 180, 240, .08);
  --bs-table-hover-color: var(--tc-heading);
  border-color: var(--tc-border);
  color: var(--tc-text);
}

html[data-theme="dark"] .table > :not(caption) > * > * {
  background-color: transparent;
  border-bottom-color: var(--tc-border);
  color: inherit;
}

html[data-theme="dark"] pre,
html[data-theme="dark"] code,
html[data-theme="dark"] .css-output {
  background-color: var(--tc-code-bg) !important;
  border-color: var(--tc-border) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .links-page,
html[data-theme="dark"] .contact-page,
html[data-theme="dark"] .legal-page,
html[data-theme="dark"] .toolbox-page,
html[data-theme="dark"] .palette-page,
html[data-theme="dark"] .numbers-page,
html[data-theme="dark"] .ascii-page,
html[data-theme="dark"] .raid-page,
html[data-theme="dark"] .port-page,
html[data-theme="dark"] .movie-page,
html[data-theme="dark"] .amortization-page {
  background: var(--tc-bg) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .links-count,
html[data-theme="dark"] .box-link,
html[data-theme="dark"] .contact-panel,
html[data-theme="dark"] .contact-method,
html[data-theme="dark"] .social-panel,
html[data-theme="dark"] .social-link,
html[data-theme="dark"] .contact-icon-badge,
html[data-theme="dark"] .contact-note,
html[data-theme="dark"] .org-card,
html[data-theme="dark"] .toolbox-panel,
html[data-theme="dark"] .toolbox-tool,
html[data-theme="dark"] .tool-panel,
html[data-theme="dark"] .scanner-panel,
html[data-theme="dark"] .answer-panel,
html[data-theme="dark"] .answer-box,
html[data-theme="dark"] .tips-panel,
html[data-theme="dark"] .meta-card,
html[data-theme="dark"] .tip,
html[data-theme="dark"] .ascii-output-card,
html[data-theme="dark"] .swatch-details,
html[data-theme="dark"] .check-preview,
html[data-theme="dark"] .raid-calculator,
html[data-theme="dark"] .raid-step,
html[data-theme="dark"] .drive-shelf,
html[data-theme="dark"] .usage-row,
html[data-theme="dark"] .usage-results,
html[data-theme="dark"] .guidance-grid > div,
html[data-theme="dark"] .calc-panel,
html[data-theme="dark"] .chart-panel,
html[data-theme="dark"] .summary-panel,
html[data-theme="dark"] .schedule-panel,
html[data-theme="dark"] .summary-card,
html[data-theme="dark"] .sound-controls,
html[data-theme="dark"] .sound-group,
html[data-theme="dark"] .sound-btn,
html[data-theme="dark"] .live-card,
html[data-theme="dark"] .queue-head,
html[data-theme="dark"] .result-row,
html[data-theme="dark"] .empty-queue,
html[data-theme="dark"] .movie-history-card,
html[data-theme="dark"] .card,
html[data-theme="dark"] .legal-section {
  background: var(--tc-surface) !important;
  border-color: var(--tc-border) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .contact-method {
  background: var(--tc-surface-raised) !important;
}

html[data-theme="dark"] .contact-icon-badge {
  background: var(--tc-accent-soft) !important;
  color: var(--tc-accent-hover) !important;
}

html[data-theme="dark"] .raid-calculator {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

html[data-theme="dark"] .toolbox-hero {
  background: linear-gradient(135deg, #142333 0%, #182b27 100%) !important;
  border-color: var(--tc-border) !important;
}

html[data-theme="dark"] .toolbox-lead,
html[data-theme="dark"] .toolbox-feature-list,
html[data-theme="dark"] .toolbox-tools-intro,
html[data-theme="dark"] .toolbox-release-table th {
  color: var(--tc-muted) !important;
}

html[data-theme="dark"] .toolbox-secondary-link {
  border-color: var(--tc-border-strong) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .toolbox-secondary-link:hover,
html[data-theme="dark"] .toolbox-secondary-link:focus {
  background: var(--tc-surface-raised) !important;
  color: var(--tc-heading) !important;
}

html[data-theme="dark"] .toolbox-tool:hover,
html[data-theme="dark"] .toolbox-tool:focus-within {
  background: var(--tc-accent-soft) !important;
  border-color: var(--tc-accent) !important;
  box-shadow: 0 12px 28px rgba(0, 0, 0, .24);
}

html[data-theme="dark"] .toolbox-tool-icon {
  color: var(--tc-accent-hover) !important;
}

html[data-theme="dark"] .toolbox-download-button,
html[data-theme="dark"] .toolbox-download-button:hover,
html[data-theme="dark"] .toolbox-download-button:focus {
  color: #fff !important;
}

html[data-theme="dark"] .card-header,
html[data-theme="dark"] .card-body,
html[data-theme="dark"] .card-footer {
  background-color: var(--tc-surface) !important;
  border-color: var(--tc-border) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .mode-option span,
html[data-theme="dark"] .port-choice span,
html[data-theme="dark"] .drive-size-button,
html[data-theme="dark"] .preset-option,
html[data-theme="dark"] .drive-type-tab,
html[data-theme="dark"] .ascii-output-title,
html[data-theme="dark"] .sound-group-header {
  background-color: var(--tc-surface-raised) !important;
  border-color: var(--tc-border-strong) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .mode-option input:checked + span,
html[data-theme="dark"] .port-choice input:checked + span,
html[data-theme="dark"] .drive-type-tab.active,
html[data-theme="dark"] .preset-option:hover,
html[data-theme="dark"] .preset-option:focus,
html[data-theme="dark"] .sound-btn:hover,
html[data-theme="dark"] .sound-btn:focus {
  background-color: var(--tc-accent-soft) !important;
  border-color: var(--tc-accent) !important;
  color: var(--tc-accent-hover) !important;
}

html[data-theme="dark"] .sound-btn .fas {
  color: var(--tc-accent-hover);
}

html[data-theme="dark"] .sound-btn.is-playing {
  background-color: var(--tc-accent) !important;
  border-color: var(--tc-accent) !important;
  color: #06131c !important;
}

html[data-theme="dark"] .sound-btn.is-playing .fas {
  color: #06131c;
}

html[data-theme="dark"] .raid-name {
  background: var(--tc-surface-raised) !important;
  border-color: var(--tc-border-strong) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .usage-row.highlight .raid-name {
  background: var(--tc-accent-soft) !important;
  color: var(--tc-heading) !important;
}

html[data-theme="dark"] .raid-reset {
  background: var(--tc-surface-raised) !important;
  border-color: var(--tc-border-strong) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .raid-reset:hover,
html[data-theme="dark"] .raid-reset:focus {
  border-color: var(--tc-accent) !important;
  color: var(--tc-accent-hover) !important;
}

html[data-theme="dark"] .drive-size-button span {
  color: var(--tc-muted) !important;
}

html[data-theme="dark"] .capacity-number,
html[data-theme="dark"] .drive-summary {
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .link-category,
html[data-theme="dark"] .movie-meta li,
html[data-theme="dark"] .badge {
  background-color: var(--tc-surface-raised) !important;
  border-color: var(--tc-border-strong) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .form-help,
html[data-theme="dark"] .contact-hero p,
html[data-theme="dark"] .links-hero p,
html[data-theme="dark"] .link-description,
html[data-theme="dark"] .ascii-hero p,
html[data-theme="dark"] .palette-hero p,
html[data-theme="dark"] .numbers-hero p,
html[data-theme="dark"] .port-hero p,
html[data-theme="dark"] .raid-description,
html[data-theme="dark"] .raid-eyebrow,
html[data-theme="dark"] .scanner-title p,
html[data-theme="dark"] .progress-label,
html[data-theme="dark"] .port-choice small,
html[data-theme="dark"] .result-row small,
html[data-theme="dark"] .swatch-values,
html[data-theme="dark"] .chart-title p,
html[data-theme="dark"] .chart-legend,
html[data-theme="dark"] .input-prefix span,
html[data-theme="dark"] .check-line span,
html[data-theme="dark"] .movie-section-header p,
html[data-theme="dark"] .movie-note,
html[data-theme="dark"] .legal-updated,
html[data-theme="dark"] .legal-section p,
html[data-theme="dark"] .legal-section li,
html[data-theme="dark"] .chart-axis-note {
  color: var(--tc-muted) !important;
}

html[data-theme="dark"] .palette-form label,
html[data-theme="dark"] .converter-form label,
html[data-theme="dark"] .ascii-form label,
html[data-theme="dark"] .port-form label,
html[data-theme="dark"] .calc-form label,
html[data-theme="dark"] .fieldset-label,
html[data-theme="dark"] .usage-toolbar label {
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .seo-answer-section {
  border-top-color: var(--tc-border) !important;
}

html[data-theme="dark"] .seo-answer-item h3 {
  color: var(--tc-heading) !important;
}

html[data-theme="dark"] .seo-answer-item p {
  color: var(--tc-muted) !important;
}

html[data-theme="dark"] footer .footer-legal-links,
html[data-theme="dark"] footer .footer-legal-links a {
  color: var(--tc-footer-muted) !important;
}

html[data-theme="dark"] .movie-history-body,
html[data-theme="dark"] .movie-history-body h3,
html[data-theme="dark"] .toolbox-tool h3,
html[data-theme="dark"] .toolbox-tool p,
html[data-theme="dark"] .contact-method p,
html[data-theme="dark"] .contact-method h3,
html[data-theme="dark"] .social-panel h2,
html[data-theme="dark"] .panel-head h2 {
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .movie-history-body h3,
html[data-theme="dark"] .toolbox-tool h3,
html[data-theme="dark"] .contact-method h3,
html[data-theme="dark"] .panel-head h2 {
  color: var(--tc-heading) !important;
}

html[data-theme="dark"] .meta-card strong,
html[data-theme="dark"] .summary-card strong,
html[data-theme="dark"] .summary-card span,
html[data-theme="dark"] .swatch-name,
html[data-theme="dark"] .check-value,
html[data-theme="dark"] .result-row strong,
html[data-theme="dark"] .live-card strong,
html[data-theme="dark"] .queue-head span {
  color: var(--tc-heading) !important;
}

html[data-theme="dark"] .live-card small,
html[data-theme="dark"] .queue-head small {
  color: var(--tc-muted) !important;
}

html[data-theme="dark"] #liveStatus {
  color: var(--tc-accent-hover) !important;
}

html[data-theme="dark"] .result-status {
  color: #7ed6a5 !important;
}

html[data-theme="dark"] .result-closed .result-status {
  color: #f0c56e !important;
}

html[data-theme="dark"] .live-card span:first-child {
  color: var(--tc-accent-hover) !important;
}

html[data-theme="dark"] .result-row strong {
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .movie-hero {
  box-shadow: 0 18px 42px rgba(0, 0, 0, .35);
}

html[data-theme="dark"] .movie-history-card:hover {
  border-color: var(--tc-accent) !important;
  box-shadow: 0 18px 38px rgba(0, 0, 0, .35);
}

html[data-theme="dark"] .social-link:hover,
html[data-theme="dark"] .social-link:focus {
  background-color: var(--tc-accent-soft) !important;
  border-color: var(--tc-accent) !important;
}

html[data-theme="dark"] .scanner-mark,
html[data-theme="dark"] .scan-count,
html[data-theme="dark"] .theater-bar,
html[data-theme="dark"] .capacity-bar {
  background: var(--tc-surface-raised) !important;
  border-color: var(--tc-border-strong) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .scanner-panel.is-complete .scanner-mark {
  background: #153d2c !important;
  border-color: #3f9f70 !important;
  color: #8ce5b2 !important;
}

html[data-theme="dark"] .result-open .result-icon {
  background: #153d2c !important;
  color: #8ce5b2 !important;
}

html[data-theme="dark"] .result-closed .result-icon {
  background: #26333e !important;
  color: #b7c5d2 !important;
}

html[data-theme="dark"] .usage-warning {
  background: #3b3215 !important;
  border-color: #806d2d !important;
  color: #f4d982 !important;
}

html[data-theme="dark"] #amortizationChart {
  background: linear-gradient(180deg, var(--tc-surface), var(--tc-surface-muted));
  border-color: var(--tc-border) !important;
}

html[data-theme="dark"] .chart-tooltip {
  background: var(--tc-surface-raised) !important;
  border-color: var(--tc-border-strong) !important;
  color: var(--tc-text) !important;
  box-shadow: var(--tc-shadow);
}

html[data-theme="dark"] .schedule-header {
  background: var(--tc-surface-muted) !important;
  border-color: var(--tc-border) !important;
}

html[data-theme="dark"] .schedule-table thead th {
  background: var(--tc-surface-muted) !important;
  color: var(--tc-text) !important;
}

html[data-theme="dark"] .crossover-row {
  background: var(--tc-accent-soft) !important;
}

html[data-theme="dark"] .paid-row .check-col {
  background: var(--tc-surface-raised) !important;
}

@media (max-width: 991.98px) {
  .theme-toggle,
  .contact-link {
    justify-content: flex-start;
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  body,
  .navbar,
  footer,
  main.content,
  main.content-sub {
    transition: none;
  }
}
