:root {
  --color-primary: #0b163d;
  --color-secondary: #D4AF37;
  --brand-500: 11 22 61;
  --color-darkgold: #AA8C2C;
  --color-darkparchment: #E8DFD0;
  --color-lightteal: #8BB5B2;
  --color-deepblue: #0b163d;
  --font-heading: 'Cinzel Decorative', ui-serif, Georgia, serif;
  --font-body: 'Lora', ui-serif, Georgia, serif;
  --theme-light-bg-image: none;
  --theme-dark-bg-image: url('https://www.transparenttextures.com/patterns/stardust.png');
  --theme-dark-texture-image: url('https://www.transparenttextures.com/patterns/stardust.png');
  --theme-card-radius: 0.5rem;
  --theme-card-border-width: 2px;
  --theme-card-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.5), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
  --theme-card-corner-display: block;
  --theme-button-radius: 0.5rem;
  --theme-button-glow: 0 0 10px rgba(212, 175, 55, 0.5);
  --theme-shell-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.5), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
  --theme-shell-blur: blur(10px);
  --theme-shell-bg-alpha: E6;
  --theme-input-radius: 0.5rem;
  --color-background: #F4EFE6;
  --color-text: #0f1f42;
  --color-card: #E8DFD0;
  --color-border: #D4AF37;
  --color-input-bg: #F4EFE6;
  --color-input-text: #0f1f42;
  --color-button-bg: #0b163d;
  --color-button-text: #D4AF37;
  --color-button-hover-bg: #0f1f42;
  --color-button-hover-text: #D4AF37;
  --color-button-glow: rgba(212, 175, 55, 0.5);
  --color-shell-bg: #E8DFD0E6;
}

.dark {
  --color-background: #0b163d;
  --color-text: #F4EFE6;
  --color-card: #0f1f42;
  --color-border: #D4AF37;
  --color-input-bg: #0b163d;
  --color-input-text: #F4EFE6;
  --color-button-bg: #D4AF37;
  --color-button-text: #0b163d;
  --color-button-hover-bg: #AA8C2C;
  --color-button-hover-text: #0b163d;
  --color-button-glow: rgba(212, 175, 55, 0.5);
  --color-shell-bg: #0f1f42E6;
}


/* Base Colors */
body {
  background-color: var(--color-background) !important;
  color: var(--color-text) !important;
  background-image: var(--theme-light-bg-image, none) !important;
  background-size: cover !important;
  background-attachment: fixed !important;
}

.dark body {
  background-color: var(--color-background) !important;
  color: var(--color-text) !important;
  background-image: var(--theme-dark-bg-image, none) !important;
  background-size: cover !important;
  background-attachment: fixed !important;
}

/* Overrides for Legacy Utility Classes */
.bg-medieval-parchment, .dark .dark\:bg-medieval-deepblue {
  background-color: var(--color-card) !important;
}
.bg-medieval-parchment\/90, .dark .dark\:bg-medieval-deepblue\/90,
.bg-medieval-parchment\/50, .dark .dark\:bg-medieval-deepblue\/50,
.bg-medieval-parchment\/30, .dark .dark\:bg-medieval-deepblue\/30 {
  background-color: var(--color-card) !important;
}

/* Text Colors */
.text-medieval-darkblue, .dark .dark\:text-medieval-parchment,
.text-medieval-darkgold, .dark .dark\:text-medieval-parchment\/70 {
  color: var(--color-text) !important;
}
.text-medieval-deepblue {
  color: var(--color-primary) !important;
}
.dark .dark\:text-medieval-gold {
  color: var(--color-text) !important;
}
.hover\:text-medieval-darkgold:hover, .dark .dark\:hover\:text-medieval-parchment:hover {
  color: var(--color-primary) !important;
}

/* Borders */
.border-medieval-gold, .dark .dark\:border-medieval-deepblue,
.border-medieval-darkgold,
.border-medieval-gold\/30, .border-medieval-gold\/20,
.border-medieval-darkgold\/30 {
  border-color: var(--color-border) !important;
}

/* Cards */
.card-medieval {
  background-color: var(--color-card) !important;
  border-color: var(--color-border) !important;
  border-width: var(--theme-card-border-width) !important;
  border-radius: var(--theme-card-radius) !important;
  box-shadow: var(--theme-card-shadow) !important;
}
.card-medieval::before, .card-medieval::after {
  display: var(--theme-card-corner-display) !important;
}

/* Inputs & Editors */
.input-medieval, select.input-medieval {
  background-color: var(--color-input-bg) !important;
  color: var(--color-input-text) !important;
  border-color: var(--color-border) !important;
  border-radius: var(--theme-input-radius) !important;
}
.rich-text-editor-container .ql-toolbar.ql-snow,
.rich-text-editor-container .ql-container.ql-snow,
.rich-text-editor-container .ql-picker-options {
  background-color: var(--color-card) !important;
  border-color: var(--color-border) !important;
}
.rich-text-editor-container .ql-editor {
  color: var(--color-text) !important;
}

/* Buttons */
.btn-primary {
  background-color: var(--color-button-bg) !important;
  color: var(--color-button-text) !important;
  border-color: var(--color-border) !important;
  border-radius: var(--theme-button-radius) !important;
  box-shadow: var(--theme-button-glow) !important;
}
.btn-primary:hover {
  background-color: var(--color-button-hover-bg) !important;
  color: var(--color-button-hover-text) !important;
}
.btn-secondary {
  background-color: transparent !important;
  color: var(--color-button-bg) !important;
  border-color: var(--color-button-bg) !important;
  border-radius: var(--theme-button-radius) !important;
}
.btn-secondary:hover {
  background-color: var(--color-button-bg) !important;
  color: var(--color-button-text) !important;
}
.btn-ghost {
  background-color: transparent !important;
  color: var(--color-text) !important;
  border-color: transparent !important;
  border-radius: var(--theme-button-radius) !important;
}
.btn-ghost:hover {
  background-color: var(--color-card) !important;
}

/* Shell */
.theme-shell {
  background-color: var(--color-shell-bg) !important;
  border-color: var(--color-border) !important;
  box-shadow: var(--theme-shell-shadow) !important;
  backdrop-filter: var(--theme-shell-blur);
  -webkit-backdrop-filter: var(--theme-shell-blur);
}
