/*
 * 社長の十年（[pnm_shacho_game]・2026-10-20）。
 * ミツクルのデザインシステム（.claude/skills/mitsukuru-design）：グリーン基調・白地・ピル型ボタン・Noto Sans JP。
 * 🔴 すべて .pnm-sg の中に閉じる（テーマ SWELL の見た目に触らない）。外部フォントは読まない（テーマの Noto Sans JP を使う）。
 * 診断書の色面だけは config/shacho_game.json の ceo_types.color（タイプごとの色）を使う。
 */
.pnm-sg {
	--sg-primary: #7CB342;
	--sg-primary-dark: #689A38;
	--sg-primary-ink: #4E7A27;
	--sg-primary-light: #EFF6E4;
	--sg-text: #2B2B2B;
	--sg-muted: #6B7280;
	--sg-bg: #FFFFFF;
	--sg-bg-subtle: #F7F8F5;
	--sg-border: #E5E7EB;
	--sg-chip: #F1F3EE;
	--sg-sun: #F2B33D;
	--sg-sun-light: #FDF3DC;
	--sg-tear: #3F6FD8;
	--sg-tear-light: #E6EDFB;
	--sg-laugh: #B86A0C;
	--sg-laugh-light: #FBEBD2;
	--sg-bad: #C8382B;
	--sg-bad-light: #FBE3E0;
	--sg-shadow: 0 1px 2px rgba(43, 43, 43, .05), 0 8px 24px -12px rgba(43, 43, 43, .18);
	--sg-r: 16px;
	box-sizing: border-box;
	max-width: 640px;
	margin: 0 auto;
	padding: 8px 0 48px;
	color: var(--sg-text);
	font-family: 'Noto Sans JP', 'Hiragino Sans', 'Yu Gothic', sans-serif;
	font-size: 16px;
	line-height: 1.85;
	-webkit-font-smoothing: antialiased;
}
.pnm-sg *, .pnm-sg *::before, .pnm-sg *::after { box-sizing: border-box; }
.pnm-sg p { margin: 0; }
.pnm-sg h1, .pnm-sg h2, .pnm-sg h3 { margin: 0; font-weight: 700; line-height: 1.4; color: var(--sg-text); text-wrap: balance; }
.pnm-sg h1 { font-size: clamp(28px, 7.5vw, 40px); line-height: 1.3; }
.pnm-sg h1 em { font-style: normal; color: var(--sg-primary-ink); }
.pnm-sg h2 { font-size: clamp(21px, 5.4vw, 26px); }
.pnm-sg h3 { font-size: 18px; }
.pnm-sg-app { display: flex; flex-direction: column; gap: 16px; }
.pnm-sg .sg-col { display: flex; flex-direction: column; gap: 16px; }
.pnm-sg .sg-panel { background: var(--sg-bg); border: 1px solid var(--sg-border); border-radius: var(--sg-r); padding: 24px clamp(16px, 5vw, 32px); }
.pnm-sg .sg-kicker { font-size: 12px; font-weight: 700; letter-spacing: .14em; color: var(--sg-primary-ink); }
.pnm-sg .sg-muted { color: var(--sg-muted); }
.pnm-sg .sg-small { font-size: 13px; line-height: 1.7; }
.pnm-sg .sg-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
/* ボタンの行は中央寄せ（2026-10-21 崇さん「ボタンもセンター寄せ」）。タグだけの行は左のまま。 */
.pnm-sg .sg-row:has(.sg-btn) { justify-content: center; }
.pnm-sg .sg-mt8 { margin-top: 8px; }
.pnm-sg .sg-mt16 { margin-top: 16px; }
.pnm-sg .sg-mt24 { margin-top: 24px; }
.pnm-sg-foot { margin-top: 24px; font-size: 12px; color: var(--sg-muted); text-align: center; line-height: 1.7; }

/* ボタン */
.pnm-sg .sg-btn {
	appearance: none; border: 0; cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
	min-height: 48px; padding: 12px 28px; border-radius: 9999px; background: var(--sg-primary-dark); color: #FFFFFF;
	font: inherit; font-size: 15px; font-weight: 700; line-height: 1.4; text-align: center; text-decoration: none;
	transition: background .15s, transform .15s;
}
.pnm-sg .sg-btn:hover { background: #5A8530; color: #FFFFFF; transform: translateY(-1px); }
.pnm-sg .sg-btn.ghost { background: transparent; color: var(--sg-primary-ink); box-shadow: inset 0 0 0 1.5px var(--sg-primary); }
.pnm-sg .sg-btn.ghost:hover { background: var(--sg-primary-light); }
.pnm-sg .sg-btn[disabled] { opacity: .4; pointer-events: none; }
.pnm-sg button:focus-visible, .pnm-sg a:focus-visible, .pnm-sg textarea:focus-visible { outline: 3px solid var(--sg-sun); outline-offset: 3px; }

/* 入口 */
.pnm-sg .sg-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: .1em; color: var(--sg-muted); }
.pnm-sg .sg-eyebrow b { background: var(--sg-primary-light); color: var(--sg-primary-ink); border-radius: 9999px; padding: 2px 10px; }
.pnm-sg .sg-courses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 24px 0 8px; } /* 4コースを 2×2 に（2026-10-21 崇さん） */
@media (max-width: 560px) { .pnm-sg .sg-courses { grid-template-columns: 1fr; } }
.pnm-sg .sg-course {
	appearance: none; border: 1px solid var(--sg-border); cursor: pointer; text-align: left; font: inherit; color: var(--sg-text);
	border-radius: 16px; padding: 16px; display: flex; flex-direction: column; gap: 4px; background: var(--sg-bg-subtle);
	position: relative; overflow: hidden; min-width: 0; transition: transform .15s, box-shadow .15s, border-color .15s;
}
.pnm-sg .sg-course:hover { transform: translateY(-2px); box-shadow: var(--sg-shadow); border-color: var(--sg-primary); }
.pnm-sg .sg-course::before { content: ""; position: absolute; right: -28px; top: -28px; width: 96px; height: 96px; border-radius: 50%; background: var(--sg-primary-light); }
.pnm-sg .sg-course:nth-child(2)::before { background: var(--sg-sun-light); }
.pnm-sg .sg-course:nth-child(3)::before { background: var(--sg-tear-light); }
.pnm-sg .sg-course > * { position: relative; }
/* コースの絵（イラスト素材 course_{key}・2026-10-21）＝右上の丸。絵があるときは飾りの丸を消し、文字を絵にかぶせない。 */
.pnm-sg .sg-course.has-art .sc, .pnm-sg .sg-course.has-art b { padding-right: 70px; min-height: 1.6em; }
.pnm-sg .sg-course.has-art::before { display: none; }
.pnm-sg .sg-course > .art { position: absolute; right: 10px; top: 10px; width: 64px; height: 64px; border-radius: 50%; background-size: cover; background-position: center; box-shadow: 0 0 0 3px #FFFFFF, 0 4px 12px -6px rgba(0, 0, 0, .35); }
.pnm-sg .sg-course b { font-size: 19px; }
.pnm-sg .sg-course span { font-size: 13px; color: var(--sg-muted); line-height: 1.65; }
.pnm-sg .sg-course .sc { font-size: 12px; font-weight: 700; color: var(--sg-primary-ink); letter-spacing: .04em; }
.pnm-sg .sg-course[disabled] { opacity: .45; pointer-events: none; }
.pnm-sg .sg-note { font-size: 13px; color: var(--sg-muted); background: var(--sg-bg-subtle); border-radius: 12px; padding: 12px 16px; line-height: 1.7; }
.pnm-sg .sg-err { font-size: 14px; color: var(--sg-bad); background: var(--sg-bad-light); border-radius: 12px; padding: 12px 16px; line-height: 1.7; }
.pnm-sg .sg-gate { background: var(--sg-primary-light); border-radius: var(--sg-r); padding: 20px clamp(16px, 5vw, 28px); }
.pnm-sg .sg-gate h3 { margin-bottom: 8px; }

/* 生まれのガチャ */
.pnm-sg .sg-slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 16px 0; }
@media (max-width: 480px) { .pnm-sg .sg-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pnm-sg .sg-slot { border-radius: 12px; padding: 12px 8px; text-align: center; background: var(--sg-bg-subtle); border: 1px solid var(--sg-border); min-width: 0; }
.pnm-sg .sg-slot small { display: block; font-size: 11px; color: var(--sg-muted); font-weight: 700; letter-spacing: .06em; }
.pnm-sg .sg-slot b { font-size: 15px; line-height: 1.4; min-height: 2.8em; display: flex; align-items: center; justify-content: center; }
.pnm-sg .sg-slot.spin b { color: var(--sg-muted); }
.pnm-sg .sg-slot.done { border-color: var(--sg-primary); background: var(--sg-primary-light); }
.pnm-sg .sg-cast { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 16px 0; }
@media (max-width: 480px) { .pnm-sg .sg-cast { grid-template-columns: 1fr; } }
.pnm-sg #sg-gb { padding-top: 16px; }
.pnm-sg .sg-cast div { display: flex; gap: 8px; align-items: center; font-size: 13px; line-height: 1.45; background: var(--sg-bg-subtle); border-radius: 12px; padding: 8px 12px; min-width: 0; }

/* 帯 */
.pnm-sg .sg-status { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pnm-sg .sg-yr { font-weight: 700; font-size: 13px; letter-spacing: .08em; background: var(--sg-text); color: #FFFFFF; border-radius: 9999px; padding: 4px 12px; }
.pnm-sg .sg-stat { font-size: 12px; color: var(--sg-muted); background: var(--sg-bg); border: 1px solid var(--sg-border); border-radius: 9999px; padding: 4px 12px; }
.pnm-sg .sg-stat b { font-weight: 700; font-size: 13px; color: var(--sg-text); margin-left: 6px; font-variant-numeric: tabular-nums; }
.pnm-sg .sg-co { font-size: 12px; color: var(--sg-muted); }
.pnm-sg .sg-prog { display: flex; gap: 4px; margin-top: 8px; }
.pnm-sg .sg-prog i { flex: 1; height: 5px; border-radius: 9999px; background: var(--sg-border); }
.pnm-sg .sg-prog i.on { background: var(--sg-primary); }

/* ニュース・人脈 */
.pnm-sg .sg-news { margin-top: 8px; border-left: 3px solid var(--sg-border); padding: 2px 0 2px 14px; }
.pnm-sg .sg-news b { font-size: 16px; display: block; line-height: 1.5; }
.pnm-sg .sg-newspanel .sg-kicker { color: var(--sg-muted); }
.pnm-sg .sg-news p { font-size: 14px; color: var(--sg-muted); margin-top: 4px; line-height: 1.8; }
.pnm-sg .sg-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.pnm-sg .sg-chips span { font-size: 12px; font-weight: 700; background: var(--sg-chip); border-radius: 9999px; padding: 2px 10px; }
.pnm-sg .sg-netchips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.pnm-sg .sg-netchips span { font-size: 12px; background: var(--sg-chip); border-radius: 9999px; padding: 2px 10px; color: var(--sg-muted); }
.pnm-sg .sg-netchips b { color: var(--sg-text); margin-right: 6px; }

/* 占い・福引き */
.pnm-sg .sg-omiwrap { display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; padding: 8px 0; }
.pnm-sg .sg-omi {
	appearance: none; border: 0; cursor: pointer; width: 132px; height: 184px; border-radius: 16px; background: linear-gradient(160deg, #2B2B2B, #4A4F48);
	color: #FFFFFF; display: flex; align-items: center; justify-content: center; font: inherit; font-weight: 700; font-size: 18px; letter-spacing: .3em;
	writing-mode: vertical-rl; box-shadow: var(--sg-shadow); transition: transform .2s; position: relative; overflow: hidden;
}
.pnm-sg .sg-omi::after { content: ""; position: absolute; inset: 8px; border-radius: 12px; border: 1.5px solid rgba(255, 255, 255, .25); }
.pnm-sg .sg-omi:hover { transform: translateY(-4px) rotate(-2deg); }
.pnm-sg .sg-omi.card, .pnm-sg .sg-omi.dream, .pnm-sg .sg-omi.garapon { writing-mode: horizontal-tb; letter-spacing: .06em; font-size: 15px; }
.pnm-sg .sg-omi.card { background: linear-gradient(160deg, #2C2A6B, #6B4FA0); }
.pnm-sg .sg-omi.dream { width: 160px; height: 160px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #4E5EA8, #1B2142); }
.pnm-sg .sg-omi.garapon { width: 160px; height: 160px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #E9A04A, #B5651D); }
.pnm-sg .sg-omi.art { background-size: cover; background-position: center; text-shadow: 0 1px 4px rgba(0, 0, 0, .75); }
.pnm-sg .sg-omi.card.art { width: 150px; height: 225px; }
.pnm-sg .sg-omi.shake { animation: sg-flip .55s ease; }
.pnm-sg .sg-omi.spinwheel { animation: sg-wheel .9s cubic-bezier(.3, .1, .3, 1); }
@keyframes sg-flip { 0% { transform: rotateY(0); } 50% { transform: rotateY(90deg) scale(.96); } 100% { transform: rotateY(0); } }
@keyframes sg-wheel { to { transform: rotate(1080deg); } }
.pnm-sg .sg-fortune { border-radius: 16px; padding: 20px 24px; display: flex; flex-direction: column; align-items: center; gap: 6px; background: var(--sg-sun-light); width: min(360px, 100%); }
.pnm-sg .sg-fortune .dev { font-size: 11px; color: var(--sg-muted); letter-spacing: .14em; font-weight: 700; }
.pnm-sg .sg-fortune .lv { font-weight: 700; font-size: clamp(26px, 7.5vw, 36px); line-height: 1.25; }
.pnm-sg .sg-fortune .tx { font-size: 15px; max-width: 30ch; }
.pnm-sg .sg-fortune.rare { background: linear-gradient(135deg, var(--sg-sun), #F08A5D); }
/* 占い・くじ・ガチャの絵（2026-10-21） */
.pnm-sg .sg-art { display: block; max-width: 100%; height: auto; border-radius: 12px; box-shadow: var(--sg-shadow); }
.pnm-sg .sg-art.gacha { width: min(100%, 300px); aspect-ratio: 1; object-fit: cover; margin-inline: auto; }
/* スマホのガチャの絵はさらに小さく（2026-10-21 崇さん「今の4分の1でOK」＝縦横半分の 150px） */
@media (max-width: 600px) { .pnm-sg .sg-art.gacha { width: 150px; } }
.pnm-sg .sg-art.sq { width: min(240px, 100%); aspect-ratio: 1; object-fit: cover; margin-bottom: 8px; }
.pnm-sg .sg-art.tall { width: min(200px, 70%); aspect-ratio: 2 / 3; object-fit: cover; margin-bottom: 8px; }
.pnm-sg .sg-kuji { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; margin-top: 8px; width: 100%; }
@media (max-width: 520px) { .pnm-sg .sg-kuji { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pnm-sg .sg-kuji div { background: rgba(255, 255, 255, .6); border-radius: 8px; padding: 6px 8px; text-align: center; }
.pnm-sg .sg-kuji b { display: block; font-size: 11px; color: var(--sg-muted); }
.pnm-sg .sg-kuji span { font-size: 13px; font-weight: 700; line-height: 1.5; }

/* 物語 */
.pnm-sg .sg-yearhead { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.pnm-sg .sg-yearno { font-weight: 700; font-size: 13px; letter-spacing: .14em; color: var(--sg-primary-ink); }
.pnm-sg .sg-badge { font-size: 11px; font-weight: 700; letter-spacing: .06em; padding: 2px 10px; border-radius: 9999px; background: var(--sg-primary-light); color: var(--sg-primary-ink); }
.pnm-sg .sg-reelline { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.pnm-sg .sg-reelline span { font-size: 11.5px; font-weight: 700; color: var(--sg-muted); background: var(--sg-chip); border-radius: 9999px; padding: 2px 10px; }
.pnm-sg .sg-chap { font-weight: 700; font-size: clamp(19px, 5.2vw, 24px); line-height: 1.5; margin-top: 8px; text-wrap: balance; } /* 題は要約の一文（20〜32字）になった＝少し小さく */
.pnm-sg .sg-story p { margin: 0 0 1em; font-size: 16.5px; line-height: 2; }
.pnm-sg .sg-line { display: grid; grid-template-columns: 40px 1fr; gap: 10px; margin: 14px 0; align-items: start; }
.pnm-sg .sg-story > .sg-line { margin: 16px 0; }
.pnm-sg .sg-line > div { margin: 0; }
.pnm-sg .sg-face { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 15px; background: var(--sg-primary-light); color: var(--sg-primary-ink); flex: 0 0 40px; }
.pnm-sg .sg-face.sm { width: 34px; height: 34px; font-size: 13px; flex: 0 0 34px; }
.pnm-sg .sg-line .nm { font-size: 12px; color: var(--sg-muted); font-weight: 700; margin: 0 0 4px 4px; }
.pnm-sg .sg-bubble { background: var(--sg-bg-subtle); border-radius: 4px 16px 16px 16px; padding: 12px 16px; font-size: 16px; line-height: 1.85; min-width: 0; }
.pnm-sg .sg-choices { display: flex; flex-direction: column; gap: 8px; margin-top: 24px; }
.pnm-sg .sg-ch {
	appearance: none; border: 0; cursor: pointer; text-align: left; font: inherit; color: var(--sg-text);
	display: grid; grid-template-columns: 30px 1fr; gap: 12px; align-items: center; padding: 14px 16px; border-radius: 16px; background: var(--sg-bg);
	box-shadow: inset 0 0 0 1.5px var(--sg-border); font-size: 15.5px; line-height: 1.55; transition: box-shadow .15s, background .15s;
}
.pnm-sg .sg-ch:hover { box-shadow: inset 0 0 0 2px var(--sg-primary); }
.pnm-sg .sg-ch .k { font-weight: 700; font-size: 13px; width: 30px; height: 30px; border-radius: 50%; background: var(--sg-chip); display: grid; place-items: center; color: var(--sg-muted); }
.pnm-sg .sg-ch.picked { box-shadow: inset 0 0 0 2px var(--sg-primary); background: var(--sg-primary-light); }
.pnm-sg .sg-ch.picked .k { background: var(--sg-primary-dark); color: #FFFFFF; }
.pnm-sg .sg-ch[disabled] { cursor: default; }
.pnm-sg .sg-ch.dim { opacity: .35; }
.pnm-sg .sg-free { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; background: var(--sg-bg-subtle); border-radius: 16px; padding: 14px 16px 18px; }
/* 「この判断でいく」は塗りのボタンで中央・少し大きく（2026-10-21 崇さん「もう少し目立たせてセンター寄せ」）。 */
.pnm-sg .sg-free .sg-btn-lg { align-self: center; min-width: min(260px, 100%); min-height: 52px; font-size: 16px; box-shadow: 0 8px 18px -10px rgba(104, 154, 56, .8); }
.pnm-sg .sg-free label { font-size: 13px; font-weight: 700; color: var(--sg-muted); }
.pnm-sg .sg-free textarea { font: inherit; font-size: 16px; color: var(--sg-text); background: var(--sg-bg); border: 1.5px solid var(--sg-border); border-radius: 8px; padding: 10px 12px; min-height: 64px; resize: vertical; width: 100%; }
.pnm-sg .sg-free textarea:focus { outline: 2px solid var(--sg-primary); outline-offset: 1px; }
.pnm-sg .sg-out { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--sg-border); display: flex; flex-direction: column; gap: 16px; }
.pnm-sg .sg-tag { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; padding: 4px 12px; border-radius: 9999px; letter-spacing: .1em; background: var(--sg-chip); }
.pnm-sg .sg-tag.tear { color: var(--sg-tear); background: var(--sg-tear-light); }
.pnm-sg .sg-tag.laugh { color: var(--sg-laugh); background: var(--sg-laugh-light); }
.pnm-sg .sg-tag.good { color: var(--sg-primary-ink); background: var(--sg-primary-light); }
.pnm-sg .sg-tag.bad { color: var(--sg-bad); background: var(--sg-bad-light); }
.pnm-sg .sg-kanjirow { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: stretch; }
.pnm-sg .sg-kanji { background: var(--sg-text); color: #FFFFFF; border-radius: 16px; padding: 8px 16px; text-align: center; display: flex; flex-direction: column; justify-content: center; min-width: 84px; }
.pnm-sg .sg-kanji small { font-size: 10px; opacity: .75; letter-spacing: .06em; }
.pnm-sg .sg-kanji b { font-size: 40px; line-height: 1.1; }
.pnm-sg .sg-fanswer { background: var(--sg-sun-light); border-radius: 12px; padding: 10px 16px; font-size: 14.5px; line-height: 1.8; }
.pnm-sg .sg-fanswer b { display: block; font-size: 12px; color: var(--sg-laugh); }
.pnm-sg .sg-boxed { border-radius: 16px; padding: 12px 16px 16px; display: flex; flex-direction: column; gap: 8px; }
/* ⚠️ 2026-10-21：枠の中の行の上下の余白はテーマ（SWELL）の本文のスタイルに負けて0になり、吹き出し・説明文が枠の下端にくっついた。
 *    余白は margin に頼らず、枠の padding と gap で取る。 */
.pnm-sg .sg-boxed > .sg-line { margin: 0; }
.pnm-sg .sg-boxed .sg-line .sg-small { display: block; margin: 0 0 0 4px; line-height: 1.7; }
.pnm-sg .sg-boxed.meet { background: var(--sg-sun-light); }
.pnm-sg .sg-boxed.chat { background: var(--sg-primary-light); }
.pnm-sg .sg-boxed .chh { font-size: 11px; font-weight: 700; letter-spacing: .08em; color: var(--sg-primary-ink); }
.pnm-sg .sg-boxed.meet .chh { color: var(--sg-laugh); }
.pnm-sg .sg-boxed .sg-bubble { background: var(--sg-bg); }
.pnm-sg .sg-pl { background: var(--sg-bg-subtle); border-radius: 16px; padding: 12px 16px; }
.pnm-sg .sg-pl .plh { font-size: 12px; font-weight: 700; letter-spacing: .08em; color: var(--sg-muted); margin-bottom: 4px; }
.pnm-sg .sg-pl table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; margin: 0; border: 0; }
.pnm-sg .sg-pl td { padding: 4px 0; font-size: 14px; border: 0; border-bottom: 1px dashed var(--sg-border); background: transparent; }
.pnm-sg .sg-pl td:nth-child(2) { text-align: right; font-weight: 700; white-space: nowrap; padding-left: 8px; }
.pnm-sg .sg-pl td:nth-child(3) { text-align: right; width: 3.5em; color: var(--sg-muted); font-size: 12px; }
.pnm-sg .sg-pl tr.tot td { font-weight: 700; border-bottom: 0; padding-top: 6px; }
.pnm-sg .up { color: var(--sg-primary-ink); }
.pnm-sg .dn { color: var(--sg-bad); }
.pnm-sg .sg-crmsg { margin-top: 12px; background: var(--sg-sun-light); border-radius: 12px; padding: 12px 16px; font-size: 15px; line-height: 1.8; }
.pnm-sg .sg-waiting { display: flex; align-items: center; gap: 12px; color: var(--sg-muted); font-size: 14px; padding: 16px 0; }
.pnm-sg .sg-dots { display: inline-flex; gap: 5px; }
.pnm-sg .sg-dots i { width: 7px; height: 7px; border-radius: 50%; background: var(--sg-primary); animation: sg-dot 1.2s infinite; }
.pnm-sg .sg-dots i:nth-child(2) { animation-delay: .2s; }
.pnm-sg .sg-dots i:nth-child(3) { animation-delay: .4s; }
@keyframes sg-dot { 0%, 80%, 100% { opacity: .25; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }

/* 診断書 */
/* 診断書のタイプ（2026-10-21 崇さん「赤茶が重たい。白か薄いグレーで、要所要所にカラー」）＝地は白、タイプの色（--tc）は上の帯・タイプ名・軸の点・小見出しだけ。 */
.pnm-sg .sg-cert { border-radius: 24px; padding: 28px clamp(20px, 6vw, 36px) 24px; position: relative; overflow: hidden; color: var(--sg-text); background: #FFFFFF; border: 1px solid var(--sg-border); border-top: 6px solid var(--tc, #4E7A27); box-shadow: var(--sg-shadow); }
.pnm-sg .sg-cert > * { position: relative; }
.pnm-sg .sg-cert .ttl { font-weight: 700; font-size: 12px; letter-spacing: .2em; color: var(--tc, #4E7A27); }
.pnm-sg .sg-cert .meta { font-size: 13px; color: var(--sg-muted); margin-top: 6px; }
.pnm-sg .sg-certhead { display: grid; grid-template-columns: 1fr; gap: 16px; align-items: center; margin-top: 14px; }
.pnm-sg .sg-certhead.has-art { grid-template-columns: clamp(112px, 30vw, 168px) minmax(0, 1fr); }
.pnm-sg .sg-art.type { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; box-shadow: 0 0 0 4px #FFFFFF, 0 0 0 6px var(--tc, #4E7A27); }
.pnm-sg .sg-type { font-weight: 700; font-size: clamp(28px, 8vw, 42px); line-height: 1.25; margin: 0 0 6px; color: var(--tc, #4E7A27); }
.pnm-sg .sg-cert .hd { font-size: 15px; font-weight: 700; line-height: 1.7; }
@media (max-width: 420px) { .pnm-sg .sg-certhead.has-art { grid-template-columns: 1fr; justify-items: center; text-align: center; } .pnm-sg .sg-art.type { width: 150px; } }
.pnm-sg .sg-cert .desc { margin-top: 14px; font-size: 15.5px; line-height: 1.9; }
.pnm-sg .sg-axes { display: flex; flex-direction: column; gap: 10px; margin: 20px 0; padding: 14px 16px; background: var(--sg-bg-subtle); border-radius: 12px; }
.pnm-sg .sg-axis { display: grid; grid-template-columns: 3.5em 1fr 3.5em; gap: 10px; align-items: center; font-size: 12px; font-weight: 700; color: var(--sg-muted); }
.pnm-sg .sg-axis span:last-child { text-align: right; }
.pnm-sg .sg-axis .tr { height: 6px; background: var(--sg-border); border-radius: 9999px; position: relative; }
.pnm-sg .sg-axis .tr i { position: absolute; top: 50%; width: 16px; height: 16px; border-radius: 50%; background: var(--tc, #4E7A27); transform: translate(-50%, -50%); box-shadow: 0 0 0 3px #FFFFFF, 0 2px 6px rgba(0, 0, 0, .2); }
.pnm-sg .sg-trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
@media (max-width: 560px) { .pnm-sg .sg-trio { grid-template-columns: 1fr; } }
.pnm-sg .sg-trio div { background: var(--sg-bg-subtle); border-radius: 12px; padding: 10px 12px; font-size: 14px; line-height: 1.6; min-width: 0; border-left: 3px solid var(--tc, #4E7A27); }
.pnm-sg .sg-trio b { display: block; font-size: 11px; letter-spacing: .1em; color: var(--tc, #4E7A27); margin-bottom: 2px; }
.pnm-sg .sg-odds { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--sg-border); font-size: 14px; }
.pnm-sg .sg-odds b { font-weight: 700; font-size: 26px; display: block; line-height: 1.3; color: var(--tc, #4E7A27); }
.pnm-sg .sg-odds span { font-size: 11px; color: var(--sg-muted); }
.pnm-sg .sg-kanjiline { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.pnm-sg .sg-kanjiline div { background: var(--sg-bg-subtle); border-radius: 12px; padding: 8px 4px; text-align: center; }
.pnm-sg .sg-kanjiline b { display: block; font-size: 28px; line-height: 1.2; }
.pnm-sg .sg-kanjiline small { font-size: 10px; color: var(--sg-muted); }
.pnm-sg .sg-after { font-size: 15.5px; line-height: 2; white-space: pre-wrap; margin-top: 8px; }
.pnm-sg .sg-yearend { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
@media (max-width: 480px) { .pnm-sg .sg-yearend { grid-template-columns: 1fr; } }
.pnm-sg .sg-yearend div { background: var(--sg-bg-subtle); border-radius: 12px; padding: 10px 12px; min-width: 0; }
.pnm-sg .sg-yearend small { display: block; font-size: 11px; color: var(--sg-muted); font-weight: 700; }
.pnm-sg .sg-yearend span { font-weight: 700; font-size: 15px; font-variant-numeric: tabular-nums; }
.pnm-sg .sg-moments { display: flex; flex-direction: column; margin: 8px 0; }
.pnm-sg .sg-mo { display: grid; grid-template-columns: 52px 1fr; gap: 10px; font-size: 14.5px; line-height: 1.7; padding: 10px 0; border-top: 1px solid var(--sg-border); }
.pnm-sg .sg-mo:first-child { border-top: 0; }
.pnm-sg .sg-mo .y { font-weight: 700; font-size: 12px; color: var(--sg-muted); padding-top: 3px; }
.pnm-sg .sg-mo .sg-tag { font-size: 11px; padding: 1px 8px; margin-right: 8px; }
.pnm-sg .sg-lesson { background: var(--sg-bg-subtle); border-left: 4px solid var(--sg-sun); border-radius: 12px; padding: 14px 16px; font-size: 14px; line-height: 1.75; }
.pnm-sg .sg-lesson b { font-size: 16px; display: block; }
.pnm-sg .sg-lesson .tg { font-size: 11px; color: var(--sg-primary-ink); font-weight: 700; letter-spacing: .06em; }
.pnm-sg .sg-review { background: var(--sg-primary-light); border-radius: 12px; padding: 16px; font-size: 15px; line-height: 1.9; margin-top: 8px; }
.pnm-sg .sg-advice { background: var(--sg-bg-subtle); border-left: 4px solid var(--sg-primary); border-radius: 12px; padding: 12px 16px; font-size: 14.5px; line-height: 1.8; }
.pnm-sg .sg-advice.bad { border-left-color: var(--sg-bad); }
.pnm-sg .sg-advice .tg { display: block; font-size: 12px; font-weight: 700; color: var(--sg-primary-ink); margin-bottom: 2px; }
.pnm-sg .sg-advice.bad .tg { color: var(--sg-bad); }
.pnm-sg .sg-lesson.neta { border-left-color: var(--sg-primary); }
.pnm-sg .sg-stack { display: flex; flex-direction: column; gap: 8px; }
.pnm-sg .sg-achgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
@media (max-width: 520px) { .pnm-sg .sg-achgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pnm-sg .sg-ach { border-radius: 12px; padding: 8px 10px; background: var(--sg-bg-subtle); opacity: .55; min-width: 0; }
.pnm-sg .sg-ach b { display: block; font-size: 13px; }
.pnm-sg .sg-ach span { font-size: 11px; color: var(--sg-muted); line-height: 1.5; }
.pnm-sg .sg-ach.got { opacity: 1; }
.pnm-sg .sg-ach.now { background: var(--sg-sun-light); box-shadow: inset 0 0 0 1.5px var(--sg-sun); }

/* イラスト（2026-10-21） */
.pnm-sg .sg-net { display: flex; gap: 10px; align-items: flex-start; min-width: 0; }
.pnm-sg .sg-face.img { background-size: 400% 400%; background-repeat: no-repeat; background-color: var(--sg-bg-subtle); box-shadow: 0 0 0 2px #FFFFFF, 0 0 0 3px var(--sg-primary-light); }
.pnm-sg .sg-illust { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 64px; border-radius: 16px; background: var(--sg-bg-subtle); color: var(--sg-muted); font-size: 13px; padding: 12px; }
.pnm-sg .sg-illust.done { padding: 0; background: transparent; overflow: hidden; }
.pnm-sg .sg-illust img { display: block; width: 100%; height: auto; border-radius: 16px; aspect-ratio: 3 / 2; object-fit: cover; }
.pnm-sg .sg-mo-img { margin-top: 10px; max-width: 480px; }
.pnm-sg .sg-mo-img img { border-radius: 12px; }

/* 支援制度の案内（2026-10-21） */
.pnm-sg .sg-support { background: var(--sg-primary-light); border-radius: var(--sg-r); padding: 20px clamp(16px, 4vw, 24px); }
.pnm-sg .sg-support-item { background: var(--sg-bg); border-radius: 12px; padding: 12px 16px; display: flex; flex-direction: column; gap: 4px; }
.pnm-sg .sg-support-item b { font-size: 16px; }
.pnm-sg .sg-support-item p { font-size: 14px; line-height: 1.75; }
.pnm-sg .sg-support-item small { font-size: 12px; color: var(--sg-primary-ink); }

/* 本当の数字（2026-10-21） */
.pnm-sg .sg-stat-card { background: var(--sg-bg-subtle); border: 1px solid var(--sg-border); border-radius: 12px; padding: 12px 16px; display: flex; flex-direction: column; gap: 4px; }
.pnm-sg .sg-stat-k { align-self: flex-start; font-size: 11px; font-weight: 700; letter-spacing: .06em; color: var(--sg-primary-ink); background: var(--sg-primary-light); border-radius: 9999px; padding: 1px 10px; }
.pnm-sg .sg-stat-card b { font-size: 15.5px; line-height: 1.7; }
.pnm-sg .sg-stat-card p { font-size: 13.5px; color: var(--sg-muted); line-height: 1.75; }
.pnm-sg .sg-stat-card small { font-size: 11px; color: var(--sg-muted); line-height: 1.6; }
.pnm-sg .sg-stat-card a { color: var(--sg-primary-ink); }
.pnm-sg .sg-news + .sg-stat-card, .pnm-sg .sg-panel > .sg-stat-card { margin-top: 16px; }

/* あなたのストーリーを教えてください（2026-10-21） */
.pnm-sg .sg-banner {
	appearance: none; cursor: pointer; font: inherit; color: var(--sg-text); text-align: left; width: 100%;
	margin-top: 16px; display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center;
	padding: 20px 24px; border-radius: var(--sg-r); border: 1.5px solid var(--sg-primary); background: var(--sg-primary-light);
	transition: transform .15s, box-shadow .15s;
}
.pnm-sg .sg-banner:hover { transform: translateY(-2px); box-shadow: var(--sg-shadow); }
.pnm-sg .sg-banner-k { font-size: 11px; font-weight: 700; letter-spacing: .14em; color: #FFFFFF; background: var(--sg-primary-dark); border-radius: 9999px; padding: 4px 10px; }
.pnm-sg .sg-banner-t { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pnm-sg .sg-banner-t b { font-size: 17px; line-height: 1.5; }
.pnm-sg .sg-banner-t span { font-size: 13px; color: var(--sg-muted); line-height: 1.7; }
.pnm-sg .sg-banner-go { font-size: 20px; font-weight: 700; color: var(--sg-primary-ink); }
@media (max-width: 520px) { .pnm-sg .sg-banner { grid-template-columns: 1fr auto; padding: 16px; } .pnm-sg .sg-banner-k { grid-column: 1 / -1; justify-self: start; } }
.pnm-sg .sg-form { display: flex; flex-direction: column; gap: 24px; }
.pnm-sg .sg-field { display: flex; flex-direction: column; gap: 8px; }
.pnm-sg .sg-fl { font-weight: 700; font-size: 15px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pnm-sg .sg-fl .no { display: inline-grid; place-items: center; min-width: 24px; height: 24px; border-radius: 50%; background: var(--sg-primary-light); color: var(--sg-primary-ink); font-size: 12px; }
.pnm-sg .sg-fl .no:empty { display: none; }
.pnm-sg .sg-fl .req { font-size: 11px; color: #FFFFFF; background: var(--sg-bad); border-radius: 4px; padding: 1px 6px; }
.pnm-sg .sg-form input:not([type="checkbox"]):not([type="radio"]), .pnm-sg .sg-form select, .pnm-sg .sg-form textarea {
	width: 100%; font: inherit; font-size: 16px; color: var(--sg-text); background: var(--sg-bg); border: 1.5px solid var(--sg-border); border-radius: 8px; padding: 10px 12px; margin: 0;
}
.pnm-sg .sg-form input:focus, .pnm-sg .sg-form select:focus, .pnm-sg .sg-form textarea:focus { outline: 2px solid var(--sg-primary); outline-offset: 1px; }
.pnm-sg .sg-opts { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.pnm-sg .sg-opt { display: inline-flex; align-items: flex-start; gap: 8px; font-size: 15px; line-height: 1.6; cursor: pointer; }
.pnm-sg .sg-opt input { margin-top: 5px; width: 18px; height: 18px; flex: 0 0 18px; accent-color: var(--sg-primary-dark); }
.pnm-sg .sg-consent { background: var(--sg-bg-subtle); border-radius: 12px; padding: 12px 16px; font-size: 14px; }
.pnm-sg .sg-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* 通知・紙吹雪（body 直下に出すので .pnm-sg の外） */
/* 実績の通知は画面の下（2026-10-21 崇さん「画面の上に出てくるカードが変」＝サイトのヘッダーに重なっていた）。白地・緑の縁。 */
.pnm-sg-toast {
	position: fixed; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 100000;
	display: flex; align-items: center; gap: 10px; max-width: min(360px, calc(100% - 32px)); padding: 8px 16px 8px 10px;
	background: rgba(43, 43, 43, .92); color: #FFFFFF; border: 0; border-radius: 999px; cursor: pointer;
	box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .5); font-family: 'Noto Sans JP', sans-serif; text-align: left; line-height: 1.35;
	animation: sg-tin .3s ease;
}
/* 星の印（CSS で描く・絵文字は使わない） */
.pnm-sg-toast i { flex: 0 0 28px; width: 28px; height: 28px; border-radius: 50%; background: #F2B33D; position: relative; }
.pnm-sg-toast i::after { content: ''; position: absolute; inset: 7px; background: #FFFFFF; clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
.pnm-sg-toast .tx { display: flex; flex-direction: column; min-width: 0; }
.pnm-sg-toast small { font-size: 10.5px; letter-spacing: .08em; color: #C9E3A8; font-weight: 700; }
.pnm-sg-toast b { font-size: 14px; font-weight: 700; color: #FFFFFF; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pnm-sg-toast.out { opacity: 0; transform: translate(-50%, 8px); transition: .3s; }
@keyframes sg-tin { from { opacity: 0; transform: translate(-50%, 14px); } to { opacity: 1; transform: translate(-50%, 0); } }
.pnm-sg-confetti { position: fixed; inset: 0; pointer-events: none; z-index: 99999; overflow: hidden; }
.pnm-sg-confetti i { position: absolute; top: -12px; width: 8px; height: 14px; border-radius: 2px; animation: sg-fall 2.6s ease-in forwards; }
@keyframes sg-fall { to { top: 105%; transform: rotate(720deg); } }
.pnm-sg .sg-fade { animation: sg-fade .45s cubic-bezier(.2, .7, .2, 1) both; }
@keyframes sg-fade { from { opacity: .001; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
	.pnm-sg .sg-fade, .pnm-sg .sg-omi.shake, .pnm-sg .sg-omi.spinwheel, .pnm-sg-toast, .pnm-sg-confetti i, .pnm-sg .sg-dots i { animation: none; }
	.pnm-sg .sg-omi, .pnm-sg .sg-btn, .pnm-sg .sg-ch, .pnm-sg .sg-course { transition: none; }
}

/* 前の年の判断が返ってきた・名前の付いた結末・分かれ道・結末コレクション（2026-10-21） */
.pnm-sg .sg-payback { margin: 16px 0; padding: 14px 16px; border-radius: 12px; background: var(--sg-sun-light); border-left: 4px solid var(--sg-sun); display: flex; flex-direction: column; gap: 4px; }
.pnm-sg .sg-payback small { font-size: 12px; font-weight: 700; letter-spacing: .06em; color: var(--sg-muted); }
.pnm-sg .sg-payback b { font-size: 15px; }
.pnm-sg .sg-payback span { font-size: 14px; line-height: 1.75; }
.pnm-sg .sg-endpanel { margin-top: 16px; text-align: center; }
.pnm-sg .sg-endname { font-weight: 700; font-size: clamp(26px, 7vw, 36px); line-height: 1.3; margin: 8px 0 6px; }
.pnm-sg .sg-endline { font-size: 15px; line-height: 1.9; color: var(--sg-text); max-width: 36em; margin: 0 auto; }
.pnm-sg .sg-end-rate { margin-top: 10px; font-size: 13px; color: var(--sg-muted); }
.pnm-sg .sg-end-rate b { font-size: 17px; color: var(--sg-primary-ink); }
.pnm-sg .sg-endpanel h3 { text-align: left; }
.pnm-sg .sg-paths { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; text-align: left; }
.pnm-sg .sg-path { display: grid; grid-template-columns: 4.5em minmax(0, 1fr); gap: 10px; background: var(--sg-bg-subtle); border-radius: 12px; padding: 12px 14px; }
.pnm-sg .sg-path .y { font-weight: 700; font-size: 13px; color: var(--sg-primary-ink); }
.pnm-sg .sg-path b { display: block; font-size: 15px; }
.pnm-sg .sg-path small { display: block; font-size: 12px; color: var(--sg-muted); margin-top: 2px; }
.pnm-sg .sg-path span { display: block; font-size: 14px; line-height: 1.7; margin-top: 4px; }
.pnm-sg .sg-endgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px; margin-top: 10px; text-align: left; }
.pnm-sg .sg-endcell { border: 1px dashed var(--sg-border); border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pnm-sg .sg-endcell b { font-size: 14px; color: var(--sg-muted); }
.pnm-sg .sg-endcell span { font-size: 12px; color: var(--sg-muted); line-height: 1.5; }
.pnm-sg .sg-endcell.got { border-style: solid; background: var(--sg-primary-light); }
.pnm-sg .sg-endcell.got b { color: var(--sg-text); }
.pnm-sg .sg-endcell.now { border-color: var(--sg-primary); box-shadow: 0 0 0 2px var(--sg-primary-light); }


/* みんなの十年・LINE で送る（2026-10-21） */
.pnm-sg .sg-btn.sm { min-height: 40px; padding: 8px 16px; font-size: 14px; }
.pnm-sg .sg-btn.sg-line-btn { background: #06C755; }
.pnm-sg .sg-btn.sg-line-btn:hover { background: #05A648; }
.pnm-sg .sg-wallbox { margin-top: 16px; }
.pnm-sg .sg-wallhead { margin-bottom: 16px; }
.pnm-sg .sg-wallmsg { margin: 10px 0 0; padding: 10px 14px; border-left: 3px solid var(--sg-primary); background: var(--sg-bg-subtle); border-radius: 0 10px 10px 0; font-size: 14.5px; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
.pnm-sg .sg-heart { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 8px 14px; border-radius: 999px; border: 1.5px solid var(--sg-border); background: #FFFFFF; color: var(--sg-text); font: inherit; font-size: 14px; cursor: pointer; }
.pnm-sg .sg-heart span { color: #E0607E; font-size: 16px; }
.pnm-sg .sg-heart.on { border-color: #E0607E; background: #FDF0F3; }
.pnm-sg .sg-heart[disabled] { cursor: default; }
.pnm-sg .sg-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.pnm-sg .sg-tabs button { min-height: 40px; padding: 8px 14px; border-radius: 999px; border: 1.5px solid var(--sg-border); background: #FFFFFF; color: var(--sg-text); font: inherit; font-size: 14px; cursor: pointer; }
.pnm-sg .sg-tabs button.on { border-color: var(--sg-primary); background: var(--sg-primary-light); color: var(--sg-primary-ink); font-weight: 700; }
.pnm-sg .sg-wallgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 12px; }
.pnm-sg .sg-wallcard { border: 1px solid var(--sg-border); border-top: 4px solid var(--tc); border-radius: 14px; padding: 14px 16px; background: #FFFFFF; display: flex; flex-direction: column; min-width: 0; }
.pnm-sg .sg-wallcard .hd { display: flex; align-items: center; gap: 12px; }
.pnm-sg .sg-wallcard .art { flex: 0 0 52px; width: 52px; height: 52px; border-radius: 10px; background-size: cover; background-position: center; }
.pnm-sg .sg-wallcard .en { font-weight: 700; font-size: 17px; line-height: 1.4; }
.pnm-sg .sg-wallcard .tp { font-size: 12.5px; color: var(--tc); font-weight: 700; margin-top: 2px; }
.pnm-sg .sg-wallcard .mt { font-size: 12.5px; color: var(--sg-muted); margin: 8px 0 0; line-height: 1.6; }
.pnm-sg .sg-wallcard .kj { font-size: 13px; margin: 4px 0 0; }
.pnm-sg .sg-wallcard .by { font-size: 13px; font-weight: 700; margin: 8px 0 0; }
.pnm-sg .sg-wallcard .by span { font-weight: 400; color: var(--sg-muted); font-size: 12px; }
.pnm-sg .sg-wallcard .ft { margin-top: auto; padding-top: 10px; justify-content: space-between; }

/* 何の仕事で社長になるか（2026-10-21） */
.pnm-sg .sg-kindgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
@media (min-width: 640px) { .pnm-sg .sg-kindgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pnm-sg .sg-kind { min-height: 52px; padding: 10px 12px; border-radius: 12px; border: 1.5px solid var(--sg-border); background: #FFFFFF; color: var(--sg-text); font: inherit; font-size: 13.5px; font-weight: 700; line-height: 1.4; cursor: pointer; text-align: center; overflow-wrap: anywhere; transition: border-color .15s, background .15s; }
.pnm-sg .sg-kind:hover { border-color: var(--sg-primary); background: var(--sg-primary-light); }

/* 今年の話の型（2026-10-21） */
.pnm-sg .sg-badge.sg-stype { background: var(--sg-sun-light); color: var(--sg-text); }

/* 選んだ判断と、その結果を目立たせる（2026-10-21 崇さん「選択がどうなるかの文字を大きくして、何が起きているか気付きやすく」） */
.pnm-sg .sg-decided { display: flex; flex-direction: column; gap: 2px; padding: 12px 16px; border-radius: 12px; background: var(--sg-primary-light); border-left: 4px solid var(--sg-primary); }
.pnm-sg .sg-decided small { font-size: 12px; font-weight: 700; color: var(--sg-primary-ink); letter-spacing: .06em; }
.pnm-sg .sg-decided b { font-size: 17px; font-weight: 700; line-height: 1.6; }
.pnm-sg .sg-waiting.big { font-size: 18px; font-weight: 700; color: var(--sg-text); padding: 20px 0; }
.pnm-sg .sg-waiting.big .sg-dots i { width: 10px; height: 10px; }
.pnm-sg .sg-resulthead { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; scroll-margin-top: 140px; }
.pnm-sg .sg-reslabel { font-size: 22px; font-weight: 700; }
.pnm-sg .sg-tag.big { font-size: 15px; padding: 6px 14px; }
.pnm-sg .sg-resultbody { font-size: 17px; line-height: 1.95; }
