/*
  DS-1 Phase 1: デザイントークン定義のみ
  このPhaseでは既存ハードコード色は一切変更しない（ビジュアル変化ゼロ）
  実適用はPhase 2以降（フッタータブ→カード→ボタン...の順）
  参照: docs/ds1_design_audit_2026-04-15.md
*/
:root {
  /* === DS-2 デザイントークン ナチュラルグリーン 2026-05-15 === */

  /* ─── Primary (深い森緑) ─────────────────────── */
  --ds-primary: #4A7C59;
  --ds-primary-hover: #3B6649;
  --ds-primary-soft: #C3DFCA;
  --ds-accent: #EFF6F1;
  --ds-accent-strong: #D8E9DC;

  /* ─── Warning (テラコッタ) ───────────────────── */
  --ds-warning: #BC6E56;
  --ds-warning-hover: #9E5B45;
  --ds-warning-soft: #F0DDD8;

  /* ─── Success (鮮やかな緑) ───────────────────── */
  --ds-success: #3E9B5C;
  --ds-success-hover: #328048;
  --ds-success-soft: #C2E4CC;

  /* ─── Info (スレートブルー) ──────────────────── */
  --ds-info: #6B84A0;
  --ds-info-hover: #556B86;
  --ds-info-soft: #E2EBF2;

  /* ─── Neutral / Background ───────────────────── */
  --ds-bg: #EFF6F1;
  --ds-surface: #FFFFFF;
  --ds-surface-alt: #E8F0EC;
  --ds-surface-cool: #E2EDE5;
  --ds-surface-warm: #E8F2EC;
  --ds-surface-green: #D3E6D8;
  --ds-border: #D5E6DA;
  --ds-border-strong: #C2D6C8;
  --ds-divider: #DCE9DF;

  /* ─── Text ───────────────────────────────────── */
  --ds-text: #1C2B22;
  --ds-text-muted: #476052;
  --ds-text-faint: #789080;
  --ds-text-on-primary: #FFFFFF;

  /* ─── Shape ──────────────────────────────────── */
  --ds-radius-sm: 10px;
  --ds-radius-md: 16px;
  --ds-radius-lg: 22px;
  --ds-radius-pill: 999px;

  /* ─── Elevation ──────────────────────────────── */
  --ds-shadow-sm: 0 2px 6px rgba(30, 58, 42, 0.06);
  --ds-shadow-md: 0 8px 20px rgba(30, 58, 42, 0.08);
  --ds-shadow-lg: 0 20px 40px rgba(30, 58, 42, 0.10);

  /* ─── Motion ─────────────────────────────────── */
  --ds-ease: cubic-bezier(0.4, 0.0, 0.2, 1);
  --ds-duration: 220ms;

  /* ─── Chart (8色) ────────────────────────────── */
  --ds-chart-1: #4A7C59;
  --ds-chart-2: #6B84A0;
  --ds-chart-3: #3E9B5C;
  --ds-chart-4: #BC6E56;
  --ds-chart-5: #6A8A70;
  --ds-chart-6: #8088A0;
  --ds-chart-7: #8A9880;
  --ds-chart-8: #7A9490;
}
    * { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
    html, body { overscroll-behavior: none; height: 100%; }
    body { margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, 'Hiragino Sans', 'Yu Gothic', sans-serif; background: var(--ds-bg); color: var(--ds-text); -webkit-overflow-scrolling: touch; }
    #root { max-width: 430px; margin: 0 auto; padding-top: env(safe-area-inset-top); padding-bottom: calc(env(safe-area-inset-bottom) + 36px); }
    ::-webkit-scrollbar { display: none; }
    .fade-in { animation: fadeIn 0.25s ease; }
    @keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
    @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
    .chip-btn { min-height: 44px; transition: all 0.15s ease; }
    .chip-btn:active { transform: scale(0.94); }
    textarea, select, input { font-family: inherit; }
    select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 32px !important; }
    @media print {
      body > *:not(#carte-print-root) { display: none !important; }
      .bl-footer-tabs, .bl-header, .bl-settings-fab { display: none !important; }
      .bl-print-hidden { display: none !important; }
      @page { size: A4 portrait; margin: 15mm 12mm; }
      html, body { background: white !important; color: black !important; font-size: 10.5pt; }
      .carte-report { max-width: 100% !important; padding: 0 !important; box-shadow: none !important; }
      .carte-report table { border-collapse: collapse; width: 100%; font-size: 9.5pt; }
      .carte-report th, td { border: 0.5pt solid #333; padding: 3pt 5pt; }
      .carte-section { page-break-inside: avoid; }
      * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
      a[href]:after { content: "" !important; }
    }
    /* ── スプラッシュスクリーン ── */
    #bl-splash{position:fixed;inset:0;z-index:9999;background:#4A7C59;display:flex;align-items:center;justify-content:center;animation:bl-splash-auto .4s ease-out .5s forwards;}
    #bl-splash.bl-hiding{animation:bl-splash-auto .4s ease forwards;}
    @keyframes bl-splash-auto{to{opacity:0;visibility:hidden;pointer-events:none;}}
    .bl-splash-inner{display:flex;flex-direction:column;align-items:center;gap:10px;}
    .bl-splash-inner img{width:88px;height:88px;border-radius:20px;box-shadow:0 4px 20px rgba(0,0,0,.25);}
    .bl-splash-title{font-size:26px;font-weight:800;color:#fff;letter-spacing:.5px;font-family:-apple-system,sans-serif;}
    .bl-splash-sub{font-size:12px;color:rgba(255,255,255,.75);font-family:-apple-system,sans-serif;}
    .bl-splash-dots{display:flex;gap:7px;margin-top:10px;}
    .bl-splash-dots span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.8);animation:bl-dot 1.2s ease-in-out infinite;}
    .bl-splash-dots span:nth-child(2){animation-delay:.2s;}
    .bl-splash-dots span:nth-child(3){animation-delay:.4s;}
    @keyframes bl-dot{0%,80%,100%{transform:scale(.55);opacity:.35;}40%{transform:scale(1);opacity:1;}}
