/* 提案と RFP。style.css・flow.css・fm.css の上に重ねる */
.pr-lead { margin: 0 0 8px; font-size: 13px; color: var(--ink2); }
.pr-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin: 10px 0; }
.pr-score { margin: 0; font-size: 13px; font-weight: 700; color: var(--ink2); }
/* 提案までの流れ */
.pr-flow { list-style: none; margin: 0 0 10px; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; counter-reset: f; }
.pr-flow li { counter-increment: f; min-width: 0; }
.pr-flow button { appearance: none; font: inherit; width: 100%; height: 100%; text-align: left; cursor: pointer; border: 1px solid var(--line); background: var(--paper); border-radius: 10px; padding: 7px 10px; color: var(--ink); display: flex; flex-direction: column; gap: 1px; }
.pr-flow button small { font: 600 11px var(--latin); color: var(--muted); }
.pr-flow button small::before { content: counter(f) ". "; color: #1d4ed8; }
.pr-flow button b { font-size: 13px; }
.pr-flow button:hover { border-color: #94a3b8; }
.pr-flow button[aria-pressed="true"] { background: #0f172a; border-color: #0f172a; color: #fff; }
.pr-flow button[aria-pressed="true"] small { color: #cbd5e1; }
.pr-flow button[aria-pressed="true"] small::before { color: #93c5fd; }
.pr-flowinfo, .pr-pillar { padding: 12px 16px; }
.pr-flowinfo h3, .pr-pillar h3 { margin: 0 0 6px; font-size: 16px; }
.pr-flowinfo p, .pr-pillar p { margin: 6px 0 0; font-size: 13.5px; color: var(--ink2); }
.pr-when { margin: 0 !important; font: 600 12px var(--latin) !important; color: #1d4ed8 !important; }
.pr-do, .pr-look, .pr-here { background: #f8fafc; border-radius: 8px; padding: 7px 10px; }
.pr-do b, .pr-look b, .pr-here b { display: block; font-size: 11.5px; color: var(--muted); }
.pr-here { background: #f0fdfa; }
.pr-pillar { margin-top: 10px; }
/* 練習: RFP */
.pr-doc { padding: 14px 16px; background: #fffef8; border-color: #e7e1c8; }
.pr-dochead { margin: 0 0 8px; display: flex; flex-direction: column; gap: 2px; }
.pr-dochead b { font-size: 15px; }
.pr-dochead small { font-size: 12px; color: var(--muted); }
.pr-rsec { margin-top: 8px; }
.pr-rsec h4 { margin: 0 0 4px; font-size: 13px; color: var(--ink2); }
.pr-sent { appearance: none; font: inherit; display: flex; gap: 8px; align-items: flex-start; width: 100%; text-align: left; cursor: pointer; border: 1px solid #ebe5cc; background: #fff; border-radius: 8px; padding: 6px 9px; margin-top: 4px; font-size: 13.5px; color: var(--ink); line-height: 1.6; }
.pr-sent::before { content: ""; flex: none; width: 14px; height: 14px; margin-top: 4px; border: 1.5px solid #94a3b8; border-radius: 4px; background: #fff; }
.pr-sent[aria-pressed="true"]::before { background: #ca8a04; border-color: #ca8a04; box-shadow: inset 0 0 0 2px #fff; }
.pr-sent:hover:not([disabled]) { border-color: #94a3b8; }
.pr-sent[aria-pressed="true"] { background: #fef9c3; border-color: #facc15; }
.pr-sent[disabled] { cursor: default; }
.pr-sent.hit { background: #dcfce7; border-color: #22c55e; }
.pr-sent.miss { background: #fef2f2; border-color: #f87171; }
.pr-sent.extra { background: #fffbeb; border-color: #f59e0b; }
.pr-sent.ok { color: var(--muted); }
.pr-fb { border-radius: 10px; padding: 9px 12px; margin-top: 8px; font-size: 13px; }
.pr-fb p { margin: 3px 0 0; }
.pr-fb.good { background: #f0fdf4; color: #14532d; }
.pr-fb.bad { background: #fef2f2; color: #7f1d1d; }
.pr-fb.mid { background: #fffbeb; color: #78350f; }
.pr-fbh b { margin-right: 6px; }
.pr-q { background: rgba(255, 255, 255, .7); border-radius: 8px; padding: 6px 9px; color: var(--ink); }
.pr-q small { display: block; font-size: 11px; font-weight: 700; color: var(--muted); }
#prMissing .fm-grid { margin-top: 4px; }
/* 質問の型 */
.pr-n { font-family: var(--latin); color: #1d4ed8; font-weight: 600; }
.pr-says { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 8px; margin-top: 10px; }
/* 提案書の組み立て */
.pr-build { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 10px; align-items: start; }
.pr-tocbox, .pr-assumebox { padding: 12px 14px; }
.pr-tocbox h3, .pr-assumebox h3 { margin: 0 0 6px; font-size: 14px; }
.pr-toc { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.pr-toc li { display: flex; gap: 8px; align-items: baseline; font-size: 13px; color: var(--ink2); border-bottom: 1px solid var(--line2); padding-bottom: 4px; }
.pr-tn { flex: none; width: 1.6em; font: 600 12px var(--latin); color: #1d4ed8; }
.pr-tt { flex: 1; min-width: 0; }
.pr-tk { flex: none; font-size: 11px; font-weight: 700; color: #0f766e; background: #f0fdfa; border-radius: 6px; padding: 0 6px; }
.pr-tag { display: inline-block; font-size: 11px; font-weight: 700; border-radius: 6px; padding: 1px 7px; white-space: nowrap; }
.pr-tag.pre { background: #eff6ff; color: #1e40af; }
.pr-tag.ex { background: #f1f5f9; color: #334155; }
.pr-est { margin-top: 10px; }
.pr-risks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.pr-risk { padding: 12px 14px; }
.pr-risk dl { margin: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 3px 10px; font-size: 13px; }
.pr-risk dt { font-size: 11.5px; font-weight: 700; color: var(--muted); padding-top: 2px; }
.pr-risk dd { margin: 0; color: var(--ink); }
/* 練習: 評価の表 */
.pr-prop { padding: 12px 14px; display: flex; flex-direction: column; }
.pr-prop h3 { margin: 0 0 6px; font-size: 14px; display: flex; align-items: center; gap: 6px; }
.pr-prop ul { margin: 0; padding-left: 1.2em; font-size: 12.5px; color: var(--ink2); display: grid; gap: 3px; }
.pr-pid { display: inline-grid; place-items: center; flex: none; width: 22px; height: 22px; border-radius: 50%; background: #0f172a; color: #fff; font: 600 12px var(--latin); }
.pr-price { margin: auto 0 0; padding-top: 8px; font-size: 13px; }
.pr-price small { display: block; font-size: 11.5px; color: var(--muted); }
.pr-scorewrap { margin-top: 10px; }
.pr-stable { min-width: 560px; }
.pr-stable th { font-size: 12.5px; }
.pr-stable thead th { text-align: center; }
.pr-stable thead th:first-child { text-align: left; }
.pr-stable td { text-align: center; }
.pr-w { font-family: var(--latin); color: var(--muted); text-align: center !important; white-space: nowrap; }
.pr-stable select { font: inherit; font-size: 12.5px; border: 1px solid var(--line); border-radius: 8px; padding: 4px 6px; background: var(--paper); max-width: 100%; }
.pr-mustrow th, .pr-mustrow td { background: #fffbeb; }
.pr-yn { display: inline-flex; gap: 4px; }
.pr-yn button { appearance: none; font: inherit; font-size: 13px; font-weight: 700; width: 32px; height: 28px; cursor: pointer; border: 1px solid var(--line); background: var(--paper); border-radius: 8px; color: var(--ink2); }
.pr-yn button:hover { border-color: #94a3b8; }
.pr-yn button[data-mv="1"][aria-pressed="true"] { background: #166534; border-color: #166534; color: #fff; }
.pr-yn button[data-mv="0"][aria-pressed="true"] { background: #b91c1c; border-color: #b91c1c; color: #fff; }
.pr-res { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pr-ri { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; }
.pr-ri h4 { margin: 0 0 4px; font-size: 13.5px; display: flex; align-items: center; gap: 6px; }
.pr-ri p { margin: 2px 0 0; font-size: 12.5px; color: var(--ink2); }
.pr-tot { font: 700 22px var(--latin) !important; color: var(--ink) !important; }
.pr-ri.ng { background: #fef2f2; border-color: #fca5a5; }
.pr-ri.ng .pr-tot { color: #b91c1c !important; font-family: var(--sans) !important; font-size: 18px !important; }
.pr-ri.best { border-color: #22c55e; box-shadow: inset 0 0 0 1px #22c55e; }
.pr-ms b { margin-left: 6px; font-size: 11px; background: #dcfce7; color: #166534; border-radius: 6px; padding: 1px 7px; }
.pr-mustwhy { margin: 10px 0 0; font-size: 13px; background: #fffbeb; color: #78350f; border-radius: 10px; padding: 9px 12px; }
.pr-mustwhy b { display: block; font-size: 12px; margin-bottom: 2px; }
#prScoreFacts { margin-top: 10px; }
.pr-flow button:focus-visible, .pr-sent:focus-visible, .pr-yn button:focus-visible, .pr-stable select:focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }
@media (max-width: 1100px) {
  .pr-flow { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pr-build { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .pr-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pr-says, .pr-risks, .pr-res { grid-template-columns: minmax(0, 1fr); }
}
