
/* ───────────────────────────────────────────
   GUILDMON DESIGN SYSTEM
   Nord palette + Stone (default), Nord Light (Snow Storm), Nord Dark (Polar Night)
─────────────────────────────────────────── */

/* ── Nord Palette (16 canonical colours, HSL) ── */
:root {
  --nord0:  220 16% 22%;   /* #2e3440 */
  --nord1:  220 16% 28%;   /* #3b4252 */
  --nord2:  220 17% 32%;   /* #434c5e */
  --nord3:  220 16% 36%;   /* #4c566a */
  --nord4:  219 28% 88%;   /* #d8dee9 */
  --nord5:  218 27% 92%;   /* #e5e9f0 */
  --nord6:  218 27% 94%;   /* #eceff4 */
  --nord7:  179 25% 65%;   /* #8fbcbb */
  --nord8:  193 43% 67%;   /* #88c0d0 */
  --nord9:  210 34% 63%;   /* #81a1c1 */
  --nord10: 213 32% 52%;   /* #5e81ac */
  --nord11: 354 42% 56%;   /* #bf616a */
  --nord12: 14 51% 63%;    /* #d08770 */
  --nord13: 40 71% 73%;    /* #ebcb8b */
  --nord14: 92 28% 65%;    /* #a3be8c */
  --nord15: 311 20% 63%;   /* #b48ead */
}

/* ── Stone Theme (warm beige/neutral — default) ── */
:root,
html[data-theme="stone"] {
  --background:         36 25% 97%;
  --foreground:         25 18% 16%;

  --card:               36 22% 95%;
  --card-foreground:    25 18% 16%;

  --popover:            36 22% 95%;
  --popover-foreground: 25 18% 16%;

  --primary:            25 20% 22%;
  --primary-foreground: 36 25% 97%;

  --secondary:          33 18% 90%;
  --secondary-foreground: 25 18% 22%;

  --muted:              33 15% 91%;
  --muted-foreground:   25 10% 48%;

  --accent:             33 18% 87%;
  --accent-foreground:  25 18% 16%;

  --destructive:        0 72% 51%;
  --destructive-foreground: 36 25% 97%;

  --border:             33 16% 86%;
  --input:              33 16% 86%;
  --ring:               25 20% 40%;

  --radius: 0.5rem;

  /* Sidebar */
  --sidebar-background:          33 20% 93%;
  --sidebar-foreground:          25 18% 16%;
  --sidebar-primary:             25 20% 22%;
  --sidebar-primary-foreground:  36 25% 97%;
  --sidebar-accent:              33 18% 87%;
  --sidebar-accent-foreground:   25 18% 16%;
  --sidebar-border:              33 16% 83%;
  --sidebar-ring:                25 20% 40%;

  /* Guildmon custom tokens */
  --gm-active-bg:       33 28% 85%;
  --gm-active-border:   25 30% 52%;
  --gm-presence-online: 142 55% 45%;
  --gm-presence-away:   40 90% 55%;
  --gm-badge-bg:        25 20% 22%;
  --gm-badge-fg:        36 25% 97%;
  --gm-header-bg:       36 22% 96%;
  --gm-message-hover:   33 18% 92%;
  --gm-composer-bg:     36 22% 95%;
  --gm-right-panel-bg:  36 20% 96%;
  --gm-brand-color:     25 40% 35%;
}

/* ── Nord Dark — Polar Night base ──
   STRICTLY nord-0..3 for UI surfaces. Snow Storm for text.
   Frost/Aurora only for accents & semantic states. */
html[data-theme="nord-dark"] {
  --background:           var(--nord0);   /* #2e3440 */
  --foreground:           var(--nord6);   /* #eceff4 */

  --card:                 var(--nord1);   /* #3b4252 — panels, modals */
  --card-foreground:      var(--nord6);

  --popover:              var(--nord1);
  --popover-foreground:   var(--nord6);

  --primary:              var(--nord8);   /* #88c0d0 — frost accent */
  --primary-foreground:   var(--nord0);

  --secondary:            var(--nord3);   /* #4c566a */
  --secondary-foreground: var(--nord5);   /* #e5e9f0 */

  --muted:                var(--nord2);   /* #434c5e — subtle bg */
  --muted-foreground:     var(--nord4);   /* #d8dee9 — subdued text */

  --accent:               var(--nord2);
  --accent-foreground:    var(--nord6);

  --destructive:          var(--nord11);  /* #bf616a */
  --destructive-foreground: var(--nord6);

  --border:               var(--nord3);   /* #4c566a */
  --input:                var(--nord2);   /* #434c5e */
  --ring:                 var(--nord8);   /* #88c0d0 */

  --radius: 0.5rem;

  /* Sidebar — darkest shade */
  --sidebar-background:          var(--nord0);
  --sidebar-foreground:          var(--nord5);
  --sidebar-primary:             var(--nord8);
  --sidebar-primary-foreground:  var(--nord0);
  --sidebar-accent:              var(--nord1);
  --sidebar-accent-foreground:   var(--nord5);
  --sidebar-border:              var(--nord2);
  --sidebar-ring:                var(--nord8);

  /* Guildmon custom tokens */
  --gm-active-bg:       var(--nord2);
  --gm-active-border:   var(--nord8);
  --gm-presence-online: var(--nord14);  /* #a3be8c */
  --gm-presence-away:   var(--nord13);  /* #ebcb8b */
  --gm-badge-bg:        var(--nord8);
  --gm-badge-fg:        var(--nord0);
  --gm-header-bg:       var(--nord0);
  --gm-message-hover:   var(--nord1);
  --gm-composer-bg:     var(--nord1);
  --gm-right-panel-bg:  var(--nord0);
  --gm-brand-color:     var(--nord8);
}

/* ── Nord Light — Snow Storm base ──
   STRICTLY nord-4..6 for UI surfaces. Polar Night for text.
   Frost/Aurora only for accents & semantic states. */
html[data-theme="nord-light"] {
  --background:           var(--nord6);   /* #eceff4 — base */
  --foreground:           var(--nord0);   /* #2e3440 — text */

  --card:                 var(--nord5);   /* #e5e9f0 — panels, modals */
  --card-foreground:      var(--nord0);

  --popover:              var(--nord5);
  --popover-foreground:   var(--nord0);

  --primary:              var(--nord10);  /* #5e81ac — frost accent */
  --primary-foreground:   var(--nord6);

  --secondary:            var(--nord4);   /* #d8dee9 */
  --secondary-foreground: var(--nord1);   /* #3b4252 */

  --muted:                var(--nord4);   /* #d8dee9 — subtle bg */
  --muted-foreground:     var(--nord3);   /* #4c566a — subdued text */

  --accent:               var(--nord5);
  --accent-foreground:    var(--nord0);

  --destructive:          var(--nord11);  /* #bf616a */
  --destructive-foreground: var(--nord6);

  --border:               var(--nord4);   /* #d8dee9 */
  --input:                var(--nord4);
  --ring:                 var(--nord10);  /* #5e81ac */

  --radius: 0.5rem;

  /* Sidebar — slightly darker snow */
  --sidebar-background:          var(--nord5);
  --sidebar-foreground:          var(--nord0);
  --sidebar-primary:             var(--nord10);
  --sidebar-primary-foreground:  var(--nord6);
  --sidebar-accent:              var(--nord4);
  --sidebar-accent-foreground:   var(--nord0);
  --sidebar-border:              var(--nord4);
  --sidebar-ring:                var(--nord10);

  /* Guildmon custom tokens */
  --gm-active-bg:       var(--nord4);
  --gm-active-border:   var(--nord10);
  --gm-presence-online: var(--nord14);  /* #a3be8c */
  --gm-presence-away:   var(--nord13);  /* #ebcb8b */
  --gm-badge-bg:        var(--nord10);
  --gm-badge-fg:        var(--nord6);
  --gm-header-bg:       var(--nord6);
  --gm-message-hover:   var(--nord5);
  --gm-composer-bg:     var(--nord5);
  --gm-right-panel-bg:  var(--nord6);
  --gm-brand-color:     var(--nord10);
}

@layer base {
  * {
    @apply border-border;
  }

  body {
    @apply bg-background text-foreground;
  }
}

/* ── Smooth theme transitions ── */
*, *::before, *::after {
  transition-property: background-color, border-color, color;
  transition-duration: 200ms;
  transition-timing-function: ease;
}
button, a, [role="button"] {
  transition-property: background-color, border-color, color, opacity, box-shadow;
  transition-duration: 150ms;
}


/* ── Scrollbar styling ── */
::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background: hsl(var(--border));
  border-radius: 2px;
}
::-webkit-scrollbar-thumb:hover {
  background: hsl(var(--muted-foreground) / 0.4);
}
