
@plugin "daisyui/theme" {
  name: "shadcn";
  default: true;
  prefersdark: false;
  color-scheme: "light";
  --color-base-100: oklch(98% 0.001 106.423);
  --color-base-200: oklch(97% 0.001 106.424);
  --color-base-300: oklch(92% 0.003 48.717);
  --color-base-content: oklch(21% 0.006 56.043);
  --color-primary: oklch(0% 0 0);
  --color-primary-content: oklch(100% 0 0);
  --color-secondary: oklch(89% 0.196 126.665);
  --color-secondary-content: oklch(27% 0.072 132.109);
  --color-accent: oklch(87% 0.169 91.605);
  --color-accent-content: oklch(27% 0.077 45.635);
  --color-neutral: oklch(21% 0.006 56.043);
  --color-neutral-content: oklch(98% 0.001 106.423);
  --color-info: oklch(68% 0.169 237.323);
  --color-info-content: oklch(97% 0.013 236.62);
  --color-success: oklch(70% 0.14 182.503);
  --color-success-content: oklch(98% 0.014 180.72);
  --color-warning: oklch(79% 0.184 86.047);
  --color-warning-content: oklch(98% 0.026 102.212);
  --color-error: oklch(65% 0.241 354.308);
  --color-error-content: oklch(97% 0.014 343.198);
  --radius-selector: 0.5rem;
  --radius-field: 1rem;
  --radius-box: 0.5rem;
  --size-selector: 0.25rem;
  --size-field: 0.25rem;
  --border: 1px;
  --depth: 1;
  --noise: 1;
}


@plugin "daisyui/theme" {
  name: "shadcn-2";
  default: false;
  prefersdark: false;
  color-scheme: "light";
  --color-base-100: oklch(98% 0 0);
  --color-base-200: oklch(97% 0 0);
  --color-base-300: oklch(92% 0 0);
  --color-base-content: oklch(20% 0 0);
  --color-primary: oklch(78% 0.115 274.713);
  --color-primary-content: oklch(25% 0.09 281.288);
  --color-secondary: oklch(90% 0.182 98.111);
  --color-secondary-content: oklch(28% 0.066 53.813);
  --color-accent: oklch(89% 0.196 126.665);
  --color-accent-content: oklch(27% 0.072 132.109);
  --color-neutral: oklch(43% 0 0);
  --color-neutral-content: oklch(98% 0 0);
  --color-info: oklch(78% 0.154 211.53);
  --color-info-content: oklch(30% 0.056 229.695);
  --color-success: oklch(79% 0.209 151.711);
  --color-success-content: oklch(26% 0.065 152.934);
  --color-warning: oklch(85% 0.199 91.936);
  --color-warning-content: oklch(28% 0.066 53.813);
  --color-error: oklch(70% 0.191 22.216);
  --color-error-content: oklch(25% 0.092 26.042);
  --radius-selector: 0.5rem;
  --radius-field: 0.5rem;
  --radius-box: 0.5rem;
  --size-selector: 0.25rem;
  --size-field: 0.25rem;
  --border: 1px;
  --depth: 1;
  --noise: 1;
}


@plugin "daisyui/theme" {
  name: "shadcndark";
  default: false;
  prefersdark: false;
  color-scheme: "dark";
  --color-base-100: oklch(12% 0.042 264.695);
  --color-base-200: oklch(20% 0.042 265.755);
  --color-base-300: oklch(27% 0.041 260.031);
  --color-base-content: oklch(96% 0.007 247.896);
  --color-primary: oklch(55% 0.016 285.938);
  --color-primary-content: oklch(98% 0 0);
  --color-secondary: oklch(0% 0 0);
  --color-secondary-content: oklch(100% 0 0);
  --color-accent: oklch(76% 0.188 70.08);
  --color-accent-content: oklch(98% 0.022 95.277);
  --color-neutral: oklch(20% 0.042 265.755);
  --color-neutral-content: oklch(98% 0.003 247.858);
  --color-info: oklch(74% 0.16 232.661);
  --color-info-content: oklch(29% 0.066 243.157);
  --color-success: oklch(76% 0.177 163.223);
  --color-success-content: oklch(26% 0.051 172.552);
  --color-warning: oklch(85% 0.199 91.936);
  --color-warning-content: oklch(28% 0.066 53.813);
  --color-error: oklch(71% 0.194 13.428);
  --color-error-content: oklch(27% 0.105 12.094);
  --radius-selector: 0.5rem;
  --radius-field: 0.5rem;
  --radius-box: 0.5rem;
  --size-selector: 0.25rem;
  --size-field: 0.25rem;
  --border: 1px;
  --depth: 1;
  --noise: 1;
}


@plugin "daisyui/theme" {
  name: "shadcndark2";
  default: false;
  prefersdark: false;
  color-scheme: "dark";
  --color-base-100: oklch(12% 0.042 264.695);
  --color-base-200: oklch(20% 0.042 265.755);
  --color-base-300: oklch(27% 0.041 260.031);
  --color-base-content: oklch(96% 0.007 247.896);
  --color-primary: oklch(0% 0 0);
  --color-primary-content: oklch(100% 0 0);
  --color-secondary: oklch(70% 0.14 182.503);
  --color-secondary-content: oklch(98% 0.014 180.72);
  --color-accent: oklch(62% 0.214 259.815);
  --color-accent-content: oklch(97% 0.014 254.604);
  --color-neutral: oklch(37% 0.044 257.287);
  --color-neutral-content: oklch(98% 0.003 247.858);
  --color-info: oklch(68% 0.169 237.323);
  --color-info-content: oklch(97% 0.013 236.62);
  --color-success: oklch(76% 0.233 130.85);
  --color-success-content: oklch(98% 0.031 120.757);
  --color-warning: oklch(76% 0.188 70.08);
  --color-warning-content: oklch(98% 0.022 95.277);
  --color-error: oklch(64% 0.246 16.439);
  --color-error-content: oklch(96% 0.015 12.422);
  --radius-selector: 0.5rem;
  --radius-field: 0.5rem;
  --radius-box: 0.5rem;
  --size-selector: 0.25rem;
  --size-field: 0.25rem;
  --border: 2px;
  --depth: 1;
  --noise: 1;
}

@plugin "daisyui/theme" {
  name: "shadcngray";
  default: false;
  prefersdark: false;
  color-scheme: "light";
  --color-base-100: oklch(98% 0 0);
  --color-base-200: oklch(97% 0 0);
  --color-base-300: oklch(92% 0 0);
  --color-base-content: oklch(20% 0 0);
  --color-primary: oklch(0% 0 0);
  --color-primary-content: oklch(100% 0 0);
  --color-secondary: oklch(59% 0.145 163.225);
  --color-secondary-content: oklch(97% 0.021 166.113);
  --color-accent: oklch(64% 0.222 41.116);
  --color-accent-content: oklch(98% 0.016 73.684);
  --color-neutral: oklch(43% 0 0);
  --color-neutral-content: oklch(98% 0 0);
  --color-info: oklch(71% 0.143 215.221);
  --color-info-content: oklch(98% 0.019 200.873);
  --color-success: oklch(69% 0.17 162.48);
  --color-success-content: oklch(97% 0.021 166.113);
  --color-warning: oklch(70% 0.213 47.604);
  --color-warning-content: oklch(98% 0.016 73.684);
  --color-error: oklch(65% 0.241 354.308);
  --color-error-content: oklch(97% 0.014 343.198);
  --radius-selector: 0.5rem;
  --radius-field: 0.5rem;
  --radius-box: 0.5rem;
  --size-selector: 0.25rem;
  --size-field: 0.25rem;
  --border: 1.5px;
  --depth: 1;
  --noise: 1;
}


/* ========== LIGHT: SHADCN (default) ========== */
[data-theme="shadcn"] {
  color-scheme: light;

  --color-base-100: oklch(98% 0.001 106.423);
  --color-base-200: oklch(97% 0.001 106.424);
  --color-base-300: oklch(92% 0.003 48.717);
  --color-base-content: oklch(21% 0.006 56.043);

  --color-primary: oklch(0% 0 0);
  --color-primary-content: oklch(100% 0 0);

  --color-secondary: oklch(89% 0.196 126.665);
  --color-secondary-content: oklch(27% 0.072 132.109);

  --color-accent: oklch(87% 0.169 91.605);
  --color-accent-content: oklch(27% 0.077 45.635);

  --color-neutral: oklch(21% 0.006 56.043);
  --color-neutral-content: oklch(98% 0.001 106.423);

  --color-info: oklch(68% 0.169 237.323);
  --color-info-content: oklch(97% 0.013 236.62);

  --color-success: oklch(70% 0.14 182.503);
  --color-success-content: oklch(98% 0.014 180.72);

  --color-warning: oklch(79% 0.184 86.047);
  --color-warning-content: oklch(98% 0.026 102.212);

  --color-error: oklch(65% 0.241 354.308);
  --color-error-content: oklch(97% 0.014 343.198);

  --radius-selector: 0.5rem;
  --radius-field: 1rem;
  --radius-box: 0.5rem;
  --border: 1px;
}

/* ========== LIGHT: SHADCN-2 ========== */
[data-theme="shadcn2"] {
  color-scheme: light;

  --color-base-100: oklch(98% 0 0);
  --color-base-200: oklch(97% 0 0);
  --color-base-300: oklch(92% 0 0);
  --color-base-content: oklch(20% 0 0);

  --color-primary: oklch(78% 0.115 274.713);
  --color-primary-content: oklch(25% 0.09 281.288);

  --color-secondary: oklch(90% 0.182 98.111);
  --color-secondary-content: oklch(28% 0.066 53.813);

  --color-accent: oklch(89% 0.196 126.665);
  --color-accent-content: oklch(27% 0.072 132.109);

  --color-neutral: oklch(43% 0 0);
  --color-neutral-content: oklch(98% 0 0);
}

/* ========== LIGHT: SHADCN GRAY ========== */
[data-theme="shadcngray"] {
  color-scheme: light;

  --color-base-100: oklch(98% 0 0);
  --color-base-content: oklch(20% 0 0);

  --color-primary: oklch(0% 0 0);
  --color-primary-content: oklch(100% 0 0);

  --color-secondary: oklch(59% 0.145 163.225);
  --color-secondary-content: oklch(97% 0.021 166.113);

  --color-accent: oklch(64% 0.222 41.116);
  --color-accent-content: oklch(98% 0.016 73.684);

  --color-neutral: oklch(43% 0 0);
  --color-neutral-content: oklch(98% 0 0);

  --border: 1.5px;
}

/* ========== MERGED DARK THEME (BEST OF BOTH) ========== */
[data-theme="shadcn-dark"] {
  color-scheme: dark;

  --color-base-100: oklch(12% 0.042 264.695);
  --color-base-200: oklch(20% 0.042 265.755);
  --color-base-300: oklch(27% 0.041 260.031);
  --color-base-content: oklch(96% 0.007 247.896);

  --color-primary: oklch(62% 0.214 259.815);
  --color-primary-content: oklch(97% 0.014 254.604);

  --color-secondary: oklch(70% 0.14 182.503);
  --color-secondary-content: oklch(98% 0.014 180.72);

  --color-accent: oklch(76% 0.188 70.08);
  --color-accent-content: oklch(98% 0.022 95.277);

  --color-neutral: oklch(37% 0.044 257.287);
  --color-neutral-content: oklch(98% 0.003 247.858);

  --color-success: oklch(76% 0.233 130.85);
  --color-warning: oklch(76% 0.188 70.08);
  --color-error: oklch(64% 0.246 16.439);

  --border: 1.5px;
}

/* ================================================================
   NC PROFESSIONAL — Light, elegant, violet-pink accent theme
   ================================================================ */
[data-theme="nc-professional"] {
  color-scheme: light;

  /* Base surfaces */
  --color-base-100: oklch(100% 0 0);            /* white  — cards, modals */
  --color-base-200: oklch(97.5% 0.003 270);     /* near-white — page bg  */
  --color-base-300: oklch(92% 0.006 260);       /* light border / divider */
  --color-base-content: oklch(22% 0.015 275);   /* near-black text       */

  /* Primary — violet */
  --color-primary: oklch(46% 0.22 278);
  --color-primary-content: oklch(100% 0 0);

  /* Secondary — rose/pink */
  --color-secondary: oklch(62% 0.26 355);
  --color-secondary-content: oklch(100% 0 0);

  /* Accent — cyan */
  --color-accent: oklch(67% 0.155 200);
  --color-accent-content: oklch(100% 0 0);

  /* Neutral */
  --color-neutral: oklch(40% 0.01 270);
  --color-neutral-content: oklch(100% 0 0);

  /* Semantic */
  --color-info: oklch(61% 0.17 236);
  --color-info-content: oklch(100% 0 0);
  --color-success: oklch(64% 0.2 163);
  --color-success-content: oklch(100% 0 0);
  --color-warning: oklch(77% 0.185 75);
  --color-warning-content: oklch(22% 0.05 75);
  --color-error: oklch(60% 0.245 25);
  --color-error-content: oklch(100% 0 0);

  /* Shape */
  --radius-selector: 0.375rem;
  --radius-field: 0.5rem;
  --radius-box: 0.75rem;
  --border: 1px;
}

/* ================================================================
   NC SIDEBAR NAVIGATION STYLES
   ================================================================ */

/* Section label */
.nc-nav-section {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #94a3b8;
  padding: 0.75rem 0.75rem 0.25rem;
  margin-top: 0.25rem;
}

/* Nav link */
.nc-nav-item {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.5rem 0.75rem;
  border-radius: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 400;
  color: #64748b;
  text-decoration: none;
  transition: background-color 0.12s ease, color 0.12s ease;
  line-height: 1.4;
}

.nc-nav-item:hover {
  background-color: #f1f5f9;
  color: #1e293b;
}

.nc-nav-item.nc-nav-active {
  background-color: #ede9fe;
  color: #6d28d9;
  font-weight: 600;
}

/* Readonly / disabled fields — bright light-blue bg */
input[readonly],
select[readonly],
textarea[readonly],
input[disabled],
select[disabled],
textarea[disabled] {
  background-color: #eff6ff !important;
  opacity: 0.9;
  cursor: not-allowed;
}

/* ================================================================
   NC PROFESSIONAL — Button overrides
   All .btn-primary and .btn-secondary use the violet→pink gradient
   to match the "Edit Profile" button style throughout the app.
   Semantic colors (error, info, success, warning) are unchanged.
   ================================================================ */

/* Round all buttons slightly more */
[data-theme="nc-professional"] .btn {
  border-radius: 0.625rem;
}

/* Primary — violet → pink gradient */
[data-theme="nc-professional"] .btn-primary:not(.btn-outline) {
  background: linear-gradient(135deg, #7c3aed, #ec4899);
  border-color: transparent;
  color: #ffffff;
}
[data-theme="nc-professional"] .btn-primary:not(.btn-outline):hover,
[data-theme="nc-professional"] .btn-primary:not(.btn-outline):focus-visible {
  background: linear-gradient(135deg, #6d28d9, #db2777);
  border-color: transparent;
  color: #ffffff;
  opacity: 0.93;
}
[data-theme="nc-professional"] .btn-primary:not(.btn-outline):active {
  background: linear-gradient(135deg, #5b21b6, #be185d);
  border-color: transparent;
  color: #ffffff;
}

/* Primary outline variant — violet border + text, no fill */
[data-theme="nc-professional"] .btn-outline.btn-primary {
  border-color: #7c3aed;
  color: #7c3aed;
}
[data-theme="nc-professional"] .btn-outline.btn-primary:hover {
  background: linear-gradient(135deg, #7c3aed, #ec4899);
  border-color: transparent;
  color: #ffffff;
}

/* Secondary — rose → red gradient */
[data-theme="nc-professional"] .btn-secondary:not(.btn-outline) {
  background: linear-gradient(135deg, #ec4899, #f43f5e);
  border-color: transparent;
  color: #ffffff;
}
[data-theme="nc-professional"] .btn-secondary:not(.btn-outline):hover,
[data-theme="nc-professional"] .btn-secondary:not(.btn-outline):focus-visible {
  background: linear-gradient(135deg, #db2777, #e11d48);
  border-color: transparent;
  color: #ffffff;
  opacity: 0.93;
}

/* Ghost — keep neutral, just enforce light hover */
[data-theme="nc-professional"] .btn-ghost {
  color: #475569;
}
[data-theme="nc-professional"] .btn-ghost:hover {
  background-color: #f1f5f9;
  color: #1e293b;
}

/* ================================================================
   NC PROFESSIONAL — File input
   The native ::file-selector-button gets the gradient pill;
   the text track is styled to match form inputs.
   Applied globally so every <input type="file"> in the app is
   covered without per-page HTML changes.
   ================================================================ */

[data-theme="nc-professional"] input[type="file"],
[data-theme="nc-professional"] .file-input {
  width: 100%;
  padding: 0.25rem 0.75rem 0.25rem 0.25rem;
  font-size: 0.8125rem;
  color: #64748b;
  background-color: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 0.625rem;
  cursor: pointer;
  outline: none;
  transition: border-color 0.15s ease;
  /* remove DaisyUI height override */
  height: auto;
  min-height: unset;
}

[data-theme="nc-professional"] input[type="file"]:focus,
[data-theme="nc-professional"] .file-input:focus {
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px rgba(124,58,237,0.1);
}

/* The "Choose File" button inside the input */
[data-theme="nc-professional"] input[type="file"]::file-selector-button,
[data-theme="nc-professional"] .file-input::file-selector-button {
  background: linear-gradient(135deg, #7c3aed, #ec4899);
  color: #ffffff;
  border: none;
  padding: 0.45rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  margin-right: 0.75rem;
  transition: opacity 0.15s ease;
}

[data-theme="nc-professional"] input[type="file"]::file-selector-button:hover,
[data-theme="nc-professional"] .file-input::file-selector-button:hover {
  opacity: 0.88;
}

/* ================================================================
   NC PROFESSIONAL — Modern drag-and-drop upload dropzone
   ================================================================ */

.nc-dropzone {
  border: 2px dashed #e2e8f0;
  border-radius: 0.875rem;
  background-color: #f8fafc;
  padding: 2.25rem 1.5rem;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.18s ease, background-color 0.18s ease;
  position: relative;
  user-select: none;
}

.nc-dropzone:hover {
  border-color: #a78bfa;
  background-color: #faf5ff;
}

.nc-dropzone.nc-dragover {
  border-color: #7c3aed;
  background-color: #f5f3ff;
  box-shadow: 0 0 0 4px rgba(124,58,237,0.08);
}

/* icon circle */
.nc-dropzone-icon {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 0.875rem;
  background: linear-gradient(135deg, #7c3aed, #ec4899);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(124,58,237,0.28);
  margin-bottom: 0.875rem;
}