:root {
  color-scheme: light;
  --dm-bg: #0f172a;
  --dm-bg-alt: #111827;
  --dm-surface: #111827;
  --dm-surface-2: #1f2937;
  --dm-surface-3: #273449;
  --dm-border: #334155;
  --dm-border-strong: #475569;
  --dm-text: #e5e7eb;
  --dm-text-soft: #cbd5e1;
  --dm-muted: #94a3b8;
  --dm-link: #93c5fd;
  --dm-link-hover: #bfdbfe;
  --dm-shadow: 0 10px 30px rgba(2, 6, 23, 0.35);
  --dm-shadow-sm: 0 4px 14px rgba(2, 6, 23, 0.22);
  --dm-success-soft: rgba(34, 197, 94, 0.18);
  --dm-primary-soft: rgba(59, 130, 246, 0.18);
  --dm-warning-soft: rgba(245, 158, 11, 0.24);
  --dm-danger-soft: rgba(239, 68, 68, 0.18);
}

:root[data-theme="dark"] {
  color-scheme: dark;
}

body {
  font-family: Segoe UI, Tahoma, sans-serif;
}

#themeToggleBtn {
  min-width: 108px;
}

:root[data-theme="dark"] body,
:root[data-theme="dark"] .bg-light,
:root[data-theme="dark"] .bg-body,
:root[data-theme="dark"] .bg-body-tertiary {
  background: linear-gradient(180deg, #0b1220 0%, var(--dm-bg) 100%) !important;
  color: var(--dm-text) !important;
}

:root[data-theme="dark"] .container,
:root[data-theme="dark"] .container-fluid {
  color: var(--dm-text);
}

:root[data-theme="dark"] .bg-white,
:root[data-theme="dark"] .card-header.bg-white,
:root[data-theme="dark"] .tab-content.bg-white,
:root[data-theme="dark"] #docContent,
:root[data-theme="dark"] .field-row {
  background: var(--dm-surface) !important;
  color: var(--dm-text) !important;
  border-color: var(--dm-border) !important;
}

:root[data-theme="dark"] a {
  color: var(--dm-link);
}

:root[data-theme="dark"] a:hover,
:root[data-theme="dark"] a:focus {
  color: var(--dm-link-hover);
}

:root[data-theme="dark"] .navbar {
  background: rgba(15, 23, 42, 0.9) !important;
  color: var(--dm-text) !important;
  border-bottom: 1px solid var(--dm-border) !important;
  box-shadow: 0 8px 24px rgba(2, 6, 23, 0.28);
  backdrop-filter: blur(10px);
}

:root[data-theme="dark"] .navbar-light .navbar-brand,
:root[data-theme="dark"] .navbar-light .navbar-nav .nav-link,
:root[data-theme="dark"] .navbar-light .navbar-text,
:root[data-theme="dark"] .navbar .navbar-brand,
:root[data-theme="dark"] .navbar .nav-link,
:root[data-theme="dark"] .navbar .dropdown-toggle {
  color: var(--dm-text) !important;
}

:root[data-theme="dark"] .navbar .nav-link:hover,
:root[data-theme="dark"] .navbar .nav-link:focus,
:root[data-theme="dark"] .navbar .dropdown-toggle:hover,
:root[data-theme="dark"] .navbar .dropdown-toggle:focus {
  color: #ffffff !important;
}

:root[data-theme="dark"] .navbar .text-muted,
:root[data-theme="dark"] .navbar .small.text-muted,
:root[data-theme="dark"] .navbar .navbar-text {
  color: var(--dm-muted) !important;
}

:root[data-theme="dark"] .navbar .badge.bg-secondary {
  background: var(--dm-surface-3) !important;
  border: 1px solid var(--dm-border-strong);
  color: var(--dm-text) !important;
}

:root[data-theme="dark"] .btn {
  border-radius: 0.6rem;
  font-weight: 500;
  box-shadow: none;
}

:root[data-theme="dark"] .btn-sm {
  padding: 0.42rem 0.8rem;
}

:root[data-theme="dark"] .btn-outline-secondary,
:root[data-theme="dark"] .btn-outline-dark,
:root[data-theme="dark"] .btn-outline-primary,
:root[data-theme="dark"] .btn-outline-danger,
:root[data-theme="dark"] .btn-outline-warning,
:root[data-theme="dark"] .btn-outline-light {
  background: rgba(15, 23, 42, 0.6);
  color: var(--dm-text);
}

:root[data-theme="dark"] .btn-outline-secondary {
  border-color: var(--dm-border-strong);
}

:root[data-theme="dark"] .btn-outline-dark {
  border-color: #64748b;
}

:root[data-theme="dark"] .btn-outline-primary {
  border-color: rgba(96, 165, 250, 0.55);
  color: #dbeafe;
}

:root[data-theme="dark"] .btn-outline-danger {
  border-color: rgba(248, 113, 113, 0.55);
  color: #fecaca;
}

:root[data-theme="dark"] .btn-outline-warning {
  border-color: rgba(251, 191, 36, 0.6);
  color: #fde68a;
}

:root[data-theme="dark"] .btn-outline-light {
  border-color: var(--dm-border-strong);
}

:root[data-theme="dark"] .btn-outline-secondary:hover,
:root[data-theme="dark"] .btn-outline-secondary:focus,
:root[data-theme="dark"] .btn-outline-dark:hover,
:root[data-theme="dark"] .btn-outline-dark:focus,
:root[data-theme="dark"] .btn-outline-light:hover,
:root[data-theme="dark"] .btn-outline-light:focus {
  background: var(--dm-surface-2);
  border-color: var(--dm-border-strong);
  color: #fff;
}

:root[data-theme="dark"] .btn-outline-primary:hover,
:root[data-theme="dark"] .btn-outline-primary:focus {
  background: var(--dm-primary-soft);
  border-color: #60a5fa;
  color: #fff;
}

:root[data-theme="dark"] .btn-outline-danger:hover,
:root[data-theme="dark"] .btn-outline-danger:focus {
  background: var(--dm-danger-soft);
  border-color: #f87171;
  color: #fff;
}

:root[data-theme="dark"] .btn-success {
  background: #16a34a;
  border-color: #16a34a;
}

:root[data-theme="dark"] .btn-success:hover,
:root[data-theme="dark"] .btn-success:focus {
  background: #15803d;
  border-color: #15803d;
}

:root[data-theme="dark"] .card,
:root[data-theme="dark"] .modal-content,
:root[data-theme="dark"] .dropdown-menu,
:root[data-theme="dark"] .list-group-item,
:root[data-theme="dark"] .accordion-item,
:root[data-theme="dark"] .table,
:root[data-theme="dark"] .form-control,
:root[data-theme="dark"] .form-select,
:root[data-theme="dark"] .input-group-text,
:root[data-theme="dark"] .offcanvas,
:root[data-theme="dark"] .popover,
:root[data-theme="dark"] .tooltip-inner,
:root[data-theme="dark"] .ql-toolbar,
:root[data-theme="dark"] .ql-container,
:root[data-theme="dark"] pre,
:root[data-theme="dark"] code,
:root[data-theme="dark"] .form-control:disabled,
:root[data-theme="dark"] .form-select:disabled {
  background: linear-gradient(180deg, rgba(17, 24, 39, 0.98) 0%, rgba(15, 23, 42, 0.98) 100%) !important;
  color: var(--dm-text) !important;
  border-color: var(--dm-border) !important;
}

:root[data-theme="dark"] .card,
:root[data-theme="dark"] .modal-content,
:root[data-theme="dark"] .dropdown-menu,
:root[data-theme="dark"] .bucket-card,
:root[data-theme="dark"] .task-card {
  border: 1px solid var(--dm-border) !important;
  box-shadow: var(--dm-shadow-sm) !important;
}

:root[data-theme="dark"] .card:hover,
:root[data-theme="dark"] .task-card:hover,
:root[data-theme="dark"] .bucket-card:hover {
  border-color: var(--dm-border-strong) !important;
}

:root[data-theme="dark"] .card-header,
:root[data-theme="dark"] .modal-header,
:root[data-theme="dark"] .modal-footer,
:root[data-theme="dark"] .dropdown-divider,
:root[data-theme="dark"] .list-group-item,
:root[data-theme="dark"] .input-group-text,
:root[data-theme="dark"] .nav-tabs,
:root[data-theme="dark"] .nav-tabs .nav-link,
:root[data-theme="dark"] .nav-tabs .nav-link.active,
:root[data-theme="dark"] .nav-tabs .nav-item.show .nav-link {
  border-color: var(--dm-border) !important;
}

:root[data-theme="dark"] .card-header,
:root[data-theme="dark"] .modal-header,
:root[data-theme="dark"] .modal-footer {
  background: linear-gradient(180deg, rgba(31, 41, 55, 0.94) 0%, rgba(17, 24, 39, 0.94) 100%) !important;
}

:root[data-theme="dark"] .bucket-card {
  background: rgba(15, 23, 42, 0.65) !important;
  border-radius: 0.9rem;
  overflow: hidden;
}

:root[data-theme="dark"] .bucket-card > .card-header {
  background: linear-gradient(180deg, #243146 0%, #1b2638 100%) !important;
  color: var(--dm-text) !important;
  border-bottom: 1px solid var(--dm-border) !important;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
}

:root[data-theme="dark"] .bucket-card > .card-header strong {
  color: var(--dm-text) !important;
  font-weight: 700;
  letter-spacing: 0.01em;
}

:root[data-theme="dark"] .bucket-card > .card-body {
  background: rgba(15, 23, 42, 0.38) !important;
}

:root[data-theme="dark"] .task-card {
  background: linear-gradient(180deg, rgba(17, 24, 39, 1) 0%, rgba(20, 29, 45, 1) 100%) !important;
  border-radius: 0.8rem;
}

:root[data-theme="dark"] .task-card .card-body {
  padding-top: 0.9rem !important;
  padding-bottom: 0.9rem !important;
}

:root[data-theme="dark"] .task-title,
:root[data-theme="dark"] .fw-semibold,
:root[data-theme="dark"] strong {
  color: #f8fafc;
}

:root[data-theme="dark"] .task-desc,
:root[data-theme="dark"] .kpi .sub,
:root[data-theme="dark"] footer,
:root[data-theme="dark"] .form-text,
:root[data-theme="dark"] .text-muted,
:root[data-theme="dark"] .text-body-secondary,
:root[data-theme="dark"] .small.text-muted,
:root[data-theme="dark"] small.text-muted {
  color: var(--dm-muted) !important;
}

:root[data-theme="dark"] .task-card .small,
:root[data-theme="dark"] .list-group-item .small {
  color: var(--dm-text-soft) !important;
}

:root[data-theme="dark"] .task-card .small .text-muted,
:root[data-theme="dark"] .list-group-item .small.text-muted {
  color: var(--dm-muted) !important;
}

:root[data-theme="dark"] .kpi .value {
  color: #f8fafc;
  text-shadow: 0 1px 0 rgba(255,255,255,0.03);
}

:root[data-theme="dark"] .kpi .card-body {
  min-height: 88px;
}

:root[data-theme="dark"] .list-group-item {
  background: rgba(17, 24, 39, 0.96) !important;
}

:root[data-theme="dark"] .dropdown-menu {
  padding: 0.45rem;
}

:root[data-theme="dark"] .dropdown-item {
  color: var(--dm-text);
  border-radius: 0.5rem;
}

:root[data-theme="dark"] .dropdown-item:hover,
:root[data-theme="dark"] .dropdown-item:focus {
  background: rgba(51, 65, 85, 0.55);
  color: #fff;
}

:root[data-theme="dark"] .nav-tabs .nav-link {
  color: var(--dm-muted);
  background: transparent;
}

:root[data-theme="dark"] .nav-tabs .nav-link:hover,
:root[data-theme="dark"] .nav-tabs .nav-link:focus {
  color: var(--dm-text);
}

:root[data-theme="dark"] .nav-tabs .nav-link.active,
:root[data-theme="dark"] .nav-tabs .nav-item.show .nav-link {
  background: var(--dm-surface) !important;
  color: var(--dm-text) !important;
}

:root[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > *,
:root[data-theme="dark"] .table-hover > tbody > tr:hover > * {
  --bs-table-accent-bg: rgba(255,255,255,0.035);
  color: var(--dm-text);
}

:root[data-theme="dark"] .text-dark,
:root[data-theme="dark"] .bg-light.text-dark,
:root[data-theme="dark"] .badge.bg-light.text-dark {
  color: var(--dm-text) !important;
}

:root[data-theme="dark"] .badge.bg-light,
:root[data-theme="dark"] .text-bg-light {
  background: var(--dm-surface-2) !important;
  color: var(--dm-text) !important;
  border: 1px solid var(--dm-border);
}

:root[data-theme="dark"] .bg-secondary {
  background: var(--dm-surface-3) !important;
}

:root[data-theme="dark"] .badge.bg-warning,
:root[data-theme="dark"] .text-bg-warning {
  background: #facc15 !important;
  color: #1f2937 !important;
  border: 0;
}

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

:root[data-theme="dark"] .navbar-toggler {
  border-color: rgba(255,255,255,.2);
}

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

:root[data-theme="dark"] .shadow,
:root[data-theme="dark"] .shadow-sm,
:root[data-theme="dark"] .card-lite,
:root[data-theme="dark"] .bucket-card {
  box-shadow: var(--dm-shadow) !important;
}

:root[data-theme="dark"] .login-hero {
  background: radial-gradient(1200px 600px at 20% -20%, rgba(59, 130, 246, 0.18), rgba(59, 130, 246, 0)),
              radial-gradient(800px 400px at 120% 0%, rgba(34, 197, 94, 0.14), rgba(34, 197, 94, 0));
}

:root[data-theme="dark"] img[alt="Signature"] {
  border-color: var(--dm-border) !important;
  background: #fff;
}

:root[data-theme="dark"] select option {
  background: var(--dm-surface);
  color: var(--dm-text);
}

:root[data-theme="dark"] .form-control::placeholder,
:root[data-theme="dark"] textarea::placeholder {
  color: #7c8aa0;
}

:root[data-theme="dark"] .form-control:focus,
:root[data-theme="dark"] .form-select:focus,
:root[data-theme="dark"] .btn:focus,
:root[data-theme="dark"] .btn-check:focus + .btn {
  border-color: #60a5fa;
  box-shadow: 0 0 0 0.2rem rgba(96, 165, 250, 0.18) !important;
}

:root[data-theme="dark"] .modal-backdrop.show {
  opacity: 0.72;
}

:root[data-theme="dark"] .alert-light {
  background: rgba(148, 163, 184, 0.12);
  border-color: var(--dm-border);
  color: var(--dm-text);
}

:root[data-theme="dark"] .accordion-button {
  background: rgba(17, 24, 39, 0.98) !important;
  color: var(--dm-text) !important;
}

:root[data-theme="dark"] .accordion-button:not(.collapsed) {
  box-shadow: inset 0 -1px 0 var(--dm-border);
}

:root[data-theme="dark"] .accordion-button::after {
  filter: invert(1) grayscale(1);
}
