/* 経過確認表（6回目 / 3ヶ月）
   問診票（monshin.css）と同じデザイン体系に揃えてある。
   同じ受付端末で続けて使うため、色・角丸・余白・ボタン形状が違うと別サービスに見える。
   クラス名は ff- のまま。HTML を書き換えずに見た目だけ差し替えられるようにしている。 */

.ff-container{
  --ff-primary:#ff6f61;--ff-primary-light:#fff1ef;--ff-primary-mid:#ffb4ac;--ff-primary-dark:#e5554a;
  --ff-bg:#fffaf9;--ff-card:#ffffff;--ff-text:#2c2c2c;--ff-text-light:#6b7280;--ff-border:#f0e8e6;
  --ff-good:#3d9970;--ff-good-light:#eaf6f0;
  --ff-shadow-sm:0 1px 3px rgba(255,111,97,.06);--ff-radius:14px;--ff-radius-sm:10px;
  font-family:'Noto Sans JP',sans-serif;color:var(--ff-text);line-height:1.7;background:var(--ff-bg);
  margin-top:0!important;padding-bottom:40px;min-height:100vh}
.ff-container *,.ff-container *::before,.ff-container *::after{box-sizing:border-box}

/* ── ヘッダー ───────────────────────────── */
.ff-header{background:var(--ff-card);padding:34px 24px 22px;text-align:center;border-bottom:1px solid var(--ff-border)}
.ff-header-badge{display:inline-block;font-size:11px;font-weight:600;letter-spacing:2px;color:var(--ff-primary-dark);
  background:var(--ff-primary-light);border-radius:50px;padding:5px 14px;margin-bottom:10px}
.ff-header h1{font-family:'Zen Maru Gothic',sans-serif;font-size:24px;font-weight:700;color:var(--ff-text);
  letter-spacing:6px;text-indent:6px;margin:0}
.ff-header p{font-size:13px;color:var(--ff-text-light);margin:8px 0 0}

/* ── 進捗 ─────────────────────────────── */
.ff-progress{position:sticky;top:0;z-index:100;background:var(--ff-card);padding:14px 20px;
  border-bottom:1px solid var(--ff-border);box-shadow:var(--ff-shadow-sm)}
.ff-progress-label{display:flex;justify-content:space-between;align-items:baseline;
  max-width:640px;margin:0 auto 8px;font-size:11px;color:var(--ff-text-light)}
.ff-progress-label span:last-child{font-weight:700;color:var(--ff-primary);font-variant-numeric:tabular-nums}
.ff-progress-track{max-width:640px;margin:0 auto;height:6px;background:var(--ff-border);border-radius:50px;overflow:hidden}
.ff-progress-fill{height:100%;width:0;border-radius:50px;background:var(--ff-primary);transition:width .35s ease}

/* ── カード（1問＝1枚） ───────────────────── */
.ff-section{display:none;max-width:640px;margin:24px auto 0;padding:24px;background:var(--ff-card);
  border:1px solid rgba(255,111,97,.06);border-radius:var(--ff-radius);box-shadow:var(--ff-shadow-sm);
  scroll-margin-top:88px}
.ff-section.active{display:block;animation:ffIn .4s ease}
@keyframes ffIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.ff-section-title{font-family:'Zen Maru Gothic',sans-serif;font-size:16px;font-weight:700;
  color:var(--ff-primary-dark);margin-bottom:6px;display:flex;align-items:center;gap:8px}
.ff-num{width:28px;height:28px;border-radius:8px;background:var(--ff-primary-light);color:var(--ff-primary-dark);
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}
.ff-req{font-size:10px;background:var(--ff-primary);color:#fff;padding:2px 6px;border-radius:4px;font-weight:600}
.ff-desc{font-size:13px;color:var(--ff-text-light);margin:0 0 18px}
.ff-error{display:none;font-size:12.5px;color:#ef4444;margin:12px 0 0}
.ff-section.error .ff-error{display:block}
.ff-section.error{animation:ffShake .5s ease}
@keyframes ffShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}
  60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}

/* ── 入力欄 ───────────────────────────── */
.ff-input-row{display:flex;gap:10px}
.ff-input-group{flex:1;margin-bottom:16px}
.ff-input-group label{display:block;font-size:13px;font-weight:500;margin-bottom:6px}
.ff-container input[type="text"]{width:100%;padding:12px 14px;border:1.5px solid var(--ff-border);
  border-radius:var(--ff-radius-sm);font-family:'Noto Sans JP',sans-serif;font-size:15px;color:var(--ff-text);
  background:#fff;outline:none;transition:all .2s;-webkit-appearance:none}
.ff-container input[type="text"]:focus{border-color:var(--ff-primary);box-shadow:0 0 0 3px var(--ff-primary-light)}

/* ── 選択肢 ───────────────────────────── */
.ff-options{display:flex;flex-direction:column;gap:8px}
.ff-options.two-col{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ff-option{position:relative;cursor:pointer;display:block}
.ff-option input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;
  clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.ff-option-label,.ff-check-label{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fdf7f6;
  border:1.5px solid var(--ff-border);border-radius:var(--ff-radius-sm);font-size:14px;font-weight:500;
  line-height:1.5;transition:all .2s}
.ff-option-label:hover,.ff-check-label:hover{border-color:var(--ff-primary-mid);background:var(--ff-primary-light)}
.ff-option input:checked+.ff-option-label,.ff-option input:checked+.ff-check-label{
  border-color:var(--ff-primary);background:var(--ff-primary-light)}
.ff-option input:focus-visible+.ff-option-label,.ff-option input:focus-visible+.ff-check-label{
  outline:3px solid var(--ff-primary);outline-offset:2px}
.ff-radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--ff-border);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;transition:all .2s}
.ff-option input:checked+.ff-option-label .ff-radio{border-color:var(--ff-primary);background:var(--ff-primary)}
.ff-option input:checked+.ff-option-label .ff-radio::after{content:'';width:8px;height:8px;border-radius:50%;background:#fff}
.ff-check{width:20px;height:20px;border-radius:6px;border:2px solid var(--ff-border);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;transition:all .2s}
.ff-option input:checked+.ff-check-label .ff-check{border-color:var(--ff-primary);background:var(--ff-primary)}
.ff-option input:checked+.ff-check-label .ff-check::after{content:'✓';color:#fff;font-size:12px;font-weight:700;line-height:1}
.ff-sub-question{margin-top:20px;padding-top:18px;border-top:1px solid var(--ff-border)}

/* ── 痛みの残り（問診票と同じ0〜10ボタン） ────── */
.ff-pain-scale-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--ff-text-light);
  margin-bottom:10px;padding:0 2px}
.ff-pain-scale{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
.ff-pain-btn{width:40px;height:40px;border-radius:50%;border:2px solid #e0e0e0;background:#fff;font-size:14px;
  font-weight:600;color:var(--ff-text);cursor:pointer;transition:all .2s;display:flex;align-items:center;
  justify-content:center;padding:0;-webkit-tap-highlight-color:transparent;font-variant-numeric:tabular-nums}
.ff-pain-btn:hover{border-color:var(--ff-primary);background:var(--ff-primary-light)}
.ff-pain-btn.is-active{color:#fff;border-color:transparent;transform:scale(1.15);box-shadow:0 2px 8px rgba(0,0,0,.15)}
.ff-pain-btn[data-val="0"].is-active{background:#4CAF50}
.ff-pain-btn[data-val="1"].is-active{background:#66BB6A}
.ff-pain-btn[data-val="2"].is-active{background:#8BC34A}
.ff-pain-btn[data-val="3"].is-active{background:#CDDC39}
.ff-pain-btn[data-val="4"].is-active{background:#e0c520}
.ff-pain-btn[data-val="5"].is-active{background:#FFC107}
.ff-pain-btn[data-val="6"].is-active{background:#FF9800}
.ff-pain-btn[data-val="7"].is-active{background:#FF7043}
.ff-pain-btn[data-val="8"].is-active{background:#F44336}
.ff-pain-btn[data-val="9"].is-active{background:#E53935}
.ff-pain-btn[data-val="10"].is-active{background:#B71C1C}
.ff-pain-desc{text-align:center;font-size:13px;color:var(--ff-text-light);margin-top:14px;min-height:1.7em}

/* ── 優先順位の並べ替え ───────────────────── */
.ff-rank-list{display:flex;flex-direction:column;gap:8px}
.ff-rank-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fdf7f6;
  border:1.5px solid var(--ff-border);border-radius:var(--ff-radius-sm)}
.ff-rank-no{flex:0 0 28px;height:28px;border-radius:50%;background:var(--ff-primary);color:#fff;font-size:13px;
  font-weight:700;display:flex;align-items:center;justify-content:center}
.ff-rank-text{flex:1;font-size:14px;line-height:1.5}
.ff-rank-btns{display:flex;gap:6px;flex-shrink:0}
.ff-rank-btns button{width:40px;height:40px;border:1.5px solid var(--ff-border);border-radius:10px;
  background:#fff;color:var(--ff-primary-dark);font-size:13px;cursor:pointer;transition:all .2s}
.ff-rank-btns button:hover{border-color:var(--ff-primary-mid);background:var(--ff-primary-light)}

/* ── ボタン ───────────────────────────── */
.ff-btn-row{display:flex;gap:10px;margin-top:24px}
.ff-btn{flex:1;padding:14px 24px;border:none;border-radius:50px;font-family:'Noto Sans JP',sans-serif;
  font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}
.ff-btn-back{background:#f3f4f6;color:var(--ff-text-light)}
.ff-btn-back:hover{background:#e5e7eb}
.ff-btn-next,.ff-btn-submit{background:linear-gradient(135deg,var(--ff-primary),var(--ff-primary-dark));color:#fff;
  box-shadow:0 4px 16px rgba(255,111,97,.4)}
.ff-btn-next:hover,.ff-btn-submit:hover{transform:translateY(-1px);box-shadow:0 6px 24px rgba(255,111,97,.5)}
.ff-btn-reset{display:block;max-width:300px;margin:24px auto 0;background:#f3f4f6;color:var(--ff-text-light)}

/* ── 確認・サマリー ───────────────────────── */
.ff-summary{max-width:640px;margin:16px auto 0;padding:20px 24px;background:var(--ff-card);
  border:1px solid rgba(255,111,97,.06);border-radius:var(--ff-radius);box-shadow:var(--ff-shadow-sm)}
.ff-summary-item{display:flex;justify-content:space-between;gap:16px;padding:11px 0;
  border-bottom:1px solid var(--ff-border);font-size:13.5px}
.ff-summary-item:last-child{border-bottom:none}
.ff-summary-label{color:var(--ff-text-light);flex-shrink:0}
.ff-summary-value{text-align:right;font-weight:500}

/* ── 送信中 ───────────────────────────── */
.ff-spinner{width:36px;height:36px;margin:0 auto;border:3px solid var(--ff-border);
  border-top-color:var(--ff-primary);border-radius:50%;animation:ffSpin .8s linear infinite}
@keyframes ffSpin{to{transform:rotate(360deg)}}

/* ── 結果 ─────────────────────────────── */
.ff-result{display:none;max-width:640px;margin:0 auto;padding:24px 16px}
.ff-result.active{display:block;animation:ffIn .5s ease}
.ff-result-card{background:var(--ff-card);border-radius:var(--ff-radius);padding:28px 24px;margin-bottom:16px;
  border:1px solid rgba(255,111,97,.06);box-shadow:var(--ff-shadow-sm);text-align:center}
.ff-result-icon{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:32px;margin:0 auto 16px;animation:ffScale .5s ease .15s both}
@keyframes ffScale{from{transform:scale(0)}to{transform:scale(1)}}
.ff-result-title{font-family:'Zen Maru Gothic',sans-serif;font-size:20px;font-weight:700;margin-bottom:10px}
.ff-result-msg{font-size:14px;color:var(--ff-text-light);line-height:1.9}
.ff-result-msg strong{color:var(--ff-text);font-weight:700}

/* 回復ステップ */
.ff-journey{background:var(--ff-card);border-radius:var(--ff-radius);padding:24px;margin-bottom:16px;
  border:1px solid rgba(255,111,97,.06);box-shadow:var(--ff-shadow-sm)}
.ff-journey h3{font-family:'Zen Maru Gothic',sans-serif;font-size:15px;font-weight:700;text-align:center;
  color:var(--ff-text);margin:0 0 18px}
.ff-journey-steps{display:flex;align-items:stretch;justify-content:center;gap:6px}
.ff-step{flex:1;padding:14px 8px;border-radius:var(--ff-radius-sm);border:1.5px solid var(--ff-border);
  background:#fdf7f6;text-align:center}
.ff-step-label{font-size:10px;font-weight:600;color:var(--ff-text-light);letter-spacing:1px}
.ff-step-value{font-family:'Zen Maru Gothic',sans-serif;font-size:15px;font-weight:700;margin:4px 0 2px}
.ff-step-desc{font-size:10.5px;color:var(--ff-text-light);line-height:1.4}
.ff-step-current{border-color:var(--ff-primary);background:var(--ff-primary-light)}
.ff-step-current .ff-step-value{color:var(--ff-primary-dark)}
.ff-step-current-pain{border-color:#F44336;background:#fef2f2}
.ff-step-current-pain .ff-step-value{color:#b91c1c}
.ff-step-faded{opacity:.45}
.ff-step-plus .ff-step-value{color:var(--ff-good)}
.ff-arrow{display:flex;align-items:center;color:var(--ff-primary-mid);font-size:16px}
.ff-badge{display:inline-block;background:var(--ff-primary);color:#fff;font-size:9px;font-weight:700;
  padding:2px 6px;border-radius:50px;margin-left:4px;letter-spacing:0}
.ff-badge-red{background:#F44336}
.ff-journey-note{margin-top:18px;padding:14px 16px;background:#fdf7f6;border-radius:var(--ff-radius-sm);
  font-size:12.5px;line-height:1.9;color:var(--ff-text-light);text-align:center}
.ff-journey-note strong{color:var(--ff-primary-dark);font-weight:700}

/* ご提案 */
.ff-proposals-title{font-family:'Zen Maru Gothic',sans-serif;font-size:15px;font-weight:700;
  color:var(--ff-text);margin:0 0 14px}
.ff-proposal-card{display:flex;gap:14px;align-items:flex-start;padding:16px;margin-bottom:10px;
  background:#fdf7f6;border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);text-align:left}
.ff-proposal-card.with-img{align-items:center}
.ff-proposal-img{flex:0 0 72px}
.ff-proposal-img img{width:72px;height:72px;object-fit:cover;border-radius:10px;display:block}
.ff-proposal-inner{flex:1}
.ff-proposal-title{font-family:'Zen Maru Gothic',sans-serif;font-size:14px;font-weight:700;margin-bottom:4px}
.ff-proposal-card p{font-size:12.5px;color:var(--ff-text-light);line-height:1.7;margin:0}
.ff-proposal-title.green{color:var(--ff-good)}
.ff-proposal-title.pink{color:var(--ff-primary-dark)}
.ff-proposal-title.blue{color:#2563eb}
.ff-proposal-title.accent{color:var(--ff-primary-dark)}

@media(max-width:480px){
  .ff-header{padding:28px 20px 18px}
  .ff-header h1{font-size:21px;letter-spacing:4px}
  .ff-section{padding:18px 16px;margin-top:16px;border-radius:12px}
  .ff-options.two-col{grid-template-columns:1fr}
  .ff-pain-btn{width:34px;height:34px;font-size:12px}
  .ff-pain-scale{gap:4px}
  .ff-journey-steps{gap:3px}
  .ff-step{padding:10px 4px}
  .ff-step-value{font-size:13px}
  .ff-arrow{font-size:12px}
  .ff-proposal-img{flex:0 0 56px}
  .ff-proposal-img img{width:56px;height:56px}
  .ff-summary-item{flex-direction:column;gap:2px}
  .ff-summary-value{text-align:left}
}
