/* ============================================================
   LAUNDRY EXPRESS — Color tokens
   Source: 브랜드 아이덴티티 가이드라인 (3.0 COLOR)
   Primary palette is intentionally tight: one blue, white, black.
   Sub-blue exists ONLY as a gradient accent — never as a flat fill.
   ============================================================ */
:root {
  /* — Brand core — */
  --le-laundry-blue: #385BC3;     /* Primary. RGB 56/91/195 */
  --le-express-white: #ffffff;    /* Express White */
  --le-black: #000000;            /* Black */

  /* — Sub blue (gradient accent only) — */
  --le-sub-blue-deep: #102a6b;    /* gradient top — deep navy */
  --le-sub-blue: #2a55c4;         /* gradient mid */
  --le-sub-blue-bright: #5a86ff;  /* gradient bottom — bright */
  --le-gradient-blue: linear-gradient(180deg, var(--le-sub-blue-deep) 0%, var(--le-sub-blue) 52%, var(--le-sub-blue-bright) 100%);
  --le-gradient-blue-h: linear-gradient(90deg, var(--le-sub-blue-deep) 0%, var(--le-sub-blue) 52%, var(--le-sub-blue-bright) 100%);

  /* — Character palette (6.02 Color System) — */
  --le-mubb-taupe: #c0a99c;       /* MUBB — RGB 192/169/156 */
  --le-mubb-taupe-deep: #9a8279;  /* MUBB shade — RGB 154/130/121 */

  /* — Neutral ramp (UI scaffolding; derived to sit under the b/w system) — */
  --le-gray-0:  #ffffff;
  --le-gray-50: #f6f7f9;
  --le-gray-100:#eef0f3;
  --le-gray-200:#e2e5ea;
  --le-gray-300:#cfd4dc;
  --le-gray-400:#a7aeba;
  --le-gray-500:#7b8290;
  --le-gray-600:#565d6b;
  --le-gray-700:#3a3f49;
  --le-gray-800:#23262d;
  --le-gray-900:#0f1115;

  /* — Semantic — */
  --le-red: #ff2222;              /* used in the guide only for review markers / errors */
  --le-success: #1f8a5b;
  --le-warning: #d98a0b;

  /* ── Semantic aliases ────────────────────────────────── */
  --le-bg:            var(--le-express-white);
  --le-bg-muted:      var(--le-gray-50);
  --le-bg-inverse:    var(--le-black);
  --le-surface:       var(--le-express-white);
  --le-surface-muted: var(--le-gray-50);

  --le-text:          var(--le-black);
  --le-text-secondary:var(--le-gray-600);
  --le-text-muted:    var(--le-gray-500);
  --le-text-inverse:  var(--le-express-white);
  --le-text-brand:    var(--le-laundry-blue);

  --le-border:        var(--le-gray-200);
  --le-border-strong: var(--le-black);
  --le-border-hairline: var(--le-gray-300);

  --le-accent:        var(--le-laundry-blue);
  --le-accent-hover:  #324f92;    /* laundry-blue darkened */
  --le-accent-active: #2a4480;
  --le-on-accent:     var(--le-express-white);

  --le-focus-ring:    var(--le-laundry-blue);
}

/* Inverse scope: drop onto black sections to flip text/border defaults */
.le-on-dark {
  --le-text:           var(--le-express-white);
  --le-text-secondary: var(--le-gray-300);
  --le-text-muted:     var(--le-gray-400);
  --le-surface:        var(--le-black);
  --le-border:         rgba(255,255,255,0.18);
  --le-border-hairline:rgba(255,255,255,0.22);
  color: var(--le-text);
}
