/*
  Central theme controller.
  Change tokens here to update all pages that extend base.html.
  Active profile comes from body[data-zyd-theme], fed by ZYD_THEME_PROFILE env var.
*/

:root {
  --zyd-font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --zyd-font-size-base: 0.92rem;
  --zyd-line-height-base: 1.45;
  --zyd-navbar-bg: #f8f9fa;
  --zyd-text: #212529;
  --zyd-text-dim: #495057;
  --zyd-accent: #011951;
  --zyd-accent-strong: #1849a4;
  --zyd-hover: #d5dadf;
  --zyd-surface-0: #f4f7fc;
  --zyd-surface-1: #ffffff;
  --zyd-surface-2: #edf3fc;
  --zyd-border-soft: #dbe5f2;
  --zyd-shadow-soft: 0 8px 20px rgba(12, 25, 52, 0.08);
  --zyd-heading: #1a2742;
  --zyd-muted: #62728f;
  --zyd-radius-card: 12px;
  --zyd-radius-btn: 8px;
  --zyd-page-bg-start: #f4f7fc;
  --zyd-page-bg-end: #eef3fb;
  --zyd-page-glow: rgba(185, 209, 246, 0.35);
}

:root[data-zyd-theme="clean-v1"],
html[data-zyd-theme="clean-v1"],
body[data-zyd-theme="clean-v1"] {
  --zyd-navbar-bg: #f8f9fa;
  --zyd-text: #212529;
  --zyd-text-dim: #495057;
  --zyd-accent: #011951;
  --zyd-hover: #d5dadf;
  --zyd-surface-0: #10284b;
  --zyd-surface-1: #ffffff;
  --zyd-surface-2: #edf3fc;
  --zyd-border-soft: #dbe5f2;
  --zyd-shadow-soft: 0 8px 20px rgba(12, 25, 52, 0.08);
  --zyd-heading: #1a2742;
  --zyd-muted: #62728f;
  --zyd-page-bg-start: #0d2242;
  --zyd-page-bg-end: #0a1830;
  --zyd-page-glow: rgba(90, 132, 196, 0.25);
}

/* Optional alternate profile to support fast A/B visual checks without template changes. */
:root[data-zyd-theme="clean-v2"],
html[data-zyd-theme="clean-v2"],
body[data-zyd-theme="clean-v2"] {
  --zyd-navbar-bg: #f3f6fb;
  --zyd-text: #1d2a3f;
  --zyd-text-dim: #4a5c79;
  --zyd-accent: #123a8b;
  --zyd-hover: #dce7fb;
  --zyd-surface-0: #f2f6ff;
  --zyd-surface-1: #ffffff;
  --zyd-surface-2: #e8effd;
  --zyd-border-soft: #d2def2;
  --zyd-shadow-soft: 0 10px 24px rgba(20, 39, 76, 0.1);
  --zyd-heading: #17325d;
  --zyd-muted: #576f95;
  --zyd-page-bg-start: #f2f6ff;
  --zyd-page-bg-end: #eaf0fd;
  --zyd-page-glow: rgba(185, 209, 246, 0.35);
}

:root[data-zyd-theme="clean-dark"],
html[data-zyd-theme="clean-dark"],
body[data-zyd-theme="clean-dark"] {
  --zyd-navbar-bg: #0d1729;
  --zyd-text: #dce7fb;
  --zyd-text-dim: #9fb3d6;
  --zyd-accent: #7aa6ff;
  --zyd-accent-strong: #9cbcff;
  --zyd-hover: #1a2742;
  --zyd-surface-0: #08111f;
  --zyd-surface-1: #111e34;
  --zyd-surface-2: #182a46;
  --zyd-border-soft: #273a59;
  --zyd-shadow-soft: 0 10px 26px rgba(0, 0, 0, 0.35);
  --zyd-heading: #f1f6ff;
  --zyd-muted: #9ab0d4;
  --zyd-page-bg-start: #08111f;
  --zyd-page-bg-end: #0a1630;
  --zyd-page-glow: rgba(86, 129, 219, 0.24);
}

html, body {
  font-family: var(--zyd-font-family);
  font-size: var(--zyd-font-size-base);
  line-height: var(--zyd-line-height-base);
  color: var(--zyd-text);
}

body {
  background: var(--zyd-page-bg-start);
  min-height: 100vh;
}

h1, h2, h3, h4, h5, h6 {
  color: var(--zyd-heading);
  letter-spacing: 0.01em;
}

.small,
small {
  color: var(--zyd-muted);
}

p,
label,
input,
select,
textarea,
button,
.form-control,
.form-select,
.btn,
.table,
.nav-link,
.dropdown-item {
  font-family: var(--zyd-font-family);
}

.container {
  position: relative;
}

.zyd-page-shell {
  padding-top: 4px;
  padding-bottom: 18px;
}

.zyd-page-panel {
  background: linear-gradient(180deg, #f9fbff 0%, #eef3fb 100%);
  border: 1px solid var(--zyd-border-soft);
  border-radius: 14px;
  box-shadow: var(--zyd-shadow-soft);
  padding: 14px;
}

.zyd-page-panel > .container,
.zyd-page-panel > .container-fluid {
  max-width: none;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-left: 0;
  padding-right: 0;
}

.zyd-page-panel .mt-5,
.zyd-page-panel .my-4,
.zyd-page-panel .mt-4 {
  margin-top: 0.75rem !important;
}

@media (max-width: 767px) {
  .zyd-page-shell {
    padding-top: 0;
    padding-bottom: 10px;
  }

  .zyd-page-panel {
    border-radius: 10px;
    padding: 10px;
  }
}

.card:not(.bg-dark):not(.text-bg-dark):not(.bg-light) {
  background: var(--zyd-surface-1);
  border: 1px solid var(--zyd-border-soft);
  border-radius: var(--zyd-radius-card);
  box-shadow: var(--zyd-shadow-soft);
}

/* Legacy dark cards/tables are remapped to the clean light panel look. */
.card.bg-dark,
.card.text-bg-dark,
.card.card-dark {
  background: var(--zyd-surface-1) !important;
  color: #20314f !important;
  border: 1px solid var(--zyd-border-soft) !important;
  border-radius: var(--zyd-radius-card) !important;
  box-shadow: var(--zyd-shadow-soft) !important;
}

.bg-dark-blue {
  background: var(--zyd-surface-1) !important;
  color: #20314f !important;
  border: 1px solid var(--zyd-border-soft) !important;
}

.zyd-page-panel .text-light {
  color: #20314f !important;
}

.zyd-page-panel [style*="color:#f5f5f5"],
.zyd-page-panel [style*="color: #f5f5f5"] {
  color: #20314f !important;
}

.zyd-page-panel [style*="color:#e8eef8"],
.zyd-page-panel [style*="color: #e8eef8"] {
  color: #20314f !important;
}

.card.bg-dark .small.text-muted,
.card.text-bg-dark .small.text-muted,
.card.card-dark .small.text-muted {
  color: #6f7f9b !important;
  opacity: 1 !important;
}

.table.table-dark {
  --bs-table-bg: #ffffff;
  --bs-table-color: #20314f;
  --bs-table-border-color: #dbe5f2;
  --bs-table-striped-bg: #f8fbff;
  --bs-table-striped-color: #20314f;
  --bs-table-hover-bg: #eef5ff;
  --bs-table-hover-color: #1b2f52;
}

.table.table-dark th {
  background: var(--zyd-surface-2) !important;
  color: #61718d !important;
  border-color: var(--zyd-border-soft) !important;
}

.alert-secondary {
  background: #f4f8ff;
  border-color: #d3deef;
  color: #334a70;
}

.btn-outline-light {
  color: #2a3d61;
  border-color: #c6d6ee;
  background: #f5f9ff;
}

.btn-outline-light:hover,
.btn-outline-light:focus {
  color: #20365d;
  border-color: #b7cae7;
  background: #e8f1fd;
}

/* Neutralize older pages forcing white text headings inline. */
.zyd-page-panel h1[style*="color:#f5f5f5"],
.zyd-page-panel h2[style*="color:#f5f5f5"],
.zyd-page-panel h3[style*="color:#f5f5f5"],
.zyd-page-panel h4[style*="color:#f5f5f5"],
.zyd-page-panel h5[style*="color:#f5f5f5"] {
  color: var(--zyd-heading) !important;
}

.card-header {
  background: linear-gradient(180deg, #f7faff 0%, var(--zyd-surface-2) 100%);
  border-bottom: 1px solid var(--zyd-border-soft);
  font-weight: 700;
  color: #2a3a59;
}

.table:not(.table-dark) th {
  background: var(--zyd-surface-2);
  color: #62728f;
  border-color: var(--zyd-border-soft);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 0.78rem;
}

.table:not(.table-dark) td {
  border-color: #e1e8f5;
  color: #20314f;
}

.table-hover:not(.table-dark) tbody tr:hover {
  background: #f7fbff;
}

.btn:not(.btn-link) {
  border-radius: var(--zyd-radius-btn);
  font-weight: 600;
}

.btn-primary,
.btn-custom-blue {
  background: var(--zyd-accent);
  border-color: var(--zyd-accent);
  color: #f5f9ff;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-custom-blue:hover,
.btn-custom-blue:focus {
  background: var(--zyd-accent-strong);
  border-color: var(--zyd-accent-strong);
  color: #ffffff;
}

.btn-custom-gray {
  border-color: #c9d8ee;
  color: #1e345c;
  background: #f4f8ff;
}

.btn-custom-gray:hover,
.btn-custom-gray:focus {
  border-color: #b7cae7;
  background: #e8f0fd;
  color: #18315a;
}
