/* Shared visual tokens for the hub and the classroom tools. Used by the main hub and this sub-app. */
:root {
  color-scheme: light;

  --ui-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
    "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC",
    "Source Han Sans SC", "Helvetica Neue", Arial, sans-serif;
  --ui-font-cjk: "Noto Sans SC", "Source Han Sans SC", "PingFang SC",
    "Hiragino Sans GB", "Microsoft YaHei", sans-serif;

  --ui-bg: #f5f5f7;
  --ui-surface: #ffffff;
  --ui-surface-muted: #f7f8fb;
  --ui-text: #1d1d1f;
  --ui-text-strong: #111827;
  --ui-text-secondary: #5f6368;
  --ui-text-muted: #6e6e73;
  --ui-border: #e3e5ea;
  --ui-border-strong: #d1d5db;

  --ui-accent: #4f46e5;
  --ui-accent-hover: #4338ca;
  --ui-accent-soft: #eef2ff;
  --ui-accent-border: #c7d2fe;
  --ui-success: #059669;
  --ui-success-hover: #047857;
  --ui-warning: #b45309;
  --ui-danger: #dc2626;
  --ui-danger-hover: #b91c1c;

  --ui-radius-sm: 8px;
  --ui-radius-md: 12px;
  --ui-radius-lg: 14px;
  --ui-radius-xl: 22px;
  --ui-radius-pill: 999px;

  --ui-space-1: 4px;
  --ui-space-2: 8px;
  --ui-space-3: 12px;
  --ui-space-4: 16px;
  --ui-space-5: 24px;
  --ui-space-6: 32px;
  --ui-space-7: 48px;

  --ui-control-sm: 36px;
  --ui-control: 44px;
  --ui-control-lg: 48px;
  --ui-icon-sm: 16px;
  --ui-icon: 18px;
  --ui-icon-lg: 20px;

  --ui-focus-ring: rgba(79, 70, 229, 0.35);
  --ui-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.04),
    0 8px 24px rgba(28, 32, 56, 0.05);
  --ui-duration-fast: 120ms;
  --ui-duration: 180ms;
  --ui-duration-slow: 280ms;
}

html[data-theme="dark"] {
  color-scheme: dark;

  --ui-bg: #000000;
  --ui-surface: #1c1c1e;
  --ui-surface-muted: #242428;
  --ui-text: #f5f5f7;
  --ui-text-strong: #ffffff;
  --ui-text-secondary: #b7b7bd;
  --ui-text-muted: #a1a1a6;
  --ui-border: rgba(255, 255, 255, 0.12);
  --ui-border-strong: rgba(255, 255, 255, 0.2);

  --ui-accent: #a5b4fc;
  --ui-accent-hover: #c7d2fe;
  --ui-accent-soft: rgba(99, 102, 241, 0.16);
  --ui-accent-border: rgba(165, 180, 252, 0.35);
  --ui-focus-ring: rgba(165, 180, 252, 0.5);
  --ui-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.5),
    0 8px 24px rgba(0, 0, 0, 0.35);
}

/* One SVG family, one stroke language. Icons inherit the surrounding colour. */
.ui-icon-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
}

.ui-icon {
  display: inline-block;
  flex: none;
  width: var(--ui-icon);
  height: var(--ui-icon);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  vertical-align: -0.18em;
  pointer-events: none;
}

.ui-icon--sm {
  width: var(--ui-icon-sm);
  height: var(--ui-icon-sm);
}

.ui-icon--lg {
  width: var(--ui-icon-lg);
  height: var(--ui-icon-lg);
}

.ui-icon-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
