/* ==========================================================================
   theme.css — Layer 2: Semantic tokens
   Light mode is the default (:root). Dark mode overrides on [data-theme="dark"].
   All components reference only these semantic tokens.
   ========================================================================== */

/* Light mode — default */
:root {
  --surface-page:        var(--color-neutral-100);
  --surface-card:        var(--color-neutral-000);
  --surface-sidebar:     var(--color-neutral-050);
  --surface-overlay:     rgba(15, 23, 42, 0.4);
  --surface-nav:         var(--color-neutral-000);
  --surface-hover:       var(--color-neutral-100);
  --surface-selected:    #EFF6FF;

  --text-primary:        var(--color-neutral-900);
  --text-secondary:      var(--color-neutral-600);
  --text-muted:          var(--color-neutral-400);
  --text-inverse:        var(--color-neutral-000);
  --text-brand:          var(--color-brand-primary);
  --text-on-brand:       var(--color-neutral-000);

  --border-default:      var(--color-neutral-200);
  --border-strong:       var(--color-neutral-300);
  --border-focus:        var(--color-brand-primary);

  --interactive-primary: var(--color-brand-primary);
  --interactive-accent:  var(--color-brand-accent);
  --interactive-hover:   #1648C0;
  --interactive-muted:   var(--color-neutral-200);

  --score-high:          var(--color-success);
  --score-medium:        var(--color-warning);
  --score-low:           var(--color-danger);

  --status-active:       var(--color-success);
  --status-expired:      var(--color-danger);
  --status-cancelled:    var(--color-neutral-400);

  --badge-upsell-bg:     #DBEAFE;
  --badge-upsell-text:   #1D4ED8;
  --badge-crosssell-bg:  #FEF3C7;
  --badge-crosssell-text:#92400E;

  --event-marriage:      #7C3AED;
  --event-newchild:      #0891B2;
  --event-homepurchase:  #059669;
  --event-retirement:    #D97706;
  --event-divorce:       #DC2626;
  --event-jobchange:     #1A56DB;

  --shadow-card:         0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.06);
  --shadow-panel:        0 4px 6px rgba(0,0,0,0.07);
  --shadow-nav:          0 1px 3px rgba(0,0,0,0.1);
  --shadow-elevated:     0 10px 15px rgba(0,0,0,0.1), 0 4px 6px rgba(0,0,0,0.07);
}

/* Dark mode */
[data-theme="dark"] {
  --surface-page:        var(--color-neutral-900);
  --surface-card:        var(--color-neutral-800);
  --surface-sidebar:     #111827;
  --surface-overlay:     rgba(0, 0, 0, 0.6);
  --surface-nav:         var(--color-neutral-800);
  --surface-hover:       var(--color-neutral-700);
  --surface-selected:    #1E3A5F;

  --text-primary:        var(--color-neutral-100);
  --text-secondary:      var(--color-neutral-300);
  --text-muted:          var(--color-neutral-400);
  --text-inverse:        var(--color-neutral-900);
  --text-brand:          #93C5FD;
  --text-on-brand:       var(--color-neutral-900);

  --border-default:      var(--color-neutral-700);
  --border-strong:       var(--color-neutral-600);
  --border-focus:        #93C5FD;

  --interactive-primary: #3B82F6;
  --interactive-accent:  var(--color-brand-accent);
  --interactive-hover:   #60A5FA;
  --interactive-muted:   var(--color-neutral-700);

  --score-high:          #4ADE80;
  --score-medium:        #FCD34D;
  --score-low:           #F87171;

  --status-active:       #4ADE80;
  --status-expired:      #F87171;
  --status-cancelled:    var(--color-neutral-400);

  --badge-upsell-bg:     #1E3A5F;
  --badge-upsell-text:   #93C5FD;
  --badge-crosssell-bg:  #422006;
  --badge-crosssell-text:#FCD34D;

  --event-marriage:      #A78BFA;
  --event-newchild:      #22D3EE;
  --event-homepurchase:  #34D399;
  --event-retirement:    #FCD34D;
  --event-divorce:       #F87171;
  --event-jobchange:     #60A5FA;

  --shadow-card:         0 1px 3px rgba(0,0,0,0.4), 0 1px 2px rgba(0,0,0,0.3);
  --shadow-panel:        0 4px 6px rgba(0,0,0,0.35);
  --shadow-nav:          0 1px 3px rgba(0,0,0,0.5);
  --shadow-elevated:     0 10px 15px rgba(0,0,0,0.4), 0 4px 6px rgba(0,0,0,0.3);
}
