/* 記事の「部品」（緑の図・囲み）の見た目。STUDIO で使っていた部品集 kp.py v0.2（2026-10-14）の CSS と同じ
   公開ページ・入力画面・プレビューで同じものを読む。HTML は src/parts.ts が作る */
.kp{--g:#1F9A57;--gd:#167A44;--gbg:#EAF5EE;--ink:#1F2933;--sub:#56616B;--line:#E1E5E8;--bg:#F4F6F7;
--ybg:#FFF2C6;--yink:#6B4F00;--cbg:#FBF2E4;--cline:#B97A2A;--cink:#6E430D;--blue:#2B4E85;--bbg:#E9EFF7;
max-width:none;margin:32px 0;color:var(--ink);font-family:"Noto Sans JP","Noto Sans","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","YuGothic",Meiryo,sans-serif;
font-size:15px;line-height:1.75;letter-spacing:.02em;word-break:auto-phrase;line-break:strict;overflow-wrap:anywhere;font-style:normal;font-weight:400}
.kp *{box-sizing:border-box;margin:0;padding:0;font:inherit;color:inherit;letter-spacing:inherit;list-style:none;text-decoration:none}
.kp b,.kp strong{font-weight:700}
.kp .kp-title{font-size:17px;font-weight:700;line-height:1.5}
.kp .kp-lead{font-size:13.5px;color:var(--sub);margin-top:2px;line-height:1.6}
.kp .kp-body{margin-top:14px}
.kp .kp-notes{margin-top:12px;font-size:13px;color:var(--sub);line-height:1.7}
.kp .kp-notes div{padding-left:1.1em;text-indent:-1.1em}
.kp .kp-src{font-size:12px;color:var(--sub);margin-top:10px;line-height:1.6}
.kp .kp-cap{font-size:12.5px;color:var(--sub);margin-top:8px;font-weight:700}
.kp .kp-hl{color:var(--gd);font-weight:700;font-style:normal}
.kp a{color:var(--gd);text-decoration:underline}
/* 要点の帯 */
.kp .kp-facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.kp .kp-fact{padding:14px 16px}
.kp .kp-fact+.kp-fact{border-left:1px solid var(--line)}
.kp .kp-k{font-size:12.5px;color:var(--sub);line-height:1.5}
.kp .kp-v{font-size:15.5px;font-weight:700;margin-top:3px;line-height:1.5}
/* ポイントのカード */
.kp .kp-cards{display:grid;gap:12px}
.kp .kp-card{border:1px solid var(--line);border-top:3px solid var(--g);background:#fff;padding:14px 18px 16px}
.kp .kp-ct{font-weight:700;font-size:15.5px;line-height:1.55}
.kp .kp-cd{font-size:14px;color:var(--sub);margin-top:4px;line-height:1.7}
/* 判定の流れ */
.kp .kp-flow{border-top:1px solid var(--line)}
.kp .kp-q{display:grid;grid-template-columns:42px 1fr 196px;gap:14px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line)}
.kp .kp-qno{color:var(--gd);font-weight:700;font-size:15px;line-height:1.55}
.kp .kp-qt{font-weight:700;font-size:15.5px;line-height:1.55}
.kp .kp-qs{font-size:13.5px;color:var(--sub);margin-top:4px;line-height:1.65}
.kp .kp-ql{margin-top:6px;font-size:13.5px;color:var(--sub);line-height:1.6}
.kp .kp-ql div{padding-left:1em;text-indent:-1em}
.kp .kp-qa{background:var(--bg);border-radius:6px;padding:10px 12px;font-size:13px;line-height:1.55;color:var(--sub)}
.kp .kp-qa b{display:block;font-size:14px;color:var(--ink)}
.kp .kp-qa.yes{background:var(--gbg)}
.kp .kp-qa.yes b{color:var(--gd)}
.kp .kp-goal{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kp .kp-glab{margin-top:16px;font-size:13.5px;font-weight:700;color:var(--gd);line-height:1.5}
.kp .kp-glab+.kp-goal{margin-top:6px}
.kp .kp-goal div{border-radius:6px;padding:12px 16px;line-height:1.6}
.kp .kp-goal div:first-child{background:var(--gd);color:#fff}
.kp .kp-goal div+div{background:var(--gbg);color:var(--ink)}
.kp .kp-goal small{display:block;font-size:12.5px;opacity:.9}
.kp .kp-goal b{display:block;font-size:15.5px}
/* 計算式のカード */
.kp .kp-fcard{border:1px solid var(--line);background:#fff;padding:16px 18px}
.kp .kp-fcard+.kp-fcard{margin-top:10px}
.kp .kp-tags{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--sub);line-height:1.6}
.kp .kp-tag{display:inline-block;padding:0 7px;border-radius:3px;font-weight:700;font-size:11.5px}
.kp .kp-tag.now{background:var(--ybg);color:var(--yink)}
.kp .kp-tag.new{background:var(--gbg);color:var(--gd)}
.kp .kp-ft{font-weight:700;font-size:16px;margin-top:6px;line-height:1.5}
.kp .kp-fx{background:var(--bg);padding:10px 14px;margin-top:10px;font-weight:700;font-size:14.5px;line-height:1.65}
.kp .kp-fd{font-size:13.5px;color:var(--sub);margin-top:10px;line-height:1.7}
/* 比べる棒グラフ */
.kp .kp-chart{border:1px solid var(--line);background:#fff;padding:16px 18px}
.kp .kp-row{display:grid;grid-template-columns:112px 1fr;gap:12px;align-items:center;margin-top:12px}
.kp .kp-bl b{display:block;font-size:13.5px;line-height:1.4}
.kp .kp-bl span{display:block;font-size:11.5px;color:var(--sub);line-height:1.4}
.kp .kp-track{background:var(--bg);height:30px;display:flex}
.kp .kp-bar{height:30px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;white-space:nowrap;min-width:72px}
.kp .kp-bar.hatch{background:repeating-linear-gradient(135deg,#D9F0E3 0 6px,#C3E6D2 6px 12px);color:var(--gd)}
.kp .kp-bar.bhatch{background:repeating-linear-gradient(135deg,#E1E9F5 0 6px,#CCD9EC 6px 12px);color:var(--blue)}
.kp .kp-bar.gray{background:#6B7280}
.kp .kp-bar.green{background:var(--g)}
.kp .kp-bar.blue{background:var(--blue)}
.kp .kp-axis{display:flex;justify-content:space-between;margin:6px 0 0 124px;font-size:11px;color:var(--sub)}
.kp .kp-em{color:var(--blue);font-weight:700;font-size:16px}
/* 表 */
.kp .kp-tg{display:grid;background:#fff;font-size:13.5px;line-height:1.65}
.kp .kp-trow{display:contents}
.kp .kp-tc{border-bottom:1px solid var(--line);padding:10px 12px;color:var(--ink)}
.kp .kp-th{font-size:12.5px;color:var(--sub);font-weight:700;background:var(--bg)}
.kp .kp-rh{font-weight:700}
.kp .kp-tc.hl{background:var(--gbg)}
.kp .kp-tc.kp-th.hl{background:var(--gd);color:#fff}
.kp .kp-chip{display:inline-block;font-size:11px;font-weight:700;border:1px solid var(--g);color:var(--gd);padding:0 5px;border-radius:3px;margin-right:6px;line-height:1.6}
.kp .kp-chip.same{border-color:#9AA4AD;color:var(--sub)}
/* 年表 */
.kp .kp-tl{position:relative;padding-left:24px}
.kp .kp-tl:before{content:"";position:absolute;left:6px;top:10px;bottom:10px;width:2px;background:var(--line)}
.kp .kp-ev{position:relative;display:grid;grid-template-columns:132px 1fr;gap:12px;padding:8px 0}
.kp .kp-ev:before{content:"";position:absolute;left:-24px;top:13px;width:14px;height:14px;border-radius:999px;background:#fff;border:2px solid var(--g)}
.kp .kp-ev.now:before{background:var(--g)}
.kp .kp-ev.due:before{background:#F2C14E;border-color:#B8860B}
.kp .kp-ev.todo:before{border-color:#9AA4AD}
.kp .kp-td{font-size:13px;color:var(--sub);line-height:1.9}
.kp .kp-ev.due .kp-td{color:#8A5A00;font-weight:700}
.kp .kp-tt{font-weight:700;font-size:15px;line-height:1.6}
.kp .kp-ts{font-size:13px;color:var(--sub);line-height:1.65}
.kp .kp-now{display:inline-block;margin:2px 0 2px -24px;background:var(--gd);color:#fff;font-size:12px;font-weight:700;padding:1px 10px;border-radius:999px}
/* チェックリスト */
.kp .kp-check{display:grid;gap:8px}
.kp .kp-ci{display:grid;grid-template-columns:20px 1fr;gap:10px;border:1px solid var(--line);background:#fff;padding:12px 16px}
.kp .kp-box{width:16px;height:16px;border:2px solid var(--g);border-radius:2px;margin-top:5px}
/* 注意の囲み */
.kp .kp-caution{background:var(--cbg);border-left:4px solid var(--cline);padding:14px 18px}
.kp .kp-cat{font-weight:700;color:var(--cink);font-size:15px;line-height:1.6}
.kp .kp-cad{font-size:14px;color:#5B4A33;margin-top:4px;line-height:1.75}
/* 並べるカード */
.kp .kp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.kp .kp-gc{border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;padding:14px 16px}
.kp .kp-gl{font-size:12px;color:var(--sub);line-height:1.5}
.kp .kp-gl.big{font-size:22px;font-weight:700;color:var(--gd);line-height:1.3}
.kp .kp-dash{margin:12px auto 0;max-width:520px;border:1.5px dashed var(--g);color:var(--gd);font-weight:700;font-size:13.5px;padding:8px 12px;text-align:center;line-height:1.6}
@media (max-width:600px){
.kp{margin:28px 0;font-size:15px}
.kp .kp-facts{grid-template-columns:1fr}
.kp .kp-fact{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 4px}
.kp .kp-fact+.kp-fact{border-left:0;border-top:1px solid var(--line)}
.kp .kp-v{text-align:right}
.kp .kp-q{grid-template-columns:34px 1fr;gap:10px}
.kp .kp-qa{grid-column:2/3}
.kp .kp-goal{grid-template-columns:1fr}
.kp .kp-row{grid-template-columns:1fr;gap:4px}
.kp .kp-axis{margin-left:0}
.kp .kp-ev{grid-template-columns:1fr;gap:0}
.kp .kp-card,.kp .kp-fcard,.kp .kp-chart{padding:14px 14px}
.kp .kp-k{flex:none;white-space:nowrap}
.kp .kp-tg{display:block}
.kp .kp-trow{display:block;border-bottom:1px solid var(--line);padding:10px 0}
.kp .kp-trow.kp-thr{display:none}
.kp .kp-thr+.kp-trow{border-top:1px solid var(--line)}
.kp .kp-tc{display:block;border:0;padding:2px 4px}
.kp .kp-rh{font-size:14.5px;padding-bottom:4px}
.kp .kp-tc+.kp-tc{margin-top:6px}
.kp .kp-tc.hl{padding:8px 10px;border-radius:4px}
.kp .kp-tc[data-h]:before{content:attr(data-h);display:block;font-size:11.5px;font-weight:700;color:var(--sub)}
}
