/* ============================================================
   MMApp Design Tokens — "Apple standard" refresh 2026-08-25
   Themes: graphite (dark, default), dark, light, system
   ============================================================ */

:root {
  --font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display",
    ui-sans-serif, "Inter", "Segoe UI", Roboto, sans-serif;
  --font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas,
    "Liberation Mono", monospace;

  --font-size-xs: 0.75rem;
  --font-size-sm: 0.8125rem;
  --font-size-md: 0.875rem;
  --font-size-lg: 0.9375rem;
  --font-size-xl: 1.125rem;
  --font-size-2xl: clamp(1.5rem, 2.2vw, 1.75rem);
  --line-height: 1.5;
  --line-height-tight: 1.2;

  --tracking-tight: -0.022em;
  --tracking-body: -0.01em;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;

  --radius-sm: 0.5rem;
  --radius-control: 0.625rem;
  --radius-card: 1rem;
  --radius-pill: 980px;

  --topbar-height: 3.25rem;
  --sidebar-width: 15rem;
  --sidebar-collapsed-width: 3.75rem;
  --content-max: 96rem;
  --control-height: 2.5rem;
  --transition-fast: 160ms cubic-bezier(0.25, 0.1, 0.25, 1);
  --transition-medium: 240ms cubic-bezier(0.25, 0.1, 0.25, 1);

  --z-sidebar: 30;
  --z-topbar: 20;
  --z-backdrop: 25;
  --z-auth-gate: 55;
  --z-dialog: 60;
  --z-toast: 70;
}

/* ============================================================
   THEME: graphite (default dark)
   ============================================================ */
:root,
:root[data-theme="terminal"] {
  color-scheme: dark;

  --color-app: #101012;
  --color-surface: #17171a;
  --color-surface-subtle: #131316;
  --color-surface-raised: #202024;
  --color-surface-hover: #232327;

  --color-text: #f5f5f7;
  --color-text-muted: #a1a1a6;
  --color-text-subtle: #77777d;

  --color-border: rgba(255, 255, 255, 0.09);
  --color-border-strong: rgba(255, 255, 255, 0.18);

  --color-primary: #0a84ff;
  --color-primary-hover: #409cff;
  --color-primary-soft: rgba(10, 132, 255, 0.14);
  --color-on-primary: #ffffff;

  --color-success: #30d158;
  --color-success-soft: rgba(48, 209, 88, 0.14);
  --color-warning: #ff9f0a;
  --color-warning-soft: rgba(255, 159, 10, 0.15);
  --color-danger: #ff453a;
  --color-danger-hover: #ff6961;
  --color-danger-soft: rgba(255, 69, 58, 0.14);
  --color-info: #64d2ff;
  --color-info-soft: rgba(100, 210, 255, 0.13);

  --color-focus: #0a84ff;
  --color-backdrop: rgba(0, 0, 0, 0.55);
  --color-skeleton: #1d1d21;
  --color-skeleton-highlight: #26262b;

  --shadow-card: none;
  --shadow-dialog: 0 24px 64px rgba(0, 0, 0, 60%), 0 2px 8px rgba(0, 0, 0, 40%);

  --color-sidebar: rgba(14, 14, 17, 0.92);
  --color-sidebar-border: rgba(255, 255, 255, 0.07);
  --color-sidebar-active: rgba(10, 132, 255, 0.16);
  --color-sidebar-hover: rgba(255, 255, 255, 0.05);

  --color-topbar: rgba(19, 19, 23, 0.72);
}

/* ============================================================
   THEME: dark (graphite, consistent with default)
   ============================================================ */
:root[data-theme="dark"] {
  color-scheme: dark;

  --color-app: #101012;
  --color-surface: #17171a;
  --color-surface-subtle: #131316;
  --color-surface-raised: #202024;
  --color-surface-hover: #232327;

  --color-text: #f5f5f7;
  --color-text-muted: #a1a1a6;
  --color-text-subtle: #77777d;

  --color-border: rgba(255, 255, 255, 0.09);
  --color-border-strong: rgba(255, 255, 255, 0.18);

  --color-primary: #0a84ff;
  --color-primary-hover: #409cff;
  --color-primary-soft: rgba(10, 132, 255, 0.14);
  --color-on-primary: #ffffff;

  --color-success: #30d158;
  --color-success-soft: rgba(48, 209, 88, 0.14);
  --color-warning: #ff9f0a;
  --color-warning-soft: rgba(255, 159, 10, 0.15);
  --color-danger: #ff453a;
  --color-danger-hover: #ff6961;
  --color-danger-soft: rgba(255, 69, 58, 0.14);
  --color-info: #64d2ff;
  --color-info-soft: rgba(100, 210, 255, 0.13);

  --color-focus: #0a84ff;
  --color-backdrop: rgba(0, 0, 0, 0.55);
  --color-skeleton: #1d1d21;
  --color-skeleton-highlight: #26262b;

  --shadow-card: 0 1px 2px rgba(0, 0, 0, 32%);
  --shadow-dialog: 0 24px 64px rgba(0, 0, 0, 60%), 0 2px 8px rgba(0, 0, 0, 40%);

  --color-sidebar: rgba(14, 14, 17, 0.92);
  --color-sidebar-border: rgba(255, 255, 255, 0.07);
  --color-sidebar-active: rgba(10, 132, 255, 0.16);
  --color-sidebar-hover: rgba(255, 255, 255, 0.05);

  --color-topbar: rgba(19, 19, 23, 0.72);
}

/* ============================================================
   THEME: light
   ============================================================ */
:root[data-theme="light"] {
  color-scheme: light;

  --color-app: #f5f5f7;
  --color-surface: #ffffff;
  --color-surface-subtle: #fafafc;
  --color-surface-raised: #ffffff;
  --color-surface-hover: #f2f2f7;

  --color-text: #1d1d1f;
  --color-text-muted: #6e6e73;
  --color-text-subtle: #86868b;

  --color-border: rgba(0, 0, 0, 0.1);
  --color-border-strong: rgba(0, 0, 0, 0.2);

  --color-primary: #0071e3;
  --color-primary-hover: #0077ed;
  --color-primary-soft: rgba(0, 113, 227, 0.1);
  --color-on-primary: #ffffff;

  --color-success: #248a3d;
  --color-success-soft: rgba(52, 199, 89, 0.13);
  --color-warning: #b25000;
  --color-warning-soft: rgba(255, 149, 0, 0.13);
  --color-danger: #d70015;
  --color-danger-hover: #b00020;
  --color-danger-soft: rgba(255, 59, 48, 0.11);
  --color-info: #007aff;
  --color-info-soft: rgba(0, 122, 255, 0.1);

  --color-focus: #0071e3;
  --color-backdrop: rgba(0, 0, 0, 0.4);
  --color-skeleton: #e8e8ed;
  --color-skeleton-highlight: #f5f5f7;

  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.04), 0 4px 14px rgba(0, 0, 0, 0.05);
  --shadow-dialog: 0 24px 70px rgba(0, 0, 0, 0.22), 0 2px 10px rgba(0, 0, 0, 0.08);

  --color-sidebar: rgba(255, 255, 255, 0.85);
  --color-sidebar-border: rgba(0, 0, 0, 0.07);
  --color-sidebar-active: rgba(0, 113, 227, 0.1);
  --color-sidebar-hover: rgba(0, 0, 0, 0.04);

  --color-topbar: rgba(245, 245, 247, 0.75);
}

/* ============================================================
   THEME: system (follows OS preference)
   ============================================================ */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;

    --color-app: #101012;
    --color-surface: #17171a;
    --color-surface-subtle: #131316;
    --color-surface-raised: #202024;
    --color-surface-hover: #232327;

    --color-text: #f5f5f7;
    --color-text-muted: #a1a1a6;
    --color-text-subtle: #77777d;

    --color-border: rgba(255, 255, 255, 0.09);
    --color-border-strong: rgba(255, 255, 255, 0.18);

    --color-primary: #0a84ff;
    --color-primary-hover: #409cff;
    --color-primary-soft: rgba(10, 132, 255, 0.14);
    --color-on-primary: #ffffff;

    --color-success: #30d158;
    --color-success-soft: rgba(48, 209, 88, 0.14);
    --color-warning: #ff9f0a;
    --color-warning-soft: rgba(255, 159, 10, 0.15);
    --color-danger: #ff453a;
    --color-danger-hover: #ff6961;
    --color-danger-soft: rgba(255, 69, 58, 0.14);
    --color-info: #64d2ff;
    --color-info-soft: rgba(100, 210, 255, 0.13);

    --color-focus: #0a84ff;
    --color-backdrop: rgba(0, 0, 0, 0.55);
    --color-skeleton: #1d1d21;
    --color-skeleton-highlight: #26262b;

    --shadow-card: none;
    --shadow-dialog: 0 24px 64px rgba(0, 0, 0, 60%), 0 2px 8px rgba(0, 0, 0, 40%);

    --color-sidebar: rgba(14, 14, 17, 0.92);
    --color-sidebar-border: rgba(255, 255, 255, 0.07);
    --color-sidebar-active: rgba(10, 132, 255, 0.16);
    --color-sidebar-hover: rgba(255, 255, 255, 0.05);

    --color-topbar: rgba(19, 19, 23, 0.72);
  }
}

@media (prefers-color-scheme: light) {
  :root:not([data-theme]) {
    color-scheme: light;

    --color-app: #f5f5f7;
    --color-surface: #ffffff;
    --color-surface-subtle: #fafafc;
    --color-surface-raised: #ffffff;
    --color-surface-hover: #f2f2f7;

    --color-text: #1d1d1f;
    --color-text-muted: #6e6e73;
    --color-text-subtle: #86868b;

    --color-border: rgba(0, 0, 0, 0.1);
    --color-border-strong: rgba(0, 0, 0, 0.2);

    --color-primary: #0071e3;
    --color-primary-hover: #0077ed;
    --color-primary-soft: rgba(0, 113, 227, 0.1);
    --color-on-primary: #ffffff;

    --color-success: #248a3d;
    --color-success-soft: rgba(52, 199, 89, 0.13);
    --color-warning: #b25000;
    --color-warning-soft: rgba(255, 149, 0, 0.13);
    --color-danger: #d70015;
    --color-danger-hover: #b00020;
    --color-danger-soft: rgba(255, 59, 48, 0.11);
    --color-info: #007aff;
    --color-info-soft: rgba(0, 122, 255, 0.1);

    --color-focus: #0071e3;
    --color-backdrop: rgba(0, 0, 0, 0.4);
    --color-skeleton: #e8e8ed;
    --color-skeleton-highlight: #f5f5f7;

    --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.04), 0 4px 14px rgba(0, 0, 0, 0.05);
    --shadow-dialog: 0 24px 70px rgba(0, 0, 0, 0.22), 0 2px 10px rgba(0, 0, 0, 0.08);

    --color-sidebar: rgba(255, 255, 255, 0.85);
    --color-sidebar-border: rgba(0, 0, 0, 0.07);
    --color-sidebar-active: rgba(0, 113, 227, 0.1);
    --color-sidebar-hover: rgba(0, 0, 0, 0.04);

    --color-topbar: rgba(245, 245, 247, 0.75);
  }
}
