.ookubo-shibitosuu-calc { max-width: 1024px; margin: 24px auto; font-size: 15px; line-height: 1.7; }
/* 「紫微斗数とは？」紹介ボックス */
.ookubo-shibitosuu-calc .zwds-about { margin: 0 0 16px; padding: 14px 18px; background: linear-gradient(135deg,#f3eefb 0%,#faf6ff 100%); border: 1px solid #d8cce4; border-left: 4px solid #7a6997; border-radius: 10px; }
.ookubo-shibitosuu-calc .zwds-about h3 { margin: 0 0 6px; color: #5d4f76; font-size: 1.12em; }
.ookubo-shibitosuu-calc .zwds-about p { margin: 6px 0 0; line-height: 1.85; }
.ookubo-shibitosuu-calc .zwds-form { background: #f7f6fb; border: 1px solid #d8cce4; border-radius: 10px; padding: 16px 18px; }
.ookubo-shibitosuu-calc .zwds-fs { border: 1px solid #cebed7; border-radius: 8px; margin: 0 0 12px; padding: 8px 12px; }
.ookubo-shibitosuu-calc .zwds-fs legend { font-weight: 700; color: #5d4f76; padding: 0 6px; font-size: 0.95em; }
.ookubo-shibitosuu-calc .zwds-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 4px 0; }
.ookubo-shibitosuu-calc .zwds-row input[type="number"] { width: 5em; padding: 6px 8px; border: 1px solid #bfb2c7; border-radius: 6px; }
.ookubo-shibitosuu-calc .zwds-fs label { margin-right: 14px; }
.ookubo-shibitosuu-calc select { padding: 7px 10px; border: 1px solid #bfb2c7; border-radius: 6px; background: #fff; }
.ookubo-shibitosuu-calc .zwds-note { display: block; font-size: 0.82em; color: #6e7781; margin-top: 4px; line-height: 1.6; }
.ookubo-shibitosuu-calc .zwds-custom { margin: 0 0 12px; border: 1px dashed #bfb2c7; border-radius: 8px; background: #fbfaff; }
.ookubo-shibitosuu-calc .zwds-custom > summary { cursor: pointer; list-style: none; padding: 10px 14px; font-weight: 700; color: #5d4f76; border-radius: 8px; }
.ookubo-shibitosuu-calc .zwds-custom > summary::-webkit-details-marker { display: none; }
.ookubo-shibitosuu-calc .zwds-custom > summary::before { content: "▸ "; color: #93839f; }
.ookubo-shibitosuu-calc .zwds-custom[open] > summary { border-bottom: 1px solid #e3dcec; background: #f3eefb; border-radius: 8px 8px 0 0; }
.ookubo-shibitosuu-calc .zwds-custom[open] > summary::before { content: "▾ "; }
.ookubo-shibitosuu-calc .zwds-custom .zwds-fs { margin: 10px 12px; }
.ookubo-shibitosuu-calc .zwds-custom-note { padding: 6px 14px 0; margin: 0; }
.ookubo-shibitosuu-calc .zwds-btn { display: block; width: 100%; margin: 8px 0 0; padding: 0.95em 1.1em; background: linear-gradient(135deg,#7a6997 0%,#93839f 100%); color: #fff; border: 0; border-radius: 8px; font-weight: 700; font-size: 1.0em; cursor: pointer; box-shadow: 0 2px 6px rgba(122,105,151,0.3); }
.ookubo-shibitosuu-calc .zwds-btn:disabled { opacity: 0.6; cursor: default; }
.ookubo-shibitosuu-calc .zwds-result { margin: 16px 0 0; }
.ookubo-shibitosuu-calc .zwds-result:empty { display: none; }
.ookubo-shibitosuu-calc .zwds-error { padding: 12px 16px; background: #fdecea; border: 1px solid #e0a39a; border-radius: 8px; color: #8b2c08; }
.ookubo-shibitosuu-calc .zwds-info { padding: 12px 16px; background: #eef3f8; border: 1px solid #cdd9e5; border-radius: 8px; color: #33414f; }
/* 命盤グリッド（Phase 1 で実装） */
.ookubo-shibitosuu-calc .zwds-board { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; margin-top: 12px; }
.ookubo-shibitosuu-calc .zwds-cell { border: 1px solid #d8cce4; padding: 8px 9px; font-size: 1.0em; background: #fff; display: flex; flex-direction: column; }
.ookubo-shibitosuu-calc .zwds-center { grid-column: 2 / 4; grid-row: 2 / 4; background: #faf6ff; }
/* 星の階層（太字＋色でスマホでも可読性を確保）*/
.ookubo-shibitosuu-calc .zwds-s-main { color: #5d2b8a; font-weight: 700; }
.ookubo-shibitosuu-calc .zwds-s-aux { color: #9a4a1e; font-weight: 600; }
/* 星名は縦書き（伝統的な命盤レイアウト）。各星＝縦1列を横に並べる。
   行間＝縦列の横間隔(line-height)・縦字間(letter-spacing)を広めにして可読性確保 */
.ookubo-shibitosuu-calc .zwds-stars { display: flex; flex-wrap: wrap; gap: 3px 4px; align-items: flex-start; min-height: 3.6em; margin-bottom: 7px; }
.ookubo-shibitosuu-calc .zwds-stars > span { writing-mode: vertical-rl; text-orientation: upright; -webkit-text-orientation: upright; line-height: 1.32; letter-spacing: 0.06em; }
.ookubo-shibitosuu-calc .zwds-stars .zwds-s-main { font-size: 1.08em; }
.ookubo-shibitosuu-calc .zwds-stars .zwds-bright { margin: 0; vertical-align: baseline; }
/* 廟旺利陥マーク（主星に付随）◎廟旺 ◯得地利 △平閑 ▲不得地陥 */
.ookubo-shibitosuu-calc .zwds-bright { font-size: 0.8em; font-weight: 700; margin-left: 1px; vertical-align: 1px; }
.ookubo-shibitosuu-calc .zwds-b-hi { color: #c0392b; }
.ookubo-shibitosuu-calc .zwds-b-mid { color: #b9770e; }
.ookubo-shibitosuu-calc .zwds-b-low { color: #7f8c8d; }
.ookubo-shibitosuu-calc .zwds-b-min { color: #2e6da4; }
/* 生年四化バッジ。星名の下（縦書き内）の色付きボックス。
   色弱対応(カラーユニバーサル/JIS X 8341)：赤緑ペアを廃し Okabe-Ito 系の判別容易な配色。
   文字(禄権科忌)自体でも識別できるため色は補助。 */
.ookubo-shibitosuu-calc .zwds-sh { display: inline-block; font-size: 0.95em; font-weight: 700; line-height: 1.15; color: #fff; border-radius: 3px; padding: 1px 3px; margin-top: 1px; }
.ookubo-shibitosuu-calc .zwds-sh-lu { background: #009E73; }   /* 禄 青緑 */
.ookubo-shibitosuu-calc .zwds-sh-quan { background: #D55E00; } /* 権 朱橙 */
.ookubo-shibitosuu-calc .zwds-sh-ke { background: #0072B2; }   /* 科 青 */
.ookubo-shibitosuu-calc .zwds-sh-ji { background: #2b2b2b; }   /* 忌 黒 */
.ookubo-shibitosuu-calc .zwds-center-sihua { font-size: 0.9em; }
.ookubo-shibitosuu-calc .zwds-center-links { margin-top: 10px; padding-top: 8px; border-top: 1px dashed #d8cce4; font-size: 0.8em; line-height: 1.85; }
.ookubo-shibitosuu-calc .zwds-center-links a { color: #5d2b8a; text-decoration: underline; }
.ookubo-shibitosuu-calc .zwds-center-sihua .zwds-sh { writing-mode: horizontal-tb; }
/* 自四化バッジ（生年四化と区別＝白地・色枠の「自X」） */
.ookubo-shibitosuu-calc .zwds-self { display: inline-block; font-size: 0.74em; font-weight: 700; line-height: 1.1; border-radius: 3px; padding: 0 2px; margin-top: 1px; background: #fff; border: 1.5px solid #999; }
.ookubo-shibitosuu-calc .zwds-self-lu { color: #009e73; border-color: #009e73; }
.ookubo-shibitosuu-calc .zwds-self-quan { color: #d55e00; border-color: #d55e00; }
.ookubo-shibitosuu-calc .zwds-self-ke { color: #0072b2; border-color: #0072b2; }
.ookubo-shibitosuu-calc .zwds-self-ji { color: #1a1a1a; border-color: #1a1a1a; }
/* 運タグ（宮内・現在の大限/流年/小限）＝横書き。フッターの宮干支の横に表示 */
.ookubo-shibitosuu-calc .zwds-foot-gz { display: inline-flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 3px; }
.ookubo-shibitosuu-calc .zwds-un { display: inline-block; writing-mode: horizontal-tb; font-size: 0.66em; font-weight: 700; color: #fff; border-radius: 3px; padding: 1px 5px; }
.ookubo-shibitosuu-calc .zwds-un-dx { background: #5d2b8a; }
.ookubo-shibitosuu-calc .zwds-un-ln { background: #0072b2; }
.ookubo-shibitosuu-calc .zwds-un-xx { background: #b9770e; }
.ookubo-shibitosuu-calc .zwds-dxrange { font-size: 0.78em; color: #7a6997; font-weight: 600; }
/* 現在の大限/流年の宮を淡くハイライト */
.ookubo-shibitosuu-calc .zwds-cur-dx { background: #f6f0ff; }
.ookubo-shibitosuu-calc .zwds-cur-ln { box-shadow: inset 0 0 0 2px #0072b2; }
/* 運勢レイヤーサマリ */
.ookubo-shibitosuu-calc .zwds-un-summary { margin: 12px 0 0; padding: 12px 16px; background: #faf6ff; border: 1px solid #d8cce4; border-radius: 8px; font-size: 0.92em; line-height: 1.85; }
.ookubo-shibitosuu-calc .zwds-un-title { font-weight: 700; color: #5d4f76; margin-bottom: 4px; }
.ookubo-shibitosuu-calc .zwds-un-line { margin: 2px 0; }
.ookubo-shibitosuu-calc .zwds-un-line .zwds-un { margin-right: 4px; }
.ookubo-shibitosuu-calc .zwds-un-note { font-size: 0.82em; color: #6e7781; margin-top: 4px; }
/* 成立格局（運勢レイヤー下） */
.ookubo-shibitosuu-calc .zwds-geju { margin: 12px 0 0; padding: 12px 16px; background: #fbf7ff; border: 1px solid #d8cce4; border-radius: 8px; }
.ookubo-shibitosuu-calc .zwds-geju-title { font-weight: 700; color: #5d4f76; margin-bottom: 6px; }
.ookubo-shibitosuu-calc .zwds-geju-src { font-size: 0.78em; font-weight: 600; color: #8a7ca0; }
.ookubo-shibitosuu-calc .zwds-geju-list { margin: 0; padding: 0; list-style: none; }
.ookubo-shibitosuu-calc .zwds-geju-item { display: grid; grid-template-columns: auto auto 1fr; gap: 3px 8px; align-items: baseline; padding: 7px 0; border-top: 1px dashed #e3dcec; }
.ookubo-shibitosuu-calc .zwds-geju-item:first-child { border-top: 0; }
.ookubo-shibitosuu-calc .zwds-geju-tag { writing-mode: horizontal-tb; font-size: 0.76em; font-weight: 700; color: #fff; border-radius: 4px; padding: 1px 7px; text-align: center; align-self: center; }
.ookubo-shibitosuu-calc .zwds-geju-tag.g-good { background: #009E73; }
.ookubo-shibitosuu-calc .zwds-geju-tag.g-bad { background: #D55E00; }
.ookubo-shibitosuu-calc .zwds-geju-tag.g-mid { background: #6e7781; }
.ookubo-shibitosuu-calc .zwds-geju-name { font-weight: 700; color: #5d2b8a; white-space: nowrap; }
.ookubo-shibitosuu-calc .zwds-geju-pal { font-size: 0.85em; color: #7a6997; white-space: nowrap; }
.ookubo-shibitosuu-calc .zwds-geju-mean { grid-column: 1 / -1; font-size: 0.92em; line-height: 1.7; color: #443c52; }
.ookubo-shibitosuu-calc .zwds-geju-note { font-size: 0.82em; color: #6e7781; margin-top: 6px; line-height: 1.6; }
/* 流派差アラート */
.ookubo-shibitosuu-calc .zwds-alert { margin: 0 0 12px; padding: 10px 14px; background: #fff8e6; border: 1px solid #e6c34a; border-left: 4px solid #d99b00; border-radius: 8px; color: #6b4e00; font-size: 0.92em; line-height: 1.7; }
.ookubo-shibitosuu-calc .zwds-alert-note { color: #8a6d1f; font-size: 0.9em; }
/* 乙級星以下（小星・神煞）も縦書き。主星より小さめのカラムで横並び */
.ookubo-shibitosuu-calc .zwds-minor { display: flex; flex-wrap: wrap; gap: 3px 7px; font-size: 0.9em; color: #7d6f55; font-weight: 600; margin-top: 6px; }
.ookubo-shibitosuu-calc .zwds-minor > span { writing-mode: vertical-rl; text-orientation: upright; -webkit-text-orientation: upright; line-height: 1.5; letter-spacing: 0.08em; }
/* 長生/博士/將前/歳前 十二神も縦書きカラム。最下段がフッター枠に接して切れないよう下に余白 */
.ookubo-shibitosuu-calc .zwds-g { display: flex; flex-wrap: wrap; gap: 3px 7px; font-size: 0.86em; font-weight: 600; margin-top: 5px; margin-bottom: 5px; }
.ookubo-shibitosuu-calc .zwds-g > span { writing-mode: vertical-rl; text-orientation: upright; -webkit-text-orientation: upright; line-height: 1.5; letter-spacing: 0.08em; }
.ookubo-shibitosuu-calc .zwds-g-life { color: #1f8a6a; }
.ookubo-shibitosuu-calc .zwds-g-year { color: #8a5aa0; }
.ookubo-shibitosuu-calc .zwds-cell-foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 4px; border-top: 1px dashed #d8cce4; margin-top: auto; padding-top: 8px; font-size: 0.95em; }
.ookubo-shibitosuu-calc .zwds-pname { font-weight: 700; color: #5d4f76; }
.ookubo-shibitosuu-calc .zwds-pbody { color: #b5894b; }
.ookubo-shibitosuu-calc .zwds-pgz { color: #999; }
.ookubo-shibitosuu-calc .zwds-rules { margin: 18px 0 0; border: 1px solid #d8cce4; border-radius: 8px; background: #fcfbfe; }
.ookubo-shibitosuu-calc .zwds-rules summary { cursor: pointer; padding: 12px 16px; font-weight: 700; color: #5d4f76; }
.ookubo-shibitosuu-calc .zwds-rules-body { padding: 0 18px 14px; font-size: 0.92em; }
.ookubo-shibitosuu-calc .zwds-rules-body h4 { margin: 12px 0 6px; color: #5d4f76; }
/* 出典・参考文献（E-E-A-T 権威性） */
.ookubo-shibitosuu-calc .zwds-refs { margin: 16px 0 0; padding: 12px 16px; border-top: 2px solid #e3dcec; font-size: 0.85em; color: #5b5168; }
.ookubo-shibitosuu-calc .zwds-refs h4 { margin: 0 0 6px; color: #5d4f76; font-size: 1.0em; }
.ookubo-shibitosuu-calc .zwds-refs-note { margin: 0 0 6px; color: #6e7781; line-height: 1.6; }
.ookubo-shibitosuu-calc .zwds-refs ul { margin: 0; padding-left: 1.2em; }
.ookubo-shibitosuu-calc .zwds-refs li { margin: 4px 0; line-height: 1.65; }
/* JSON出力（mond会員限定ゲート） */
.ookubo-shibitosuu-calc .zwds-json { margin: 14px 0 0; padding: 14px 16px; background: #f3eefb; border: 1px solid #d8cce4; border-radius: 8px; }
.ookubo-shibitosuu-calc .zwds-json h4 { margin: 0 0 6px; color: #5d4f76; font-size: 1em; }
.ookubo-shibitosuu-calc .zwds-json-badge { display: inline-block; font-size: 0.68em; font-weight: 700; color: #fff; background: #7a6997; border-radius: 4px; padding: 2px 7px; margin-left: 6px; vertical-align: middle; text-decoration: none; }
.ookubo-shibitosuu-calc a.zwds-json-badge:hover { background: #5d4f76; color: #fff; text-decoration: none; }
.ookubo-shibitosuu-calc .zwds-json-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 6px; }
.ookubo-shibitosuu-calc .zwds-json-row input { padding: 8px 10px; border: 1px solid #bfb2c7; border-radius: 6px; font-size: 1em; }
.ookubo-shibitosuu-calc .zwds-json-btn { padding: 8px 18px; background: #7a6997; color: #fff; border: 0; border-radius: 6px; font-weight: 700; cursor: pointer; }
.ookubo-shibitosuu-calc .zwds-json-out { margin-top: 10px; }
.ookubo-shibitosuu-calc .zwds-json-dl { display: inline-block; padding: 8px 14px; background: #0072b2; color: #fff; border-radius: 6px; font-weight: 700; text-decoration: none; }
.ookubo-shibitosuu-calc .zwds-json-err { color: #8b2c08; font-weight: 600; }
.ookubo-shibitosuu-calc .zwds-json-prompt { margin-top: 12px; background: #fff; border: 1px solid #d8cce4; border-radius: 6px; padding: 10px; }
.ookubo-shibitosuu-calc .zwds-json-prompt-head { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; font-size: 0.85em; font-weight: 700; color: #5d4f76; margin-bottom: 6px; }
.ookubo-shibitosuu-calc .zwds-json-copy { padding: 5px 12px; background: #7a6997; color: #fff; border: 0; border-radius: 5px; font-weight: 700; cursor: pointer; font-size: 0.9em; white-space: nowrap; }
.ookubo-shibitosuu-calc .zwds-json-prompt-pick-wrap { margin-bottom: 6px; font-size: 0.85em; color: #5d4f76; }
.ookubo-shibitosuu-calc .zwds-json-prompt-pick-wrap label { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; font-weight: 600; }
.ookubo-shibitosuu-calc .zwds-json-prompt-pick { border: 1px solid #cebed7; border-radius: 5px; padding: 4px 8px; font-size: 0.95em; background: #fbfaff; color: #3a2f4d; max-width: 100%; }
.ookubo-shibitosuu-calc .zwds-json-prompt-text { width: 100%; box-sizing: border-box; border: 1px solid #cebed7; border-radius: 6px; padding: 8px; font-size: 0.86em; line-height: 1.6; resize: vertical; background: #fbfaff; }
.ookubo-shibitosuu-calc .zwds-json-prev { margin-top: 8px; }
.ookubo-shibitosuu-calc .zwds-json-prev pre { max-height: 320px; overflow: auto; background: #fff; border: 1px solid #d8cce4; border-radius: 6px; padding: 10px; font-size: 0.8em; white-space: pre-wrap; word-break: break-all; }
@media (max-width: 600px) {
	.ookubo-shibitosuu-calc { font-size: 14px; }
	.ookubo-shibitosuu-calc .zwds-row input[type="number"] { width: 4em; }
	/* スマホ: 文字を縮め過ぎず、太字＋色＋行間で乙級以下も読みやすく */
	.ookubo-shibitosuu-calc .zwds-cell { padding: 5px 5px; font-size: 13px; }
	.ookubo-shibitosuu-calc .zwds-s-main { font-size: 1.14em; }
	.ookubo-shibitosuu-calc .zwds-bright { font-size: 0.92em; }
	.ookubo-shibitosuu-calc .zwds-s-aux { font-size: 1em; font-weight: 700; }
	.ookubo-shibitosuu-calc .zwds-minor { font-size: 0.94em; font-weight: 700; }
	.ookubo-shibitosuu-calc .zwds-g { font-size: 0.9em; font-weight: 700; }
	.ookubo-shibitosuu-calc .zwds-sh { font-size: 1.05em; }
	.ookubo-shibitosuu-calc .zwds-center { font-size: 0.94em; }
	/* スマホ: 主星は詰め、乙級以下は列間を広めにして可読性を確保（はみ出しはwrap） */
	.ookubo-shibitosuu-calc .zwds-stars { gap: 2px 3px; min-height: 3.2em; }
	.ookubo-shibitosuu-calc .zwds-stars > span { line-height: 1.3; letter-spacing: 0.04em; }
	.ookubo-shibitosuu-calc .zwds-minor > span,
	.ookubo-shibitosuu-calc .zwds-g > span { line-height: 1.5; letter-spacing: 0.06em; }
	.ookubo-shibitosuu-calc .zwds-minor,
	.ookubo-shibitosuu-calc .zwds-g { gap: 2px 6px; }
}
