.ptt-form label { display:block; margin:.8em 0 .3em; font-weight:600; }
.ptt-form textarea, .ptt-form input[type=date] { width:100%; box-sizing:border-box; }
.ptt-submit { margin-top:1em; padding:.7em 1.6em; font-size:1.05em; }
.ptt-notice, .ptt-hint { color:#666; }
.ptt-result { border:1px solid #e0d5c0; border-radius:10px; padding:1em 1.2em; margin-top:1.2em; }
.ptt-result .big { font-size:2.2em; font-weight:700; }
.ptt-latest .big { font-size:2.6em; font-weight:700; }
.ptt-latest .big span { font-size:.5em; }
.ptt-chart { display:block; width:100%; height:auto; max-width:640px; margin:1.2em 0; }
.ptt-history { width:100%; border-collapse:collapse; margin-top:1em; }
.ptt-history th, .ptt-history td { border-bottom:1px solid #eee; padding:.5em; text-align:left; }
.ptt-trace { margin:.3em 0; padding-left:1.2em; }
.ptt-status { color:#999; font-size:.85em; }
.ptt-help { display:block; font-weight:400; font-size:.85em; color:#888; margin:.1em 0 .3em; }

/* フォーム冒頭の説明＋ルール */
.ptt-intro { background:#fafaf7; border:1px solid #ece7dc; border-radius:12px; padding:1.1em 1.3em; margin-bottom:1.4em; line-height:1.7; }
.ptt-intro-title { margin:0 0 .5em; font-size:1.25em; color:#c8641b; }
.ptt-intro p { margin:.5em 0; }
.ptt-intro-rules-head { margin-top:.9em !important; }
.ptt-intro-rules { margin:.3em 0 .6em; padding-left:1.3em; }
.ptt-intro-rules li { margin:.25em 0; }

/* ① 計算中モーダル */
.ptt-overlay { position:fixed; inset:0; background:rgba(35,24,12,.55); display:flex; align-items:center; justify-content:center; z-index:99999; }
.ptt-overlay-card { background:#fff; border-radius:14px; padding:2em 2.2em; text-align:center; max-width:88%; box-shadow:0 10px 40px rgba(0,0,0,.28); }
.ptt-spinner { width:44px; height:44px; margin:0 auto .9em; border:4px solid #f0e0cc; border-top-color:#e6873c; border-radius:50%; animation:pttspin .9s linear infinite; }
@keyframes pttspin { to { transform:rotate(360deg); } }
.ptt-overlay-text { font-size:1.3em; font-weight:700; color:#333; }
.ptt-dots::after { content:'…'; display:inline-block; width:1.4em; text-align:left; animation:pttdots 1.2s steps(4,end) infinite; }
@keyframes pttdots { 0%{content:'';} 25%{content:'.';} 50%{content:'..';} 75%{content:'...';} 100%{content:'…';} }
.ptt-overlay-sub { margin-top:.7em; color:#777; font-size:.9em; line-height:1.6; }

/* 計算完了モーダル（結果を前面に＋マイページ導線） */
.ptt-modal { position:fixed; inset:0; background:rgba(35,24,12,.55); display:flex; align-items:center; justify-content:center; z-index:100000; padding:1em; }
.ptt-modal-card { background:#fff; border-radius:14px; padding:1.6em 1.6em 1.8em; max-width:460px; width:100%; max-height:90vh; overflow:auto; box-shadow:0 12px 44px rgba(0,0,0,.3); position:relative; }
.ptt-modal-close { position:absolute; top:.35em; right:.5em; border:none; background:none; font-size:1.7em; line-height:1; color:#999; cursor:pointer; padding:.1em .3em; }
.ptt-modal-head { font-size:1.2em; font-weight:700; color:#2e7d32; margin-bottom:.2em; }
.ptt-modal .ptt-resultcard { margin-top:.8em; }
.ptt-modal-note { margin:1.1em 0 .7em; color:#555; font-size:.92em; }
.ptt-modal-link { display:inline-block; background:#c0792e; color:#fff !important; text-decoration:none; padding:.6em 1.3em; border-radius:8px; font-weight:700; }
.ptt-modal-link:hover { background:#a8661f; }

/* ② 計算結果カード（送信後の結果表示・色付け） */
.ptt-resultcard { border:2px solid #e6873c; background:#fff8f0; border-radius:12px; padding:1.1em 1.3em; margin-top:1.2em; }
.ptt-rc-head { font-weight:700; color:#c8641b; border-bottom:1px solid #f0d8bf; padding-bottom:.4em; margin-bottom:.6em; }
.ptt-rc-list { list-style:none; margin:0; padding:0; }
.ptt-rc-list li { display:flex; justify-content:space-between; align-items:baseline; gap:1em; padding:.3em 0; border-bottom:1px dashed #f0e0cc; }
.ptt-rc-label { color:#555; }
.ptt-rc-val { font-weight:700; color:#333; white-space:nowrap; }
.ptt-rc-val small { font-size:.7em; font-weight:400; color:#888; margin-left:.15em; }
.ptt-rc-main { font-size:1.5em; color:#c8641b; }
.ptt-rc-target { margin-top:.7em; font-weight:700; text-align:center; padding:.5em; border-radius:8px; }
.ptt-rc-target.under { background:#fdeee0; color:#c8641b; }
.ptt-rc-target.met { background:#e7f5e8; color:#2e7d32; }
.ptt-rc-meals { margin:4px 0 8px; padding:8px 12px; background:#fffaf3; border:1px solid #f3e6d2; border-radius:8px; }
.ptt-rc-meals-head { font-size:12px; color:#a58a63; margin-bottom:4px; }
.ptt-rc-meal { display:flex; justify-content:space-between; font-size:14px; color:#6f5f49; padding:3px 0; }
.ptt-rc-meal + .ptt-rc-meal { border-top:1px dashed #efe2cd; }

/* 再診断クールダウン */
.ptt-cooldown { border:1px solid #ece7dc; background:#fafaf7; border-radius:12px; padding:1.1em 1.3em; margin-bottom:1.4em; }
.ptt-cd-row { display:flex; align-items:center; gap:12px; background:#fff; border:1px solid #eadfce; border-radius:10px; padding:14px 16px; }
.ptt-cd-icon { font-size:26px; line-height:1; }
.ptt-cd-body { line-height:1.7; }
.ptt-cd-days { color:#c0792e; }
.ptt-cd-bar { height:8px; background:#eee; border-radius:5px; margin-top:12px; overflow:hidden; }
.ptt-cd-bar span { display:block; height:100%; background:#c0792e; }
.ptt-cd-note { margin:.7em 0 0; color:#888; font-size:13px; }
.ptt-cd-ok { display:flex; align-items:center; gap:8px; background:#e7f5e8; color:#2e7d32; border-radius:10px; padding:10px 15px; margin-bottom:1em; font-size:.95em; }
