:root {
  --bg: #FAFAFC;
  --bg-alt: #FFFFFF;
  --bg-canvas: #F6F0FA;
  --border: #E8DFF0;
  --border-strong: #C8B8DA;
  --text: #18181F;
  --text-muted: #6F6577;
  --accent: #C26AE6;
  --accent-hover: #B055D6;
  --accent-soft: #F3E5FB;
  --secondary: #1DA8E0;
  --secondary-hover: #1690C2;

  --trigger:   #2A8A5A;
  --question:  #1690C2;
  --if:        #B8761F;
  --action:    #B83366;
  --handoff:   #C25526;
  --finalization: #4F4F5C;
  --note:      #D4A437;
  --note-bg:   #FBF5DE;
  --balloon:   #8550C4;
  --balloon-bg: #F3EBFB;

  --shadow-sm: 0 1px 2px rgba(24,24,31,0.04);
  --shadow-md: 0 4px 14px rgba(24,24,31,0.07);
  --shadow-lg: 0 12px 36px rgba(24,24,31,0.10);
}

[data-theme="dark"] {
  --bg: #14121A;
  --bg-alt: #1C1A24;
  --bg-canvas: #100E16;
  --border: #2A2735;
  --border-strong: #3D384C;
  --text: #F0EBF7;
  --text-muted: #9B93AB;
  --accent: #D17EF0;
  --accent-hover: #DC93F4;
  --accent-soft: #2A1F38;
  --secondary: #3DB9E8;
  --secondary-hover: #5BC8F0;

  --trigger:   #38B574;
  --question:  #3DB9E8;
  --if:        #E0A53D;
  --action:    #E04688;
  --handoff:   #E87145;
  --finalization: #9B93AB;
  --note:      #E5BB52;
  --note-bg:   #2E2818;
  --balloon:   #B585DB;
  --balloon-bg: #261B33;

  --shadow-sm: 0 1px 2px rgba(0,0,0,0.3);
  --shadow-md: 0 4px 14px rgba(0,0,0,0.4);
  --shadow-lg: 0 12px 36px rgba(0,0,0,0.5);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  font-family: 'Poppins', sans-serif;
  background: var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  transition: background 0.25s ease, color 0.25s ease;
}

button { font-family: inherit; cursor: pointer; }

.toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: var(--text);
  color: var(--bg-alt);
  padding: 12px 20px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 500;
  opacity: 0;
  pointer-events: none;
  transition: all 0.25s;
  z-index: 1000;
  box-shadow: var(--shadow-lg);
}
.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
