  .ana-profile-container { background-color: #f0f4f8; min-height: 100vh; padding-bottom: 80px; }
  .ana-guest-banner { background-color: #fff3cd; color: #856404; padding: 12px 15px; text-align: center; border-bottom: 1px solid #ffeeba; font-size: 0.9rem; }
  .ana-guest-banner .banner-link { color: #0076d6; font-weight: bold; text-decoration: underline; }
  .ana-profile-header { width: 95%; margin: 0 auto; padding: 20px 10px 10px; }
  
  /* 🌟 修正：プロフィール情報の文字省略と配置調整 */
  .profile-main { display: flex; align-items: center; gap: 15px; width: 100%; }
  .profile-main .user-icon { font-size: 2.8rem; color: #0f2b5a; flex-shrink: 0; }
  .profile-main .user-info { display: flex; flex-direction: column; flex: 1; min-width: 0; }
  .profile-main .user-name { font-size: 1.3rem; font-weight: 900; color: #0f2b5a; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .profile-main .user-rank-text { font-size: 0.8rem; font-weight: bold; color: #64748b; margin-top: 2px; }

  .ana-card, .kcc-card { background-color: #ffffff; border-radius: 16px; border: 1px solid #e2e8f0; box-shadow: 0 4px 15px rgba(0, 43, 112, 0.04); padding: 20px; width: 95%; margin: 0 auto 16px; }
  .card-title { font-size: 1.05rem; font-weight: 900; color: #0f2b5a; margin: 0 0 15px; }

  .ana-report-summary { background: #f0f4f8; padding: 12px 15px; border-radius: 12px; margin-bottom: 12px; border: 1px solid #e2e8f0; }
  .summary-total { display: flex; justify-content: space-between; align-items: center; }
  .summary-label { font-size: 0.85rem; font-weight: bold; color: #64748b; }
  .summary-amount { font-size: 1.35rem; font-weight: 900; color: #0f2b5a; }
  .summary-amount span { font-size: 0.85rem; font-weight: bold; margin-left: 2px; }

  .calendar-card-date { display: flex; justify-content: center; align-items: center; gap: 25px; margin-bottom: 25px; }
  .calendar-card-date-icon { display: inline-flex; justify-content: center; align-items: center; width: 38px; height: 38px; background: #f0f4f8; color: #0f2b5a; border-radius: 50%; text-decoration: none; box-shadow: 0 2px 5px rgba(0,0,0,0.05); }
  .big-card-button { font-size: 1.25rem; font-weight: 900; color: #0f2b5a; }

  .calendar-actions { margin-top: 15px; display: flex; gap: 10px; }
  .btn-add-expense { flex: 1; background: linear-gradient(135deg, #0076d6, #00bfff); color: white; padding: 10px; text-align: center; border-radius: 30px; font-weight: bold; font-size: 0.85rem; box-shadow: 0 4px 10px rgba(0, 118, 214, 0.2); display: inline-flex; align-items: center; justify-content: center; gap: 4px; text-decoration: none; }

  .menu-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
  .menu-item-btn { display: flex; flex-direction: column; align-items: center; justify-content: center; background: #ffffff; border: 1px solid #e2e8f0; padding: 15px 5px; border-radius: 12px; color: #0f2b5a; font-size: 0.75rem; font-weight: bold; gap: 6px; transition: all 0.2s; text-decoration: none; }
  .menu-item-btn i { font-size: 1.25rem; color: #0076d6; }
  .menu-item-btn.text-danger { color: #e63946; }
  .menu-item-btn.text-danger i { color: #e63946; }

  .plan-status-card { display: flex; justify-content: space-between; align-items: center; padding: 15px 20px; }
  .plan-status-card.light-bg { background: #ffffff; }
  .plan-status-card.premium-bg { background: #fffbeb; border-color: #fde68a; }
  .plan-info { display: flex; flex-direction: column; }
  .plan-label { font-size: 0.7rem; color: #64748b; font-weight: bold; }
  .plan-value { font-size: 0.95rem; font-weight: 900; color: #0f2b5a; margin-top: 1px; }
  .btn-plan-action { background: #0f2b5a; color: white; padding: 6px 14px; border-radius: 20px; font-size: 0.75rem; font-weight: bold; text-decoration: none; }
  
  .empty-msg { font-size: 0.85rem; color: #64748b; }
  
  /* カレンダーを7列に並べるための必須グリッド設定 */
  .kcc-grid {
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: 6px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    margin-top: 10px !important;
  }
  
  /* カレンダーの空白マスのデザイン */
  .kcc-cell-blank {
    background: #f8fafc !important;
    border-radius: 8px !important;
    min-height: 62px !important;
    border: 1px dashed #e2e8f0 !important;
    opacity: 0.4 !important;
  }

  /* 🌟 追記：カレンダーマス内の文字はみ出し（金額など）を強制的にブロック */
  .kcc-grid > div, .kcc-grid > a {
    overflow: hidden !important; 
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
  .kcc-grid span {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
    display: inline-block !important;
  }

  .line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;  
    overflow: hidden;
  }