/* Flower Card — Brand Styles (要件定義書 §2 準拠) */
:root {
  --slate: #2E3641;
  --magenta: #E5344B;
  --mint: #BFE6D7;
  --royal: #2E5D9F;
  --gold: #E9B44C;
  --offwhite: #F5FAF8;
}

body { -webkit-font-smoothing: antialiased; }

/* ロゴ: クレジットカード比率(1.586:1) 角丸枠 + 縦積みセリフ + 左上マゼンタドット */
.fc-logo {
  position: relative;
  aspect-ratio: 1.586 / 1;
  border: 3px solid var(--slate);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #fff;
  font-family: 'Playfair Display', serif;
  line-height: 1.05;
  user-select: none;
}
.fc-logo::before {
  content: '';
  position: absolute;
  top: 10%;
  left: 8%;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--magenta);
}
.fc-logo .fc-word1 { font-weight: 400; letter-spacing: 0.04em; }
.fc-logo .fc-word2 { font-weight: 700; letter-spacing: 0.06em; }

.fc-logo-sm { width: 76px; border-width: 2px; border-radius: 8px; }
.fc-logo-sm::before { width: 4px; height: 4px; }
.fc-logo-sm .fc-word1 { font-size: 13px; }
.fc-logo-sm .fc-word2 { font-size: 15px; }

.fc-logo-lg { width: 220px; }
.fc-logo-lg .fc-word1 { font-size: 34px; }
.fc-logo-lg .fc-word2 { font-size: 40px; }

/* ロゴ起動アニメーション（オンボーディング） */
@keyframes fcFadeUp { from { opacity: 0; transform: translateY(16px) scale(0.97); } to { opacity: 1; transform: none; } }
.fc-animate { animation: fcFadeUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) both; }

/* 数字は等幅 (Tabular Nums) §2.3 */
.tnum { font-variant-numeric: tabular-nums; font-feature-settings: 'tnum'; }

/* タブバー */
.fc-tab { color: #8b94a1; transition: color 0.15s; }
.fc-tab.active { color: var(--magenta); }

/* カメラ枠 4:3 (F-SCAN-X1) */
.fc-camera-frame {
  aspect-ratio: 4 / 3;
  border: 2px dashed rgba(255, 255, 255, 0.85);
  border-radius: 12px;
}

/* confidenceバッジ */
.conf-high { background: var(--mint); color: #1d5c44; }
.conf-mid { background: #fdf0d8; color: #8a6416; }
.conf-low { background: #fde3e6; color: #a11e30; }

/* トースト */
@keyframes fcToast { 0% { opacity: 0; transform: translateY(10px); } 10%, 85% { opacity: 1; transform: none; } 100% { opacity: 0; } }
.fc-toast { animation: fcToast 2.6s ease both; }

.fc-fade-in { animation: fcFadeUp 0.35s ease both; }

input, select, textarea { outline: none; }
input:focus, select:focus, textarea:focus { border-color: var(--royal) !important; box-shadow: 0 0 0 3px rgba(46, 93, 159, 0.12); }

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-thumb { background: #cfd6de; border-radius: 3px; }

/* ワンタップ連絡ボタン（詳細画面） */
.fc-quick-act {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  color: #fff;
  border-radius: 12px;
  padding: 10px 4px;
  font-size: 10px;
  font-weight: 700;
  text-decoration: none;
  transition: opacity 0.15s ease, transform 0.15s ease;
}
.fc-quick-act i { font-size: 16px; }
.fc-quick-act:active { opacity: 0.85; transform: scale(0.96); }
