    /* ▼▼ ANA風：アプリ全体の背景を薄いグレーブルーにして白カードを際立たせる ▼▼ */
    body { background-color: #f0f4f8; }

    /* === 1. ANA風 フライト状況カード === */
    .ana-flight-card {
      margin: 0 auto 25px;
      width: 95%;
      background: #ffffff;
      border-radius: 16px;
      padding: 24px 20px;
      box-shadow: 0 8px 24px rgba(0, 43, 112, 0.08); /* 紺色の薄い影で高級感を出す */
      border: 1px solid #e2e8f0;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    }

    /* 空港コード部分 */
    .ana-route-header {
      display: flex;
      justify-content: space-between;
      align-items: flex-end;
      margin-bottom: 25px;
    }
    .ana-port {
      display: flex;
      flex-direction: column;
      flex: 1;
    }
    .ana-port.right { text-align: right; }
    .ana-code {
      font-size: 2.5rem;
      font-weight: 900;
      color: #0f2b5a; /* ANAディープブルー */
      line-height: 1.1;
      letter-spacing: -1px;
    }
    .ana-name {
      font-size: 0.75rem;
      font-weight: bold;
      color: #64748b;
      margin-top: 4px;
    }

    /* 中央のバッジ */
    .ana-route-center {
      flex: 1;
      text-align: center;
      padding-bottom: 8px;
    }
    .ana-status-badge {
      display: inline-block;
      border: 1.5px solid #0076d6;
      color: #0076d6;
      font-size: 0.7rem;
      font-weight: 900;
      padding: 3px 12px;
      border-radius: 20px;
      letter-spacing: 1px;
    }

    /* プログレスバー（飛行機の軌跡） */
    .ana-progress-track {
      width: 100%;
      height: 8px;
      background: #e2e8f0;
      border-radius: 4px;
      position: relative;
      margin-bottom: 20px;
    }
    .ana-progress-bar {
      height: 100%;
      width: 0%;
      background: linear-gradient(90deg, #0076d6, #00bfff); /* ANAブルーのグラデーション */
      border-radius: 4px;
      position: relative;
      transition: width 1.5s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .ana-plane-icon {
      position: absolute;
      right: -14px;
      top: -8px;
      font-size: 1.5rem;
      color: #0076d6;
      filter: drop-shadow(0 2px 4px rgba(0, 118, 214, 0.3));
    }

    /* マイルテキスト */
    .ana-miles-text {
      text-align: center;
      font-size: 0.9rem;
      color: #475569;
      font-weight: bold;
    }
    .ana-miles-text .current-miles {
      color: #0f2b5a;
      font-size: 1.3rem;
      font-weight: 900;
    }
    .ana-remaining-pill {
      display: inline-block;
      background: #eff6ff;
      color: #0076d6;
      padding: 4px 12px;
      border-radius: 12px;
      font-size: 0.8rem;
      font-weight: 800;
      margin-left: 8px;
    }

    /* ▼▼ ゴール時のホログラムカード ▼▼ */
    .shimmer-card {
      position: relative; overflow: hidden;
      background: linear-gradient(135deg, #FFD700 0%, #FDB931 100%);
      border-radius: 12px; padding: 20px; box-shadow: 0 10px 20px rgba(255, 215, 0, 0.3);
      text-align: center; margin-top: 15px; animation: popIn 0.5s;
    }
    .shimmer-card::after {
      content: ''; position: absolute; top: 0; left: -150%; width: 50%; height: 100%;
      background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.6) 50%, rgba(255,255,255,0) 100%);
      transform: skewX(-25deg); animation: shimmer-swipe 3s infinite ease-in-out;
    }
    .btn-goal-action {
      background: #ffffff; color: #d35400; border: none; padding: 12px 24px;
      border-radius: 30px; font-weight: 900; font-size: 1rem; cursor: pointer;
      box-shadow: 0 4px 10px rgba(0,0,0,0.1); transition: all 0.2s ease;
    }
    .btn-goal-action:active { transform: scale(0.95); }
    @keyframes popIn { 0% { transform: scale(0.9); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }
    @keyframes shimmer-swipe { 0% { left: -150%; } 30% { left: 150%; } 100% { left: 150%; } }

    /* === 2. ANA風 作り置き（ミールキット）リスト === */
    .ana-section-title {
      font-size: 1.2rem;
      font-weight: 900;
      color: #0f2b5a;
      margin-bottom: 15px;
      text-align: left;
      padding-left: 20px;
    }
    .meal-kit-card {
      display: flex; justify-content: space-between; align-items: center;
      padding: 16px; margin: 0 auto 12px; width: 95%; background: #ffffff;
      border-radius: 12px; border: 1px solid #e2e8f0;
      box-shadow: 0 4px 10px rgba(0,0,0,0.03); /* ほんのり影をつけるだけ */
      position: relative; transition: all 0.3s ease;
    }
    /* 左側のカラーボーダーは少し細くスタイリッシュに */
    .meal-kit-card { border-left-width: 4px; }
    
    .btn-delete-kit {
      position: absolute; 
      top: 6px;   /* 🌟 修正：上端に少し寄せる */
      right: 4px; /* 🌟 修正：右端に少し寄せる */
      background: none; 
      border: none;
      color: #cbd5e1; 
      font-size: 1.1rem; 
      cursor: pointer; 
      padding: 5px;
      transition: color 0.2s; 
      z-index: 10;
    }
    .btn-delete-kit:hover { color: #e63946; }

    /* 🌟 修正：はみ出し防止用のCSS */
    .kit-info { flex: 1; min-width: 0; padding-right: 10px; }
    .kit-name { font-weight: 900; font-size: 1.1rem; color: #1a202c; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .kit-name a { color: inherit; text-decoration: none; }
    .kit-cost { font-size: 0.9rem; color: #64748b; margin-top: 6px; display: flex; align-items: center; }
    .portion-badge {
      background: #f1f5f9; padding: 2px 8px; border-radius: 6px;
      font-size: 0.8rem; font-weight: bold; color: #475569; margin-left: 6px;
    }

    /* 🌟 修正：ボタンエリアの幅確保と改行禁止 */
    .kit-action { 
      min-width: 85px; 
      flex-shrink: 0; 
      text-align: center; 
      display: flex; 
      flex-direction: column; 
      gap: 6px; 
      margin-left: auto; 
      margin-right: 22px; /* 🌟 追加：ゴミ箱アイコンとの重なりを回避 */
    }
    .btn-flight {
      background: linear-gradient(135deg, #0076d6, #00a4e4); color: white;
      border: none; padding: 10px 8px; border-radius: 20px; font-weight: bold;
      font-size: 0.9rem; cursor: pointer; box-shadow: 0 4px 10px rgba(0, 118, 214, 0.3);
      width: 100%; transition: transform 0.2s; white-space: nowrap;
    }
    .btn-flight:active { transform: scale(0.95); }
    .btn-consume-all {
      background: #ffffff; color: #0076d6; border: 1px solid #0076d6;
      padding: 6px 8px; border-radius: 20px; font-size: 0.75rem; font-weight: bold;
      cursor: pointer; width: 100%; transition: all 0.2s; white-space: nowrap;
    }
    .btn-consume-all:active { background: #eff6ff; }

    /* カテゴリカラー（既存のまま活用） */
    .label-staple-border  { border-left-color: #f9c74f !important; }
    .label-main-border    { border-left-color: #f94144 !important; }
    .label-side-border    { border-left-color: #43aa8b !important; }
    .label-soup-border    { border-left-color: #577590 !important; }
    .label-dessert-border { border-left-color: #9d4edd !important; }
    .label-default-border { border-left-color: #cbd5e1 !important; }

    @keyframes popIn {
      0% { transform: scale(0) translateY(50px); opacity: 0; }
      80% { transform: scale(1.1) translateY(-10px); opacity: 1; }
      100% { transform: scale(1) translateY(0); opacity: 1; }
    }