/* ==========================================================================
   VARIABLES.CSS - Design Tokens & Custom Properties
   Osteopata - Gestionale Studio Medico
   ========================================================================== */

:root {
  /* ── Primary Palette ─────────────────────────────────────────────────── */
  --color-primary:        #0D9488;
  --color-primary-light:  #14B8A6;
  --color-primary-dark:   #0F766E;
  --color-primary-50:     #F0FDFA;
  --color-primary-100:    #CCFBF1;
  --color-primary-200:    #99F6E4;
  --color-primary-300:    #5EEAD4;
  --color-primary-400:    #2DD4BF;
  --color-primary-500:    #14B8A6;
  --color-primary-600:    #0D9488;
  --color-primary-700:    #0F766E;
  --color-primary-800:    #115E59;
  --color-primary-900:    #134E4A;
  --color-primary-rgb:    13, 148, 136;

  /* ── Secondary (Indigo) ──────────────────────────────────────────────── */
  --color-secondary:      #6366F1;
  --color-secondary-light:#818CF8;
  --color-secondary-dark: #4F46E5;
  --color-secondary-rgb:  99, 102, 241;

  /* ── Accent (Amber) ─────────────────────────────────────────────────── */
  --color-accent:         #F59E0B;
  --color-accent-light:   #FBBF24;
  --color-accent-dark:    #D97706;
  --color-accent-rgb:     245, 158, 11;

  /* ── Semantic Colors ─────────────────────────────────────────────────── */
  --color-success:        #10B981;
  --color-success-light:  #34D399;
  --color-success-dark:   #059669;
  --color-success-rgb:    16, 185, 129;

  --color-warning:        #F59E0B;
  --color-warning-light:  #FBBF24;
  --color-warning-dark:   #D97706;
  --color-warning-rgb:    245, 158, 11;

  --color-danger:         #EF4444;
  --color-danger-light:   #F87171;
  --color-danger-dark:    #DC2626;
  --color-danger-rgb:     239, 68, 68;

  --color-info:           #3B82F6;
  --color-info-light:     #60A5FA;
  --color-info-dark:      #2563EB;
  --color-info-rgb:       59, 130, 246;

  /* ── Discipline Colors ───────────────────────────────────────────────── */
  --color-massoterapia:   #0D9488;
  --color-osteopatia:     #6366F1;
  --color-fisioterapia:   #3B82F6;

  /* ── Typography ──────────────────────────────────────────────────────── */
  --font-family:          'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-mono:            'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;

  --font-size-xs:         0.75rem;    /* 12px */
  --font-size-sm:         0.8125rem;  /* 13px */
  --font-size-base:       0.875rem;   /* 14px */
  --font-size-md:         1rem;       /* 16px */
  --font-size-lg:         1.125rem;   /* 18px */
  --font-size-xl:         1.25rem;    /* 20px */
  --font-size-2xl:        1.5rem;     /* 24px */
  --font-size-3xl:        1.875rem;   /* 30px */
  --font-size-4xl:        2.25rem;    /* 36px */

  --font-weight-normal:   400;
  --font-weight-medium:   500;
  --font-weight-semibold: 600;
  --font-weight-bold:     700;

  --line-height-tight:    1.25;
  --line-height-normal:   1.5;
  --line-height-relaxed:  1.75;

  --letter-spacing-tight: -0.025em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide:  0.025em;
  --letter-spacing-wider: 0.05em;

  /* ── Spacing Scale ───────────────────────────────────────────────────── */
  --space-0:  0;
  --space-px: 1px;
  --space-0-5: 0.125rem;  /* 2px  */
  --space-1:  0.25rem;    /* 4px  */
  --space-1-5: 0.375rem;  /* 6px  */
  --space-2:  0.5rem;     /* 8px  */
  --space-2-5: 0.625rem;  /* 10px */
  --space-3:  0.75rem;    /* 12px */
  --space-4:  1rem;       /* 16px */
  --space-5:  1.25rem;    /* 20px */
  --space-6:  1.5rem;     /* 24px */
  --space-7:  2rem;       /* 32px */
  --space-8:  4rem;       /* 64px */

  /* ── Border Radius ───────────────────────────────────────────────────── */
  --radius-none: 0;
  --radius-sm:   0.25rem;   /* 4px  */
  --radius-md:   0.5rem;    /* 8px  */
  --radius-lg:   0.75rem;   /* 12px */
  --radius-xl:   1rem;      /* 16px */
  --radius-2xl:  1.5rem;    /* 24px */
  --radius-full: 9999px;

  /* ── Transitions ─────────────────────────────────────────────────────── */
  --transition-fast:    150ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-normal:  250ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow:    350ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-spring:  500ms cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-in-out:        cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out:           cubic-bezier(0, 0, 0.2, 1);
  --ease-in:            cubic-bezier(0.4, 0, 1, 1);

  /* ── Z-Index Scale ───────────────────────────────────────────────────── */
  --z-base:      1;
  --z-dropdown:  100;
  --z-sticky:    200;
  --z-sidebar:   300;
  --z-topbar:    400;
  --z-overlay:   500;
  --z-modal:     600;
  --z-toast:     700;
  --z-tooltip:   800;
  --z-max:       9999;

  /* ── Layout ──────────────────────────────────────────────────────────── */
  --sidebar-width:           260px;
  --sidebar-collapsed-width: 70px;
  --topbar-height:           64px;
  --content-max-width:       1400px;
  --content-padding:         var(--space-6);

  /* ── Breakpoints (for reference, used in media queries) ──────────────── */
  /* --bp-mobile:  480px  */
  /* --bp-tablet:  768px  */
  /* --bp-desktop: 1024px */
  /* --bp-wide:    1280px */
  /* --bp-ultra:   1536px */
}

/* ==========================================================================
   LIGHT MODE (Default)
   ========================================================================== */
:root,
[data-theme="light"] {
  --bg-primary:     #F8FAFC;
  --bg-secondary:   #FFFFFF;
  --bg-tertiary:    #F1F5F9;
  --bg-card:        rgba(255, 255, 255, 0.9);
  --bg-card-solid:  #FFFFFF;
  --bg-input:       #FFFFFF;
  --bg-hover:       rgba(241, 245, 249, 0.8);
  --bg-active:      rgba(226, 232, 240, 0.8);
  --bg-surface:     rgba(255, 255, 255, 0.95);

  --text-primary:   #0F172A;
  --text-secondary: #475569;
  --text-muted:     #94A3B8;
  --text-inverse:   #F1F5F9;
  --text-link:      var(--color-primary-dark);

  --border-color:       rgba(15, 23, 42, 0.1);
  --border-color-light: rgba(15, 23, 42, 0.05);
  --border-color-focus: var(--color-primary);

  /* ── Shadows (Light) ─────────────────────────────────────────────────── */
  --shadow-xs:   0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-sm:   0 2px 4px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
  --shadow-md:   0 4px 8px rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.04);
  --shadow-lg:   0 8px 24px rgba(0, 0, 0, 0.1), 0 4px 8px rgba(0, 0, 0, 0.06);
  --shadow-xl:   0 16px 48px rgba(0, 0, 0, 0.12), 0 8px 16px rgba(0, 0, 0, 0.06);
  --shadow-inner: inset 0 2px 4px rgba(0, 0, 0, 0.06);

  /* Glow Shadows */
  --shadow-glow-primary:   0 0 20px rgba(var(--color-primary-rgb), 0.15), 0 0 40px rgba(var(--color-primary-rgb), 0.05);
  --shadow-glow-secondary: 0 0 20px rgba(var(--color-secondary-rgb), 0.15), 0 0 40px rgba(var(--color-secondary-rgb), 0.05);
  --shadow-glow-danger:    0 0 20px rgba(var(--color-danger-rgb), 0.15), 0 0 40px rgba(var(--color-danger-rgb), 0.05);
  --shadow-glow-success:   0 0 20px rgba(var(--color-success-rgb), 0.15), 0 0 40px rgba(var(--color-success-rgb), 0.05);

  /* ── Glassmorphism ───────────────────────────────────────────────────── */
  --glass-bg:       rgba(255, 255, 255, 0.7);
  --glass-bg-heavy: rgba(255, 255, 255, 0.9);
  --glass-border:   rgba(15, 23, 42, 0.08);
  --glass-shadow:   0 8px 32px rgba(0, 0, 0, 0.08);
  --glass-blur:     16px;
  --glass-blur-heavy: 24px;

  /* ── Scrollbar ───────────────────────────────────────────────────────── */
  --scrollbar-track: var(--bg-tertiary);
  --scrollbar-thumb: #CBD5E1;
  --scrollbar-thumb-hover: #94A3B8;

  /* ── Overlay ─────────────────────────────────────────────────────────── */
  --overlay-bg: rgba(15, 23, 42, 0.4);
  --overlay-bg-heavy: rgba(15, 23, 42, 0.6);
}

/* ==========================================================================
   DARK MODE
   ========================================================================== */
[data-theme="dark"] {
  --bg-primary:     #0F172A;
  --bg-secondary:   #1E293B;
  --bg-tertiary:    #334155;
  --bg-card:        rgba(30, 41, 59, 0.8);
  --bg-card-solid:  #1E293B;
  --bg-input:       #1E293B;
  --bg-hover:       rgba(51, 65, 85, 0.5);
  --bg-active:      rgba(51, 65, 85, 0.8);
  --bg-surface:     rgba(15, 23, 42, 0.95);

  --text-primary:   #F1F5F9;
  --text-secondary: #94A3B8;
  --text-muted:     #64748B;
  --text-inverse:   #0F172A;
  --text-link:      var(--color-primary-light);

  --border-color:       rgba(148, 163, 184, 0.12);
  --border-color-light: rgba(148, 163, 184, 0.06);
  --border-color-focus: var(--color-primary);

  /* ── Shadows (Dark) ──────────────────────────────────────────────────── */
  --shadow-xs:   0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-sm:   0 2px 4px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
  --shadow-md:   0 4px 8px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.2);
  --shadow-lg:   0 8px 24px rgba(0, 0, 0, 0.4), 0 4px 8px rgba(0, 0, 0, 0.3);
  --shadow-xl:   0 16px 48px rgba(0, 0, 0, 0.5), 0 8px 16px rgba(0, 0, 0, 0.3);
  --shadow-inner: inset 0 2px 4px rgba(0, 0, 0, 0.3);

  /* Glow Shadows */
  --shadow-glow-primary:   0 0 20px rgba(var(--color-primary-rgb), 0.3), 0 0 40px rgba(var(--color-primary-rgb), 0.1);
  --shadow-glow-secondary: 0 0 20px rgba(var(--color-secondary-rgb), 0.3), 0 0 40px rgba(var(--color-secondary-rgb), 0.1);
  --shadow-glow-danger:    0 0 20px rgba(var(--color-danger-rgb), 0.3), 0 0 40px rgba(var(--color-danger-rgb), 0.1);
  --shadow-glow-success:   0 0 20px rgba(var(--color-success-rgb), 0.3), 0 0 40px rgba(var(--color-success-rgb), 0.1);

  /* ── Glassmorphism ───────────────────────────────────────────────────── */
  --glass-bg:       rgba(30, 41, 59, 0.6);
  --glass-bg-heavy: rgba(30, 41, 59, 0.85);
  --glass-border:   rgba(148, 163, 184, 0.1);
  --glass-shadow:   0 8px 32px rgba(0, 0, 0, 0.3);
  --glass-blur:     16px;
  --glass-blur-heavy: 24px;

  /* ── Scrollbar ───────────────────────────────────────────────────────── */
  --scrollbar-track: var(--bg-primary);
  --scrollbar-thumb: var(--bg-tertiary);
  --scrollbar-thumb-hover: #475569;

  /* ── Overlay ─────────────────────────────────────────────────────────── */
  --overlay-bg: rgba(0, 0, 0, 0.6);
  --overlay-bg-heavy: rgba(0, 0, 0, 0.8);
}
