/* ============================================================
 * eb-tokens.css — ExamBuilder Central Design Token System
 *
 * Layer 1: Primitive Palette
 * Layer 2: Semantic Section Tokens
 * Layer 3: Global Utility Tokens
 * Layer 4: Special Domain Tokens
 * compat: Backward-compat aliases (--qw-* / --qg-* / --qb-*)
 * ============================================================ */

/* ── Layer 1: Primitive Palette ── */
:root {
  /* Slate (회색 체계) */
  --eb-slate-50:  #f8fafc;
  --eb-slate-100: #f1f5f9;
  --eb-slate-200: #e2e8f0;
  --eb-slate-300: #cbd5e1;
  --eb-slate-400: #94a3b8;
  --eb-slate-500: #64748b;
  --eb-slate-600: #475569;
  --eb-slate-700: #334155;
  --eb-slate-800: #1e293b;
  --eb-slate-900: #0f172a;
  --eb-slate-950: #020617;

  /* Violet (QWrite 전용) */
  --eb-violet-50:  #f5f3ff;
  --eb-violet-100: #ede9fe;
  --eb-violet-400: #8b5cf6;  /* 그라디언트 endpoint로 사용 */
  --eb-violet-500: #7c3aed;
  --eb-violet-600: #6d28d9;
  --eb-violet-700: #5b21b6;
  --eb-violet-900: #4c1d95;
  --eb-violet-bd:  #c4b5fd;

  /* Indigo (PaperGen) */
  --eb-indigo-50:  #eef2ff;
  --eb-indigo-500: #6366f1;
  --eb-indigo-600: #4f46e5;
  --eb-indigo-700: #4338ca;
  --eb-indigo-900: #312e81;
  --eb-indigo-bd:  #c7d2fe;

  /* Amber (DrillGen) */
  --eb-amber-50:  #fffbeb;
  --eb-amber-400: #fbbf24;
  --eb-amber-500: #f59e0b;
  --eb-amber-600: #d97706;
  --eb-amber-700: #b45309;
  --eb-amber-900: #78350f;
  --eb-amber-bd:  #fcd34d;

  /* Emerald (Success) */
  --eb-emerald-100: #d1fae5;
  --eb-emerald-500: #10b981;
  --eb-emerald-700: #047857;

  /* Rose (Danger) */
  --eb-rose-100: #ffe4e6;
  --eb-rose-500: #f43f5e;

  /* Teal (QMarket) */
  --eb-teal-50:  #f0fdfa;
  --eb-teal-600: #0d9488;
  --eb-teal-700: #0f766e;
  --eb-teal-900: #134e4a;
  --eb-teal-bd:  #99f6e4;

  /* Misc */
  --eb-cyan-500:  #06b6d4;
  --eb-blue-500:  #3b82f6;
  --eb-blue-700:  #1d4ed8;
  --eb-green-700: #15803d;
  --eb-red-700:   #b91c1c;
  --eb-pink-500:  #ec4899;
}

/* ── Layer 2: Semantic Section Tokens ── */
:root {
  /* QWrite — Violet */
  --qw-primary:        var(--eb-violet-500);   /* #7c3aed */
  --qw-primary-dim:    var(--eb-violet-600);   /* #6d28d9 */
  --qw-primary-glow:   rgba(124,58,237,.25);
  --qw-primary-lt:     var(--eb-violet-100);   /* #ede9fe */
  --qw-primary-bd:     var(--eb-violet-bd);    /* #c4b5fd */
  --qw-primary-tx:     var(--eb-violet-900);   /* #4c1d95 */
  --qw-sidebar-bg:     linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);
  --qw-sidebar-border: rgba(124,58,237,.15);
  --qw-sidebar-hover:  rgba(124,58,237,.08);
  --qw-sidebar-active: rgba(124,58,237,.18);

  /* QGen / QManage — Indigo (PaperGen 기본) */
  --qg-primary:        var(--eb-indigo-500);   /* #6366f1 */
  --qg-primary-dim:    var(--eb-indigo-600);   /* #4f46e5 */
  --qg-primary-glow:   rgba(99,102,241,.25);
  --qg-primary-lt:     var(--eb-indigo-50);    /* #eef2ff */
  --qg-primary-bd:     var(--eb-indigo-bd);    /* #c7d2fe */
  --qg-primary-tx:     var(--eb-indigo-700);   /* #4338ca */

  /* QBook — Indigo 진한 버전 (PaperGen 기본) */
  --qb-primary:        var(--eb-indigo-700);   /* #4338ca */
  --qb-primary-dim:    var(--eb-indigo-900);   /* #312e81 */
  --qb-primary-lt:     var(--eb-indigo-50);    /* #eef2ff */

  /* QMarket — Teal */
  --qmk-primary:       var(--eb-teal-600);     /* #0d9488 */
  --qmk-primary-dim:   var(--eb-teal-700);     /* #0f766e */
  --qmk-primary-lt:    var(--eb-teal-50);      /* #f0fdfa */
  --qmk-primary-tx:    var(--eb-teal-900);     /* #134e4a */
  --qmk-primary-bd:    var(--eb-teal-bd);      /* #99f6e4 */

  /* 공통 기능 색상 */
  --eb-success:        var(--eb-emerald-500);
  --eb-success-lt:     var(--eb-emerald-100);
  --eb-danger:         var(--eb-rose-500);
  --eb-danger-lt:      var(--eb-rose-100);

  /* 공통 UI 토큰 */
  --eb-text:           var(--eb-slate-800);
  --eb-text-dim:       var(--eb-slate-500);
  --eb-text-muted:     var(--eb-slate-400);
  --eb-border:         var(--eb-slate-200);
  --eb-card:           #ffffff;
}

/* DrillGen 모드 오버라이드 */
[data-qg-mode="drillgen"] {
  --qg-primary:        var(--eb-amber-600);
  --qg-primary-dim:    var(--eb-amber-700);
  --qg-primary-glow:   rgba(217,119,6,.20);
  --qg-primary-lt:     var(--eb-amber-50);
  --qg-primary-bd:     var(--eb-amber-bd);
  --qg-primary-tx:     var(--eb-amber-700);
  --qb-primary:        var(--eb-amber-700);
  --qb-primary-dim:    var(--eb-amber-900);
  --qb-primary-lt:     var(--eb-amber-50);
  --qb-violet:         var(--eb-amber-400);    /* gradient endpoint → Amber */
  --qb-icon-shadow:    rgba(217,119,6,.35);
}

/* ── Layer 3: Global Utility Tokens ── */
:root {
  --eb-font-display: 'Bricolage Grotesque', 'Pretendard', sans-serif;
  --eb-font-body:    'Pretendard', -apple-system, sans-serif;
  --eb-font-mono:    'JetBrains Mono', monospace;
  --eb-radius:       12px;
  --eb-radius-sm:    8px;
  --eb-shadow-sm:    0 1px 3px rgba(0,0,0,.05);
  --eb-shadow-md:    0 4px 20px rgba(0,0,0,.07);
  --eb-shadow-lg:    0 8px 40px rgba(0,0,0,.10);
  --eb-transition:   .3s cubic-bezier(.4,0,.2,1);
}

/* ── Layer 4: Special Domain Tokens ── */
:root {
  /* 출제 유형 색상 (15종) */
  --qg-type-purpose:    var(--eb-blue-500);    /* 목적 */
  --qg-type-claim:      var(--eb-violet-500);  /* 주장 */
  --qg-type-gist:       var(--eb-amber-500);   /* 요지 */
  --qg-type-topic:      var(--eb-emerald-500); /* 주제 */
  --qg-type-title:      var(--eb-rose-500);    /* 제목 */
  --qg-type-mismatch:   #ef4444;               /* 불일치 */
  --qg-type-grammar1:   var(--eb-indigo-500);  /* 어법1 */
  --qg-type-grammar2:   var(--eb-violet-500);  /* 어법2 */
  --qg-type-grammar3:   var(--eb-emerald-500); /* 어법3 */
  --qg-type-connector:  var(--eb-pink-500);    /* 연결사 */
  --qg-type-blank-word: var(--eb-blue-500);    /* 빈칸단어 */
  --qg-type-blank-obj:  var(--eb-cyan-500);    /* 빈칸문장-객관식 */
  --qg-type-blank-sub:  #14b8a6;               /* 빈칸문장-주관식 */
  --qg-type-irrelevant: var(--eb-violet-500);  /* 무관한문장 */
  --qg-type-order:      var(--eb-amber-500);   /* 순서배열 */

  /* QWrite 태그 색상 */
  --qw-tag-underline: var(--eb-blue-700);    /* 밑줄(u) #1d4ed8 */
  --qw-tag-bold:      var(--eb-red-700);     /* 굵게(b) #b91c1c */
  --qw-tag-italic:    var(--eb-violet-500);  /* 이탤릭(i) #7c3aed */
  --qw-tag-code:      var(--eb-emerald-700); /* 코드(c) #047857 */

  /* QBook 품사 색상 */
  --qb-pos-noun: var(--eb-blue-700);    /* 명사 #1d4ed8 */
  --qb-pos-verb: var(--eb-green-700);   /* 동사 #15803d */
  --qb-pos-adj:  #6d28d9;              /* 형용사 (Violet-600) */
  --qb-pos-adv:  var(--eb-amber-700);  /* 부사 #b45309 */
  --qb-pos-prep: var(--eb-slate-500);  /* 전치사 #64748b */
  --qb-pos-conj: var(--eb-red-700);    /* 접속사 #b91c1c */
  --qb-pos-pron: var(--eb-teal-700);   /* 대명사 #0f766e */
}

/* ── 하위 호환성 Alias ── */
/* 기존 코드가 --qw-slate-* / --qg-slate-* / --qb-slate-* 를 직접 참조하므로 aliasing 유지 */
:root {
  /* ── QWrite aliases ── */
  --qw-slate-50:   var(--eb-slate-50);
  --qw-slate-100:  var(--eb-slate-100);
  --qw-slate-200:  var(--eb-slate-200);
  --qw-slate-300:  var(--eb-slate-300);
  --qw-slate-400:  var(--eb-slate-400);
  --qw-slate-500:  var(--eb-slate-500);
  --qw-slate-600:  var(--eb-slate-600);
  --qw-slate-700:  var(--eb-slate-700);
  --qw-slate-800:  var(--eb-slate-800);
  --qw-slate-900:  var(--eb-slate-900);
  --qw-slate-950:  var(--eb-slate-950);
  --qw-card:       var(--eb-card);
  --qw-border:     var(--eb-border);
  --qw-text:       var(--eb-text);
  --qw-text-dim:   var(--eb-text-dim);
  --qw-text-muted: var(--eb-text-muted);
  --qw-success:    var(--eb-success);
  --qw-success-lt: var(--eb-success-lt);
  --qw-rose:       var(--eb-danger);
  --qw-rose-lt:    var(--eb-danger-lt);
  --qw-cyan:       var(--eb-cyan-500);
  --qw-violet:     var(--eb-violet-400);  /* 그라디언트 endpoint */
  --qw-accent:     var(--eb-amber-500);
  --qw-accent-lt:  #fef3c7;
  --qw-teal:       #14b8a6;
  --qw-font-display: var(--eb-font-display);
  --qw-font-body:    var(--eb-font-body);
  --qw-font-mono:    var(--eb-font-mono);
  --qw-radius:       var(--eb-radius);
  --qw-radius-sm:    var(--eb-radius-sm);
  --qw-shadow-sm:    var(--eb-shadow-sm);
  --qw-shadow-md:    var(--eb-shadow-md);
  --qw-shadow-lg:    var(--eb-shadow-lg);
  --qw-transition:   var(--eb-transition);

  /* ── QGen aliases ── */
  --qg-slate-50:   var(--eb-slate-50);
  --qg-slate-100:  var(--eb-slate-100);
  --qg-slate-200:  var(--eb-slate-200);
  --qg-slate-300:  var(--eb-slate-300);
  --qg-slate-400:  var(--eb-slate-400);
  --qg-slate-500:  var(--eb-slate-500);
  --qg-slate-600:  var(--eb-slate-600);
  --qg-slate-700:  var(--eb-slate-700);
  --qg-slate-800:  var(--eb-slate-800);
  --qg-slate-900:  var(--eb-slate-900);
  --qg-slate-950:  var(--eb-slate-950);
  --qg-card:       var(--eb-card);
  --qg-border:     var(--eb-border);
  --qg-text:       var(--eb-text);
  --qg-text-dim:   var(--eb-text-dim);
  --qg-text-muted: var(--eb-text-muted);
  --qg-success:    var(--eb-success);
  --qg-success-lt: var(--eb-success-lt);
  --qg-rose:       var(--eb-danger);
  --qg-rose-lt:    var(--eb-danger-lt);
  --qg-cyan:       var(--eb-cyan-500);
  --qg-violet:     var(--eb-violet-400);  /* 그라디언트 endpoint */
  --qg-accent:     var(--eb-amber-500);
  --qg-accent-lt:  #fef3c7;
  --qg-font-display: var(--eb-font-display);
  --qg-font-body:    var(--eb-font-body);
  --qg-font-mono:    var(--eb-font-mono);
  --qg-radius:       var(--eb-radius);
  --qg-radius-sm:    var(--eb-radius-sm);
  --qg-shadow-sm:    var(--eb-shadow-sm);
  --qg-shadow-md:    var(--eb-shadow-md);
  --qg-shadow-lg:    var(--eb-shadow-lg);
  --qg-transition:   var(--eb-transition);

  /* ── QBook aliases ── */
  --qb-slate-50:   var(--eb-slate-50);
  --qb-slate-100:  var(--eb-slate-100);
  --qb-slate-200:  var(--eb-slate-200);
  --qb-slate-300:  var(--eb-slate-300);
  --qb-slate-400:  var(--eb-slate-400);
  --qb-slate-500:  var(--eb-slate-500);
  --qb-slate-600:  var(--eb-slate-600);
  --qb-slate-700:  var(--eb-slate-700);
  --qb-slate-800:  var(--eb-slate-800);
  --qb-slate-900:  var(--eb-slate-900);
  --qb-slate-950:  var(--eb-slate-950);
  --qb-border:     var(--eb-border);
  --qb-text:       var(--eb-text);
  --qb-text-dim:   var(--eb-text-dim);
  --qb-text-muted: var(--eb-text-muted);
  --qb-success:    var(--eb-success);
  --qb-success-lt: var(--eb-success-lt);
  --qb-rose:       var(--eb-danger);
  --qb-rose-lt:    var(--eb-danger-lt);
  --qb-violet:     var(--eb-violet-400);  /* PaperGen gradient endpoint */
  --qb-accent:     var(--eb-amber-500);
  --qb-amber:      var(--eb-amber-500);   /* paper_book_edit 저장 상태 표시 */
  --qb-cyan:       var(--eb-cyan-500);
  --qb-radius:     var(--eb-radius);
  --qb-shadow-sm:  var(--eb-shadow-sm);
  --qb-shadow-md:  var(--eb-shadow-md);
  --qb-font-display: var(--eb-font-display);
  --qb-font-body:    var(--eb-font-body);
  --qb-font-mono:    monospace;

  /* ── QBook Print aliases ── */
  --print-text:       var(--eb-text);
  --print-text-dim:   var(--eb-text-dim);
  --print-border:     var(--eb-border);
  --print-bg-correct: var(--eb-success-lt);
  --print-success:    var(--eb-success);
  --print-primary:    var(--qb-primary);
  --print-divider:    var(--eb-border);
}
