/* Precision Nutrition Custom Theme Colors */
/* Based on https://precisionnutrition.it/ brand colors */
/* SYSTEMATIC APPROACH: No conflicting rules, clear hierarchy */

:root {
  /* Sophisticated green palette - professional and easy on eyes */
  --pn-primary-green: #2D6A4F;  /* Deep forest green - main brand color */
  --pn-dark-green: #1B5E3F;     /* Darker forest green */
  --pn-light-green: #52B788;    /* Soft mint green - lighter but not bright */
  --pn-accent-green: #40916C;   /* Emerald green - for accents */
  --pn-sage-green: #95D5B2;     /* Sage green - very soft for backgrounds */
  --pn-hover-green: #236149;    /* Slightly darker for hover states */

  /* Neutral colors for backgrounds and selections */
  --pn-light-bg: #FAFBFC;       /* Very light gray */
  --pn-white: #FFFFFF;
  --pn-light-gray: #F5F7FA;
  --pn-medium-gray: #E2E8F0;
  --pn-dark-gray: #4A5568;
  --pn-charcoal: #2D3748;

  /* Selection backgrounds - NOT GREEN to avoid conflicts */
  --pn-selection-light: #E8F4FD;  /* Very light blue-gray for selections */
  --pn-selection-dark: #3E4C59;   /* Dark blue-gray for dark mode selections */

  /* Dark theme colors */
  --pn-dark-bg: #1A202C;        /* Dark background */
  --pn-dark-surface: #2D3748;   /* Elevated surfaces */
  --pn-dark-border: #4A5568;    /* Borders and dividers */
  --pn-dark-text: #F7FAFC;      /* Light text */
  --pn-dark-text-muted: #CBD5E0; /* Muted text */
}

/* ============================================ */
/* LIGHT THEME - DaisyUI Variable Overrides */
/* ============================================ */
[data-theme="light"] {
  /* Primary colors */
  --color-primary: var(--pn-primary-green) !important;
  --color-primary-content: var(--pn-white) !important;

  /* Secondary colors */
  --color-secondary: var(--pn-dark-green) !important;
  --color-secondary-content: var(--pn-white) !important;

  /* Accent colors */
  --color-accent: var(--pn-light-green) !important;
  --color-accent-content: var(--pn-dark-green) !important;

  /* Neutral colors */
  --color-neutral: var(--pn-dark-gray) !important;
  --color-neutral-content: var(--pn-white) !important;

  /* Base colors (backgrounds) */
  --color-base-100: var(--pn-white) !important;
  --color-base-200: var(--pn-light-bg) !important;
  --color-base-300: var(--pn-light-gray) !important;
  --color-base-content: var(--pn-charcoal) !important;

  /* State colors */
  --color-success: var(--pn-primary-green) !important;
  --color-success-content: var(--pn-white) !important;
  --color-info: var(--pn-light-green) !important;
  --color-info-content: var(--pn-dark-green) !important;
  --color-warning: #FFA500 !important;
  --color-warning-content: var(--pn-white) !important;
  --color-error: #DC3545 !important;
  --color-error-content: var(--pn-white) !important;
}

/* ============================================ */
/* DARK THEME - DaisyUI Variable Overrides */
/* ============================================ */
[data-theme="dark"] {
  /* Primary colors */
  --color-primary: var(--pn-light-green) !important;
  --color-primary-content: var(--pn-dark-bg) !important;

  /* Secondary colors */
  --color-secondary: var(--pn-primary-green) !important;
  --color-secondary-content: var(--pn-dark-bg) !important;

  /* Accent colors */
  --color-accent: var(--pn-primary-green) !important;
  --color-accent-content: var(--pn-white) !important;

  /* Neutral colors */
  --color-neutral: var(--pn-dark-border) !important;
  --color-neutral-content: var(--pn-dark-text) !important;

  /* Base colors (backgrounds) */
  --color-base-100: var(--pn-dark-bg) !important;
  --color-base-200: var(--pn-dark-surface) !important;
  --color-base-300: var(--pn-dark-border) !important;
  --color-base-content: var(--pn-dark-text) !important;

  /* State colors */
  --color-success: var(--pn-light-green) !important;
  --color-success-content: var(--pn-dark-bg) !important;
  --color-info: var(--pn-primary-green) !important;
  --color-info-content: var(--pn-white) !important;
  --color-warning: #FFB84D !important;
  --color-warning-content: var(--pn-dark-bg) !important;
  --color-error: #FF6B6B !important;
  --color-error-content: var(--pn-dark-bg) !important;
}

/* ============================================ */
/* BUTTONS - Same for both themes */
/* ============================================ */
.btn-primary,
button.btn-primary,
input[type="submit"].btn-primary,
a.btn-primary {
  background-color: var(--pn-primary-green) !important;
  color: white !important;
  border-color: var(--pn-primary-green) !important;
}

.btn-primary:hover,
button.btn-primary:hover,
input[type="submit"].btn-primary:hover,
a.btn-primary:hover {
  background-color: var(--pn-hover-green) !important;
  border-color: var(--pn-hover-green) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(45, 106, 79, 0.25);
}

/* ============================================ */
/* LINKS - Simple and clear */
/* ============================================ */
/* Light mode links */
[data-theme="light"] a:not(.btn) {
  color: var(--pn-primary-green) !important;
}

[data-theme="light"] a:not(.btn):hover {
  color: var(--pn-hover-green) !important;
  text-decoration: underline;
}

/* Dark mode links */
[data-theme="dark"] a:not(.btn) {
  color: var(--pn-light-green) !important;
}

[data-theme="dark"] a:not(.btn):hover {
  color: var(--pn-accent-green) !important;
  text-decoration: underline;
}

/* ============================================ */
/* SELECTIONS AND ACTIVE STATES - Using neutral colors */
/* ============================================ */

/* Light mode selections - Use light gray background with normal dark text */
[data-theme="light"] .selected,
[data-theme="light"] .active,
[data-theme="light"] .menu-item-active,
[data-theme="light"] .nav-link.active,
[data-theme="light"] tr.selected {
  background-color: var(--pn-selection-light) !important;
  color: var(--pn-charcoal) !important;
}

/* Links in selected items in light mode remain green */
[data-theme="light"] .selected a:not(.btn),
[data-theme="light"] .active a:not(.btn) {
  color: var(--pn-primary-green) !important;
  font-weight: 600;
}

/* Dark mode selections - Use dark gray background with light text */
[data-theme="dark"] .selected,
[data-theme="dark"] .active,
[data-theme="dark"] .menu-item-active,
[data-theme="dark"] .nav-link.active,
[data-theme="dark"] tr.selected {
  background-color: var(--pn-selection-dark) !important;
  color: var(--pn-dark-text) !important;
}

/* Links in selected items in dark mode remain light green */
[data-theme="dark"] .selected a:not(.btn),
[data-theme="dark"] .active a:not(.btn) {
  color: var(--pn-light-green) !important;
  font-weight: 600;
}

/* ============================================ */
/* FORM ELEMENTS */
/* ============================================ */
/* Light mode */
[data-theme="light"] input:focus,
[data-theme="light"] textarea:focus,
[data-theme="light"] select:focus {
  border-color: var(--pn-primary-green) !important;
  outline-color: var(--pn-primary-green) !important;
  box-shadow: 0 0 0 0.2rem rgba(45, 106, 79, 0.25) !important;
}

/* Dark mode */
[data-theme="dark"] input:focus,
[data-theme="dark"] textarea:focus,
[data-theme="dark"] select:focus {
  border-color: var(--pn-light-green) !important;
  outline-color: var(--pn-light-green) !important;
  box-shadow: 0 0 0 0.2rem rgba(82, 183, 136, 0.25) !important;
}

/* Checkboxes and radios */
input[type="checkbox"]:checked,
input[type="radio"]:checked {
  background-color: var(--pn-primary-green) !important;
  border-color: var(--pn-primary-green) !important;
}

[data-theme="dark"] input[type="checkbox"]:checked,
[data-theme="dark"] input[type="radio"]:checked {
  background-color: var(--pn-light-green) !important;
  border-color: var(--pn-light-green) !important;
}

/* ============================================ */
/* BADGES AND PILLS */
/* ============================================ */
.badge-primary,
.badge-success {
  background-color: var(--pn-primary-green) !important;
  color: white !important;
}

[data-theme="dark"] .badge-primary,
[data-theme="dark"] .badge-success {
  background-color: var(--pn-light-green) !important;
  color: var(--pn-dark-bg) !important;
}

/* ============================================ */
/* TABLE HOVER STATES */
/* ============================================ */
[data-theme="light"] .table tbody tr:hover {
  background-color: rgba(45, 106, 79, 0.08) !important;
}

[data-theme="dark"] .table tbody tr:hover {
  background-color: rgba(82, 183, 136, 0.15) !important;
}

/* ============================================ */
/* BREADCRUMBS */
/* ============================================ */
.breadcrumbs {
  background-color: transparent !important;
}

[data-theme="light"] .breadcrumbs a {
  color: var(--pn-primary-green) !important;
}

[data-theme="light"] .breadcrumbs .current {
  color: var(--pn-dark-gray) !important;
  font-weight: 600;
}

[data-theme="dark"] .breadcrumbs a {
  color: var(--pn-light-green) !important;
}

[data-theme="dark"] .breadcrumbs .current {
  color: var(--pn-dark-text-muted) !important;
  font-weight: 600;
}

/* ============================================ */
/* INLINE FORMS STYLING */
/* ============================================ */
/* Fix margins and padding for StackedInline */
.inline-related {
  margin: 1rem 0 !important;
  padding: 1rem !important;
  border-radius: 0.5rem !important;
  background-color: var(--pn-light-bg) !important;
  border: 1px solid var(--pn-medium-gray) !important;
}

[data-theme="dark"] .inline-related {
  background-color: var(--pn-dark-surface) !important;
  border: 1px solid var(--pn-dark-border) !important;
}

/* Better spacing for inline fieldsets */
.inline-related fieldset {
  margin: 0.5rem 0 !important;
  padding: 1rem !important;
}

/* Fix inline headers */
.inline-related h3 {
  margin: 0 0 1rem 0 !important;
  padding: 0.75rem !important;
  background-color: var(--pn-light-gray) !important;
  border-radius: 0.375rem !important;
  font-size: 1.1rem !important;
}

[data-theme="dark"] .inline-related h3 {
  background-color: var(--pn-dark-border) !important;
}

/* Improve tabbed inline appearance */
.inline-related .navtab-content {
  padding: 1rem !important;
  margin-top: 0.5rem !important;
}

/* Tab navigation for inline forms */
.inline-related .nav-tabs {
  border-bottom: 2px solid var(--pn-medium-gray) !important;
  margin-bottom: 1rem !important;
}

[data-theme="dark"] .inline-related .nav-tabs {
  border-bottom: 2px solid var(--pn-dark-border) !important;
}

.inline-related .nav-tabs .nav-link {
  padding: 0.5rem 1rem !important;
  margin-right: 0.5rem !important;
  border-radius: 0.375rem 0.375rem 0 0 !important;
}

.inline-related .nav-tabs .nav-link.active {
  background-color: var(--pn-primary-green) !important;
  color: white !important;
  border-color: var(--pn-primary-green) !important;
}

/* Better form row spacing in inlines */
.inline-related .form-row {
  margin-bottom: 1rem !important;
}

/* Improve label and input alignment */
.inline-related label {
  display: inline-block !important;
  margin-bottom: 0.25rem !important;
  font-weight: 500 !important;
}

.inline-related input,
.inline-related textarea {
  width: 100% !important;
  border-radius: 0.375rem !important;
}

.inline-related select {
    width: 100% !important;
    padding: 0 !important;
    padding-left: 8px !important;
    border-radius: 0.375rem !important;
}

/* ============================================ */
/* RESPONSIVE */
/* ============================================ */
@media (max-width: 768px) {
  .sidebar-logo img {
    max-height: 32px;
  }

  /* Responsive inline forms */
  .inline-related {
    padding: 0.75rem !important;
  }

  .inline-related .form-row {
    padding: 0.25rem !important;
  }
}