/* 診断ツール拡張：第2層（市場ベンチマーク）・第3層（参考）・PDF用スタイル
   ブランド色：Teal #0F9B8E / Navy #2B2D42 / Base #F8F9FA
   ※ベンチマーク部の本文テキストは可読性のため大きめ（標準比 約1.5倍）に設定。 */

.mssc-bench {
	margin: 28px 0 0;
	padding: 24px;
	background: #fff;
	border: 1px solid #e5e8ed;
	border-radius: 14px;
}
.mssc-bench__title {
	font-size: 24px;
	font-weight: 800;
	color: #2B2D42;
	margin: 0 0 18px;
	padding-left: 12px;
	border-left: 4px solid #0F9B8E;
}
.mssc-bench__block { margin: 0 0 26px; }
.mssc-bench__block:last-of-type { margin-bottom: 8px; }
.mssc-bench__h {
	font-size: 18px;
	font-weight: 800;
	color: #424559;
	letter-spacing: .04em;
	margin: 0 0 14px;
}
.mssc-bench__note {
	font-size: 17px;
	color: #6c7185;
	line-height: 1.8;
	margin: 12px 0 0;
}
.mssc-bench__note strong { color: #2B2D42; }
.mssc-bench__legal {
	font-size: 15px;
	color: #8a8f9c;
	line-height: 1.8;
	margin: 16px 0 0;
	padding-top: 14px;
	border-top: 1px dashed #e0e3e9;
}
.mssc-bench__legal a { color: #0F9B8E; }

/* IPA 5段階成熟度バー */
.mssc-mat {
	display: flex;
	width: 100%;
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid #e5e8ed;
}
.mssc-mat__seg {
	position: relative;
	flex: 1 1 0;          /* 5段を均等幅に（L4/L5 が潰れないように） */
	min-width: 0;
	padding: 16px 4px 36px;
	text-align: center;
	background: #f4f7f8;
	border-right: 1px solid #e5e8ed;
	overflow: hidden;
}
.mssc-mat__seg:last-child { border-right: 0; }
.mssc-mat__seg.is-current {
	background: linear-gradient(180deg, #0F9B8E 0%, #086C61 100%);
}
.mssc-mat__seg.is-current .mssc-mat__lv,
.mssc-mat__seg.is-current .mssc-mat__nm,
.mssc-mat__seg.is-current .mssc-mat__pct { color: #fff; }
.mssc-mat__seg.is-beyond { opacity: .45; } /* L5等＝外部観測の対象外 */
.mssc-mat__seg.is-boundary { border-left: 2px dashed #b9bfca; } /* 外部観測／詳細調査の境界（L4の左） */
.mssc-mat__lv { display: block; font-size: 18px; font-weight: 800; color: #2B2D42; }
.mssc-mat__nm { display: block; font-size: 14px; color: #6c7185; margin-top: 3px; white-space: nowrap; }
.mssc-mat__pct { position: absolute; left: 0; right: 0; bottom: 10px; font-size: 14px; color: #9aa0ac; }
.mssc-mat__cur { font-size: 20px; color: #2B2D42; margin: 16px 0 0; }
.mssc-mat__cur strong { color: #0F9B8E; }
.mssc-mat__ceil {
	display: inline-block; margin-left: 8px;
	font-size: 15px; font-weight: 700; color: #0c7a6f;
	background: rgba( 15, 155, 142, .10 );
	border: 1px solid rgba( 15, 155, 142, .28 );
	border-radius: 999px; padding: 3px 11px;
}

/* バー下の領域帯（L1〜L3＝本診断 / L4〜L5＝詳細調査） */
.mssc-mat__zones { display: flex; width: 100%; margin-top: 6px; gap: 4px; }
.mssc-mat__zone {
	flex-grow: 0; flex-shrink: 0;
	font-size: 15px; font-weight: 700; text-align: center;
	padding: 6px 2px; border-radius: 0 0 6px 6px;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mssc-mat__zone--in  { color: #0c7a6f; background: rgba( 15, 155, 142, .10 ); border-top: 2px solid #0F9B8E; }
.mssc-mat__zone--out { color: #8a8f9c; background: #f1f2f5; border-top: 2px dashed #b9bfca; }

/* カテゴリ別バー */
.mssc-cat { margin: 0 0 14px; }
.mssc-cat__head { display: flex; align-items: baseline; gap: 8px; margin: 0 0 6px; }
.mssc-cat__name { font-size: 18px; font-weight: 700; color: #2B2D42; flex: 1; display: flex; align-items: center; }
.mssc-cat__dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-right: 9px; flex: 0 0 auto; }
.mssc-cat__score { font-size: 22px; font-weight: 800; color: #0F9B8E; }
.mssc-cat__avgnum { font-size: 15px; color: #8a8f9c; }
.mssc-cat__track {
	position: relative;
	height: 14px;
	background: #eef0f3;
	border-radius: 999px;
	overflow: visible;
}
.mssc-cat__fill {
	display: block; height: 100%;
	background: linear-gradient(90deg, #0F9B8E, #14b7a6);
	border-radius: 999px;
}
.mssc-cat__avg {
	position: absolute; top: -3px; width: 2px; height: 20px;
	background: #2B2D42; opacity: .55; transform: translateX(-1px);
}
.mssc-cat--skip { display: flex; align-items: center; gap: 10px; opacity: .6; }
.mssc-cat__skiplbl { font-size: 17px; color: #8a8f9c; }

/* ヘッドラインの評価ランク（数値=満点 の誤認を避けるためレターで表示） */
.mssc-score-rank { letter-spacing: 0 !important; font-size: 72px !important; }

/* 総合評価（第2層） */
.mssc-bench__total { text-align: center; padding: 18px; background: #F8F9FA; border-radius: 10px; }
.mssc-bench__rank { font-size: 52px; font-weight: 900; line-height: 1.05; color: #0F9B8E; }
.mssc-bench__rank span { display: block; font-size: 21px; font-weight: 700; color: #2B2D42; margin-top: 3px; }
.mssc-rank-green { color: #0F9B8E; }
.mssc-rank-yellow { color: #E0A800; }
.mssc-rank-red { color: #C0392B; }
.mssc-bench__hint { font-size: 17px; color: #6c7185; line-height: 1.8; margin: 10px 0 0; }
.mssc-bench__pos { font-size: 18px; color: #2B2D42; margin: 12px 0 0; }
.mssc-bench__pos strong { color: #0F9B8E; }
.mssc-bench__src { display: block; font-size: 15px; color: #8a8f9c; margin-top: 5px; }

/* ───────── 診断前ページ：本診断とIPAガイドラインの対応 ───────── */
.mssc-ipa-ref {
	margin: 40px 0 0;
	padding: 28px 26px;
	background: #fff;
	border: 1px solid #e5e8ed;
	border-radius: 14px;
}
.mssc-ipa-ref__title {
	font-size: 21px; font-weight: 800; color: #2B2D42;
	margin: 0 0 8px; padding-left: 12px; border-left: 4px solid #0F9B8E;
}
.mssc-ipa-ref__lead { font-size: 16px; color: #6c7185; line-height: 1.85; margin: 0 0 20px; }
.mssc-ipa-table { width: 100%; border-collapse: collapse; font-size: 15.5px; }
.mssc-ipa-table th, .mssc-ipa-table td {
	text-align: left; padding: 11px 12px; border-bottom: 1px solid #eceef2;
	vertical-align: top; line-height: 1.7;
}
.mssc-ipa-table th {
	background: #F4F7F8; color: #424559; font-weight: 800; white-space: nowrap;
}
.mssc-ipa-table td:first-child { font-weight: 700; color: #2B2D42; white-space: nowrap; }
.mssc-ipa-table td:last-child { color: #555a6b; }
.mssc-ipa-ref__note { font-size: 14px; color: #8a8f9c; line-height: 1.8; margin: 16px 0 0; }
.mssc-ipa-ref__cta {
	display: inline-flex; align-items: center; gap: 8px;
	margin: 22px 0 0; padding: 13px 22px;
	background: #0F9B8E; color: #fff; font-size: 16px; font-weight: 700;
	border-radius: 999px; text-decoration: none;
}
.mssc-ipa-ref__cta:hover { background: #0c7a6f; color: #fff; }

/* 第3層：エンタープライズ参考（折りたたみ） */
.mssc-ent { margin: 18px 0 0; border: 1px solid #e5e8ed; border-radius: 12px; background: #fff; }
.mssc-ent__summary { cursor: pointer; padding: 16px 20px; font-size: 18px; font-weight: 700; color: #424559; list-style: none; }
.mssc-ent__summary::-webkit-details-marker { display: none; }
.mssc-ent__summary::before { content: '▸ '; color: #0F9B8E; }
.mssc-ent[open] .mssc-ent__summary::before { content: '▾ '; }
.mssc-ent__note { margin: 0 20px; padding: 14px 16px; background: #FFF8E0; border: 1px solid #f0e2a8; border-radius: 8px; font-size: 16px; color: #6b5d20; line-height: 1.8; }
.mssc-ent__body { padding: 14px 20px 20px; }
.mssc-ent__pending { font-size: 17px; color: #9aa0ac; text-align: center; }

/* PDF出力時にキャプチャから除外する要素 */
.mssc-pdf-capturing .mssc-cta,
.mssc-pdf-capturing .mssc-keep-cta,
.mssc-pdf-capturing .mssc-save-cta,
.mssc-pdf-capturing .mssc-mail-modal,
.mssc-pdf-capturing .mssc-ent,
.mssc-pdf-capturing .mssc-ipa-mapping { display: none !important; }

/* PDF生成時：登場アニメ（mssc-rise 等）を無効化し最終状態で描画する。
   html2canvas は複製DOMでアニメを再生し直すため、これが無いと半透明（スモーク）になる。 */
.mssc-pdf-capturing *,
.mssc-pdf-capturing *::before,
.mssc-pdf-capturing *::after { animation: none !important; transition: none !important; }
.mssc-pdf-capturing .mssc-score-card,
.mssc-pdf-capturing .mssc-radar-card,
.mssc-pdf-capturing .mssc-item,
.mssc-pdf-capturing .mssc-bench,
.mssc-pdf-capturing .mssc-results { opacity: 1 !important; transform: none !important; }

/* PDF2枚目末尾の提供者クレジット（通常は非表示・PDF生成時のみ表示） */
.mssc-pdf-credit { display: none; }
.mssc-pdf-capturing .mssc-pdf-credit {
	display: block; text-align: center;
	margin: 10px 0 0; padding: 16px 0 8px;
	border-top: 1px solid #e5e8ed;
	font-size: 15px; color: #6c7185; letter-spacing: .04em;
}
.mssc-pdf-url {
	display: block; margin-top: 8px;
	font-size: 14px; color: #0F9B8E; word-break: break-all;
}

/* レスポンシブ */
@media ( max-width: 600px ) {
	.mssc-bench { padding: 18px; }
	.mssc-mat__nm { display: none; }
	.mssc-mat__seg { padding: 12px 2px 30px; }
	.mssc-mat__zone { font-size: 13px; }
	.mssc-ipa-table { font-size: 14px; }
	.mssc-ipa-table th, .mssc-ipa-table td { padding: 9px 8px; }
	.mssc-ipa-table td:first-child { white-space: normal; }
}
