/* ===== 診断レポート（A4）の体裁。受診画面と管理画面の詳細で共用 ===== */
.a4{max-width:210mm;margin:0 auto;background:#fff;color:#2b354c;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.4);padding:9mm 12mm 7mm;font-size:11px;line-height:1.4;aspect-ratio:210/297;display:flex;flex-direction:column;font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic UI","Yu Gothic","YuGothic",Meiryo,system-ui,-apple-system,sans-serif}
.a4 *{color:inherit}
.rhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:3px solid #26406e;padding-bottom:8px;margin-bottom:10px}
.rhead .rtitle{font-size:22px;font-weight:900;color:#132548;letter-spacing:.01em;line-height:1.15}
.rhead .rsub{font-size:10px;color:#0b6f66;font-weight:800;letter-spacing:.13em;text-transform:uppercase;margin-top:3px}
.rhead .rdate{font-size:10px;color:#5a6478;text-align:right;line-height:1.6;font-variant-numeric:tabular-nums;white-space:nowrap}
.rprofile{display:flex;gap:9px;margin-bottom:11px}
.rprofile .rp{flex:1;background:#f3f6fb;border:1px solid #dfe5ef;border-radius:5px;padding:6px 11px;display:flex;align-items:baseline;gap:7px;min-width:0}
.rprofile .rp.rpco{flex:1.9}
.rprofile .rp .k{font-size:9px;color:#7c8398;font-weight:800;letter-spacing:.05em;text-transform:uppercase;flex:none}
.rprofile .rp .v{font-size:13px;font-weight:900;color:#132548;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rsec{break-inside:avoid}
.rsec.rfull{margin-bottom:12px}
.rsec h3{font-size:18px;font-weight:900;color:#132548;margin:0 0 8px;padding:2px 0 2px 11px;border-left:5px solid #0e8f84;letter-spacing:.01em}
.rfindings .narr{margin-bottom:9px}
.rfindings .narr:last-child{margin-bottom:0}
.narr .nh{font-size:11px;font-weight:800;color:#0b6f66;letter-spacing:.05em;margin-bottom:3px}
.narr p{margin:0;font-size:11px;line-height:1.62;color:#33405a}
ol.rissues{list-style:none;margin:0;padding:0;counter-reset:iss;display:grid;grid-template-columns:1fr 1fr;gap:2px 16px}
ol.rissues li{counter-increment:iss;position:relative;padding:2px 0 3px 24px;font-size:11px;line-height:1.4;border-bottom:1px solid #eef1f6}
ol.rissues li::before{content:counter(iss);position:absolute;left:0;top:4px;width:18px;height:18px;border-radius:50%;background:#26406e;color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}
ol.rissues li b{display:block;font-size:14px;font-weight:900;color:#132548;margin-bottom:2px}
ol.rissues li span{color:#3d4a63}
.rgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}
.axis{margin-bottom:9px}
.axis .al{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}
.axis .al .an{font-weight:800;color:#2b354c;font-size:11.5px}
.axis .al .av{font-weight:900;color:#0b6f66;font-size:12.5px}
.axis .al .av.warn{color:#b4472b}
.abar{position:relative;height:8.8px;border-radius:99px;background:#e6eaf1}
.abar i{position:absolute;left:0;top:0;height:100%;border-radius:99px;background:linear-gradient(90deg,#12a093,#26406e)}
.abar i.warn{background:linear-gradient(90deg,#e0913f,#b4472b)}
.abar .mark{position:absolute;top:-3px;height:14.8px;width:2.5px;border-radius:2px;background:#132548;transform:translateX(-50%)}
.abar .mark::after{content:"";position:absolute;top:-4px;left:50%;transform:translateX(-50%);border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #132548}
.acmp{font-size:9.5px;color:#6a7488;margin-top:2px;font-weight:600}
.acmp.muted{font-size:8.5px;color:#9aa3b2;font-weight:500}
.rlegend{display:flex;gap:16px;margin-top:5px;font-size:9.5px;color:#5a6478;align-items:center}
.rlegend span{display:inline-flex;align-items:center;gap:5px}
.rlegend .lg1::before{content:"";width:16px;height:7px;border-radius:3px;background:linear-gradient(90deg,#12a093,#26406e);display:inline-block}
.rlegend .lg2::before{content:"";width:2.5px;height:12px;background:#132548;display:inline-block}
ul.rlist{list-style:none;margin:0;padding:0}
ul.rlist li{position:relative;padding:0 0 5px 15px;font-size:10.8px;line-height:1.5;color:#33405a}
ul.rlist li::before{content:"";position:absolute;left:2px;top:6px;width:5px;height:5px;border-radius:50%;background:#0e8f84}
ul.rnext{counter-reset:n;list-style:none;margin:0;padding:0}
ul.rnext li{counter-increment:n;position:relative;padding:0 0 6px 21px;font-size:11px;line-height:1.55;color:#33405a}
ul.rnext li::before{content:counter(n);position:absolute;left:0;top:1px;width:16px;height:16px;border-radius:50%;background:#0e8f84;color:#fff;font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center}
.rcap{display:grid;grid-template-columns:1fr 1fr;gap:1px 12px}
.rcap .ci{font-size:10.3px;padding:2px 0;border-bottom:1px dotted #e6eaf1;display:flex;gap:6px}
.rcap .ci .ck{color:#5a6478;flex:none;min-width:80px;font-weight:500}
.rcap .ci .cv{color:#132548;font-weight:400}
.rfoot{margin-top:auto;padding-top:8px;border-top:1px solid #e0e5ee;display:flex;justify-content:space-between;gap:12px;font-size:8.8px;color:#7c8398;flex-wrap:wrap}
.rempty{font-size:10.5px;color:#7c8398;font-style:italic}
@media (max-width:760px){ .rgrid{grid-template-columns:1fr} }
