/* ============================================================
   ULSAPO Design Tokens — 全ポータル共通
   BB / メインサイト / オーナーポータル / 管理ダッシュボードで共有
   ============================================================
   使い方: 各HTMLの <head> 内、既存 <style> タグの前に読み込む
   既存の :root 変数は各ファイル内 <style> に残すため、
   同名変数は既存定義が後勝ちで優先される。
   新規 u-* コンポーネントだけがこのトークンを参照する。
   ============================================================ */

:root {
  /* === Color: Primary === */
  --u-primary: #6366f1;
  --u-primary-dark: #4f46e5;
  --u-primary-light: #eef2ff;
  --u-primary-50: #e0e7ff;

  /* === Color: Semantic === */
  --u-success: #059669;
  --u-success-light: #d1fae5;
  --u-warning: #d97706;
  --u-warning-light: #fef3c7;
  --u-error: #dc2626;
  --u-error-light: #fee2e2;
  --u-info: #0ea5e9;
  --u-info-light: #e0f2fe;

  /* === Color: Gray Scale === */
  --u-gray-50: #f9fafb;
  --u-gray-100: #f3f4f6;
  --u-gray-200: #e5e7eb;
  --u-gray-300: #d1d5db;
  --u-gray-400: #9ca3af;
  --u-gray-500: #6b7280;
  --u-gray-600: #4b5563;
  --u-gray-700: #374151;
  --u-gray-800: #1f2937;
  --u-gray-900: #111827;

  /* === Color: Surface === */
  --u-bg: var(--u-gray-50);
  --u-card: #ffffff;
  --u-border: var(--u-gray-200);
  --u-text: var(--u-gray-900);
  --u-text-secondary: var(--u-gray-500);
  --u-text-muted: var(--u-gray-400);

  /* === Spacing: 4px grid === */
  --u-space-1: 4px;
  --u-space-2: 8px;
  --u-space-3: 12px;
  --u-space-4: 16px;
  --u-space-5: 20px;
  --u-space-6: 24px;
  --u-space-8: 32px;
  --u-space-10: 40px;
  --u-space-12: 48px;

  /* === Typography === */
  --u-text-xs: 11px;
  --u-text-sm: 12px;
  --u-text-base: 14px;
  --u-text-lg: 16px;
  --u-text-xl: 18px;
  --u-text-2xl: 22px;
  --u-text-3xl: 28px;

  --u-font-normal: 400;
  --u-font-medium: 500;
  --u-font-semibold: 600;
  --u-font-bold: 700;

  --u-leading-tight: 1.3;
  --u-leading-normal: 1.5;
  --u-leading-relaxed: 1.7;

  /* === Border Radius === */
  --u-radius: 12px;
  --u-radius-sm: 8px;
  --u-radius-lg: 16px;
  --u-radius-full: 99px;

  /* === Shadow === */
  --u-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
  --u-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.06);
  --u-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.06);
  --u-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05);
  --u-shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04);

  /* === Transition === */
  --u-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  --u-transition-fast: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);

  /* === Focus Ring === */
  --u-ring-primary: 0 0 0 2px var(--u-primary-light), 0 0 0 4px var(--u-primary);
  --u-ring-error: 0 0 0 2px var(--u-error-light), 0 0 0 4px var(--u-error);

  /* === BB Status Colors === */
  --u-status-listing: #2563eb;
  --u-status-viewing: #f59e0b;
  --u-status-application: #8b5cf6;
  --u-status-screening: #6366f1;
  --u-status-contract-prep: #0ea5e9;
  --u-status-contracted: #059669;
  --u-status-returned: #dc2626;
  --u-status-hold: #6b7280;

  /* === Owner Status Colors === */
  --u-status-occupied: #16a34a;
  --u-status-vacant: #dc2626;
  --u-status-listed: #f59e0b;
  --u-status-moveout: #f97316;
  --u-status-pending: #f59e0b;
  --u-status-approved: #059669;
  --u-status-rejected: #dc2626;
  --u-status-negotiating: #d97706;
}
