/**
 * Do not edit directly — generated by Style Dictionary from Creo UI tokens.
 * Source: tokens/**/*.json (DTCG).
 *
 * Default theme: mint-dark (Creo Design System default)
 * Switch theme via `[data-theme="{id}"]` attribute on any ancestor.
 * fleetstage 後方互換: `.dark` / `[data-theme="dark"]` = mint-dark、
 * `[data-theme="light"]` = mint-light。
 */
:root {
  --editor-mode-axis-global: var(--color-brand-secondary); /** TOP 領域 accent — global tools / 視線の起点 (active theme の brand secondary に追従) */
  --editor-mode-axis-utility: var(--color-text-tertiary); /** BOTTOM 領域 accent — ローカル utility (active theme の text tertiary) */
  --editor-mode-axis-past: var(--color-semantic-info); /** LEFT 領域 accent — 時系列過去 / 参照 / 元ソース (active theme の semantic info) */
  --editor-mode-axis-future: var(--color-brand-primary); /** RIGHT 領域 accent — 時系列未来 / ツール / 生成 (active theme の brand primary) */
  --editor-mode-overlay-backdrop-opacity: 0; /** Editor Layer 最背面の opacity。デフォルト 0 (完全透過) で Content Layer を遮らない */
  --editor-mode-panel-field-label: var(--color-text-secondary); /** Field label の text 色 (active theme の text secondary) */
  --editor-mode-panel-field-value: var(--color-text-primary); /** Field value の text 色 (active theme の text primary) */
  --editor-mode-panel-separator: var(--color-surface-border-subtle); /** Field group の区切り線 (active theme の border subtle) */
  --editor-mode-panel-field-gap: 0.5rem; /** Field 同士の縦間隔 */
  --editor-mode-panel-group-gap: 1rem; /** Field group 間の縦間隔 */
  --editor-mode-region-bg-color: var(--color-surface-bg-base); /** Region 背景の base RGB (active theme に追従) */
  --editor-mode-region-bg-opacity: 0.92; /** Region 背景の 不透明度 (0.0-1.0)。Content を完全に隠さず薄く透かす */
  --editor-mode-region-border: var(--color-surface-border); /** Region の輪郭色 (active theme に追従) */
  --editor-mode-region-padding: 0.75rem; /** Region 内側の padding */
  --editor-mode-region-top-height: 2.75rem; /** TOP region の固定高さ (Content を大きく隠さないコンパクトサイズ) */
  --editor-mode-region-bottom-height: 2.75rem; /** BOTTOM region の固定高さ */
  --editor-mode-region-left-width: 15rem; /** LEFT region の default 幅 (collapsible) */
  --editor-mode-region-right-width: 17.5rem; /** RIGHT region の default 幅 (tool panel、左より広め) */
  --editor-mode-selection-outline-hover: var(--color-brand-primary-subtle); /** Editor mode 中の hover outline (ghost highlight、Content を触らず上に描画) */
  --editor-mode-selection-outline-active: var(--color-brand-primary); /** 選択中の要素 outline (active theme の brand primary) */
  --editor-mode-selection-outline-width: 0.125rem; /** Selection outline の太さ */
  --editor-mode-selection-outline-offset: 0.125rem; /** 要素から outline までの offset (要素本体を遮らない) */
  --layout-gap-tight: var(--spacing-xs); /** Tight gap — icon+label inline, chip group, closely-related siblings */
  --layout-gap-sibling: var(--spacing-md); /** Default sibling gap — between stacked elements (list items, form fields) */
  --layout-gap-section: var(--margin-lg); /** Section-to-section gap — thematic block break (between content sections) */
  --layout-gap-page: var(--margin-xl); /** Page-level break — hero / footer separation, landing page major divisions */
  --layout-target-tap: 2.75rem; /** Minimum tap target — Apple HIG accessibility requirement (modals, buttons on touch devices) */
  --layout-target-focus: 2rem; /** Minimum focus target — pointer devices / desktop-first (smaller than tap but still comfortable) */
  --layout-target-hit: 1.5rem; /** Minimum hit target — dense UI (toolbars, inline actions), still WCAG-reasonable with hover affordance */
  --margin-xs: 0.5rem; /** Extra-small margin — tight stack (paragraph spacing, inline gap) */
  --margin-sm: 1rem; /** Small margin — standard vertical rhythm between elements */
  --margin-md: 1.125rem; /** Medium margin — component block separation (default、spacing.md と揃える) */
  --margin-lg: 2.5rem; /** Large margin — section divider (between thematic blocks) */
  --margin-xl: 4rem; /** Extra-large margin — major section or hero break (page-level breathing) */
  --radius-none: 0; /** No rounding — explicit reset (special, outside step rule) */
  --radius-xs: 0.25rem; /** Extra-small radius — minimal rounding (chips, tags) */
  --radius-sm: 0.5rem; /** Small radius — subtle rounding (buttons, inputs) */
  --radius-md: 0.9375rem; /** Medium radius — cards, popovers (soft friendly feel) */
  --radius-lg: 1.375rem; /** Large radius — modals, larger surfaces */
  --radius-xl: 1.75rem; /** Extra-large radius — hero surfaces */
  --radius-full: 9999px; /** Fully rounded — pill shapes and circles (special, outside step rule) */
  --shadow-none: none; /** No shadow */
  --shadow-sm: 0 1px 2px 0 rgba(32, 36, 46, 0.06); /** Small elevation — quiet lift for subtle layers */
  --shadow-md: 0 4px 6px -1px rgba(32, 36, 46, 0.08), 0 2px 4px -2px rgba(32, 36, 46, 0.06); /** Medium elevation — cards, dropdowns */
  --shadow-lg: 0 10px 15px -3px rgba(32, 36, 46, 0.10), 0 4px 6px -4px rgba(32, 36, 46, 0.08); /** Large elevation — popovers, overlays */
  --shadow-xl: 0 20px 25px -5px rgba(32, 36, 46, 0.12), 0 8px 10px -6px rgba(32, 36, 46, 0.08); /** Extra-large elevation — modals, focal surfaces */
  --spacing-xs: 0.25rem; /** Extra-small spacing — 4px (base unit) */
  --spacing-sm: 0.5rem; /** Small spacing — 8px */
  --spacing-md: 1.125rem; /** Medium spacing — 18px (default gap between UI elements) */
  --spacing-lg: 1.5rem; /** Large spacing — 24px */
  --spacing-xl: 2rem; /** Extra-large spacing — 32px */
  --typography-body-lead: var(--typography-size-xl); /** Lead body — opening paragraph / intro (larger, invites reading) */
  --typography-body-default: var(--typography-size-md); /** Default body — regular paragraph text (最もよく使う) */
  --typography-body-emphasis: var(--typography-size-md); /** Emphasis body — default size with stronger weight (意味的な強調、size は default と同じ) */
  --typography-body-helper: var(--typography-size-sm); /** Helper text — form helper, status message, secondary info */
  --typography-body-caption: var(--typography-size-xs); /** Caption — image caption, footnote, meta info (smallest readable body) */
  --typography-display-xs: 1.5rem; /** Display xs — smallest heading (h4 / section title / card title) */
  --typography-display-sm: 2rem; /** Display sm — standard heading (h3 / article title / section headline) */
  --typography-display-md: 2.75rem; /** Display md — default hero / h2 (Creo aesthetic: 柔らかく強い存在感) */
  --typography-display-lg: 3.5rem; /** Display lg — page hero / h1 */
  --typography-display-xl: 4.5rem; /** Display xl — landing mega headline / promotional hero */
  --typography-family-sans: 'Creo Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Noto Sans JP', sans-serif; /** Default UI sans-serif family (multi-language: EN/JA/KO) */
  --typography-family-mono: 'JetBrains Mono', 'SF Mono', 'Fira Code', 'Consolas', monospace; /** Monospace family for code blocks, tokens, IDs */
  --typography-family-display: 'Creo Sans', -apple-system, 'Noto Sans JP', sans-serif; /** Display family — heroes, large marketing headlines */
  --typography-line-height-tight: 1.25; /** Tight line-height — headings */
  --typography-line-height-normal: 1.5; /** Normal line-height — default body */
  --typography-line-height-relaxed: 1.75; /** Relaxed line-height — long-form text, CJK languages */
  --typography-size-xs: 0.75rem; /** Caption / meta text */
  --typography-size-sm: 0.875rem; /** Small body / helper text */
  --typography-size-md: 1rem; /** Default body text */
  --typography-size-lg: 1.125rem; /** Large body / subheading */
  --typography-size-xl: 1.25rem; /** Largest body / small heading (h4) */
  --typography-title-hero: var(--typography-display-xl); /** Hero title — landing page mega headline (promotional / marketing) */
  --typography-title-page: var(--typography-display-md); /** Page title — h1 (article title, app screen heading) */
  --typography-title-section: var(--typography-display-sm); /** Section title — h2 (thematic block within a page) */
  --typography-title-subsection: var(--typography-display-xs); /** Subsection title — h3 (nested group within a section) */
  --typography-title-card: var(--typography-size-xl); /** Card title — h4 (inline block title, table header, menu label) */
  --typography-weight-regular: 400; /** Regular body weight */
  --typography-weight-medium: 500; /** Medium emphasis */
  --typography-weight-semibold: 600; /** Semi-bold — subheadings, buttons */
  --typography-weight-bold: 700; /** Bold — headings */
  --color-brand-primary: oklch(0.75 0.12 160); /** Brand primary (base) */
  --color-brand-primary-hover: oklch(0.8 0.13 160); /** Brand primary — hover */
  --color-brand-primary-active: oklch(0.7 0.11 160); /** Brand primary — active / pressed */
  --color-brand-primary-subtle: oklch(0.25 0.05 160); /** Brand primary — subtle tint surface */
  --color-brand-secondary: oklch(0.7 0.12 300); /** Brand secondary (base) */
  --color-brand-secondary-hover: oklch(0.75 0.13 300); /** Brand secondary — hover */
  --color-brand-secondary-active: oklch(0.65 0.11 300); /** Brand secondary — active / pressed */
  --color-brand-secondary-subtle: oklch(0.25 0.05 300); /** Brand secondary — subtle tint surface */
  --color-semantic-success: oklch(0.7 0.15 145); /** Semantic success (base) */
  --color-semantic-success-hover: oklch(0.75 0.16 145); /** Semantic success — hover */
  --color-semantic-success-active: oklch(0.65 0.14 145); /** Semantic success — active */
  --color-semantic-success-subtle: oklch(0.25 0.06 145); /** Semantic success — subtle surface */
  --color-semantic-success-text: oklch(0.8 0.12 145); /** Semantic success — text on tinted bg */
  --color-semantic-warning: oklch(0.75 0.14 85); /** Semantic warning (base) */
  --color-semantic-warning-hover: oklch(0.8 0.15 85); /** Semantic warning — hover */
  --color-semantic-warning-active: oklch(0.7 0.13 85); /** Semantic warning — active */
  --color-semantic-warning-subtle: oklch(0.25 0.06 85); /** Semantic warning — subtle surface */
  --color-semantic-warning-text: oklch(0.85 0.1 85); /** Semantic warning — text on tinted bg */
  --color-semantic-error: oklch(0.7 0.18 25); /** Semantic error (base) */
  --color-semantic-error-hover: oklch(0.75 0.19 25); /** Semantic error — hover */
  --color-semantic-error-active: oklch(0.65 0.17 25); /** Semantic error — active */
  --color-semantic-error-subtle: oklch(0.25 0.06 25); /** Semantic error — subtle surface */
  --color-semantic-error-text: oklch(0.85 0.12 25); /** Semantic error — text on tinted bg */
  --color-semantic-info: oklch(0.7 0.12 240); /** Semantic info (base) */
  --color-semantic-info-hover: oklch(0.75 0.13 240); /** Semantic info — hover */
  --color-semantic-info-active: oklch(0.65 0.11 240); /** Semantic info — active */
  --color-semantic-info-subtle: oklch(0.25 0.05 240); /** Semantic info — subtle surface */
  --color-semantic-info-text: oklch(0.85 0.1 240); /** Semantic info — text on tinted bg */
  --color-surface-bg-base: oklch(0.15 0.02 260); /** Root background — page canvas */
  --color-surface-bg-subtle: oklch(0.18 0.02 260); /** Subtle background — panels, sections */
  --color-surface-bg-emphasis: oklch(0.28 0.02 260); /** Emphasized background — highlighted regions */
  --color-surface-surface: oklch(0.2 0.02 260); /** Card / modal / elevated container surface */
  --color-surface-border: oklch(0.3 0.02 260); /** Default border / divider */
  --color-surface-border-subtle: oklch(0.25 0.015 260); /** Subtle border — quiet separators */
  --color-text-primary: oklch(0.95 0.01 260); /** Primary foreground text */
  --color-text-secondary: oklch(0.75 0.01 260); /** Secondary text — supporting copy */
  --color-text-tertiary: oklch(0.6 0.01 260); /** Tertiary text — captions, hints */
  --color-text-disabled: oklch(0.45 0.01 260); /** Disabled text */
  --color-text-inverse: oklch(0.15 0.02 260); /** Inverse text — on dark surfaces */
  --color-shadow-base: oklch(0 0 0 / 0.3); /** Shadow tint — default */
  --color-shadow-strong: oklch(0 0 0 / 0.5); /** Shadow tint — strong */
  --color-gradient-hero: linear-gradient(135deg, oklch(0.2 0.04 160) 0%, oklch(0.18 0.03 175) 50%, oklch(0.22 0.05 165) 100%); /** Hero gradient — marketing / splash surfaces */
}

[data-theme="contrast-dark"] {
  --color-brand-primary: oklch(0.62 0.16 270); /** Brand primary (base) */
  --color-brand-primary-hover: oklch(0.67 0.17 270); /** Brand primary — hover */
  --color-brand-primary-active: oklch(0.57 0.15 270); /** Brand primary — active / pressed */
  --color-brand-primary-subtle: oklch(0.24 0.06 270); /** Brand primary — subtle tint surface */
  --color-brand-secondary: oklch(0.72 0.18 335); /** Brand secondary (base) */
  --color-brand-secondary-hover: oklch(0.77 0.19 335); /** Brand secondary — hover */
  --color-brand-secondary-active: oklch(0.67 0.17 335); /** Brand secondary — active / pressed */
  --color-brand-secondary-subtle: oklch(0.24 0.06 335); /** Brand secondary — subtle tint surface */
  --color-semantic-success: oklch(0.7 0.14 160); /** Semantic success (base) */
  --color-semantic-success-hover: oklch(0.75 0.15 160); /** Semantic success — hover */
  --color-semantic-success-active: oklch(0.65 0.13 160); /** Semantic success — active */
  --color-semantic-success-subtle: oklch(0.24 0.05 160); /** Semantic success — subtle surface */
  --color-semantic-success-text: oklch(0.82 0.1 160); /** Semantic success — text on tinted bg */
  --color-semantic-warning: oklch(0.75 0.13 85); /** Semantic warning (base) */
  --color-semantic-warning-hover: oklch(0.8 0.14 85); /** Semantic warning — hover */
  --color-semantic-warning-active: oklch(0.7 0.12 85); /** Semantic warning — active */
  --color-semantic-warning-subtle: oklch(0.24 0.05 85); /** Semantic warning — subtle surface */
  --color-semantic-warning-text: oklch(0.85 0.1 85); /** Semantic warning — text on tinted bg */
  --color-semantic-error: oklch(0.68 0.17 15); /** Semantic error (base) */
  --color-semantic-error-hover: oklch(0.73 0.18 15); /** Semantic error — hover */
  --color-semantic-error-active: oklch(0.63 0.16 15); /** Semantic error — active */
  --color-semantic-error-subtle: oklch(0.24 0.06 15); /** Semantic error — subtle surface */
  --color-semantic-error-text: oklch(0.83 0.12 15); /** Semantic error — text on tinted bg */
  --color-semantic-info: oklch(0.8 0.1 195); /** Semantic info (base) */
  --color-semantic-info-hover: oklch(0.85 0.11 195); /** Semantic info — hover */
  --color-semantic-info-active: oklch(0.75 0.09 195); /** Semantic info — active */
  --color-semantic-info-subtle: oklch(0.24 0.04 195); /** Semantic info — subtle surface */
  --color-semantic-info-text: oklch(0.88 0.08 195); /** Semantic info — text on tinted bg */
  --color-surface-bg-base: oklch(0.16 0.06 280); /** Root background — page canvas */
  --color-surface-bg-subtle: oklch(0.19 0.06 280); /** Subtle background — panels, sections */
  --color-surface-bg-emphasis: oklch(0.28 0.05 280); /** Emphasized background — highlighted regions */
  --color-surface-surface: oklch(0.2 0.06 280); /** Card / modal / elevated container surface */
  --color-surface-border: oklch(0.32 0.04 280); /** Default border / divider */
  --color-surface-border-subtle: oklch(0.26 0.03 280); /** Subtle border — quiet separators */
  --color-text-primary: oklch(0.95 0.01 280); /** Primary foreground text */
  --color-text-secondary: oklch(0.75 0.01 280); /** Secondary text — supporting copy */
  --color-text-tertiary: oklch(0.58 0.01 280); /** Tertiary text — captions, hints */
  --color-text-disabled: oklch(0.42 0.01 280); /** Disabled text */
  --color-text-inverse: oklch(0.95 0.01 280); /** Inverse text — on dark surfaces */
  --color-shadow-base: oklch(0 0 0 / 0.4); /** Shadow tint — default */
  --color-shadow-strong: oklch(0 0 0 / 0.6); /** Shadow tint — strong */
  --color-gradient-hero: linear-gradient(135deg, oklch(0.2 0.08 280) 0%, oklch(0.18 0.06 300) 50%, oklch(0.22 0.08 335) 100%); /** Hero gradient — marketing / splash surfaces */
}

[data-theme="contrast-light"] {
  --color-brand-primary: oklch(0.52 0.18 270); /** Brand primary (base) */
  --color-brand-primary-hover: oklch(0.47 0.19 270); /** Brand primary — hover */
  --color-brand-primary-active: oklch(0.42 0.2 270); /** Brand primary — active / pressed */
  --color-brand-primary-subtle: oklch(0.94 0.05 270); /** Brand primary — subtle tint surface */
  --color-brand-secondary: oklch(0.62 0.2 335); /** Brand secondary (base) */
  --color-brand-secondary-hover: oklch(0.57 0.21 335); /** Brand secondary — hover */
  --color-brand-secondary-active: oklch(0.52 0.22 335); /** Brand secondary — active / pressed */
  --color-brand-secondary-subtle: oklch(0.95 0.05 335); /** Brand secondary — subtle tint surface */
  --color-semantic-success: oklch(0.6 0.16 160); /** Semantic success (base) */
  --color-semantic-success-hover: oklch(0.55 0.17 160); /** Semantic success — hover */
  --color-semantic-success-active: oklch(0.5 0.18 160); /** Semantic success — active */
  --color-semantic-success-subtle: oklch(0.95 0.04 160); /** Semantic success — subtle surface */
  --color-semantic-success-text: oklch(0.35 0.12 160); /** Semantic success — text on tinted bg */
  --color-semantic-warning: oklch(0.78 0.15 85); /** Semantic warning (base) */
  --color-semantic-warning-hover: oklch(0.73 0.16 85); /** Semantic warning — hover */
  --color-semantic-warning-active: oklch(0.68 0.17 85); /** Semantic warning — active */
  --color-semantic-warning-subtle: oklch(0.96 0.05 85); /** Semantic warning — subtle surface */
  --color-semantic-warning-text: oklch(0.4 0.12 85); /** Semantic warning — text on tinted bg */
  --color-semantic-error: oklch(0.6 0.2 15); /** Semantic error (base) */
  --color-semantic-error-hover: oklch(0.55 0.21 15); /** Semantic error — hover */
  --color-semantic-error-active: oklch(0.5 0.22 15); /** Semantic error — active */
  --color-semantic-error-subtle: oklch(0.95 0.04 15); /** Semantic error — subtle surface */
  --color-semantic-error-text: oklch(0.4 0.15 15); /** Semantic error — text on tinted bg */
  --color-semantic-info: oklch(0.6 0.12 195); /** Semantic info (base) */
  --color-semantic-info-hover: oklch(0.55 0.13 195); /** Semantic info — hover */
  --color-semantic-info-active: oklch(0.5 0.14 195); /** Semantic info — active */
  --color-semantic-info-subtle: oklch(0.95 0.04 195); /** Semantic info — subtle surface */
  --color-semantic-info-text: oklch(0.35 0.1 195); /** Semantic info — text on tinted bg */
  --color-surface-bg-base: oklch(0.98 0.008 280); /** Root background — page canvas */
  --color-surface-bg-subtle: oklch(0.96 0.01 280); /** Subtle background — panels, sections */
  --color-surface-bg-emphasis: oklch(0.88 0.015 280); /** Emphasized background — highlighted regions */
  --color-surface-surface: oklch(1 0 0); /** Card / modal / elevated container surface */
  --color-surface-border: oklch(0.86 0.015 280); /** Default border / divider */
  --color-surface-border-subtle: oklch(0.91 0.01 280); /** Subtle border — quiet separators */
  --color-text-primary: oklch(0.18 0.02 280); /** Primary foreground text */
  --color-text-secondary: oklch(0.38 0.02 280); /** Secondary text — supporting copy */
  --color-text-tertiary: oklch(0.52 0.01 280); /** Tertiary text — captions, hints */
  --color-text-disabled: oklch(0.68 0.01 280); /** Disabled text */
  --color-text-inverse: oklch(0.98 0 0); /** Inverse text — on dark surfaces */
  --color-shadow-base: oklch(0.2 0.03 280 / 0.1); /** Shadow tint — default */
  --color-shadow-strong: oklch(0.2 0.03 280 / 0.2); /** Shadow tint — strong */
  --color-gradient-hero: linear-gradient(135deg, oklch(0.94 0.04 270) 0%, oklch(0.96 0.03 300) 50%, oklch(0.92 0.05 335) 100%); /** Hero gradient — marketing / splash surfaces */
}

[data-theme="mint-dark"] {
  --color-brand-primary: oklch(0.75 0.12 160); /** Brand primary (base) */
  --color-brand-primary-hover: oklch(0.8 0.13 160); /** Brand primary — hover */
  --color-brand-primary-active: oklch(0.7 0.11 160); /** Brand primary — active / pressed */
  --color-brand-primary-subtle: oklch(0.25 0.05 160); /** Brand primary — subtle tint surface */
  --color-brand-secondary: oklch(0.7 0.12 300); /** Brand secondary (base) */
  --color-brand-secondary-hover: oklch(0.75 0.13 300); /** Brand secondary — hover */
  --color-brand-secondary-active: oklch(0.65 0.11 300); /** Brand secondary — active / pressed */
  --color-brand-secondary-subtle: oklch(0.25 0.05 300); /** Brand secondary — subtle tint surface */
  --color-semantic-success: oklch(0.7 0.15 145); /** Semantic success (base) */
  --color-semantic-success-hover: oklch(0.75 0.16 145); /** Semantic success — hover */
  --color-semantic-success-active: oklch(0.65 0.14 145); /** Semantic success — active */
  --color-semantic-success-subtle: oklch(0.25 0.06 145); /** Semantic success — subtle surface */
  --color-semantic-success-text: oklch(0.8 0.12 145); /** Semantic success — text on tinted bg */
  --color-semantic-warning: oklch(0.75 0.14 85); /** Semantic warning (base) */
  --color-semantic-warning-hover: oklch(0.8 0.15 85); /** Semantic warning — hover */
  --color-semantic-warning-active: oklch(0.7 0.13 85); /** Semantic warning — active */
  --color-semantic-warning-subtle: oklch(0.25 0.06 85); /** Semantic warning — subtle surface */
  --color-semantic-warning-text: oklch(0.85 0.1 85); /** Semantic warning — text on tinted bg */
  --color-semantic-error: oklch(0.7 0.18 25); /** Semantic error (base) */
  --color-semantic-error-hover: oklch(0.75 0.19 25); /** Semantic error — hover */
  --color-semantic-error-active: oklch(0.65 0.17 25); /** Semantic error — active */
  --color-semantic-error-subtle: oklch(0.25 0.06 25); /** Semantic error — subtle surface */
  --color-semantic-error-text: oklch(0.85 0.12 25); /** Semantic error — text on tinted bg */
  --color-semantic-info: oklch(0.7 0.12 240); /** Semantic info (base) */
  --color-semantic-info-hover: oklch(0.75 0.13 240); /** Semantic info — hover */
  --color-semantic-info-active: oklch(0.65 0.11 240); /** Semantic info — active */
  --color-semantic-info-subtle: oklch(0.25 0.05 240); /** Semantic info — subtle surface */
  --color-semantic-info-text: oklch(0.85 0.1 240); /** Semantic info — text on tinted bg */
  --color-surface-bg-base: oklch(0.15 0.02 260); /** Root background — page canvas */
  --color-surface-bg-subtle: oklch(0.18 0.02 260); /** Subtle background — panels, sections */
  --color-surface-bg-emphasis: oklch(0.28 0.02 260); /** Emphasized background — highlighted regions */
  --color-surface-surface: oklch(0.2 0.02 260); /** Card / modal / elevated container surface */
  --color-surface-border: oklch(0.3 0.02 260); /** Default border / divider */
  --color-surface-border-subtle: oklch(0.25 0.015 260); /** Subtle border — quiet separators */
  --color-text-primary: oklch(0.95 0.01 260); /** Primary foreground text */
  --color-text-secondary: oklch(0.75 0.01 260); /** Secondary text — supporting copy */
  --color-text-tertiary: oklch(0.6 0.01 260); /** Tertiary text — captions, hints */
  --color-text-disabled: oklch(0.45 0.01 260); /** Disabled text */
  --color-text-inverse: oklch(0.15 0.02 260); /** Inverse text — on dark surfaces */
  --color-shadow-base: oklch(0 0 0 / 0.3); /** Shadow tint — default */
  --color-shadow-strong: oklch(0 0 0 / 0.5); /** Shadow tint — strong */
  --color-gradient-hero: linear-gradient(135deg, oklch(0.2 0.04 160) 0%, oklch(0.18 0.03 175) 50%, oklch(0.22 0.05 165) 100%); /** Hero gradient — marketing / splash surfaces */
}

[data-theme="mint-light"] {
  --color-brand-primary: oklch(0.85 0.14 160); /** Brand primary (base) */
  --color-brand-primary-hover: oklch(0.8 0.15 160); /** Brand primary — hover */
  --color-brand-primary-active: oklch(0.75 0.16 160); /** Brand primary — active / pressed */
  --color-brand-primary-subtle: oklch(0.95 0.05 160); /** Brand primary — subtle tint surface */
  --color-brand-secondary: oklch(0.65 0.15 300); /** Brand secondary (base) */
  --color-brand-secondary-hover: oklch(0.6 0.16 300); /** Brand secondary — hover */
  --color-brand-secondary-active: oklch(0.55 0.17 300); /** Brand secondary — active / pressed */
  --color-brand-secondary-subtle: oklch(0.95 0.05 300); /** Brand secondary — subtle tint surface */
  --color-semantic-success: oklch(0.75 0.18 145); /** Semantic success (base) */
  --color-semantic-success-hover: oklch(0.7 0.19 145); /** Semantic success — hover */
  --color-semantic-success-active: oklch(0.65 0.2 145); /** Semantic success — active */
  --color-semantic-success-subtle: oklch(0.95 0.05 145); /** Semantic success — subtle surface */
  --color-semantic-success-text: oklch(0.35 0.12 145); /** Semantic success — text on tinted bg */
  --color-semantic-warning: oklch(0.8 0.16 85); /** Semantic warning (base) */
  --color-semantic-warning-hover: oklch(0.75 0.17 85); /** Semantic warning — hover */
  --color-semantic-warning-active: oklch(0.7 0.18 85); /** Semantic warning — active */
  --color-semantic-warning-subtle: oklch(0.95 0.06 85); /** Semantic warning — subtle surface */
  --color-semantic-warning-text: oklch(0.4 0.12 85); /** Semantic warning — text on tinted bg */
  --color-semantic-error: oklch(0.65 0.2 25); /** Semantic error (base) */
  --color-semantic-error-hover: oklch(0.6 0.21 25); /** Semantic error — hover */
  --color-semantic-error-active: oklch(0.55 0.22 25); /** Semantic error — active */
  --color-semantic-error-subtle: oklch(0.95 0.05 25); /** Semantic error — subtle surface */
  --color-semantic-error-text: oklch(0.4 0.15 25); /** Semantic error — text on tinted bg */
  --color-semantic-info: oklch(0.7 0.15 240); /** Semantic info (base) */
  --color-semantic-info-hover: oklch(0.65 0.16 240); /** Semantic info — hover */
  --color-semantic-info-active: oklch(0.6 0.17 240); /** Semantic info — active */
  --color-semantic-info-subtle: oklch(0.95 0.04 240); /** Semantic info — subtle surface */
  --color-semantic-info-text: oklch(0.4 0.12 240); /** Semantic info — text on tinted bg */
  --color-surface-bg-base: oklch(0.99 0 0); /** Root background — page canvas */
  --color-surface-bg-subtle: oklch(0.97 0.005 260); /** Subtle background — panels, sections */
  --color-surface-bg-emphasis: oklch(0.9 0.01 260); /** Emphasized background — highlighted regions */
  --color-surface-surface: oklch(1 0 0); /** Card / modal / elevated container surface */
  --color-surface-border: oklch(0.88 0.01 260); /** Default border / divider */
  --color-surface-border-subtle: oklch(0.92 0.005 260); /** Subtle border — quiet separators */
  --color-text-primary: oklch(0.2 0.02 260); /** Primary foreground text */
  --color-text-secondary: oklch(0.4 0.02 260); /** Secondary text — supporting copy */
  --color-text-tertiary: oklch(0.55 0.01 260); /** Tertiary text — captions, hints */
  --color-text-disabled: oklch(0.7 0.01 260); /** Disabled text */
  --color-text-inverse: oklch(0.98 0 0); /** Inverse text — on dark surfaces */
  --color-shadow-base: oklch(0.2 0.02 260 / 0.08); /** Shadow tint — default */
  --color-shadow-strong: oklch(0.2 0.02 260 / 0.15); /** Shadow tint — strong */
  --color-gradient-hero: linear-gradient(135deg, oklch(0.92 0.08 160) 0%, oklch(0.94 0.06 175) 50%, oklch(0.9 0.1 165) 100%); /** Hero gradient — marketing / splash surfaces */
}

[data-theme="oldschool-dark"] {
  --color-brand-primary: oklch(0.68 0.12 145); /** Brand primary (base) */
  --color-brand-primary-hover: oklch(0.73 0.13 145); /** Brand primary — hover */
  --color-brand-primary-active: oklch(0.63 0.11 145); /** Brand primary — active / pressed */
  --color-brand-primary-subtle: oklch(0.24 0.04 145); /** Brand primary — subtle tint surface */
  --color-brand-secondary: oklch(0.75 0.16 55); /** Brand secondary (base) */
  --color-brand-secondary-hover: oklch(0.8 0.17 55); /** Brand secondary — hover */
  --color-brand-secondary-active: oklch(0.7 0.15 55); /** Brand secondary — active / pressed */
  --color-brand-secondary-subtle: oklch(0.24 0.05 55); /** Brand secondary — subtle tint surface */
  --color-semantic-success: oklch(0.68 0.12 140); /** Semantic success (base) */
  --color-semantic-success-hover: oklch(0.73 0.13 140); /** Semantic success — hover */
  --color-semantic-success-active: oklch(0.63 0.11 140); /** Semantic success — active */
  --color-semantic-success-subtle: oklch(0.24 0.04 140); /** Semantic success — subtle surface */
  --color-semantic-success-text: oklch(0.8 0.1 140); /** Semantic success — text on tinted bg */
  --color-semantic-warning: oklch(0.78 0.13 75); /** Semantic warning (base) */
  --color-semantic-warning-hover: oklch(0.83 0.14 75); /** Semantic warning — hover */
  --color-semantic-warning-active: oklch(0.73 0.12 75); /** Semantic warning — active */
  --color-semantic-warning-subtle: oklch(0.24 0.05 75); /** Semantic warning — subtle surface */
  --color-semantic-warning-text: oklch(0.85 0.1 75); /** Semantic warning — text on tinted bg */
  --color-semantic-error: oklch(0.68 0.16 20); /** Semantic error (base) */
  --color-semantic-error-hover: oklch(0.73 0.17 20); /** Semantic error — hover */
  --color-semantic-error-active: oklch(0.63 0.15 20); /** Semantic error — active */
  --color-semantic-error-subtle: oklch(0.24 0.05 20); /** Semantic error — subtle surface */
  --color-semantic-error-text: oklch(0.83 0.12 20); /** Semantic error — text on tinted bg */
  --color-semantic-info: oklch(0.7 0.1 220); /** Semantic info (base) */
  --color-semantic-info-hover: oklch(0.75 0.11 220); /** Semantic info — hover */
  --color-semantic-info-active: oklch(0.65 0.09 220); /** Semantic info — active */
  --color-semantic-info-subtle: oklch(0.24 0.04 220); /** Semantic info — subtle surface */
  --color-semantic-info-text: oklch(0.82 0.08 220); /** Semantic info — text on tinted bg */
  --color-surface-bg-base: oklch(0.16 0.02 80); /** Root background — page canvas */
  --color-surface-bg-subtle: oklch(0.19 0.02 80); /** Subtle background — panels, sections */
  --color-surface-bg-emphasis: oklch(0.28 0.02 80); /** Emphasized background — highlighted regions */
  --color-surface-surface: oklch(0.2 0.02 80); /** Card / modal / elevated container surface */
  --color-surface-border: oklch(0.32 0.02 80); /** Default border / divider */
  --color-surface-border-subtle: oklch(0.26 0.015 80); /** Subtle border — quiet separators */
  --color-text-primary: oklch(0.92 0.01 80); /** Primary foreground text */
  --color-text-secondary: oklch(0.72 0.01 80); /** Secondary text — supporting copy */
  --color-text-tertiary: oklch(0.55 0.01 80); /** Tertiary text — captions, hints */
  --color-text-disabled: oklch(0.42 0.01 80); /** Disabled text */
  --color-text-inverse: oklch(0.15 0.02 80); /** Inverse text — on dark surfaces */
  --color-shadow-base: oklch(0 0 0 / 0.35); /** Shadow tint — default */
  --color-shadow-strong: oklch(0 0 0 / 0.55); /** Shadow tint — strong */
  --color-gradient-hero: linear-gradient(135deg, oklch(0.2 0.03 80) 0%, oklch(0.18 0.02 70) 50%, oklch(0.22 0.04 90) 100%); /** Hero gradient — marketing / splash surfaces */
}

[data-theme="oldschool-light"] {
  --color-brand-primary: oklch(0.55 0.14 145); /** Brand primary (base) */
  --color-brand-primary-hover: oklch(0.5 0.15 145); /** Brand primary — hover */
  --color-brand-primary-active: oklch(0.45 0.16 145); /** Brand primary — active / pressed */
  --color-brand-primary-subtle: oklch(0.94 0.04 145); /** Brand primary — subtle tint surface */
  --color-brand-secondary: oklch(0.7 0.18 55); /** Brand secondary (base) */
  --color-brand-secondary-hover: oklch(0.65 0.19 55); /** Brand secondary — hover */
  --color-brand-secondary-active: oklch(0.6 0.2 55); /** Brand secondary — active / pressed */
  --color-brand-secondary-subtle: oklch(0.95 0.05 55); /** Brand secondary — subtle tint surface */
  --color-semantic-success: oklch(0.6 0.14 140); /** Semantic success (base) */
  --color-semantic-success-hover: oklch(0.55 0.15 140); /** Semantic success — hover */
  --color-semantic-success-active: oklch(0.5 0.16 140); /** Semantic success — active */
  --color-semantic-success-subtle: oklch(0.94 0.04 140); /** Semantic success — subtle surface */
  --color-semantic-success-text: oklch(0.35 0.1 140); /** Semantic success — text on tinted bg */
  --color-semantic-warning: oklch(0.78 0.14 75); /** Semantic warning (base) */
  --color-semantic-warning-hover: oklch(0.73 0.15 75); /** Semantic warning — hover */
  --color-semantic-warning-active: oklch(0.68 0.16 75); /** Semantic warning — active */
  --color-semantic-warning-subtle: oklch(0.96 0.05 75); /** Semantic warning — subtle surface */
  --color-semantic-warning-text: oklch(0.42 0.1 75); /** Semantic warning — text on tinted bg */
  --color-semantic-error: oklch(0.62 0.18 20); /** Semantic error (base) */
  --color-semantic-error-hover: oklch(0.57 0.19 20); /** Semantic error — hover */
  --color-semantic-error-active: oklch(0.52 0.2 20); /** Semantic error — active */
  --color-semantic-error-subtle: oklch(0.95 0.04 20); /** Semantic error — subtle surface */
  --color-semantic-error-text: oklch(0.4 0.13 20); /** Semantic error — text on tinted bg */
  --color-semantic-info: oklch(0.64 0.11 220); /** Semantic info (base) */
  --color-semantic-info-hover: oklch(0.59 0.12 220); /** Semantic info — hover */
  --color-semantic-info-active: oklch(0.54 0.13 220); /** Semantic info — active */
  --color-semantic-info-subtle: oklch(0.95 0.03 220); /** Semantic info — subtle surface */
  --color-semantic-info-text: oklch(0.38 0.1 220); /** Semantic info — text on tinted bg */
  --color-surface-bg-base: oklch(0.98 0.02 100); /** Root background — page canvas */
  --color-surface-bg-subtle: oklch(0.96 0.03 100); /** Subtle background — panels, sections */
  --color-surface-bg-emphasis: oklch(0.88 0.04 100); /** Emphasized background — highlighted regions */
  --color-surface-surface: oklch(0.99 0.01 100); /** Card / modal / elevated container surface */
  --color-surface-border: oklch(0.86 0.02 90); /** Default border / divider */
  --color-surface-border-subtle: oklch(0.91 0.015 90); /** Subtle border — quiet separators */
  --color-text-primary: oklch(0.22 0.02 80); /** Primary foreground text */
  --color-text-secondary: oklch(0.42 0.02 80); /** Secondary text — supporting copy */
  --color-text-tertiary: oklch(0.55 0.01 80); /** Tertiary text — captions, hints */
  --color-text-disabled: oklch(0.7 0.01 80); /** Disabled text */
  --color-text-inverse: oklch(0.98 0 0); /** Inverse text — on dark surfaces */
  --color-shadow-base: oklch(0.25 0.02 80 / 0.1); /** Shadow tint — default */
  --color-shadow-strong: oklch(0.25 0.02 80 / 0.2); /** Shadow tint — strong */
  --color-gradient-hero: linear-gradient(135deg, oklch(0.94 0.05 100) 0%, oklch(0.92 0.04 90) 50%, oklch(0.9 0.06 110) 100%); /** Hero gradient — marketing / splash surfaces */
}

[data-theme="sora-dark"] {
  --color-brand-primary: oklch(0.7 0.1 230); /** Brand primary (base) */
  --color-brand-primary-hover: oklch(0.75 0.11 230); /** Brand primary — hover */
  --color-brand-primary-active: oklch(0.65 0.09 230); /** Brand primary — active / pressed */
  --color-brand-primary-subtle: oklch(0.22 0.04 230); /** Brand primary — subtle tint surface */
  --color-brand-secondary: oklch(0.72 0.12 50); /** Brand secondary (base) */
  --color-brand-secondary-hover: oklch(0.77 0.13 50); /** Brand secondary — hover */
  --color-brand-secondary-active: oklch(0.67 0.11 50); /** Brand secondary — active / pressed */
  --color-brand-secondary-subtle: oklch(0.22 0.04 50); /** Brand secondary — subtle tint surface */
  --color-semantic-success: oklch(0.68 0.14 155); /** Semantic success (base) */
  --color-semantic-success-hover: oklch(0.73 0.15 155); /** Semantic success — hover */
  --color-semantic-success-active: oklch(0.63 0.13 155); /** Semantic success — active */
  --color-semantic-success-subtle: oklch(0.22 0.05 155); /** Semantic success — subtle surface */
  --color-semantic-success-text: oklch(0.78 0.11 155); /** Semantic success — text on tinted bg */
  --color-semantic-warning: oklch(0.73 0.12 70); /** Semantic warning (base) */
  --color-semantic-warning-hover: oklch(0.78 0.13 70); /** Semantic warning — hover */
  --color-semantic-warning-active: oklch(0.68 0.11 70); /** Semantic warning — active */
  --color-semantic-warning-subtle: oklch(0.22 0.05 70); /** Semantic warning — subtle surface */
  --color-semantic-warning-text: oklch(0.83 0.09 70); /** Semantic warning — text on tinted bg */
  --color-semantic-error: oklch(0.68 0.16 15); /** Semantic error (base) */
  --color-semantic-error-hover: oklch(0.73 0.17 15); /** Semantic error — hover */
  --color-semantic-error-active: oklch(0.63 0.15 15); /** Semantic error — active */
  --color-semantic-error-subtle: oklch(0.22 0.05 15); /** Semantic error — subtle surface */
  --color-semantic-error-text: oklch(0.83 0.11 15); /** Semantic error — text on tinted bg */
  --color-semantic-info: oklch(0.68 0.1 250); /** Semantic info (base) */
  --color-semantic-info-hover: oklch(0.73 0.11 250); /** Semantic info — hover */
  --color-semantic-info-active: oklch(0.63 0.09 250); /** Semantic info — active */
  --color-semantic-info-subtle: oklch(0.22 0.04 250); /** Semantic info — subtle surface */
  --color-semantic-info-text: oklch(0.83 0.08 250); /** Semantic info — text on tinted bg */
  --color-surface-bg-base: oklch(0.12 0.025 240); /** Root background — page canvas */
  --color-surface-bg-subtle: oklch(0.15 0.025 240); /** Subtle background — panels, sections */
  --color-surface-bg-emphasis: oklch(0.25 0.025 240); /** Emphasized background — highlighted regions */
  --color-surface-surface: oklch(0.17 0.025 240); /** Card / modal / elevated container surface */
  --color-surface-border: oklch(0.28 0.02 240); /** Default border / divider */
  --color-surface-border-subtle: oklch(0.23 0.015 240); /** Subtle border — quiet separators */
  --color-text-primary: oklch(0.94 0.01 240); /** Primary foreground text */
  --color-text-secondary: oklch(0.73 0.01 240); /** Secondary text — supporting copy */
  --color-text-tertiary: oklch(0.58 0.01 240); /** Tertiary text — captions, hints */
  --color-text-disabled: oklch(0.43 0.01 240); /** Disabled text */
  --color-text-inverse: oklch(0.92 0.01 240); /** Inverse text — on dark surfaces */
  --color-shadow-base: oklch(0 0 0 / 0.35); /** Shadow tint — default */
  --color-shadow-strong: oklch(0 0 0 / 0.55); /** Shadow tint — strong */
  --color-gradient-hero: linear-gradient(135deg, oklch(0.15 0.04 240) 0%, oklch(0.13 0.03 250) 50%, oklch(0.18 0.05 230) 100%); /** Hero gradient — marketing / splash surfaces */
}

[data-theme="sora-light"] {
  --color-brand-primary: oklch(0.75 0.12 230); /** Brand primary (base) */
  --color-brand-primary-hover: oklch(0.7 0.13 230); /** Brand primary — hover */
  --color-brand-primary-active: oklch(0.65 0.14 230); /** Brand primary — active / pressed */
  --color-brand-primary-subtle: oklch(0.95 0.04 230); /** Brand primary — subtle tint surface */
  --color-brand-secondary: oklch(0.75 0.15 50); /** Brand secondary (base) */
  --color-brand-secondary-hover: oklch(0.7 0.16 50); /** Brand secondary — hover */
  --color-brand-secondary-active: oklch(0.65 0.17 50); /** Brand secondary — active / pressed */
  --color-brand-secondary-subtle: oklch(0.95 0.05 50); /** Brand secondary — subtle tint surface */
  --color-semantic-success: oklch(0.72 0.16 155); /** Semantic success (base) */
  --color-semantic-success-hover: oklch(0.67 0.17 155); /** Semantic success — hover */
  --color-semantic-success-active: oklch(0.62 0.18 155); /** Semantic success — active */
  --color-semantic-success-subtle: oklch(0.95 0.04 155); /** Semantic success — subtle surface */
  --color-semantic-success-text: oklch(0.38 0.1 155); /** Semantic success — text on tinted bg */
  --color-semantic-warning: oklch(0.82 0.14 70); /** Semantic warning (base) */
  --color-semantic-warning-hover: oklch(0.77 0.15 70); /** Semantic warning — hover */
  --color-semantic-warning-active: oklch(0.72 0.16 70); /** Semantic warning — active */
  --color-semantic-warning-subtle: oklch(0.96 0.05 70); /** Semantic warning — subtle surface */
  --color-semantic-warning-text: oklch(0.42 0.11 70); /** Semantic warning — text on tinted bg */
  --color-semantic-error: oklch(0.65 0.18 15); /** Semantic error (base) */
  --color-semantic-error-hover: oklch(0.6 0.19 15); /** Semantic error — hover */
  --color-semantic-error-active: oklch(0.55 0.2 15); /** Semantic error — active */
  --color-semantic-error-subtle: oklch(0.95 0.04 15); /** Semantic error — subtle surface */
  --color-semantic-error-text: oklch(0.4 0.13 15); /** Semantic error — text on tinted bg */
  --color-semantic-info: oklch(0.68 0.13 250); /** Semantic info (base) */
  --color-semantic-info-hover: oklch(0.63 0.14 250); /** Semantic info — hover */
  --color-semantic-info-active: oklch(0.58 0.15 250); /** Semantic info — active */
  --color-semantic-info-subtle: oklch(0.95 0.03 250); /** Semantic info — subtle surface */
  --color-semantic-info-text: oklch(0.38 0.11 250); /** Semantic info — text on tinted bg */
  --color-surface-bg-base: oklch(0.98 0.005 230); /** Root background — page canvas */
  --color-surface-bg-subtle: oklch(0.96 0.008 230); /** Subtle background — panels, sections */
  --color-surface-bg-emphasis: oklch(0.88 0.015 230); /** Emphasized background — highlighted regions */
  --color-surface-surface: oklch(1 0 0); /** Card / modal / elevated container surface */
  --color-surface-border: oklch(0.86 0.012 230); /** Default border / divider */
  --color-surface-border-subtle: oklch(0.91 0.008 230); /** Subtle border — quiet separators */
  --color-text-primary: oklch(0.18 0.02 240); /** Primary foreground text */
  --color-text-secondary: oklch(0.38 0.02 240); /** Secondary text — supporting copy */
  --color-text-tertiary: oklch(0.52 0.01 240); /** Tertiary text — captions, hints */
  --color-text-disabled: oklch(0.68 0.01 240); /** Disabled text */
  --color-text-inverse: oklch(0.98 0 0); /** Inverse text — on dark surfaces */
  --color-shadow-base: oklch(0.2 0.02 240 / 0.1); /** Shadow tint — default */
  --color-shadow-strong: oklch(0.2 0.02 240 / 0.18); /** Shadow tint — strong */
  --color-gradient-hero: linear-gradient(135deg, oklch(0.9 0.06 230) 0%, oklch(0.92 0.04 245) 50%, oklch(0.88 0.08 220) 100%); /** Hero gradient — marketing / splash surfaces */
}

/* fleetstage / legacy 後方互換 */
.dark,
[data-theme="dark"] {
  --color-brand-primary: oklch(0.75 0.12 160); /** Brand primary (base) */
  --color-brand-primary-hover: oklch(0.8 0.13 160); /** Brand primary — hover */
  --color-brand-primary-active: oklch(0.7 0.11 160); /** Brand primary — active / pressed */
  --color-brand-primary-subtle: oklch(0.25 0.05 160); /** Brand primary — subtle tint surface */
  --color-brand-secondary: oklch(0.7 0.12 300); /** Brand secondary (base) */
  --color-brand-secondary-hover: oklch(0.75 0.13 300); /** Brand secondary — hover */
  --color-brand-secondary-active: oklch(0.65 0.11 300); /** Brand secondary — active / pressed */
  --color-brand-secondary-subtle: oklch(0.25 0.05 300); /** Brand secondary — subtle tint surface */
  --color-semantic-success: oklch(0.7 0.15 145); /** Semantic success (base) */
  --color-semantic-success-hover: oklch(0.75 0.16 145); /** Semantic success — hover */
  --color-semantic-success-active: oklch(0.65 0.14 145); /** Semantic success — active */
  --color-semantic-success-subtle: oklch(0.25 0.06 145); /** Semantic success — subtle surface */
  --color-semantic-success-text: oklch(0.8 0.12 145); /** Semantic success — text on tinted bg */
  --color-semantic-warning: oklch(0.75 0.14 85); /** Semantic warning (base) */
  --color-semantic-warning-hover: oklch(0.8 0.15 85); /** Semantic warning — hover */
  --color-semantic-warning-active: oklch(0.7 0.13 85); /** Semantic warning — active */
  --color-semantic-warning-subtle: oklch(0.25 0.06 85); /** Semantic warning — subtle surface */
  --color-semantic-warning-text: oklch(0.85 0.1 85); /** Semantic warning — text on tinted bg */
  --color-semantic-error: oklch(0.7 0.18 25); /** Semantic error (base) */
  --color-semantic-error-hover: oklch(0.75 0.19 25); /** Semantic error — hover */
  --color-semantic-error-active: oklch(0.65 0.17 25); /** Semantic error — active */
  --color-semantic-error-subtle: oklch(0.25 0.06 25); /** Semantic error — subtle surface */
  --color-semantic-error-text: oklch(0.85 0.12 25); /** Semantic error — text on tinted bg */
  --color-semantic-info: oklch(0.7 0.12 240); /** Semantic info (base) */
  --color-semantic-info-hover: oklch(0.75 0.13 240); /** Semantic info — hover */
  --color-semantic-info-active: oklch(0.65 0.11 240); /** Semantic info — active */
  --color-semantic-info-subtle: oklch(0.25 0.05 240); /** Semantic info — subtle surface */
  --color-semantic-info-text: oklch(0.85 0.1 240); /** Semantic info — text on tinted bg */
  --color-surface-bg-base: oklch(0.15 0.02 260); /** Root background — page canvas */
  --color-surface-bg-subtle: oklch(0.18 0.02 260); /** Subtle background — panels, sections */
  --color-surface-bg-emphasis: oklch(0.28 0.02 260); /** Emphasized background — highlighted regions */
  --color-surface-surface: oklch(0.2 0.02 260); /** Card / modal / elevated container surface */
  --color-surface-border: oklch(0.3 0.02 260); /** Default border / divider */
  --color-surface-border-subtle: oklch(0.25 0.015 260); /** Subtle border — quiet separators */
  --color-text-primary: oklch(0.95 0.01 260); /** Primary foreground text */
  --color-text-secondary: oklch(0.75 0.01 260); /** Secondary text — supporting copy */
  --color-text-tertiary: oklch(0.6 0.01 260); /** Tertiary text — captions, hints */
  --color-text-disabled: oklch(0.45 0.01 260); /** Disabled text */
  --color-text-inverse: oklch(0.15 0.02 260); /** Inverse text — on dark surfaces */
  --color-shadow-base: oklch(0 0 0 / 0.3); /** Shadow tint — default */
  --color-shadow-strong: oklch(0 0 0 / 0.5); /** Shadow tint — strong */
  --color-gradient-hero: linear-gradient(135deg, oklch(0.2 0.04 160) 0%, oklch(0.18 0.03 175) 50%, oklch(0.22 0.05 165) 100%); /** Hero gradient — marketing / splash surfaces */
}

[data-theme="light"] {
  --color-brand-primary: oklch(0.85 0.14 160); /** Brand primary (base) */
  --color-brand-primary-hover: oklch(0.8 0.15 160); /** Brand primary — hover */
  --color-brand-primary-active: oklch(0.75 0.16 160); /** Brand primary — active / pressed */
  --color-brand-primary-subtle: oklch(0.95 0.05 160); /** Brand primary — subtle tint surface */
  --color-brand-secondary: oklch(0.65 0.15 300); /** Brand secondary (base) */
  --color-brand-secondary-hover: oklch(0.6 0.16 300); /** Brand secondary — hover */
  --color-brand-secondary-active: oklch(0.55 0.17 300); /** Brand secondary — active / pressed */
  --color-brand-secondary-subtle: oklch(0.95 0.05 300); /** Brand secondary — subtle tint surface */
  --color-semantic-success: oklch(0.75 0.18 145); /** Semantic success (base) */
  --color-semantic-success-hover: oklch(0.7 0.19 145); /** Semantic success — hover */
  --color-semantic-success-active: oklch(0.65 0.2 145); /** Semantic success — active */
  --color-semantic-success-subtle: oklch(0.95 0.05 145); /** Semantic success — subtle surface */
  --color-semantic-success-text: oklch(0.35 0.12 145); /** Semantic success — text on tinted bg */
  --color-semantic-warning: oklch(0.8 0.16 85); /** Semantic warning (base) */
  --color-semantic-warning-hover: oklch(0.75 0.17 85); /** Semantic warning — hover */
  --color-semantic-warning-active: oklch(0.7 0.18 85); /** Semantic warning — active */
  --color-semantic-warning-subtle: oklch(0.95 0.06 85); /** Semantic warning — subtle surface */
  --color-semantic-warning-text: oklch(0.4 0.12 85); /** Semantic warning — text on tinted bg */
  --color-semantic-error: oklch(0.65 0.2 25); /** Semantic error (base) */
  --color-semantic-error-hover: oklch(0.6 0.21 25); /** Semantic error — hover */
  --color-semantic-error-active: oklch(0.55 0.22 25); /** Semantic error — active */
  --color-semantic-error-subtle: oklch(0.95 0.05 25); /** Semantic error — subtle surface */
  --color-semantic-error-text: oklch(0.4 0.15 25); /** Semantic error — text on tinted bg */
  --color-semantic-info: oklch(0.7 0.15 240); /** Semantic info (base) */
  --color-semantic-info-hover: oklch(0.65 0.16 240); /** Semantic info — hover */
  --color-semantic-info-active: oklch(0.6 0.17 240); /** Semantic info — active */
  --color-semantic-info-subtle: oklch(0.95 0.04 240); /** Semantic info — subtle surface */
  --color-semantic-info-text: oklch(0.4 0.12 240); /** Semantic info — text on tinted bg */
  --color-surface-bg-base: oklch(0.99 0 0); /** Root background — page canvas */
  --color-surface-bg-subtle: oklch(0.97 0.005 260); /** Subtle background — panels, sections */
  --color-surface-bg-emphasis: oklch(0.9 0.01 260); /** Emphasized background — highlighted regions */
  --color-surface-surface: oklch(1 0 0); /** Card / modal / elevated container surface */
  --color-surface-border: oklch(0.88 0.01 260); /** Default border / divider */
  --color-surface-border-subtle: oklch(0.92 0.005 260); /** Subtle border — quiet separators */
  --color-text-primary: oklch(0.2 0.02 260); /** Primary foreground text */
  --color-text-secondary: oklch(0.4 0.02 260); /** Secondary text — supporting copy */
  --color-text-tertiary: oklch(0.55 0.01 260); /** Tertiary text — captions, hints */
  --color-text-disabled: oklch(0.7 0.01 260); /** Disabled text */
  --color-text-inverse: oklch(0.98 0 0); /** Inverse text — on dark surfaces */
  --color-shadow-base: oklch(0.2 0.02 260 / 0.08); /** Shadow tint — default */
  --color-shadow-strong: oklch(0.2 0.02 260 / 0.15); /** Shadow tint — strong */
  --color-gradient-hero: linear-gradient(135deg, oklch(0.92 0.08 160) 0%, oklch(0.94 0.06 175) 50%, oklch(0.9 0.1 165) 100%); /** Hero gradient — marketing / splash surfaces */
}

/* system が light preference で [data-theme] 未指定なら mint-light に逆転 */
@media (prefers-color-scheme: light) {
  :root:not([data-theme]):not(.dark):not([data-theme="mint-dark"]) {
    --color-brand-primary: oklch(0.85 0.14 160); /** Brand primary (base) */
    --color-brand-primary-hover: oklch(0.8 0.15 160); /** Brand primary — hover */
    --color-brand-primary-active: oklch(0.75 0.16 160); /** Brand primary — active / pressed */
    --color-brand-primary-subtle: oklch(0.95 0.05 160); /** Brand primary — subtle tint surface */
    --color-brand-secondary: oklch(0.65 0.15 300); /** Brand secondary (base) */
    --color-brand-secondary-hover: oklch(0.6 0.16 300); /** Brand secondary — hover */
    --color-brand-secondary-active: oklch(0.55 0.17 300); /** Brand secondary — active / pressed */
    --color-brand-secondary-subtle: oklch(0.95 0.05 300); /** Brand secondary — subtle tint surface */
    --color-semantic-success: oklch(0.75 0.18 145); /** Semantic success (base) */
    --color-semantic-success-hover: oklch(0.7 0.19 145); /** Semantic success — hover */
    --color-semantic-success-active: oklch(0.65 0.2 145); /** Semantic success — active */
    --color-semantic-success-subtle: oklch(0.95 0.05 145); /** Semantic success — subtle surface */
    --color-semantic-success-text: oklch(0.35 0.12 145); /** Semantic success — text on tinted bg */
    --color-semantic-warning: oklch(0.8 0.16 85); /** Semantic warning (base) */
    --color-semantic-warning-hover: oklch(0.75 0.17 85); /** Semantic warning — hover */
    --color-semantic-warning-active: oklch(0.7 0.18 85); /** Semantic warning — active */
    --color-semantic-warning-subtle: oklch(0.95 0.06 85); /** Semantic warning — subtle surface */
    --color-semantic-warning-text: oklch(0.4 0.12 85); /** Semantic warning — text on tinted bg */
    --color-semantic-error: oklch(0.65 0.2 25); /** Semantic error (base) */
    --color-semantic-error-hover: oklch(0.6 0.21 25); /** Semantic error — hover */
    --color-semantic-error-active: oklch(0.55 0.22 25); /** Semantic error — active */
    --color-semantic-error-subtle: oklch(0.95 0.05 25); /** Semantic error — subtle surface */
    --color-semantic-error-text: oklch(0.4 0.15 25); /** Semantic error — text on tinted bg */
    --color-semantic-info: oklch(0.7 0.15 240); /** Semantic info (base) */
    --color-semantic-info-hover: oklch(0.65 0.16 240); /** Semantic info — hover */
    --color-semantic-info-active: oklch(0.6 0.17 240); /** Semantic info — active */
    --color-semantic-info-subtle: oklch(0.95 0.04 240); /** Semantic info — subtle surface */
    --color-semantic-info-text: oklch(0.4 0.12 240); /** Semantic info — text on tinted bg */
    --color-surface-bg-base: oklch(0.99 0 0); /** Root background — page canvas */
    --color-surface-bg-subtle: oklch(0.97 0.005 260); /** Subtle background — panels, sections */
    --color-surface-bg-emphasis: oklch(0.9 0.01 260); /** Emphasized background — highlighted regions */
    --color-surface-surface: oklch(1 0 0); /** Card / modal / elevated container surface */
    --color-surface-border: oklch(0.88 0.01 260); /** Default border / divider */
    --color-surface-border-subtle: oklch(0.92 0.005 260); /** Subtle border — quiet separators */
    --color-text-primary: oklch(0.2 0.02 260); /** Primary foreground text */
    --color-text-secondary: oklch(0.4 0.02 260); /** Secondary text — supporting copy */
    --color-text-tertiary: oklch(0.55 0.01 260); /** Tertiary text — captions, hints */
    --color-text-disabled: oklch(0.7 0.01 260); /** Disabled text */
    --color-text-inverse: oklch(0.98 0 0); /** Inverse text — on dark surfaces */
    --color-shadow-base: oklch(0.2 0.02 260 / 0.08); /** Shadow tint — default */
    --color-shadow-strong: oklch(0.2 0.02 260 / 0.15); /** Shadow tint — strong */
    --color-gradient-hero: linear-gradient(135deg, oklch(0.92 0.08 160) 0%, oklch(0.94 0.06 175) 50%, oklch(0.9 0.1 165) 100%); /** Hero gradient — marketing / splash surfaces */
  }
}
